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/れ、Webサイトが含まれている必要があります。
サイトを静的に生成するため、何かを変更するたびに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 SourcesとJinja2テンプレートから生成されます。 Travis Buildは、すべてのプッシュ時にGitHubページに自動的に展開します。
さまざまなモジュールがソースを有用な出力構造に変換します。最終的にCMS7はこのプロセスを文書化しますが、今のところ:
content/pages/ page.htmlを使用してout/されたプレーンページが含まれています。
content/news/ out/news/を使用してarticle.htmlを使用してレンダリングされているブログ/ニュース投稿が含まれています。
content/kb/ KBカテゴリが含まれています。各ディレクトリcontent/kb/X/カテゴリXのエントリがあります。これらは、 out/kb/answers/ with kb.htmlでレンダリングされます。
これらのエントリのインデックスは、 config/kb.ymlのリストに従って、 kb_index.htmlでout/kb/でレンダリングされます。
CMS7はMarkdownメタデータ拡張機能を使用し、いくつかの特別なキーを認識します。
titleページタイトルを設定しますslugターゲットURLをオーバーライドします: pages/hello slug: banana out/banana.htmltemplateこのマークダウンファイルをレンダリングするテンプレートをオーバーライドしますブログ固有:
authordateenclosure 、記事のポッドキャストURLを設定します最終出力に終わるものはすべて、Webサイトの残りの部分に識別する名前があります。ファイルが入力ファイルから直接導出されている場合、通常、その名前は入力の名前から導出されます。
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 >