Certains articles ou tutoriels pourraient être proposés en présentation.

Ne voulant pas trop changer d’environnement de travail, garder le Markdown comme structure d’écriture et facilement pouvoir l’insérer sur le site, j’ai recherché un outil me convenant et remplissant toutes mes requêtes. Et des bonus qui pourraient être utile.

J’ai en lice:

Que choisir comme type de présentation

J’ai quelques demandes concernant les possibilités de l’application de présentation/slide.

  • Utilise au maximum le markdown (D’abord le contenu, puis la mise en page)
  • Construction sur Jenkins léger (ne consomme pas trop de mémoire vive)
  • Légère (doit pouvoir tourner sur une pi ou un pc vieille génération)
  • Poids des slides
  • Permet de générer un pdf automatiquement (pour partager le contenu hors ligne)
  • La présentation peut être mise sur un site internet (pour partager le contenu en ligne)
  • Bonus: Vue présentateur avec possibilité d’ajouter des notes
  • Bonus: Un mode pause, permettant de ne plus voir la slide en cours

slidev

  • Un tuto sur ce site

  • Je pars sur une image Docker pour ne pas salir mon environment.

  • Je crée le fichier markdown slide.md dans mon dossier courant:

---
title: Hello Slidev
---
# Hello World

Ceci est un test sur Raspberry Pi avec Docker.

---

# Deuxième Slide

Si vous voyez ceci, le fichier slides.md est utilisé correctement.
  • je lance la commande:
docker run --name slidev --rm -it \
    --user node \
    -v ${PWD}:/slidev \
    -p 3030:3030 \
    -e NPM_MIRROR="https://registry.npmmirror.com" \
    tangramor/slidev:latest

sous ARM, utiliser

docker run --rm -it --user node --network host -v "$PWD":/slidev tangramor/slidev:arm64v8
  • La documentation

  • Les images docker ainsi que les explications pour utiliser l’image se trouve ici.

  • Un module vscode est disponible pour faciliter la création de slide.

Utilise au maximum le markdown (D’abord le contenu, puis la mise en page)

Utilise le markdown.

Légère (doit pouvoir tourner sur une pi ou un pc vieille génération)

Oui, que ce soit en taille ou en rapidité.

Construction sur Jenkins léger (ne consomme pas trop de mémoire vive)

Malheureusement, lorsque j’ai commencé à l’intégrer dans ma chaîne de construction avec Jenkins, je suis tombé sur un pépin.

À chaque construction des slides, j’ai le processus de construction qui était stoppé par le serveur pour problème de mémoire vive. Et effectivement, la construction de sli.dev demande entre 3gio et 4gio… Voulant rester le plus sobre électriquement, ne voulant pas changer de serveur ou lui ajouter plus de mémoire vive, j’ai arrêté la l’expérience.

J’ai essayé de limiter la mémoire vive utilisée, de donner plus de priorité à Jenkins, rien n’y fait, il me faudrait plus de mémoire vive.

Poids des slides

Un autre problème que j’ai remarqué est la taille du dossier généré après la construction (en local, sur mon ordinateur). Il fait 1,3gio! Beaucoup de module npm, pleins de possibilités, tout cela a un coup. Pour un site que je veux léger, cela posera un problème.

Permet de générer un pdf automatiquement (pour partager le contenu hors ligne)

Oui, directement dans les outils disponibles. On choisit les pages que l’on veut mettre dans le pdf.

La présentation peut être mise sur un site internet (pour partager le contenu en ligne)

Oui, avec un peu de chipotage:

# Génère les fichiers à ajouter dans le dossier monSIteHugo/static/presentations/ma-premiere-presentation/
docker run --rm -it   --user node   --network host   -v "$PWD":/slidev   --entrypoint npx   tangramor/slidev:arm64v8   slidev build slides.md --out dist --base /presentations/ma-premiere-presentation/

Puis aller sur http://localhost:1313/presentations/ma-premiere-presentation/ (attention lors d’un partage d’url, le “1” final qui apparaît ensuite dans l’url renvoie un 404 not found)

J’ai dû modifier grandement mes scripts de génération car malheureusement, les images Docker fournies ne sont pas compatible avec ARM pour la partie production…

Bonus: Vue présentateur avec possibilité d’ajouter des notes

Oui, avec en plus, un stylet, streamer une app, Taper des notes et les saves directement dans le fichier markdown. Éditeur via slide directement.

