Использование sharejs с contenteditable элементами

Есть ли способ использовать sharejs вместе с contenteditable-элементами вроде <div contenteditable="true">Content <b>with html</b></div> с HTML-контентом в нем?

Или существуют другие лучшие практики для Оперативного преобразования (OT) в сочетании с HTML-контентом или Rich-Text? Как это можно сделать с помощью node.js?

1 ответ

Можно определить алгоритм OT на деревьях, таких как деревья DOM. Я написал совместимый с shareJS OT-тип для операций DOM: https://github.com/marcelklehr/dom-ot

Используйте это с осторожностью, хотя. Несмотря на то, что это работает, вопрос в том, является ли хорошая синхронизация DOM хорошей идеей и действительно то, что вы хотите. У многих браузеров есть свои причуды, связанные с реализацией DOM, особенно при работе с contenteditable элементами.

Другой подход заключается в использовании встроенного текстового редактора в браузере для обеспечения взаимодействия OT. Например, команда CKeditor в настоящее время разрабатывает такую ​​функцию для v5. ProseMirror поддерживает и поддерживает схему перебазирования и преобразования, аналогичную той, которая используется в системах контроля версий (отличие от OT состоит в том, что реплики не гарантированно сходятся, если вы применяете правки в разных порядках).

Другие вопросы по тегам