Я ищу Ruby CMS (или плагин), который может обслуживать и редактировать контент, расположенный в репозитории Git. Меня тошнит от того, что мой контент в дБ. Пользователи, настройки, комментарии, отлично. Но не больше контента.
Каждое живое редактирование на странице должно быть автоматически, немедленно зафиксировано, чтобы предотвратить необходимость объединения на стороне сервера. Кроме того, при каждом нажатии на новые изменения они должны быть немедленно обновлены в файловой системе.
Документация CMS Refinery, похоже, делает что-то подобное, хотя, возможно, с удаленным репозиторием.
Я читал о GitModel и git -blog, но я все еще ищу кое-что, что соответствует моим потребностям немного ближе. [EDIT: GitModel слишком сложно редактировать вручную, когда используется с большинством CMS, а git -blog использует статическое создание файлов.]
EDIT: мое смещение против баз данных для контента относится только к сайтам, которым требуется высокая степень настройки, и не может использовать CMS как есть. Сайты, чей код развивается так же, как и его содержимое. Это когда контент в БД является полным кошмаром. Когда вам нужно одновременно разворачивать содержимое и код, они объединяют их обоих в производство позже. БД не ветвятся и не объединяются.
У меня такой сайт.
Аргумент производительности в пользу содержимого только для БД недействителен. Я написал CMS 5 лет назад, который синхронизирует базу данных с файловой системой, где файловая система всегда является главной копией. Он легко масштабируется до 100 000 страниц, поддерживая время отклика 10 мс и время повторного использования 2 с. Полностью доступные для поиска индексы всего содержимого, метаданных, тегов, дат и т.д. И, черт возьми, я написал это в самой медленной, самой мучительной структуре на планете, ASP.NET. Фактически это почти сделало ASP.NET приемлемым, и он отлично обслуживал различные компании, поскольку у них был такой же сайт, как упоминалось выше.
Маленькие сайты могут просто использовать кеш в памяти, вообще пропуская содержимое db
Допустимым аргументом для содержимого только для db является масштабируемость редактирования. Редакторы должны использовать один и тот же сервер, хотя изменения могут быть реплицированы наружу. Но в случае быстро меняющихся сайтов с высокой настройкой, которые изменяют код так часто, как контент, распределенное/редактирование сообщества указанного кода и контента маловероятно. Сообщество/распределенное редактирование может использовать другую систему.
До сих пор, ближе всего я пришел, используя Cloud9 для редактирования репозитория контента Git (Nesta CMS), а затем нажмите изменения в командной строке. Он медленный, но, по крайней мере, он основан на веб-интерфейсе, если моя dev-машина не удобна, и я обнаружил, что я ошибся своим именем в статье. Ищем лучшие варианты.