catium

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

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

page (2846B)


      1 #! /usr/bin/env sh
      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 printf "Compris ? [o/n] " >&2
     44 read compris
     45 [ "$compris" = "o" ] &&
     46 	>&2 echo "\nBonne édition :)\n" ||
     47 	>&2 echo "\nContactez katzele@framalistes.org pour des explications\n"
     48 exit 1;
     49 # A DE LA
     50 #########
     51 
     52 # Fonction appelée dans le layout
     53 # Permet de traduire en html et afficher
     54 # à l'endroit souhaité la section passée
     55 # en argument
     56 # Par exemple :
     57 # <main>
     58 #   $(show main)
     59 # </main>
     60 
     61 # Décommentez l'une des fonctions qui suit
     62 # ou créez la votre en fonction du
     63 # format que vous souhaitez
     64 #show() lowdown "$tmpdir/$1"
     65 #show() asciidoc "$tmpdir/$1"
     66 #show() cat "$tmpdir/$1"
     67 
     68 ###############################
     69 # FIN DE PREMIÈRE CONFIGURATION
     70 ###############################
     71 
     72 # alias pour le DSL
     73 # Se retrouvent à l'écriture des articles
     74 # dans l'entête type :
     75 # title: "titre de mon article"
     76 alias title:="title"
     77 # La fonction appelé par l'alias
     78 # Ici permet simplement d'instancier
     79 # une variable contenant la valeur du titre
     80 title() title="$*"
     81 
     82 alias author:="author"
     83 author() author="$*"
     84 
     85 alias description:="description"
     86 description() description="$*"
     87 
     88 
     89 # On charge la fonction déclarée dans layouts/html
     90 # C'est le layout
     91 . layouts/html
     92 
     93 # Je comprends pas bien ce que cette ligne fait
     94 # Demander à Marc
     95 # A priori elle teste si un argument a été donné
     96 # à page et sinon elle fait `set -`
     97 # Or dans le manuel de dash je ne trouve pas
     98 # ce que ça fait
     99 # En attendant on laisse
    100 [ "$1" ] || set -
    101 
    102 # On exécute le code dans la page sh
    103 # C'est maintenant que toutes les variables vont s'instancier
    104 # et l'html être généré
    105 . "$@"
    106 
    107 # On appelle la fonction layout de layouts/html
    108 # pour afficher la page
    109 layout