Конвертер HTML в RST

У меня много файлов RST (reStructuredText), преобразованных в HTML с помощью docutils. Используя небольшое разработанное JS-приложение (базовый iframe с атрибутом HTML5 contenteditable), люди, не являющиеся техническими специалистами, могут легко редактировать сгенерированную HTML-страницу. Цель состоит в том, чтобы применить изменения, сделанные в HTML, обратно в исходный файл RST.

Мне интересно, есть ли способ обучить алгоритм с истинной правдой преобразования original_RST -> output_HTML, чтобы мы могли позже отменить изменение output_HTML+minor обратно в RST? Какой это будет алгоритм? В какую сторону мне начать копать?

Чтобы упростить проблему, вместо RST я также могу использовать внутреннее XML-представление AST docutils в качестве входных данных документа (RST в XML-AST: http://docutils.sourceforge.net/tools/quicktest.py) и выше, исправьте проект xml2rst+xslt (http://www.merten-home.de/FreeSoftware/xml2rst/)

Любое предложение приветствуется


person ticapix    schedule 11.09.2016    source источник
comment
Извините, что это не отвечает на ваш вопрос, но я думаю, что пользовательский HTML-код очень плох с точки зрения безопасности. Определите, какие области должны быть доступны для редактирования пользователем, и работайте с этими конкретными данными (не содержащими необработанный HTML).   -  person Yaroslav Nikitenko    schedule 27.04.2020


Ответы (1)


Попробуйте Pandoc

Если вам нужно преобразовать файлы из одного формата разметки в другой, pandoc — ваш швейцарский армейский нож.

person Ricardo Cardona Ramirez    schedule 17.04.2017
comment
Спасибо. Я попробовал это для XML-файла программной документации, сгенерированного Sphinx, но он оставляет много образцов .. raw:: html. - person Yaroslav Nikitenko; 27.04.2020
comment
Также он игнорирует разметку xml:space=preserve и делает весь мой код однострочным. Он уничтожает теги выделения (которые сначала должны стать *). Я слышал о pandoc, но кажется, что это довольно слабое решение. - person Yaroslav Nikitenko; 27.04.2020