2023-04-21 11:46:08 +02:00
|
|
|
|
---
|
|
|
|
|
title: Un modèle pagedjs pour la BUNIGE
|
|
|
|
|
date: 2023-04-21T11:19:03+02:00
|
|
|
|
|
id: 20230421111912
|
|
|
|
|
tags: [modèle, pagedjs, PDF, BUNIGE]
|
|
|
|
|
---
|
2023-04-21 11:16:30 +02:00
|
|
|
|
|
2024-03-12 08:58:31 +01:00
|
|
|
|
# [Un modèle *pagedjs* pour la BUNIGE][1]
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
|
|
|
|
## Licence
|
|
|
|
|
|
2024-03-12 08:58:31 +01:00
|
|
|
|
Ce projet est sous [licence MIT][2].
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
|
|
|
|
## Description
|
|
|
|
|
|
|
|
|
|
Ce projet est un modèle et une mise en forme pour produire un PDF suivant la
|
2024-03-12 08:58:31 +01:00
|
|
|
|
charte de la [Bibliothèque de l'Université de Genève][3].
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
2024-03-12 08:58:31 +01:00
|
|
|
|
Il a pour objectif d'être ajouté rapidement à un projet utilisant [paged.js][4]
|
|
|
|
|
pour générer des PDF à partir d'un contenu en markdown.
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
Une solution est de télécharger les fichiers et répertoires suivants à la
|
|
|
|
|
racine de votre propre projet :
|
|
|
|
|
|
|
|
|
|
- `static/`.
|
|
|
|
|
- `style.css`.
|
|
|
|
|
- `template.html`.
|
|
|
|
|
- `interface.css`.
|
|
|
|
|
- `heg-iso-690.csl`.
|
|
|
|
|
|
|
|
|
|
Vous pouvez faire ces téléchargement à la main, ou télécharger le fichier
|
|
|
|
|
`.zip` de la [publication de version][7].
|
|
|
|
|
|
|
|
|
|
Une autre méthode est de cloner le projet et de rédiger votre document au sein
|
|
|
|
|
de celui-ci.
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
|
|
|
|
## Structure du répertoire
|
|
|
|
|
|
|
|
|
|
À la racine du répertoire se trouve les fichiers nécessaires au modèle :
|
|
|
|
|
|
|
|
|
|
- Le modèle lui-même : `template.html`.
|
|
|
|
|
- La feuille de style qui rend possible l'interface web pour la
|
|
|
|
|
prévisualisation du document au format HTML : `interface.css` (fichier
|
2024-03-12 08:58:31 +01:00
|
|
|
|
faisant partie du projet [paged.js][4] : [interface.css][6]).
|
2023-04-21 11:46:08 +02:00
|
|
|
|
- Le fichier de style bibliographique qui fait partie à part entière du modèle,
|
2024-03-12 08:58:31 +01:00
|
|
|
|
car il est la norme utilisée par la charte : `heg-iso-690.csl`. Il est
|
|
|
|
|
extrait du répertoire des styles `.csl` :
|
|
|
|
|
[haute-ecole-de-gestion-de-geneve-iso-690.csl][5].
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
|
|
|
|
Dans le dossier `example` se trouvent les sources pour pouvoir donner un
|
|
|
|
|
exemple :
|
|
|
|
|
|
|
|
|
|
- Le document markdown lui-même : `example.md`.
|
|
|
|
|
- Une liste de références bibliographiques au format BibLaTeX :
|
|
|
|
|
`references.bib`.
|
|
|
|
|
|
2024-03-12 08:58:31 +01:00
|
|
|
|
## Prérequis
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
|
|
|
|
- `pandoc`.
|
|
|
|
|
- `pagedjc-cli` (`npm install -g puppeteer pagedjs pagedjs-cli`).
|
|
|
|
|
|
|
|
|
|
## Génération du PDF d'exemple
|
|
|
|
|
|
|
|
|
|
Lancer les commandes depuis le répertoire `./example`.
|
|
|
|
|
|
|
|
|
|
Pour générer le fichier HTML a visualiser dans le navigateur :
|
|
|
|
|
|
|
|
|
|
```bash
|
2024-03-12 08:58:31 +01:00
|
|
|
|
pandoc --citeproc \
|
2023-04-21 11:46:08 +02:00
|
|
|
|
--template=../template.html --css=../style.css \
|
2024-03-12 08:58:31 +01:00
|
|
|
|
--toc --toc-depth=2 \
|
2023-04-21 11:46:08 +02:00
|
|
|
|
--to=html --output=example.html example.md
|
|
|
|
|
```
|
|
|
|
|
|
2024-03-12 08:58:31 +01:00
|
|
|
|
- `--citeproc` assure que les références bibliographiques soient traitées.
|
|
|
|
|
- `--template=` et `--css=` définissent le modèle et les règles de style à
|
|
|
|
|
utiliser.
|
|
|
|
|
- `--toc` et `toc-depth=2` génèrent la table des matière en se limitant au 2e
|
|
|
|
|
niveau.
|
|
|
|
|
|
|
|
|
|
Puis lancer un serveur web à la racine du projet (par exemple avec `python -m
|
|
|
|
|
http.server`), et ouvrir le fichier HTML généré avec Chromium (ou Chrome) pour
|
|
|
|
|
pouvoir l'imprimer au format PDF.
|
|
|
|
|
|
|
|
|
|
Pour générer directement le PDF, en utilisant `pagedjs` au moyen de `pandoc` :
|
2023-04-21 11:46:08 +02:00
|
|
|
|
|
|
|
|
|
```bash
|
2024-03-12 08:58:31 +01:00
|
|
|
|
pandoc --citeproc \
|
2023-04-21 11:46:08 +02:00
|
|
|
|
--to=pdf --pdf-engine=pagedjs-cli \
|
2024-03-12 08:58:31 +01:00
|
|
|
|
--css=../style.css \
|
|
|
|
|
--toc --toc-depth=2 \
|
2023-04-21 11:46:08 +02:00
|
|
|
|
--output=example.pdf example.md
|
|
|
|
|
```
|
|
|
|
|
|
2024-03-12 08:58:31 +01:00
|
|
|
|
- `--pdf-engine=` impose `pagedjs` pour la conversion en PDF.
|
|
|
|
|
- Ici le `template` ne doit pas être utilisé, mais la feuille de style doit
|
|
|
|
|
l'être.
|
|
|
|
|
|
|
|
|
|
Pour générer le PDF en utilisant directement `pagedjs` :
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
pandoc --citeproc \
|
|
|
|
|
--to=html --toc --toc-depth=2 \
|
|
|
|
|
--template=../template.html --css=../style.css \
|
|
|
|
|
--output example.html example.md \
|
|
|
|
|
&& pagedjs-cli example.html --style ../style.css --output example.pdf
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Attention !** Chacune de ces méthodes produit des différences. À vous de les
|
|
|
|
|
observer et de choisir laquelle vous convient le mieux.
|
|
|
|
|
|
|
|
|
|
## Rédaction du document
|
|
|
|
|
|
|
|
|
|
Pour la rédaction du document, il est utile de se référer à la documentation de
|
|
|
|
|
la syntaxe markdown, mais aussi à la documentation de `pandoc`. Quelques points
|
|
|
|
|
sont données en exemples dans le fichier `example/example.md`, comme par
|
|
|
|
|
exemple [La police][8] ou [Les titres][9].
|
|
|
|
|
|
|
|
|
|
<!-- références -->
|
|
|
|
|
|
|
|
|
|
[1]: ./
|
|
|
|
|
[2]: ./LICENSE
|
|
|
|
|
[3]: https://www.unige.ch/biblio/fr/ "Site officiel de la Bibliothèque de l'Université de Genève"
|
|
|
|
|
[4]: https://pagedjs.org/
|
|
|
|
|
[5]: https://raw.githubusercontent.com/citation-style-language/styles/blob/master/haute-ecole-de-gestion-de-geneve-iso-690.csl
|
|
|
|
|
[6]: https://gitlab.coko.foundation/pagedjs/interface-polyfill/-/raw/master/interface.css
|
|
|
|
|
[7]: https://git.milhit.ch/igor/bunige-pagedjs-template/releases/latest
|
|
|
|
|
[8]: ./example/example.md#police
|
|
|
|
|
[9]: ./example/example.md#titres
|