diff --git a/BUILD b/BUILD index 42dcbda637c0ac9b50867f44a166f160d4ba23cb..d637e584edefc169396e86eb5bc4219444b4c913 100644 --- a/BUILD +++ b/BUILD @@ -26,3 +26,17 @@ github_repo( build_file = "upstream.BUILD", hashes = "36f90d77ab3951b6185e631a1fc847bd8563d8bd", ) + +subinclude(":rules") + +filegroup( + name = "pages", + srcs = [ + pandoc( + src = "README.md", + out = "index.html", + ), + "sample.BUILD", + ":reveal.js", + ], +) diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4099df2557f22decfa57914498b887f6d0a218ce --- /dev/null +++ b/README.md @@ -0,0 +1,131 @@ +--- +title: Présentations HTML avec reveal.js +author: "[Guillaume Perréal](mailto:guillaume.perreal@inrae.fr?subject=reveal.js)" +date: 2020-03-10 +keywords: reveal.js, markdown, pandoc, slideshows, presentations, please-build +--- + +# Introduction + +## reveal.js + +[reveal.js](https://github.com/hakimel/reveal.js) est un framework pour +construire des présentations HTML. + +- Un navigateur est suffisant pour l'afficher. +- Contenu écrit en HTML et/ou en [Markdown](https://fr.wikipedia.org/wiki/Markdown) +- Ce n'est pas WYSIWIG. + +## pandoc + +[pandoc](https://pandoc.org/) est un convertisseur de document d'un language +de markup vers un autre. + +En l'occurence, il peut être utilisé pour générer le contenu d'une [présentation +reveal.js](https://pandoc.org/MANUAL.html#producing-slide-shows-with-pandoc) +à partir de fichiers [Markdown](https://pandoc.org/MANUAL.html#pandocs-markdown). + +## [pole-is/tools/reveal.js](https://gitlab.irstea.fr/pole-is/tools/reveal.js) + +Fournit : + +- une version de reveal.js intégrant un thème INRAE (circa 2020), +- des scripts basés sur le système de construction [Please](https://please.build/), +- de la configuration pour générer automatiquement les présentations avbec Gitlab-CI, + voire les publier automatiquement avec Gitlab-Pages. + +# Utilisation + +## En local (Linux) + +- [Installez Please](https://please.build/quickstart.html) +- Créez un dossier pour votre présentation. +- Installez-y le script de build Please [sample.BUILD](sample.BUILD) et renommez le en `BUILD` +- Créez un dossier pour le contenu de votre présentation, e.g. `ma_presentation` (éditez + le fichier BUILD si vous changez le nom du répertoire) avec un fichier pour les slides `index.md`. + +Vous pouvez en suite créer votre présentation: + +```bash +plz build :ma_presentation +``` + +Vous devriez avoir ceci : + +- BUILD +- ma_presentation/ + - index.md + +## Avec intégration continue + +# Détails + +## Outils utilisés + +Le projet reconstruit le framework reveal.js à partir des sources en utilisant +[minify](https://github.com/tdewolff/minify) et [sass-dart](https://github.com/sass/dart-sass) +pour traiter les fichiers. Il ajoute au passage le thème INRAE avec les images et polices nécessaires. + +Tous les outils sont téléchargés automatiquement, avec vérification de hash. + +[reveal.js](https://github.com/hakimel/reveal.js) est un framework pour +construire des présentations HTML. + +- Un navigateur est suffisant pour l'afficher. +- Contenu écrit en HTML et/ou en [Markdown](https://fr.wikipedia.org/wiki/Markdown) +- Ce n'est pas WYSIWIG. + +## pandoc + +[pandoc](https://pandoc.org/) est un convertisseur de document d'un language +de markup vers un autre. + +En l'occurence, il peut être utilisé pour générer le contenu d'une [présentation +reveal.js](https://pandoc.org/MANUAL.html#producing-slide-shows-with-pandoc) +à partir de fichiers [Markdown](https://pandoc.org/MANUAL.html#pandocs-markdown). + +## [pole-is/tools/reveal.js](https://gitlab.irstea.fr/pole-is/tools/reveal.js) + +Fournit : + +- une version de reveal.js intégrant un thème INRAE (circa 2020), +- des scripts basés sur le système de construction [Please](https://please.build/), +- de la configuration pour générer automatiquement les présentations avbec Gitlab-CI, + voire les publier automatiquement avec Gitlab-Pages. + +# Utilisation + +## En local (Linux) + +- [Installez Please](https://please.build/quickstart.html) +- Créez un dossier pour votre présentation. +- Installez-y le script de build Please [sample.BUILD](sample.BUILD) et renommez le en `BUILD` +- Créez un dossier pour le contenu de votre présentation, e.g. `ma_presentation` (éditez + le fichier BUILD si vous changez le nom du répertoire) avec un fichier pour les slides `index.md`. + +Vous pouvez en suite créer votre présentation: + +```bash +plz build :ma_presentation +``` + +Vous devriez avoir ceci : + +- BUILD +- ma_presentation/ + - index.md + +## Avec intégration continue + +# Sous le capot + +## Outils + +- Please: https://please.build + +Les outils suivants sont téléchargés et vérifiés automatiquement par Please : + +- reveal.js: https://github.com/hakimel/reveal.js +- sass-dart: https://github.com/sass/dart-sass +- minify: https://github.com/tdewolff/minify +- pandoc: https://github.com/jgm/pandoc diff --git a/sample.BUILD b/sample.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..ab64ae54f0a038a0bf74d366220464fad52180fb --- /dev/null +++ b/sample.BUILD @@ -0,0 +1,11 @@ +REVEALJS_VERSION = "v1.0.0" + +http_archive( + name = "reveal.js", + urls = ["https://gitlab.irstea.fr/pole-is/tools/reveal.js/-/archive/%s/reveal.js-%s.zip" % (REVEALJS_VERSION, REVEALJS_VERSION)], + strip_prefix = "reveal.js-%s" % REVEALJS_VERSION, +) + +subinclude("///reveal.js//:rules") + +presentation("ma_presentation")