Какие существуют способы создания инструмента для форматирования текста (на подобии текстовых редакторов)?
Я знаю, что есть способ создания редактора на чистом html, css, javascript, используя атрибут contenteditable, и также написать свой компонент через iframe. Однако есть ли альтернативные способы? Гугл в в своей версии онлайн-редактора документов, ни один из способов не использует. Я конечно предполагаю, что там используются свои оттестированные алгоритмы, но все же интересно знать хотя бы поверхностно о других способах.
Contenteditable может вообще не использоваться, так как поведение от браузера к браузеру отличается. Изначально это кажется прикольной идеей, но потом понимаешь, что технология нулевая.
Gdoc, facebook и некоторые другие ребята делают вообще полностью свое решение. Трекают нажатия клавиш, рисуют кастомный курсор, записывают контент в виде неких блоков, которым можно задать свойства или подменить на валидный html.
Тема достаточно сложная. Наверное, во фронтенде это в принципе одна из самых замороченных штук.