catium

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

git clone git://bebou.netlib.re/catium

Log | Files | Refs | README |

page (2901B)


      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="/tmp/catium-$$"
     12 mkdir -p "$tmpdir"
     13 trap "rm -rf $tmpdir" EXIT
     14 
     15 # Fonction pour enregistrer du contenu dans une section
     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 alias section:='<<\endsection save'
     22 
     23 ########################
     24 # PREMIÈRE CONFIGURATION
     25 ########################
     26 
     27 #################
     28 # SUPPRIMEZ DE LA
     29 <<. >&2 cat
     30 ----------------------------
     31 Première exécution de catium, merci d'aller modifier le code juste en dessous
     32 de ce paragraphe dans le fichier "page". Cela vous permettra de choisir un ou
     33 plusieurs transcripteurs pour votre site. Si une ou plusieurs des lignes déjà
     34 présentes vous conviennent vous pouvez la ou les décommenter en retirant le "#"
     35 devant. Vous pouvez ensuite supprimer ce bloc de code et relancer make :)
     36 ----------------------------
     37 .
     38 printf "Compris ? [o/n] " >&2
     39 read compris
     40 [ "$compris" = "o" ] &&
     41 	>&2 echo "\nBonne édition :)\n" ||
     42 	>&2 echo "\nContactez katzele@framalistes.org pour des explications\n"
     43 exit 1;
     44 # A DE LA
     45 #########
     46 
     47 ##
     48 # 1. Choix du traducteur
     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 
     64 #show() { lowdown "$tmpdir/$1"; }
     65 #show() { asciidoc "$tmpdir/$1"; }
     66 #show() { cat "$tmpdir/$1"; }
     67 
     68 ##
     69 # 2. Eventuel ajout
     70 ##
     71 
     72 # Décommentez cet alias si vous voulez disposer d'un type de section dans
     73 # lequel le shell d'exécute (attention, peut être dangereux)
     74 
     75 # alias sectionexe:='<<endsection save'
     76 
     77 ##
     78 # 3. Config si vous utilisez bash
     79 ##
     80 
     81 # Si votre sh est bash alors décommenter la ligne suivante
     82 # Sous linux vous pouvez vérifier en faisant
     83 # readlink $(whereis sh)
     84 
     85 # shopt -s expand_aliases
     86 
     87 ###############################
     88 # FIN DE PREMIÈRE CONFIGURATION
     89 ###############################
     90 
     91 # alias pour le DSL
     92 # Se retrouvent à l'écriture des articles
     93 # dans l'entête type :
     94 # title: "titre de mon article"
     95 alias title:="title"
     96 # La fonction appelé par l'alias
     97 # Ici permet simplement d'instancier
     98 # une variable contenant la valeur du titre
     99 title() { title="$*"; }
    100 
    101 alias author:="author"
    102 author() { author="$*"; }
    103 
    104 alias description:="description"
    105 description() { description="$*"; }
    106 
    107 # On exécute le code dans la page sh
    108 # C'est maintenant que toutes les variables vont s'instancier
    109 # et l'html être généré
    110 . "$1"
    111 
    112 # On appelle la fonction layout de layouts/html
    113 # pour afficher la page
    114 . layouts/html