catium

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

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

page (2840B)


      1 #! /usr/bin/env dash
      2 
      3 # Chemin absolu du fichier css
      4 # du point de vue du serveur web
      5 # (et non pas dans le système de fichier
      6 # du dépôt git)
      7 STYLE=/style.css
      8 
      9 # Création du dossier temporaire dans lequel
     10 # les fichiers contenant l'html des sections
     11 tmpdir=$(mktemp -d)
     12 trap "rm -rf $tmpdir" EXIT
     13 
     14 # Fonction pour enregistrer du contenu dans une section
     15 
     16 save() cat >> "$tmpdir/$1"
     17 
     18 # L'alias pour ouvrir une section
     19 # Ouvre un heredoc avec pour délimiteur
     20 # "endsection" et commande "save"
     21 
     22 alias section:='<<\endsection save'
     23 
     24 # Pareil mais le shell écrit dans la
     25 # section s'exécutera
     26 # alias section:='<<endsection save'
     27 
     28 ########################
     29 # PREMIÈRE CONFIGURATION
     30 ########################
     31 
     32 #################
     33 # SUPPRIMEZ DE LA
     34 <<. >&2 cat
     35 ----------------------------
     36 Première exécution de catium, merci d'aller modifier le code juste en dessous
     37 de ce paragraphe dans le fichier "page". Cela vous permettra de choisir un ou
     38 plusieurs transcripteurs pour votre site. Si une ou plusieurs des lignes déjà
     39 présentes vous conviennent vous pouvez la ou les décommenter en retirant le "#"
     40 devant. Vous pouvez ensuite supprimer ce bloc de code et relancer make :)
     41 ----------------------------
     42 .
     43 read -p "Compris ? [y/n] " compris
     44 [ "$compris" = "y" ] &&
     45 	>&2 echo "\nBonne édition :)\n" ||
     46 	>&2 echo "\nContactez katzele@framalistes.org pour des explications\n"
     47 exit 1;
     48 # A DE LA
     49 #########
     50 
     51 # Fonction appelée dans le layout
     52 # Permet de traduire en html et afficher
     53 # à l'endroit souhaité la section passée
     54 # en argument
     55 # Par exemple :
     56 # <main>
     57 #   $(show main)
     58 # </main>
     59 
     60 # Décommentez l'une des fonctions qui suit
     61 # ou créez la votre en fonction du
     62 # format que vous souhaitez
     63 #show() lowdown "$tmpdir/$1"
     64 #show() asciidoc "$tmpdir/$1"
     65 #show() cat "$tmpdir/$1"
     66 
     67 ###############################
     68 # FIN DE PREMIÈRE CONFIGURATION
     69 ###############################
     70 
     71 # alias pour le DSL
     72 # Se retrouvent à l'écriture des articles
     73 # dans l'entête type :
     74 # title: "titre de mon article"
     75 alias title:="title"
     76 # La fonction appelé par l'alias
     77 # Ici permet simplement d'instancier
     78 # une variable contenant la valeur du titre
     79 title() title="$*"
     80 
     81 alias author:="author"
     82 author() author="$*"
     83 
     84 alias description:="description"
     85 description() description="$*"
     86 
     87 
     88 # On charge la fonction déclarée dans layouts/html
     89 # C'est le layout
     90 . layouts/html
     91 
     92 # Je comprends pas bien ce que cette ligne fait
     93 # Demander à Marc
     94 # A priori elle teste si un argument a été donné
     95 # à page et sinon elle fait `set -`
     96 # Or dans le manuel de dash je ne trouve pas
     97 # ce que ça fait
     98 # En attendant on laisse
     99 [ "$1" ] || set -
    100 
    101 # On exécute le code dans la page sh
    102 # C'est maintenant que toutes les variables vont s'instancier
    103 # et l'html être généré
    104 . "$@"
    105 
    106 # On appelle la fonction layout de layouts/html
    107 # pour afficher la page
    108 layout