- Полноценные CMS всегда оказывались слишком тяжёлые (слишком универсальные) и навязывали слишком сложную (ИМХО) модель и структуру сайта. Их код слишком большой, чтобы можно было что-то быстро под себя переделать. В общем, в программировании я не любитель «отсекать лишнее».
- Комбинирование языков облёгчённой разметки (Markdown, reST), щепотки PHP и готовых систем шаблонов (вроде Smarty) решало задачу, но требовало решать её каждый раз заново («лепить»).
- Собственный набор макросов m4 для генерации сайтов был не очень удачен (но «велосипед был вновь изобретён»).
- Попытки использовать Google Pages или облегчённые вики в качестве движка оставили смешанное чувство (здесь нужно долго и нудно «замазывать»).
В общем, на каникулах развлёк себя знакомством с Google AppEngine (который предоставляет бесплатный и масштабируемых хостинг для веб-приложений), а заодно, в свете того, что нужно сделать очередной мини-сайт, решил сделать для AppEngine простую мини-CMS. Требования у меня к ней были такие:
- Максимально простая модель сайта: «плоский» сайт из нескольких страниц с автоматически генерируемым «меню».
- Человек далёкий от веб-разработки должен иметь возможность легко изменять содержимое сайта. Легко — это значит не только «не зная HTML», но и «без страха перед навороченной админкой», и «не зная английского».
- Должна быть возможность использовать облегчённые языков разметки (Markdown, reST), которые мне кажутся более предпочтительными, чем WYSIWYG-редакторы.
- Код должен быть достаточно коротким и простым, чтобы понять и изменить его было легко.
- Доступность бесплатного безрекламного хостинга для динамического сайта:)
Надеюсь, кому-то кроме меня эта мини-CMS окажется полезна. Лицензия — преданная гуглоанафеме, но свободная и мне симпатичная GNU Affero GPL. Собственно, узнал об этой политике Гугла по отношению к Affero GPL как раз попытавшись завести проект на Google Code. «Ну не хотят, так не хотят,» — решил я, — репозиторий исходного кода был размещён на freeHg.org.
В общем, исправления и дополнения кода приветствуются.