Обновление блога
Воскресенье, 29 июля 2012

Совершенно внезапно наш блог постигло самое масштабное внутреннее обновление со времен его создания. Я сделал то, что давно собирался: написал полностью свой рендерер для постов. Теперь я полностью отвечаю за внешний вид постов, а не какой-то там Text.Pandoc.Writers.HTML.

Теперь я могу реализовывать (и уже начал) всякие специальные прикольные штуки, например, другие сноски. Они теперь отображаются не внизу поста, а прямо в нужном месте при нажатии на соответсвующую ссылку мышкой1.

Самая жесть во всем написанном коде — это обработка raw-данных. Как вы, возможно, знаете, в markdown можно вставлять голый html, не обязательно валидный. А Pandoc, парсер для markdown, позволяет еще и смешивать raw-данные и специальную размету. Например, из такого текста:

<span>*Текст*</span>

будет получен следующий результат:

<span><em>Текст</em></span>

Добавим к этому, что используемый шаблонизатор heist оперирует только валидными структурами. Вот и получаем, что блоки, которые содержат raw-данные, сначала собираются в виде html-строки, а затем парсятся в валидную структуру для шаблонизатора. В то же время для любых других блоков стуктуру для heist можно генерировать напрямую.

В любом случае смотрим, изучаем, находим ошибки и сообщаем мне о них.


  1. Да-да, вот прямо как сейчас.

← СвященнодействиеКапсула времени →