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