Pull to refresh

Comments 12

Здорово и полезно, но в случае если вам реально нужно будет сделать редактор, мой совет это editor.js он жутко удобный, вроде бы habr его же и использует, да и на notion он очень сильно похож

Я пока вот этим всем занимался, смотрел их исходники тоже. Довльно удобная штука)
Они, кстати говоря, используют базовое форматирование, насколько я понял. Сами ничего не костылят)

Вот такие фронтэндеры реально крутые!

Теперь вижу сколько усилий требуется чтобы иметь условный Code Mirror js…

Когда речь шла о нескольких выделенных блоках -- это только про div-ы? Потому что для редактора будет удобно использовать мультивыделение, которое, как я понял, нестандартно и есть только в Firefox (ctrl+click, очень удобно с таблицами).

Я не пробовал, но должно работать и с мультивыделением. Просто в Selection сразу будет несколько Range. Можно в консоли быстренько проверить примерно так:

let selection = document.getSelection();
for (let i = 0; i < selection.rangeCount; i++) {
console.log(selection.getRangeAt(i).toString()));
}

У меня Firefox нет, если получится, расскажите)

Да, работает исправно! (в коде лишняя правая скобка)

Мне в голову пришла идея пет-проекта
который изначально 
был связан с текстовым редактором. 

А зачем снова писать quill, lexical и пр.? )

Моя мотивация была простой: развлечься и научиться чему-то новому. Захват рынка текстовых редакторов в план (пока что) не входит

Ох, какой замечательный велосипед в хорошем смысле этого слова, вспоминается один из моих первых проектов - текстовый редактор по типу wordpad на visual basic, тогда тоже много возился с форматированием документа

Единственное, что хочется отметить, так это то, что сейчас Markdown является более модным, нежели хранение и редактирование html, хотя, в вашем случае можно делать преобразование в самом браузере при загрузке документа и при его сохранениии.

Для себя в качестве альтернативы Notion выбрал Obsidian - тут тоже есть многие фишки и при этом полностью локальное и независимое хранение заметок с возможностью синхронизации между устройствами.

В коде перед заключением range нужно заменить на mergedRange

Sign up to leave a comment.

Articles