Aller au contenu principal

Améliorez vos présentations avec Quarto, reveal.js, Decktape, Docker et les DevContainers

Créez un slideshow reveal.js avec Quarto, Decktape, Docker et les DevContainers. Écrivez votre contenu en Markdown. Exportez-le en HTML et en PDF (grâce à Decktape)

· 8 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Améliorez vos présentations avec Quarto, reveal.js, Docker et les DevContainers

⚡
TL;DR

Cet article détaille comment créer et gérer des présentations reveal.js avec Markdown, Quarto, Docker et les DevContainers de VSCode. Il montre comment mettre en place un projet Quarto dans un devcontainer pour écrire ses slides en Markdown, les prévisualiser en direct et voir les modifications se répercuter automatiquement. Le workflow couvre aussi l'export de la présentation en site HTML statique et en PDF de qualité grâce à Decktape : une alternative fluide aux outils traditionnels.

Cela fait des années, peut-être huit, que je n'ai plus utilisé PowerPoint pour une présentation. Cliquer, glisser, redimensionner, changer la résolution des slides, mince, tout recommencer... Dessiner des zones de texte, jouer avec les polices et les tailles, déplacer les éléments... Ah non, ça suffit ! Fini PowerPoint. J'en tremble encore.

J'utilise Markdown pour toute ma documentation et mes exports (PDF, DOCX, etc.), il était donc logique de choisir reveal.js, qui me permet d'écrire mes slides sans toucher la souris, juste en écrivant du Markdown.

Le résultat​

Une fois le devcontainer construit et le serveur de preview démarré (voir la section Installation ci-dessous), votre slideshow s'ouvre en direct dans le navigateur — écrit en Markdown, prévisualisé instantanément :

Le slideshow tourne

Facile, non ?

Pourquoi ça fonctionne​

reveal.js est beau, simple et pratique. Il permet d'écrire des slideshows HTML depuis un seul fichier .md. Comme j'utilise Quarto pour ma documentation et que Quarto sait générer un site reveal.js, quoi de plus naturel que de prolonger un de mes articles précédents et de me fixer cet objectif : avec seulement VSCode et Docker sur ma machine, programmer un devcontainer qui me permette d'écrire et de visualiser ma présentation reveal.js, mais aussi de l'exporter en site HTML statique pour pouvoir, par exemple, déployer ma présentation sur un serveur SFTP, et enfin de générer une version PDF de la présentation où chaque slide correspond à une page en mode paysage.

  • Quarto génère, depuis la même source Markdown, un slideshow reveal.js, un document Word, un PDF ou une présentation PowerPoint — une source, plusieurs sorties.
  • Le devcontainer isole toute la toolchain (Quarto, le serveur de preview, Decktape) — rien à installer sur l'host à part VSCode et Docker.
  • L'export en HTML ou en PDF de qualité impression est intégré via Decktape — aucun outil d'export supplémentaire à configurer.

Partons à l'aventure.

Installation​

Assurez-vous donc d'avoir VSCode et Docker sur votre machine.

Il nous faut un projet Quarto​

Pour cet article, l'idée est d'utiliser Quarto et non de créer un projet reveal.js directement à la main. En effet, Quarto nous permettra de faire bien plus de choses, comme exporter notre slideshow en document Word, en PDF ou même en présentation PowerPoint, ou vers n'importe quel autre format supporté par Quarto.

Nous utiliserons Quarto pour, aussi, pouvoir générer le projet sous forme de slideshow.

Vous n'en avez pas encore​

Pour illustrer cet article, téléchargez le fichier demo.zip que j'ai préparé. C'est un projet de slideshow prêt à l'emploi.

Enregistrez le fichier dans un nouveau dossier sur votre disque, par exemple /tmp/revealjs, et dézippez-le (unzip demo.zip). Ensuite, rendez-vous dans le dossier fraîchement créé (cd /tmp/revealjs/demo) et lancez code . pour ouvrir le projet dans VSCode.

Dans ce projet de démo, vous trouverez déjà un dossier .devcontainer avec les fichiers nécessaires que je décris au chapitre suivant.

Vous en avez déjà un​

Si vous avez déjà un projet Quarto existant, rendez-vous dedans et lancez code . pour ouvrir le projet dans VSCode.

Ajoutez ensuite les fichiers suivants à la racine de votre projet :

📦 Mise en place du projet : /tmp/revealjs/demo
Aide

Besoin d'aide ? Cliquez sur le bouton « Aide » ci-dessus pour les instructions de mise en place.

Les images ci-dessous sont celles de mon projet ; certaines seront forcément différentes chez vous.

Ouvrir le devcontainer​

