Commit a8bea8bd authored by alexandre's avatar alexandre

Création d'un fichier makefile pour générer le HTML à partir du Markdown

parent 59855380
assets/components
*~
venv
......@@ -20,3 +20,21 @@ Ensuite, lancez le mini-serveur Python, requis pour pouvoir utiliser Less CSS:
Puis rendez-vous dans votre navigateur et visitez l'adresse
`http://localhost:8000`.
Comment générer le fichier HTML contenant les articles?
=======================================================
Il vous faut tout d'abord installer les dépendances nécessaires, le plus simple
est d'utiliser le gestionnaire de paquets de python:
virtualenv --no-site-packages venv
source venv/bin/activate
pip install -r requirements.txt
Ensuite il suffit de taper:
make
Cette commande compile les fichiers markdown du dossier
`sample-content/markdown` vers le dossier `sample-content/html`.
#! /usr/bin/env python2
# Copyright (C) 2015 Alexandre Leray
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Converts Markdown files to HTML
#
# Usage:
#
# ./generate.py infile.md outfile.html
import jinja2
import os
def doit():
"""docstring for main"""
templateLoader = jinja2.FileSystemLoader( searchpath="." )
templateEnv = jinja2.Environment( loader=templateLoader )
template = templateEnv.get_template( "toc.html")
return template.render({})
if __name__ == '__main__':
import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
args = parser.parse_args()
html = doit()
args.outfile.write(html.encode("utf-8"))
#! /usr/bin/env python2
# Copyright (C) 2015 Alexandre Leray
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Converts Markdown files to HTML
#
# Usage:
#
# ./generate.py infile.md outfile.html
import markdown
def md2html(src):
"""docstring for main"""
extensions = [
'extra',
'superscript',
'semanticdata',
'markdown_include.include(base_path=html2)'
]
md = markdown.Markdown(output_format="html5", extensions=extensions)
return md.convert(src)
if __name__ == '__main__':
import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin)
parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
args = parser.parse_args()
content = args.infile.read()
try:
unicode_content = content.decode("utf-8")
except UnicodeDecodeError:
unicode_content = content.decode("iso8559-1")
html = md2html(unicode_content)
args.outfile.write('<!-- Begining of %s" -->\n' % args.infile.name)
args.outfile.write('<article id="%s">\n' % args.infile.name[16:-3])
args.outfile.write(html.encode("utf-8"))
args.outfile.write('\n</article>')
args.outfile.write('\n<!-- End of %s" -->\n\n' % args.infile.name)
#! /usr/bin/env python
# Copyright (C) 2015 Alexandre Leray
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Fixes French typography in HTML files
#
# Usage:
#
# ./microtypo.py infile.md outfile.html
# echo "<p>...</p>" | ./microtypo.py - outfile.html
# echo "<p>...</p>" | ./microtypo.py | someotherprogramm
# ./microtypo.py infile.md outfile.html
import codecs
import html5lib
from html5lib_typogrify.french.filters import ellipsis, spaces, dashes
def fix_french(html):
dom = html5lib.parseFragment(html, treebuilder="dom")
walker = html5lib.getTreeWalker("dom")
stream = walker(dom)
stream = dashes.Filter(stream)
stream = ellipsis.Filter(stream)
stream = spaces.Filter(stream)
serializer = html5lib.serializer.HTMLSerializer(quote_attr_values=True,
alphabetical_attributes=True,
omit_optional_tags=False)
output = serializer.serialize(stream)
return serializer.render(stream)
if __name__ == '__main__':
import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin)
parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
args = parser.parse_args()
content = args.infile.read()
try:
unicode_content = content.decode("utf-8")
except UnicodeDecodeError:
unicode_content = content.decode("iso8559-1")
html = fix_french(unicode_content)
args.outfile.write(html.encode("utf-8"))
SHELL := /usr/bin/env bash
MD_FILES = $(shell find sample-content/markdown -type f -name '*.md')
HTML_FILES = $(patsubst sample-content/markdown/%.md, sample-content/html/%.html, $(MD_FILES))
all: $(HTML_FILES)
sample-content/html/%.html : sample-content/markdown/%.md
mkdir -p $(@D)
python bin/md2html.py $< | \
python bin/microtypo.py - $@
.PHONY: clean
clean:
rm -fr sample-content/html
Markdown==2.6.1
mdx-outline==1.2.1
html5lib>=0.999
git+git://github.com/aleray/html5lib_typogrify.git
MarkdownSuperscript==1.0.1
mdx-semanticdata==1.1
git+git://github.com/aleray/markdown-include.git@python2
Jinja2==2.7.3
<h1>Déchéance de&nbsp;nationalité</h1>
<p>Est-il nécessaire de rappeler ce 7 janvier et ce Charlie que nous fûmes (ou pas) ? Dans la semaine qui suit, la cité de la laine vire cité de la haine. La police fédérale abat à Verviers deux islamistes revenant de Syrie, munis “d’armes de guerre et d’armes de poing”. D’armes, il en sera question dans la rue, avec les treillis de l’armée qui protègent les lieux publics stratégiques jusqu’à nouvel ordre (militaire ?). </p>
<p>C’est dans cette atmosphère belliqueuse que le gouvernement Michel annonce ses 12 mesures pour lutter contre le radicalisme. Parmi celles-ci, le renforcement de la déchéance de la nationalité. </p>
<h2>La décision</h2>
<p>Dès octobre 2014, l’accord de gouvernement Michel parlait «d’adapter les conditions permettant la déchéance de la nationalité. » Le sujet est donc sur la table. La cible désignée : les jeunes d’origine incertaine partis en Syrie. Et qui sont invités à y rester…
Si c’est le gouvernement Di Rupo qui a étendu fin décembre 2012 la déchéance de nationalité aux faits de terrorisme, celui de Michel durcir le ton, bomber le torse, confisquer la Kalachnikov. </p>
<p>La mesure ? Aujourd’hui, peuvent être déchues les personnes qui ont obtenu la nationalité après leur majorité, qui sont belges (avec double nationalité) depuis moins de dix ans et qui sont condamnées à une peine de plus de cinq ans (sans sursis) pour des infractions spécifiques (actes terroristes mais aussi génocide, crime de guerre, etc.). La loi à venir ferait en sorte que la limite de dix ans saute. Ce principe a été approuvé en commission de la Justice de la Chambre le 1<sup>er</sup> juillet. Et le Gouvernement demande l'urgence pour le vote de cette loi. Ca sent à plein nez les travaux à expédier avant les vacances…</p>
<h2>Efficace ?</h2>
<p>Les deux personnes abattues à Verviers étaient belges de naissance. Le chef présumé de la cellule démantelée, Abdelhamid Abaaoud, est également belge. </p>
<p>Géraldine Henneghien, dont le fils est parti en Syrie, a créé le collectif Les Parents Concernés, rassemblant les proches de jeunes partis combattre au côté de Daech. Elle est formelle, ils sont tous belges de naissance : « <em>Sur les 25 cas recensés par cette association, aucun ne sera concerné par cette modification de loi.</em> » </p>
<h2>L’avis de l’expert</h2>
<p>Patrick Wautelet (ULg), enseigne le droit de la nationalité : « <em>Cette mesure poursuit deux objectifs. L’un psychologique qui consiste à rassurer la population, envoyant le signal qu’on s’occupe de la sécurité. Le second, sous-jacent, serait d’empêcher le retour des personnes parties combattre en Syrie ou Irak, via une condamnation par défaut. (…) On est clairement dans de la politique réactive à des flammèches d’actualité. Depuis 2012, la Belgique s’est dotée d’un cadre pour lutter contre et prévenir le terrorisme. Imagine-t-on vraiment que cette nouvelle donne sera le remède ultime pour éviter que des jeunes aillent en Syrie ou en Irak ? Dans ce cas précis, on s’inscrit dans la réaction symbolique.</em> »</p>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment