index.md 2.94 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
% prezbuilder
% Guillaume Perréal
% 2020-05

# Présentation

- Génère des présentations [reveal.js](https://revealjs.com/) à partir de fichiers en markdown.
- Utilise le [thème INRAE](https://gitlab.irstea.fr/pole-is/tools/reveal.js).
- Génération de la présentation avec [pandoc](https://pandoc.org/).
- Conversion automatique de graphes créés avec [draw.io](https://app.diagrams.net/).
- Génération d'une version PDF avec [wkhtmltopdf](https://wkhtmltopdf.org/).
- Mode "dev" avec rechargement automatique de page.

La présentation que vous regardez a été générée avec prezbuilder !

# Installation

## A partir des sources

Prérequis :

- [drawio-desktop](https://github.com/jgraph/drawio-desktop/releases/latest)
- [node 10+](https://nodejs.org/fr/download/)
- [pandoc](https://pandoc.org/installing.html)
- [wkhtmltopdf](https://wkhtmltopdf.org/downloads.html)
- gulp-cli (`npm install --global gulp-cli`)

Récupération des sources :

```shell
sudo npm install --global gulp-cli
git clone https://gitlab.irstea.fr/pole-is/tools/prezbuild.git
npm install --no-dev
```

## Avec Docker

_A venir._

## Avec Gitlab Pages

_A venir._

# Utilisation

prezbuild crée une (ou plusieurs) présentation(s) dans `public/` à partir du
contenu du répertoire `src/`.

## Organisation des fichiers

Le répertoire `src/` est parcouru récursivement, et les fichiers sont traités comme suit :

- Les fichiers `index.md` sont convertis en présentation `index.html`.
- Les fichiers `.png`, `.jpg`, `.gif` et `.svg` sont copiés tels quels.
- Les fichiers `.drawio` sont convertis en fichiers `.svg`.
- S'il n'y a pas de fichier `index.md` à la racine, un index des présentations est généré.
- Un fichier `.pdf` est généré par fichier `index.md`, avec le nom du répetoire parent (en sortie).

## Exemple

<div style="display:flex;width:100%;align-items:center">

<div style="flex-grow: 1">
Entrée:

```
src\
    pres1\
        index.md
        graph.drawio
    pres2\
        index.md
        photo.jpg
```

</div>

<div style="margin: 1ex; font-size: 24pt"></div>

<div style="flex-grow: 1">
Sortie :

```
public\
    index.html
    public.pdf
    pres1\
        index.html
        pres1.pdf
        graph.svg
    pres2\
        index.html
        pres2.pdf
        photo.jpg
```

</div>

</div>

## Exécution

### A partir des sources:

Exécution unique :

```shell
gulp build
```

Mode développement :

```shell
gulp dev
```

En mode développement, une première génération est effectuée, puis
un serveur web local est lancé -- l'adresse s'affichera dans le terminal.
Les fichiers sont régénérés automatiquement lorsque les ficheirs sources sont
modifiés, et si tout va bien, la présentation est rechargée automatiquement.

```
[...]
[17:54:38] Starting 'serve'...
[17:54:38] Starting 'watch_prez'...
[17:54:38] Starting 'watch_assets'...
[17:54:38] Starting 'watch_graphs'...
[17:54:38] Starting 'watch_pdf'...
[17:54:38] Webserver started at http://localhost:3000
```