Обход текстового документа

Автор karpo518, 21 апреля 2017, 13:39

0 Пользователи и 1 гость просматривают эту тему.

karpo518

Добрый день. Есть макрос под OO Writer, который размечает текстовый документ тегами html. В алгоритм подразумевает обход текстовых фрагментов внутри параграфа, отличающихся от предыдущих отслеживаемыми стилями(на данный момент это комбинация свойств: жирность текста, стиль текст, ссылка). В данный момент алгоритм основан на посимвольном обходе документа. Такой подход совсем не производительный, ведь длина строк обособленных стилями обычно больше чем 1 символ. Проверка всех стилей у каждого символа выглядит избыточно. Кроме того, производительность скрипта будет падать при добавлении каждого нового отслеживаемого свойства. Есть ли более эффективный способ обхода текста в параграфе?
Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2

economist

#1
karpo518 - есть расширение Wiki Publisher (ныне входит во Writer), посмотрите как сделано там.
Я бы на вашем месте тупо "публиковал" бы в очень простом и удобном формате MediaWiki, и конвертил бы его в HTML (хотя если на сервере PHP - то можно публиковать прямо в WIKI, в ней все выглядит изумительно).

А зачем обходить по-символьно? Есть форматы символов? Не лучше ли по словам/абзацам?
Если нужно как-то особо рендерить ODF/ODT-формат, возможно стоит поискать готовые парсеры на сайтах, где много ODF-ов.

Ещё мысль: если файлы сверстаны безграмотно (без стилей, отступы пробелами итп) - то правильнее потратить время на приведение их в порядок, и лишь затем рендерить в web-формат.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...