catium

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

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

commit 7a57925e008fe4060fb0b142252a65f2ef7e1f7e
parent 1288d35c17d0f51d625c4fe5844814cec64a9a13
Auterice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Sun,  3 Mar 2024 10:42:20 +0100

On retire common, on met tout dans page

Simplifie la compréhension de ce qu'il se passe

Initialement pensé pour suggérer qu'il était possible
d'avoir plusieurs interpréteur et de factoriser une
partie du code dans un fichier commun, je pense qu'il
vaut mieux rester simpliste et documenter cette possibilité
par ailleurs en proposant un page avec `page` et `article`
comme exemple.

On commente un peu mieux au passage.

Diffstat:
Dcommon | 94-------------------------------------------------------------------------------
Mmakefile | 6+++---
Mpage | 107++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 109 insertions(+), 98 deletions(-)

diff --git a/common b/common @@ -1,94 +0,0 @@ -#! /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 - -# Création du dossier temporaire dans lequel -# les fichiers contenant l'html des sections -the=$(mktemp -d) -trap "rm -rf $the" EXIT - -######################## -# PREMIÈRE CONFIGURATION -######################## - -################# -# SUPPRIMEZ DE LA -<<. >&2 cat ----------------------------- -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 -plusieurs transcripteurs pour votre site. Si une ou plusieurs des lignes déjà -présentes vous conviennent vous pouvez la ou les décommenter en retirant le "#" -devant. Vous pouvez ensuite supprimer ce bloc de code et relancer make :) ----------------------------- -. -read -p "Compris ? [y/n] " compris -[ "$compris" = "y" ] && - >&2 echo "\nBonne édition :)\n" || - >&2 echo "\nContactez katzele@framalistes.org pour des explications\n" -exit 1; -# A DE LA -######### - -# Choisissez une fonction save_* -# ou construisez la votre avec -# l'outil de votre choix - -# 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" - - - -# L'alias pour ouvrir une section -# Ouvre un heredoc avec pour délimiteur -# "endsection" et commande "save_*" -# Décommentez en un ou plusieurs selon -# le choix que vous avez fait au dessus - -# alias sectionasciidoc:='<<\endsection save_asciidoc' -# alias section:='<<\endsection save_md' -# alias sectionhtml:='<<\endsection save_html' - -# Pareil mais le shell écrit dans la -# section s'exécutera -# alias section:='<<endsection save_md' - -############################### -# FIN DE PREMIÈRE CONFIGURATION -############################### - -# 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 description:="description" -description() description="$*" - -# 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 "$@" -} - diff --git a/makefile b/makefile @@ -47,10 +47,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/%.sh page common +public/%.html : contents/%.sh page lib/html mkdir -p $(shell dirname $@); $< > $@ + # Pour les autres fichiers public/% : contents/% mkdir -p $(shell dirname $@); cp $< $@ -page : lib/html ; touch $@ -common : lib/html ; touch $@ + diff --git a/page b/page @@ -1,8 +1,113 @@ #! /usr/bin/env dash -. ./common +# 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 +# Création du dossier temporaire dans lequel +# les fichiers contenant l'html des sections +the=$(mktemp -d) +trap "rm -rf $the" EXIT + +######################## +# PREMIÈRE CONFIGURATION +######################## + +################# +# SUPPRIMEZ DE LA +<<. >&2 cat +---------------------------- +Première exécution de francium, merci d'aller modifier le code juste en dessous +de ce paragraphe dans le fichier "page". Cela vous permettra de choisir un ou +plusieurs transcripteurs pour votre site. Si une ou plusieurs des lignes déjà +présentes vous conviennent vous pouvez la ou les décommenter en retirant le "#" +devant. Vous pouvez ensuite supprimer ce bloc de code et relancer make :) +---------------------------- +. +read -p "Compris ? [y/n] " compris +[ "$compris" = "y" ] && + >&2 echo "\nBonne édition :)\n" || + >&2 echo "\nContactez katzele@framalistes.org pour des explications\n" +exit 1; +# A DE LA +######### + +# Choisissez une fonction save_* +# ou construisez la votre avec +# l'outil de votre choix + +# 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" + +# L'alias pour ouvrir une section +# Ouvre un heredoc avec pour délimiteur +# "endsection" et commande "save_*" +# Décommentez en un ou plusieurs selon +# le choix que vous avez fait au dessus + +# alias sectionasciidoc:='<<\endsection save_asciidoc' +# alias sectionmd:='<<\endsection save_md' +# alias sectionhtml:='<<\endsection save_html' + +# Pareil mais le shell écrit dans la +# section s'exécutera +# alias sectionmd:='<<endsection save_md' + +############################### +# FIN DE PREMIÈRE CONFIGURATION +############################### + +# 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 description:="description" +description() description="$*" + +# 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 "$@" +} + +# On charge la fonction déclarée dans lib/html +# C'est le layout . lib/html + +# Je comprends pas bien ce que cette ligne fait +# Demander à Marc +# A priori elle teste si un argument a été donné +# à page et sinon elle fait `set -` +# Or dans le manuel de dash je ne trouve pas +# ce que ça fait +# En attendant on laisse [ "$1" ] || set - + +# On exécute le code dans la page sh +# C'est maintenant que toutes les variables vont s'instancier +# et l'html être généré . "$@" + +# On appelle la fonction layout de lib/html +# pour afficher la page layout