HTML-парсер + CSS для epub практически готов

HTML-парсер + CSS для epub практически готов

Так выглядит epub-страница в Google Chrome.

Показываю в динамике, чтобы потом никто не болтал, что я скрины подменил или что это все страшно лагающее. Можно наблюдать динамический перерасчет переносов. На 4k, к слову.

Так выглядит мой HTML - рендер(ну или недобраузер).

На Flutter так и не завезли отображение переносов в мягких разрывах(там где проставлен знак), поэтому пришлось практически с нуля собрать свой линейный рендеринг текста, то есть штуки, которая раставляет слова по строкам и которая обеспечивает корректные переносы, align и прочие радости, поэтому удобного Widget Text(...) не используется, у разрабочиков я одолжил только ui.Paragraph для получения метрик на отдельное слово(я еще не поехал настолько). Добавляем сюда блоковый движок, который реализует всякие приколюхи CSS по типу: { display: block; font-size: 0.88889em; font-style: normal; font-weight: normal; line-height: 1.4em; text-align: center; text-indent: 0; margin: 1em 2em 0; } и flex(например) и в итоге мы получаем штуку , которая неплохо справляется со статичным браузерным контентом.
В перспективе можно будет подключить flutter_js для обработки виртуального дерева и хитрых css-стилей, но пока остановлюсь на том что имею. Ну может ради DTF потом сделаю)))
Это продолжение к прошлым постам. Пишу здесь потому что другие площадки не использую, типа Хабра или социалок, а друзья, ну они совсем не технари, да и технари кому показываю крутят пальцем у виска(чего-то это они?). А зачем показывать? Не знаю, наверное, просто люблю внимание, да и когда закрепляешь свою работу, проще работать в долгую. А на этом все. Спасибо за внимание и попытку понимания

3
4 комментария