В моем пользовательском редакторе, обертывание кода тегами <pre>
работает нормально. Хотелось бы визуально организовать вставляемый код для лучшей читаемости. Для этого мне нужны пустые строки между кусками кода. Но вместо пустой строки, когда я нажимаю Enter, весь блок кода разбивается на два, а новый блокируется в собственном пре-теге. Приведенный ниже код должен быть в одном блоке с пустой строкой между example_function
и another_example_function()
FYI , класс contenteditable
имеет значение style="display:inline-block"
, чтобы предотвратить div.wrapper
в каждой строке. Возможно актуально CSS информация - pre { white-space: pre-wrap;}
. Я на chrome 83.xx. Дайте мне знать, если вам понадобится дополнительная информация. Ниже показано, что я пробовал и не смог:
//there could be several code-blocks so running a loop to get all
let preTags = document.querySelector('.custom_editor').querySelectorAll('pre')
if (preTags) {
preTags.forEach(function(item) { // attaching an event-listener to each code block
item.addEventListener('click', function(e) {
if (e.keyCode === 13) { //on enter just need a empty new line
document.execCommand('insertHTML', false, '<br>');
return false;
}
})
}
}
HTML
<div class="content" style="display:inline-block;" contenteditable="true"></div>