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 >