Вопрос или проблема
Я ищу систему управления контентом (CMS), которая предоставляла бы гибридную функциональность вики и версионирования с поддержкой ветвления/форка, как в GitHub.
Идея заключается в создании для длинных текстов того, что git предоставляет для кодовых баз. Т.е. поддержка различных участников для развития текста в разных направлениях, которые могут быть или не быть объединены в некоторый момент.
Отличие от вики в том, что существует не только одна текущая версия (и история), но потенциально несколько текущих версий, например, доступных через website.com/slug/hash, где slug общий для всех версий, а каждая версия имеет свой собственный хэш.
Другими словами: я не просто хочу историю версий в фоновом режиме, но
- Я хочу, чтобы расходящиеся ветви были видны. Например, метаинформация, указывающая “эй, посмотри сюда, есть другое мнение по этому вопросу”
- точно не просто 1 текущая версия и использование git/и т.п. для истории.
- возможность прямой ссылки на каждую ревизию, будь то текущая или историческая (смотрите ссылку с хэшем выше)
- если посещается старая ревизия, возможно, добавить ссылку на последние версии (их может быть несколько).
Что-то на основе git, вероятно, можно использовать, но для ветвления, вероятно, это означало бы создание репозитория на каждый текст и много работы с разбором коммитов/истории репозитория.
Большинство генераторов статических сайтов хранят свои исходники в простых файлах, просто поместите эти файлы в git.
Или используйте github pages, технически используя генератор статических сайтов Jekyll с поддержкой GitHub “из коробки”. Если вы хотите разместить это сами, используйте gitlab pages с несколькими другими генераторами статических сайтов.
Или попробуйте заглянуть в ikiwiki.
Вы, возможно, знакомы с Gollum, как с кодом, управляющим функцией вики на GitHub. База данных для вики просто репозиторий Git.
Я размещаю Gollum у себя и использую его как очень легкую CMS. Он имеет простой в использовании веб-интерфейс, который позволяет мне редактировать содержимое на основе Markdown в моем браузере, но я также могу напрямую управлять репозиторием Git через командную строку.
Gollum позволяет ссылаться на документ в репозитории Git, как он существовал в определенном коммите (см. представление истории). Я не совсем уверен, можно ли это изменить для доступа к коммитам, которые не находятся в мастер-ветке. Если нет лучшей альтернативы, идеально соответствующей вашему случаю, Gollum был бы хорошей отправной точкой: это довольно простое приложение на Rails, и у меня был некоторый успех, сам подправив код.
Вы можете попробовать fossil, которая по сути является DVCS, немного напоминающей git, но собранной в одном исполняемом файле и также содержащей веб-интерфейс и интегрированную вики.
Например, здесь вы можете взглянуть на хронологию, показывающую ветви визуально. Вы можете просто рассматривать всю его домашнюю страницу как пример.
Хотя это и не CMS в строгом смысле, она также поддерживает markdown в области вики.
Ответ или решение
В настоящее время существует необходимость в системе управления контентом (CMS), которая бы сочетала функции вики и поддержки ветвления/форкинга, как в Git. Такой подход пригодится при работе с длинными текстами, позволяя нескольким авторам вносить изменения в разных направлениях, которые в дальнейшем могут быть объединены. Рассмотрим доступные решения и их возможности:
-
Gollum: Эта CMS управляется через Git и используется в GitHub для вики. Она может быть развернута на вашем сервере, предоставляя легкий интерфейс для редактирования контента на основе Markdown через браузер. Gollum позволяет ссылаться на конкретные версии документов с помощью хеша коммита. Это решение предоставляет основные возможности ветвления и может быть доработано для расширения функциональности.
-
Fossil: Эта система управления версиями (DVCS) напоминает Git, но включает в себя веб-интерфейс и интегрированную вики. Fossil позволяет визуализировать ветки и поддерживает Markdown для описания контента. Хотя Fossil не является CMS в строгом понимании, она может использоваться как основа для вашей задачи благодаря своей гибкости и простоте развертывания.
-
Statischesutenen и генераторы сайтов: Использование статических генераторов сайтов, таких как Jekyll, в сочетании с Git может быть полезно для создания версии сайта с поддержкой разных веток. GitHub Pages и GitLab Pages поддерживают различные генераторы и позволяют размещать статический контент, включая страницу истории коммитов и веток.
Каждое из этих решений имеет свои особенности, и выбор оптимального инструмента будет зависеть от конкретных требований вашего проекта. При решении стоит учитывать доступность хостинга, уровень технической поддержки и лёгкость в интеграции существующих функций с дополнительными скриптами или плагинами.
Эти подходы предоставляют гибкость и многообразие, чтобы все участники имели доступ к нужной версии и могли работать параллельно, сохраняя целостность и структурированность информации.