Un remplacement brillant pour http://freenode.net.
Vous aurez besoin de nos dépendances Node.js:
$ sudo npm install -g [email protected] svgo uglify-js
$ npm installEnsuite, en supposant une installation Python 3.4 (ou ultérieure):
$ python3 -m venv env
$ . env/bin/activate
$ pip install -r requirements.txt
$ cms7 Si tout s'est bien passé, vous devriez voir beaucoup de sortie de journal, et out/ y aurez le site Web.
Parce que nous générons le site statiquement, vous devrez redémarrer cms7 chaque fois que vous changez quelque chose. Si votre éditeur aime les commandes compiler qui peuvent s'exécuter à partir de n'importe quel répertoire, vous pouvez également utiliser cms7 -c /path/to/config.yml .
Veuillez vous conformer aux directives de contribution
Astuce utile pour ceux qui fusionnent PRS: vous pouvez parcourir l'arbre qu'une fusion entraînerait en naviguant vers https://github.com/freenode/web-7.0/tree/pull/XYZ/merge , où XYZ est le numéro de demande de pull.
Vous pouvez également vous rendre sur https://freenode.net/web-7.0/BRANCHNAME/ pour voir une construction d'une branche particulière. Cela fonctionne également pour les demandes de traction internes (ils sont nommés pull-X ).
Le site est généré à partir des sources de Markdown et des modèles Jinja2, trouvés dans content/ et templates/ respectivement. La construction Travis se déploie automatiquement sur les pages GitHub à chaque poussée.
Divers modules convertissent les sources en une structure de sortie utile. Finalement, CMS7 documentera ce processus, mais pour l'instant:
content/pages/ Contient des pages simples qui sont rendues dans out/ Utilisation page.html .
content/news/ Contient des articles de blog / actualités qui sont rendus dans out/news/ Using article.html .
content/kb/ Contient des catégories KB: chaque répertoire content/kb/X/ a les entrées de la catégorie X Ceux-ci sont rendus dans out/kb/answers/ avec kb.html .
Les index de ces entrées sont rendus dans out/kb/ avec kb_index.html , selon une liste de config/kb.yml .
CMS7 utilise l'extension des métadonnées Markdown et reconnaît certaines clés spéciales:
title définit le titre de la pageslug remplace l'URL cible: pages/hello with slug: banana deviendrait out/banana.htmltemplate remplace le modèle avec lequel rendre ce fichier de marqueSpécifique au blog:
authordateenclosure définit l'URL du podcast d'un articleTout ce qui se retrouve dans la sortie finale a un nom qui l'identifie au reste du site Web. Si un fichier est dérivé directement d'un fichier d'entrée, son nom est généralement dérivé du nom de l' entrée .
content/pages/hello.md sont nommés leur propre nom par rapport au répertoire de contenu, moins leur extension: pages/hello .static/img/cat.jpg sont nommées leur propre nom par rapport à la racine du référentiel: static/img/cat.jpg .kb/index/X , où x est le nom de l'index dans config/kb.yml .CMS7 peut générer une URL relative à tout ce qui avec un nom de n'importe quelle page. Cela doit toujours être préféré à l'écriture manuelle des liens. Pour générer un lien relatif à partir d'un document Markdown, lien vers un nom:
[ A page about frogs ] ( pages/frog ) Pour faire de même à partir d'un modèle, appelez url_for :
< a href = " {{ url_for('pages/frog') }} " >A page about frogs</ a >