Пишу браузер для ОС
Итак, начинаю большой проект - браузер реальных HTML страниц для OpenComputers.
Всё началось с того, что я решил прикрутить скроллинг лога моего интернет-сервера.
Потому я понял, что для этого мне нужно будет подключить GUI, и решил что это будет GML.
Но мне не нравилось, что весь код контролов там распологается в одном файле. Я начал разделять отдельно.
Потому я понял, что нужно перевести его .gss формат стилей на всем известный CSS, для большей понятности.
От этого мне захотелось сделать методы контроллов больше похожими на DOM-элементы...
И тут понеслось.
Очнулся через 5 дней усиленного изучения Document Object Model, CSS стилей, парсинга HTML и многочисленных библиотек под Lua.
HTML парсер на луа я нашел, и даже его начал внедрять, но потом нашел монстра похлеще, с проработанным древом наследования и множеством других функций, хотя для него пришлось переписать парсер, так как он работал с либами на C.
Пока показать могу только результат работы парсера.
В коричневых областях слева оригинальный файл. Парсер перебирает его по косточкам, разбирая на отдельные теги, аттрибуты и ноды. В правой части обратная сборка документа из таблицы.
В черном окне - запущенный эмулятор ОС, который просто выводит текстовые данные из страницы.
Красным выделены разницы в файлах. Как видите, парсер только отбросил !DOCTYPE и в некоторых местах убрал лишние пробелы.
Мне согласился помочь Zer0Galaxy и написать парсер для css файлов, а так же поиск аттрибутов в них.
Браузер планируется сделать так, что бы он умел открывать настоящие веб-сайты, например http://computercraft.ru/ , и выполнять в них навигацию.
Из главных фич будет быстрая отрисовка, и возможность использования библиотек как интерфейса для создания GUI.
Сейчас исходники весят уже 200кб. Это будет круто.
- 4
9 комментариев
Рекомендуемые комментарии