Showing posts with label libcroco. Show all posts
Showing posts with label libcroco. Show all posts

Friday, October 2, 2009

CSS + gtkhtml

Продолжение поста.
Заменил в своей тестовой ветви парсер на libxml, и с минимальными изменениями заменил использование старой логики на новую. В результате получил полу работоспособную систему с такими проблемами:
  1. текст выводится мимо полей таблицы;
  2. стили применяются не полностью - отсутствие свойств у элементов;
  3. сейчас выдается двойное дерево - без стиля и под ним с стилем.
В общем почти удачно - но нужно переписать код преобразования xml дерева в htmlobject дерево, или хотя бы найти причину вывода мимо элемента.

Wednesday, July 29, 2009

Добавление поддержки CSS в GtkHtml

В общем идея:
  • сейчас в gtkhtml - используется некое подобие SAX парсера, на основе которого сложно создать что-то подобное поддержке CSS. Конечно можно, так как все таки дерево элементов существует, но долго и есть другой вариант;
  • нужно заменить парсер на использование libxml;
  • заменить рендеринг на использующий XmlTree
  • использовать рендеринг в два прохода:
    • первичный рендеринг только html без css c созданием запросов на css
    • вторичный при доступности css применять его к дереву и вызывать перерисовку;
  • в теории мы получим немного более медленный рендеринг - запускающийся только после получения полного дерева, сейчас редеринг идет в параллель с парсингом.
Сейчас реализовал только замену парсера(мой fork на github) и тестовые приложения для проверки применения css. Для парсинга используется libcroco. За основу тестовых приложений взят код - позволяющий применить css к xml c использованием пространств имен.