Un reemplazo brillante para http://freenode.net.
Necesitará nuestras dependencias node.js:
$ sudo npm install -g [email protected] svgo uglify-js
$ npm installLuego, suponiendo una instalación de Python 3.4 (o posterior):
$ python3 -m venv env
$ . env/bin/activate
$ pip install -r requirements.txt
$ cms7 Si todo salió bien, debería ver mucha salida de registro y out/ tener el sitio web.
Debido a que generamos el sitio estáticamente, deberá volver a ejecutar cms7 cada vez que cambie algo. Si a su editor le gustan los comandos de compilación que pueden ejecutarse desde cualquier directorio, también puede usar cms7 -c /path/to/config.yml .
Cumplir con las pautas de contribución
Consejo útil para aquellos que fusionan PRS: puede navegar por el árbol que una fusión resultaría navegando a https://github.com/freenode/web-7.0/tree/pull/XYZ/merge , donde XYZ es el número de solicitud de extracción.
También puede ir a https://freenode.net/web-7.0/BRANCHNAME/ para ver una compilación de cualquier rama en particular. Esto también funciona para solicitudes de extracción internas (se denominan pull-X ).
El sitio se genera a partir de fuentes de Markdown y plantillas Jinja2, que se encuentran en content/ templates/ respectivamente. El Travis Build implementa las páginas de GitHub automáticamente en cada empuje.
Varios módulos convierten las fuentes en una estructura de salida útil. Finalmente, CMS7 documentará este proceso, pero por ahora:
content/pages/ Contiene páginas simples que se representan en out/ usando page.html .
content/news/ Contiene publicaciones de blog/noticias que se presentan en out/news/ usando article.html .
content/kb/ contiene categorías de KB: cada directorio content/kb/X/ tiene las entradas para la categoría X . Estos se representan en out/kb/answers/ con kb.html .
Los índices de estas entradas se representan en out/kb/ con kb_index.html , de acuerdo con una lista en config/kb.yml .
CMS7 utiliza la extensión de metadatos de Markdown y reconoce algunas claves especiales:
title establece el título de la páginaslug anula la URL de destino: pages/hello con slug: banana se convertiría en out/banana.htmltemplate anula la plantilla con la que representar este archivo de markdownEspecífico del blog:
authordateenclosure establece la URL del podcast de un artículoTodo lo que termina en la salida final tiene un nombre que lo identifica al resto del sitio web. Si un archivo se deriva directamente de un archivo de entrada, generalmente su nombre se deriva del nombre de la entrada .
content/pages/hello.md se nombran su propio nombre en relación con el directorio de contenido, menos su extensión: pages/hello .static/img/cat.jpg se denominan su propio nombre en relación con el repositorio Root: static/img/cat.jpg .kb/index/X , donde x es el nombre del índice en config/kb.yml .CMS7 puede generar una URL relativa a cualquier cosa con un nombre de cualquier página. Esto siempre debe preferirse sobre los enlaces de escritura manualmente. Para generar un enlace relativo desde un documento de Markdown, simplemente enlace a un nombre:
[ A page about frogs ] ( pages/frog ) Para hacer lo mismo desde una plantilla, llame url_for :
< a href = " {{ url_for('pages/frog') }} " >A page about frogs</ a >