Ein glänzender Ersatz für http://freenode.net.
Sie benötigen unsere Abhängigkeiten von Node.js:
$ sudo npm install -g [email protected] svgo uglify-js
$ npm installAngenommen unter der Annahme einer Python 3.4 (oder später) Installation:
$ python3 -m venv env
$ . env/bin/activate
$ pip install -r requirements.txt
$ cms7 Wenn alles gut lief, sollten Sie eine Menge Protokollausgabe sehen und die Website out/ .
Da wir die Website statisch generieren, müssen Sie cms7 jedes Mal erneut ausführen, wenn Sie etwas ändern. Wenn Ihr Editor gefällt, kompile Befehle, die aus einem beliebigen Verzeichnis ausgeführt werden können, können Sie auch cms7 -c /path/to/config.yml verwenden.
Bitte halten Sie den Beitragsrichtlinien ein
Hilfreicher Tipp für diejenigen, die PRS verschmelzen: Sie können den Baum durchsuchen. Ein Zusammenführen würde dazu führen, dass sie zu https://github.com/freenode/web-7.0/tree/pull/XYZ/merge navigieren würde, wobei XYZ die Pull-Anforderungsnummer ist.
Sie können auch zu https://freenode.net/web-7.0/BRANCHNAME/ gehen, um einen Aufbau einer bestimmten Niederlassung zu sehen. Dies funktioniert auch für interne Zuganfragen (sie werden pull-X genannt).
Die Website wird aus Markdown -Quellen und Jinja2 -Vorlagen erzeugt, die in content/ bzw. templates/ vorhanden sind. Der Travis Build bietet bei jedem Druck automatisch zu Github -Seiten.
Verschiedene Module wandeln die Quellen in eine nützliche Ausgangsstruktur um. Schließlich wird CMS7 diesen Prozess dokumentieren, aber vorerst:
content/pages/ Enthält einfache Seiten, die ausgestattet werden out/ mit page.html .
content/news/ Enthält Blog/News -Posts, die in out/news/ Verwenden von article.html gerendert werden.
content/kb/ enthält KB -Kategorien: Jeder content/kb/X/ hat die Einträge für Kategorie X Diese werden in out/kb/answers/ mit kb.html gerendert.
Die Indizes dieser Einträge werden gemäß einer Liste in config/kb.yml in out/kb/ mit kb_index.html gerendert.
CMS7 verwendet die Markdown -Metadatenerweiterung und erkennt einige spezielle Schlüssel:
title legt den Seitentitel festslug überschreibt die Ziel -URL: pages/hello mit slug: banana würde out/banana.htmltemplate überschreibt die Vorlage, mit der diese Markdown -Datei rendern sollBlog-spezifisch:
authordateenclosure legt die Podcast -URL eines Artikels festAlles, was in der endgültigen Ausgabe landet, hat einen Namen, der ihn für den Rest der Website identifiziert. Wenn eine Datei direkt von einer Eingabedatei abgeleitet wird, wird im Allgemeinen ihr Name aus dem Namen der Eingabe abgeleitet.
content/pages/hello.md werden in Bezug auf das Inhaltsverzeichnis, abzüglich ihrer Erweiterung, pages/hello ihr eigener Name bezeichnet.static/img/cat.jpg werden als ihr eigener Name in Bezug auf die Repository -Wurzel bezeichnet: static/img/cat.jpg .kb/index/X bezeichnet, wobei x der Name des Index in config/kb.yml ist.CMS7 kann eine relative URL zu irgendetwas mit einem Namen von jeder Seite generieren. Dies sollte immer vorgezogen werden, Links manuell zu schreiben. Um einen relativen Link aus einem Markdown -Dokument zu generieren, verlinken Sie einfach zu einem Namen:
[ A page about frogs ] ( pages/frog ) Um dasselbe aus einer Vorlage zu tun, rufen Sie url_for an:
< a href = " {{ url_for('pages/frog') }} " >A page about frogs</ a >