index.md 3.7 KB
Newer Older
1
2
3
4
5
6
7
8
9
% 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/).
10
11
- Conversion automatique de graphes créés avec [draw.io](https://app.diagrams.net/) (optionel).
- Génération d'une version PDF avec [wkhtmltopdf](https://wkhtmltopdf.org/) (optionel).
12
13
14
15
16
17
18
19
20
21
22
23
- 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 :

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

Récupération des sources :

30
```bash
31
32
33
34
35
36
37
sudo npm install --global gulp-cli
git clone https://gitlab.irstea.fr/pole-is/tools/prezbuild.git
npm install --no-dev
```

## Avec Docker

38
39
40
41
42
43
44
L'image gitlab-registry.irstea.fr/pole-is/tools/prezbuilder:master contient une version présinstalée
de prezbuilder **mais sans drawio**.

```bash
docker login gitlab-registry.irstea.fr
docker pull gitlab-registry.irstea.fr/pole-is/tools/prezbuilder:master
```
45
46
47
48
49
50
51
52
53
54

## Avec Gitlab Pages

_A venir._

# Utilisation

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

55
56
57
58
Chaque présentation est écrite sous la forme d'un fichier au format Markdown
nommés `index.md`. Il est possible d'ajouter des images aux formats PNG, JPG, GIF ou SVG à référencer
depuis le fichier markdown.

59
60
61
62
63
64
## 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.
65
- _Optionel:_ les fichiers `.drawio` sont convertis en fichiers `.svg`.
66
- S'il n'y a pas de fichier `index.md` à la racine, un index des présentations est généré.
67
- _Optionel:_ un fichier `.pdf` est généré par fichier `index.md`, avec le nom du répetoire parent (en sortie).
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

## 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>

111
112
113
114
115
116
117
118
119
120
121
# Exécution

prezbuiler peut être exécuté selon deux modes :

- `build` : une seule exécution.
  - pour produire les fichiers de la présentation.
- `dev` : mode serveur avec live-reload,
  - présentation accessible sur http://localhost:3000,
  - mise à jour automatique sur modification des sources.

## A partir des sources
122

123
#### Build
124

125
bash
126

127
```bash
128
129
130
gulp build
```

131
#### Dev
132

133
```bash
134
135
136
gulp dev
```

137
138
139
140
141
## Avec Docker

#### Build

Il faut mapper les répertoires /src et /public sur vos sources et le répertoire de sortie :
142

143
144
```bash
docker run --rm -t --init -u $(id -u):$(id -g) -v $PWD/src:/src:ro -v $PWD/public:/public gitlab-registry.irstea.fr/pole-is/tools/prezbuilder:master build
145
```
146
147
148
149
150
151
152

#### Dev

Il faut également mapper les ports 3000 et 35729 :

```bash
docker run --rm -t --init -u $(id -u):$(id -g) -v $PWD/src:/src:ro -p 3000:3000 -p 35729:35729 gitlab-registry.irstea.fr/pole-is/tools/prezbuilder:master
153
```