Сделал то, что делает каждый программист каждый день
Это продолжение к посту:
Я продолжил развивать свою читалку и дошёл до поддержки формата EPUB. EPUB представляет собой архив с набором HTML-файлов, CSS и картой книги. Сначала я попробовал сделать адаптер-конвертер из EPUB в FB2, расширив сам формат FB2. Однако вскоре столкнулся с тем, что HTML позволяет комбинировать блоки по множеству разных правил, и фактически упёрся в необходимость разрабатывать полноценный браузер. После раздумий я сделал ответвление от основного проекта и реализовал там CSS-парсер, блочный движок для линейного рендера, виртуальное дерево и более продвинутый painter
И получилось то что вы видите выше. Слева Google Chrome для примера, по середине моя програмка.
Никаких webview, html-widget и прочее ерунды для отображения html.
Как видно, здесь используется пакет html, который позволяет быстро разобрать и нормализовать дерево: автоматически закрывать теги, удалять невидимые символы и выполнять другие подобные операции.
Он не умеет работать CSS и нужен только для последующего преобразования в мой VNode, который является основой для моего виртуального дерева.
Таким образом, я сделал простой html-браузер, которого по идеи должно хватить для epub. В теории можно подключить flutter_js: ^0.8.5 и тогда получится еще интереснее.
Столь желтый заголовок я сделал лишь для того, чтобы справоцировать других прогеров посмеяться над мной.
Никих ссылок на ТГ и прочих ссылок на социальные сети здесь не будет. В социальных сетях даже не зареган.
Также нужно доработать обработку padding-ов , расширить поведение flex и рендеринг теней