Dans VSCode, appuyez sur F1 pour ouvrir la Command Palette puis sélectionnez Dev containers: Rebuild and Reopen in Devcontainer. Si vous n'avez pas cette commande, installez l'extension VSCode Dev Container de Microsoft.

VSCode va donc reconstruire et réouvrir le projet en tant que devcontainer : autrement dit, VSCode va d'abord construire une image Docker spécifique (telle que décrite dans le fichier .devcontainer/Dockerfile) et probablement télécharger d'abord l'image Docker de Quarto ; puis, une fois l'image créée, VSCode va créer un container basé sur cette image et enfin réouvrir le projet dans un environnement particulier appelé un devcontainer.

Le container va se construire (comptez 1 à 2 minutes la première fois).

Une fois le build terminé, VS Code affiche un écran d'accueil comme celui-ci :

Construction du devcontainer

En cliquant sur le lien Connecting to Dev Container (show log), vous obtiendrez plus de détails et pourrez suivre ce qui se passe.

Après une ou deux minutes (cela n'arrive que la première fois), vous obtiendrez un écran comme celui-ci :

Liste des commandes

Cliquez sur le bouton `+`

Si vous n'avez pas l'écran Terminal comme sur l'image ci-dessus, regardez à droite de l'écran et cliquez sur le bouton + pour créer un nouveau terminal bash.

Plus de démos​

Prévisualiser le slideshow​

Regardez la liste des commandes affichée dans le Terminal : il y en a une pour la preview. Lancez-la simplement comme suggéré, donc quarto preview . --port 5931 --host 0.0.0.0.

>user@machine: ~/yourproject

Appuyez sur Enter pour démarrer le serveur de preview. VS Code vous demandera l'autorisation d'ouvrir le site dans votre navigateur.

Ouverture du site

Et, presque immédiatement, VSCode lancera votre navigateur et créera un nouvel onglet avec votre slideshow déjà actif — le même résultat que celui montré en haut de cet article.

Mettre à jour le slideshow​

Comme vous le voyez, mon slideshow est en français. Traduisons-le.

Utilisez l'outil de traduction que vous voulez, moi j'utilise DeepL. Copiez un peu de contenu et traduisez-le en anglais. Retournez sur votre slideshow, rafraîchissez la page et... tadaaaaa, votre contenu est maintenant en anglais.

Slide traduite

Comme nous venons de le voir, les modifications de votre contenu sont automatiquement répercutées dans le navigateur.

Aller plus loin avec reveal.js

Une fois votre slideshow lancé, jetez un œil à Quelques astuces pour Quarto lors du rendu en diaporama reveal.js pour affiner le rendu.

Exporter un PDF​

Maintenant que votre slideshow tourne, retournez dans votre Terminal (appuyez sur CTRL+ù pour l'ouvrir) et créez une nouvelle session Bash (cliquez sur le bouton +).

Là, lancez decktape dans le Terminal pour générer un fichier appelé slides.pdf :

>user@machine: ~/yourproject

Cela va générer un joli fichier PDF (bien meilleur que celui produit par la fonction d'export PDF de reveal.js).

Exporter en site HTML statique​

En lançant quarto render . --output-dir build, vous créerez un dossier build contenant votre slideshow :

>user@machine: ~/yourproject

Envie d'essayer ?

Sur votre host, rendez-vous dans le dossier build et lancez docker run -d --name static-site -p 8080:80 -v .:/usr/local/apache2/htdocs/ httpd:alpine pour faire tourner le slideshow en dehors de votre devcontainer.

C'est un moyen simple de vérifier que ça fonctionne.

Vous pouvez désormais lancer votre client SFTP, par exemple, et uploader le dossier build sur votre serveur web si c'était votre objectif.

Conclusion​

Du Markdown en entrée, un slideshow prévisualisé en direct en sortie, et un PDF ou un site HTML statique quand vient le moment de livrer — tout le rituel PowerPoint (cliquer, glisser, redimensionner) a disparu, remplacé par le même workflow de devcontainer que celui utilisé pour tout le reste sur ce blog.

Si vous n'avez jamais mis en place un devcontainer Quarto, Rendez votre projet Quarto prêt pour les Devcontainers — fini les galères de configuration détaille davantage ces fondations.


🦋 Rejoignez la conversation sur BlueskyUn compte Bluesky gratuit est nécessaire pour aimer, repartager ou commenter. Ce bloc interroge l'API publique de Bluesky directement depuis votre navigateur (sans cookie, sans connexion) — votre adresse IP parvient donc aux serveurs de Bluesky dès que cette section se charge.

Chargement des commentaires…

Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?