catium

Un générateur de site statique - retour accueil

git clone git://bebou.netlib.re/catium
Log | Files | Refs | README |

commit d8edc9009fb0807a39336c6ea9bed33b8bb2afd9
parent 45c2e2adc3f3f0b8335bd6c2976ee3b40d9d5c0d
Auterice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Tue, 27 Feb 2024 21:58:51 +0100

Mise en page de code et commentaires

Diffstat:
Mcommon | 45+++++++++++++++++++++++++++++++++++++--------
Mmakefile | 17+++++++----------
2 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/common b/common @@ -1,10 +1,17 @@ #! /usr/bin/env dash +# Chemin absolu du fichier css +# du point de vue du serveur web +# (et non pas dans le système de fichier +# du dépôt git) STYLE=/style.css -the=$(mktemp -d) ; trap "rm -rf $the" EXIT +# Création du dossier temporaire dans lequel +# les fichiers contenant l'html des sections +the=$(mktemp -d) +trap "rm -rf $the" EXIT -<<. >&2 xargs -0 echo;exit 1 +<<. >&2 cat; exit 1 ---------------------------- Première exécution de francium, merci d'aller modifier le code juste en dessous de ce paragraphe dans le fichier "common". Cela vous permettra de choisir un ou @@ -15,27 +22,49 @@ Vous pouvez ignorer l'erreur qui suit. ---------------------------- . +# Les fonctions appelant la traduction +# format -> html # save_md() cmark >> "$the/$1" # save_md() lowdown >> "$the/$1" # save_md() pandoc >> "$the/$1" # save_asciidoc() asciidoctor >> "$the/$1" # save_html() cat >> "$the/$1" +# alias pour le DSL +# Se retrouvent à l'écriture des articles +# dans l'entête type : +# title: "titre de mon article" alias title:="title" +# La fonction appelé par l'alias +# Ici permet simplement d'instancier +# une variable contenant la valeur du titre title() title="$*" alias author:="author" author() author="$*" -alias publication:=":" - alias description:="description" description() description="$*" -the() ( - cd $the; cat "$@" -) +# Fonction appelé dans le layout +# Permet d'afficher à l'endroit +# souhaité la section passée en argument +# Par exemple : +# <main> +# $(the main) +# </main> +the() { + cd $the + cat "$@" +} +# L'alias pour ouvrir une section +# Ouvre un heredoc avec pour délimiteur +# "endsection" et commande "save_md" +# Si l'on a choisi une autre fonction +# pour la traduction format -> html +# alors le modifier ici alias section:='<<\endsection save_md' -# Avec exec du shell +# Pareil mais le shell écrit dans la +# section s'exécutera # alias section:='<<endsection save_md' diff --git a/makefile b/makefile @@ -3,7 +3,7 @@ # On créé des variables contenant la liste des fichiers qui nous intéressent # Dans sources les md à transformer en html # Dans annexfiles le reste des fichiers -sources != find contents -type f -name '*.md' +sources != find contents -type f -name '*.md' annexfiles != find contents -type f -not -name '*.md' # On construit dynamiquement les règles à invoquer avec des substitutions de @@ -26,7 +26,6 @@ all: ${pages} ${annexrules} public/style.css public/favicon.png # Faire make clean pour l'appeler clean:; rm -r public/* - # Règle pour générer le css public/style.css: rc/style.css; cp $< $@ @@ -46,12 +45,10 @@ public/favicon.png: rc/favicon.png; cp $< $@ # chemin de la première dépendance de la règle # Règle pour la génération des pages html -public/%.html : contents/%.md page common - mkdir -p $(shell dirname $@) - $< > $@ +public/%.html : contents/%.md page common + mkdir -p $(shell dirname $@); $< > $@ # Pour les autres fichiers -public/% : contents/% - mkdir -p $(shell dirname $@) - cp $< $@ -page : lib/html ; touch $@ -common : lib/html ; touch $@ +public/% : contents/% + mkdir -p $(shell dirname $@); cp $< $@ +page : lib/html ; touch $@ +common : lib/html ; touch $@