Давненько не брал я в руки шашек
Уже больше года CL практически не занимался. Страшно сказать, за год ни одного сообщения в блоге. Хватит это терпеть!
Впрочем, время от времени я за CL таки садился и потихоньку переделывал cl-closure-template. Функционал остался тот же самый, но вот реализация поменялась:
Переписан парсер, теперь для представления AST используются не s-выражения, а настоящие объекты.
Соответственно, пришлось переписать практически всё (хоть работа и была не очень сложной)
Полностью переписан JavaScript-backend без использования parenscript.
В результате, как мне представляется, код стал понятнее и проще для модификации, ибо вникать в прежний код, занимавшийся перемалыванием s-выражений, было занятие не самое приятное.
Последовавшее за этим обсуждение привело к появлению нескольких очень полезных новых возможностей:
Добавлена возможность генерации JavaScript в стиле RequireJS (:requirejs-backend)
Добавлена поддержка ASDF и теперь шаблон можно указывать непосредственно в описании системы с помощью компонента :closure-template
Добавлена возможность компиляции шаблона (CL-backend) при редактировании шаблона в Emacs с помощью C-c C-l (closure-template-compile). Очень, очень удобно.
За эти изменения большое спасибо Alexey Martynov, а также andy128k, который терпеливо исправлял появлявшиеся баги (ну куда же без них).
Эта работа подвигла меня на ещё один шаг. Одна из причин, почему я не вёл блог была в том, что arblog не имел админки. Когда я на него перешёл это было не существенным, ибо я тогда был плотно в теме и мне было очень просто создавать посты прямой работой с базой. Но имевший место долгий перерыв общения с CL отбил у меня охоту снова этим занимать. Для исправления ситуации сделал админку, что бы можно было создавать и править посты непосредственно из веб-интерфейса.
Сейчас функционал arblog меня совершенно устраивает, но в ближайшее время я намерен существенно переработать структуру кода, так что бы этим движком мог пользоваться не только я.
Для завершения картины обновил софт на сервере, в процессе даже падал lisper.ru, ибо Gentoo требуется много ресурсов для компиляции. Развернул MongoDB и перетащил в неё базу блога, которая ранее жила на MongoHQ.