Хочу осветить технические аспекты этого блога, чтобы осталось в истории.
Сначала, самое основное, то есть список всего на чем крутится сайт
Как к этому все пришло.
- вопервых меня не устраивает устройство существующих блог-платформ blogger, livejournal и тп.
- очень ограниченная функциональность создания постов в онлайновых редакторах: raw-html или WYSIWYG.
- нужно писать обязательно в хтмле чтобы все выглядело пристойно. Это не удобно. можно конечно же делать через WYSIWYG, но чтобы финальный текст привести к органичному виду, нужно еще как постараться
- мне нравится wiki-подобная разметка (creole, textile, media-wiki, markdown), которая существенно упрощает генерацию хтмл-я. Вот например горячо мной любимые нумерованные списки ol-li, делать на wiki очень и очень приятно.
- есть конечно же варианты вести отдельно wiki и постить посты html-ем сгенеренным по wiki, было подсмотренно здесь и здесь. Но у этого подхода есть сложность в комплексности: нужно помнить какие изменения перенесены, что-где хранится, постоянно переходить между 2-3 страницами, дополнительные приседания для допиливания финального хтмля.
- для вставки исходного кода в пост его нужно обязательно енкодить, что накладывает дополнительные издержки на хранение исходного состояния перед вставкой.
- возможности кастомизации внешенего вида сводятся к изменению макета страницы и добавления гаджетов.
- если нужно добавить например подсветку синтаксиса - нужно использовать внешний ресурс, с картинками такая же лажа. в итоге сайт хранится в 10 различных местах.
- существующих возможностей бекапов мне не хватает
- контроль версий, который очень удобен для создания текстов, отсутствует
- минимальных возмозможностей автоматизации нет.
- Использовать готовый движок блога, типа WordPress. Вообще говоря вариант, но мне отпугивют либо гигантские возможности и размеры, либо не достаточная функциональность минималистичных движков. В любом случае, чтобы найти то что мне подойдет из готового нужно тратить время на изучение, установку и так далее.
- Идея написать новый движок блога на django изначально летала в голове, но представляя себе банальнейшую архитектуру Author-Article-Tag-Comment со всеми дополнительными действиями меня воротило.
- очевидным плюсом является доморощенность, с 100% знанием системы
- минусом - бесцельно потраченное время, еще один никому, кроме меня, ненужный движок блога
- Так что был выбран подход суперпозиции двух предыдущих пунктов: good coders code, great reuse
- была обнаружена идея статической генерации контента, в ходе поисков был найден cyrax
- это дало возможность хранить изменения постов под контролем версий
- автоматизация всего и вся, от возможностей темплейтов jinja2 до фильтров и коллбеков на python
- например использование разметки textile и управление енкодом - всего лишь фильтры в темплейте
- наименьшая нагрузка на сервер, так как идет раздача только статического хтмля, без всяких БД. Статьи ведь меняются очень не часто (раз в день, неделю, месяц).
- весь динамический контент - это только комменты, но онлайновые системы комментирования давно существуют - disqus
- всякие возможности админок, авторизаций на сайте считаю для блога лишними - цель блога ведь изложение собственных мыслей и общение с людьми. сочинять посты мне гораздо удобнее в vim, а аплоадить их на сервер - не обломно.
- процесс работы, для автора, достаточно прост и гибок.
- сама структура хранения текстов в виде темплейтов jinja2, полная python-ориентированность, дает безграничные возможности для модификации, конвертации и тп. можно допустим перевести все это на django без больших особых трудозатрат