Bonus: Un mode pause, permettant de ne plus voir la slide en cours

Non

Résumé

  • Utilise au maximum le markdown (D’abord le contenu, puis la mise en page)
  • Construction sur Jenkins léger (ne consomme pas trop de mémoire vive)
  • Poids des slides
  • Légère (doit pouvoir tourner sur une pi ou un pc vieille génération)
  • Permet de générer un pdf automatiquement (pour partager le contenu hors ligne)
  • La présentation peut être mise sur un site internet (pour partager le contenu en ligne)
  • Bonus: Vue présentateur avec possibilité d’ajouter des notes
  • Bonus: Un mode pause, permettant de ne plus voir la slide en cours

marp

Exemple d’utilisation

mon-projet/
├── slides.md
├── output/      <-- Doit exister!
└── themes/        (optionnel)
  • Je crée le fichier markdown slide.md dans mon dossier courant:
---
marp: true
theme: default
paginate: true
footer: 'Mathieu Limonier'
header: 'coucou'
---

<!-- _class: title -->
# Exemple-slide

Auteur : Mathieu Limonier

---

# Slide 2

Contenu de la deuxième slide.

- Point 1
- Point 2
- Point 3

---

# Slide 3

```bash
# Exemple de commande
echo "Hello, World!"
```

<!-- Speaker notes : notes ici -->

---

![bg left](https://picsum.photos/720?image=29)

# Split backgrounds

The space of a slide content will shrink to the right side.

---

![bg right](https://picsum.photos/720?image=3)
![bg](https://picsum.photos/720?image=20)

# Split + Multiple BGs

The space of a slide content will shrink to the left side.

---

# Bullet list - affichage tout point

- One
- Two
- Three

---

# Fragmented list - affichage point par point

* One
* Two
* Three
  • Le dossier themes contient les thèmes supplémentaires TODO ajout site + exemple

  • Génération html

  
  docker run --rm \
  -v "$(pwd):/home/marp/app:ro" \
  -v "$(pwd)/themes:/themes:ro" \
  -v "$(pwd)/output:/output" \
  marpteam/marp-cli:latest \
  --theme-set /themes \
  --html \
  --output /output/index.html \
  slides.md
  
  • Génération pdf
  
docker run --rm \
  -v "$(pwd):/home/marp/app:ro" \
  -v "$(pwd)/themes:/themes:ro" \
  -v "$(pwd)/output:/output" \
  marpteam/marp-cli:latest \
  --theme-set /themes \
  --pdf \
  --allow-local-files \
  --output /output/slides.pdf \
  slides.md
  
  • La sortie des deux commande donnera
mon-projet/
├── slides.md
├── output/
│   ├── index.html
│   └── slides.pdf
└── themes/

Utilise au maximum le markdown (D’abord le contenu, puis la mise en page)

Utilise le markdown.

Légère (doit pouvoir tourner sur une pi ou un pc vieille génération)

Oui, que ce soit en taille ou en rapidité.

Construction sur Jenkins léger (ne consomme pas trop de mémoire vive)

Quelques mo de ram, pas plus.

Poids des slides

400,7 Ko pour index.html + pdf de la présentation de base.

Permet de générer un pdf automatiquement (pour partager le contenu hors ligne)

Non, il est généré statiquement et doit être partagé via le site.

La présentation peut être mise sur un site internet (pour partager le contenu en ligne)

Oui, après un petit changement dans mon script (copie du dossier de la présentation vers le dossier static du site).

Bonus: Vue présentateur avec possibilité d’ajouter des notes

Oui, vue présentateur simple avec gestion des notes.

Bonus: Un mode pause, permettant de ne plus voir la slide en cours

Non

Résumé

  • Utilise au maximum le markdown (D’abord le contenu, puis la mise en page)
  • Construction sur Jenkins léger (ne consomme pas trop de mémoire vive)
  • Poids des slides
  • Légère (doit pouvoir tourner sur une pi ou un pc vieille génération)
  • Permet de générer un pdf automatiquement (pour partager le contenu hors ligne)
  • La présentation peut être mise sur un site internet (pour partager le contenu en ligne)
  • Bonus: Vue présentateur avec possibilité d’ajouter des notes
  • Bonus: Un mode pause, permettant de ne plus voir la slide en cours

Choix

Je veux rester au maximum dans les préceptes de Slow Computing. Ce qui veut dire que le mieux sera le plus léger et celui qui est fonctionnel sur mon serveur actuel .

Ce sera marp!