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 s'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