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 。
请遵守贡献指南
对于那些合并PRS的有用技巧:您可以通过导航到https://github.com/freenode/web-7.0/tree/pull/XYZ/merge来浏览这棵树,将导致XYZ导致。
您也可以访问https://freenode.net/web-7.0/BRANCHNAME/查看任何特定分支的构建。这也适用于内部拉的请求(它们命名为pull-X )。
该站点分别是从分别在content/和模板/ templates/中找到的Markdown源和Jinja2模板生成的。 Travis构建在每次推动时都会自动部署到GitHub页面。
各种模块将源转换为有用的输出结构。最终CMS7将记录此过程,但目前为止:
content/pages/包含在out/使用page.html中呈现的普通页面。
content/news/包含在out/news/使用article.html中呈现的博客/新闻。
content/kb/包含KB类别:每个目录content/kb/X/都有类别X的条目。这些是用kb.html在out/kb/answers/中渲染的。
根据config/kb.yml中的列表,这些条目的索引与kb_index.html在out/kb/中呈现。
CMS7使用Markdown Metadata扩展名,并识别一些特殊键:
title设置页面标题slug覆盖目标网址: pages/hello with 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 >