Блестящая замена для http://freenode.net.
Вам понадобится наши зависимости node.js:
$ sudo npm install -g [email protected] svgo uglify-js
$ npm installЗатем предполагая установку Python 3.4 (или более поздней):
$ python3 -m venv env
$ . env/bin/activate
$ pip install -r requirements.txt
$ cms7 Если все прошло хорошо, вы должны увидеть много выводов журнала, и в нем есть веб out/ .
Поскольку мы генерируем сайт статически, вам нужно будет повторно запустить cms7 каждый раз, когда вы что-то меняете. Если ваш редактор любит команды компиляции, которые могут работать из любого каталога, вы также можете использовать cms7 -c /path/to/config.yml .
Пожалуйста, соблюдайте руководящие принципы вклада
https://github.com/freenode/web-7.0/tree/pull/XYZ/merge совет для тех, XYZ объединяет PRS: вы можете просмотреть дерево.
Вы также можете перейти к https://freenode.net/web-7.0/BRANCHNAME/ , чтобы увидеть сборку любой конкретной филиала. Это также работает для внутренних запросов на притяжение (они называются pull-X ).
Сайт генерируется из источников маркировки и шаблонов Jinja2, найденных в content/ и templates/ соответственно. Сборка Travis развертывается на страницах GitHub автоматически на каждом толчке.
Различные модули преобразуют источники в полезную выходную структуру. В конце концов CMS7 документирует этот процесс, но сейчас:
content/pages/ содержит простые страницы, которые отображаются в out/ с использованием page.html .
content/news/ Содержит сообщения в блоге/новостях, которые отображаются в out/news/ ИСПОЛЬЗОВАНИЕ article.html .
content/kb/ содержит категории KB: Каждый content/kb/X/ имеет записи для категории X Они отображаются в out/kb/answers/ с kb.html .
Индексы этих записей отображаются в out/kb/ с kb_index.html , согласно списку в config/kb.yml .
CMS7 использует расширение метаданных Marckdown и распознает некоторые специальные ключи:
title устанавливает заголовок страницыslug переопределяет целевой URL: pages/hello с slug: banana out/banana.htmltemplate переопределяет шаблон, с помощьюСпецифичный от блога:
authordateenclosure устанавливает URL -адрес подкаста статьиВсе, что заканчивается на конечном выходе, имеет имя, которое идентифицирует его до остальной части веб -сайта. Если файл получен непосредственно из входного файла, обычно его имя получено из имени ввода .
content/pages/hello.md называются своим собственным именем по сравнению с каталогом контента, за исключением их расширения: pages/hello .static/img/cat.jpg называются своим собственным именем по сравнению с корнем репозитория: static/img/cat.jpg .kb/index/X , где x - это имя индекса в config/kb.yml .CMS7 может генерировать относительный URL для всего с именем с любой страницы. Это всегда должно быть предпочтительным по сравнению с ручным написанием ссылок. Чтобы сгенерировать относительную ссылку из документа Markdown, просто ссылка на имя:
[ A page about frogs ] ( pages/frog ) Чтобы сделать то же самое из шаблона, вызовите url_for :
< a href = " {{ url_for('pages/frog') }} " >A page about frogs</ a >