--- title: "Le document 2.0" author: "François Pelletier" date: "7 décembre 2017" --- ## Accueil __Bienvenue !!!__ Objectifs de cet atelier: 1. Partager ma méthode de travail pour créer des documents 1. Présenter une méthodologie de travail axée sur le minimalisme 1. Présenter les avantages de travailler avec des formats ouverts et des outils libres --- ## Ordre du jour 1. La syntaxe Markdown 1. Les thèmes Bootstrap 1. L'outil de conversion de documents Pandoc # Markdown - Markdown est une syntaxe simple pour écrire des textes et de la documentation. - C'est un langage de balisage léger, beaucoup plus simple que le HTML et le LaTeX. - Cette syntaxe permet la création de documents source lisibles par l'humain. - Elle est inspirée de plusieurs notations utilisées dans les courriels avant l'utilisation massive du HTML. - La documentation complète de Markdown tient dans une seule page: [cheat sheet](https://warpedvisions.org/projects/markdown-cheat-sheet/) --- ## Conversion du Markdown Markdown est concu pour être converti en d'autres formats facilement: - [HTML](https://www.w3schools.com/html/default.asp): Site web prêt à mettre en ligne) - [PDF](https://fr.wikipedia.org/wiki/Portable_Document_Format): Documents imprimables et diapositives. - [LaTeX](https://www.latex-project.org//): Documents scientifiques et publications professionnelles - [ODT](https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office): Format ouvert de document pour le traitement de texte utilisé par LibreOffice, OpenOffice, Google Docs. Assure la pérennité de l'information - [Office Open XML](https://en.wikipedia.org/wiki/Office_Open_XML) (fichiers .docx): Format commun de bureautique (très mauvaise compatibilité) - MediaWiki: Syntaxe de documentation collaborative, utilisée par Wikipédia et autres --- ## Les _saveurs_ de Markdown Attention: Il n'existe pas de standard de Markdown - Il y a par contre peu de différences entre celles-ci, ce sont surtout des ajouts pour des besoins précis Quelques _saveurs_: - [GitHub](https://guides.github.com/pdfs/markdown-cheatsheet-online.pdf): Utilisée sur ce réseau social pour développeurs - [R Markdown](http://rmarkdown.rstudio.com/): Utilisé pour créer des rapports statistiques très élégants (C'est ce qu'on utilise dans mon équipe) - [Pandoc Markdown](http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html): Utile pour créer des documents riches dans plusieurs formats de façon automatisée. --- ## La syntaxe La documentation de la syntaxe Markdown peut facilement être trouvée en ligne. Une version française se trouve ici: - [Traduction de la documentation en français](https://michelf.ca/projets/php-markdown/syntaxe/) - [Un guide pour bien commencer avec markdown](https://blog.wax-o.com/2014/04/tutoriel-un-guide-pour-bien-commencer-avec-markdown/) --- ## Quel éditeur utiliser? - Pour les minimalistes, le bloc-notes de Windows peut amplement suffire. - Plusieurs éditeurs de code permettent d'utiliser Markdown plus aisément: - Atom - Visual Studio Code - Remarkable - RStudio --- ## Atom [Atom](https://atom.io/): Éditeur de texte pour le 21e siècle! ![Capture d'écran d'Atom](atom-markdown.png) --- ## Visual Studio [Visual Studio Code](https://code.visualstudio.com) est un éditeur libre, moderne et tres performant développé par la communauté et Microsoft. ![Capture d'écran de Visual Studio](0_9_0_openpreviewside.png) Je recommande Visual Studio Code. Il est disponible sur tous les environnements de bureau et existe aussi en version portable afin de contourner les restrictions d'entreprise. --- ## Remarkable Remarkable est un éditeur simple et convivial pour la syntaxe Markdown [Remarkable sur GitHub](https://github.com/jamiemcg/remarkable) ![Capture d'écran de Remarkable](remarkable.png) --- ## RStudio RStudio est d'abord un environnement de développement intégré (IDE) pour le langage statistique R, mais il est aussi un excellent éditeur markdown. Il supporte aussi sa propre syntaxe RMarkdown pour la production de rapports statistiques et de documents interactifs. ![](rmdint-template.png) [RStudio RMarkdown](http://rmarkdown.rstudio.com/) # Bootstrap Bootstrap est un module qui permet d'utiliser des consignes de formatages faciles à interpréter par le navigateur. Il utilise le CSS (Cascading Style Sheet) pour créer des thèmes personnalisés et interchangeables. Créer un thème bootstrap requiert une connaissance du HTML et du CSS, mais les utiliser est plutôt simple. --- ## Bootswatch [Bootswatch](https://bootswatch.com/) est un ite web qui propose des thèmes gratuits pour Bootstrap. ![Capture du site web bootswatch.com démontrant 6 thèmes](bootswatch.png) # Pandoc Pandoc est un outil et une librairie écrit en Haskell qui permet de convertir des documents entre plusieurs formats ouverts. Il y a aussi une librairie très utilisée par plusieurs autres logiciels. Si votre éditeur permet d'exporter votre travail dans une multitude de formats, c'est probablement du à Pandoc. Pandoc est multi-plateformes, mais certaines fonctionnalités peuvent être limitées. Par exemple, il faut avoir Microsoft Word ou LibreOffice pour produire des DOCX. --- ## Installation ```bash sudo apt-get install pandoc ``` Installation avec Cabal, pour avoir la version la plus récente: ```bash cabal install pandoc ``` --- ## Pandoc: Formats d'entrée Les formats d'entrée incluent: - markdown - DocBook - LaTeX - OpenDocument - Epub - ... --- ## Pandoc: Formats de sortie Les formats de sortie incliuent: - HTML - OpenDocument - EPub - DocBook - LaTeX - PDF - markdown - MediaWiki - DokuWiki --- ## Pandoc Markdown Le Pandoc Markdown est un des formats d'entrée les plus vertatiles. Il s'agit d'une variante de Markdown supportant plusieurs fonctionnalités additionnelles. Référence: [Anthoring Pandoc Markdown](http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html) --- ## Pandoc Markdown: Blocs de lignes Les **blocs** de lignes permettent de séparer le texte manuellement. Par exemple, pour les adresses: **Code:** ```markdown | Centre de loisirs St-Louis-de-France | | 1560 Route De L’Église | Québec, G1W 3P5 ``` **Résultat:** | Centre de loisirs St-Louis-de-France | | 1560 Route De L’Église | Québec, G1W 3P5 --- ## Pandoc Markdown: Tables simples Il faut spécifier l'extension `+simple_tables` **Code:** ```markdown Droite Gauche Centre Defaut ----- ----- ---- ------ 12 12 12 12 123 123 123 123 Table: Demonstration de la syntaxe des tables simples. ``` **Résultat:** Droite Gauche Centre Defaut ----- ----- ---- ------ 12 12 12 12 123 123 123 123 Table: Demonstration de la syntaxe des tables simples. --- ## Pandoc Markdown: métadonnées Les métadonnées permettent d'identifier le titre, l'auteur et la date dans l'entête du document. On utilise l'extension `+pandoc_title_block` **Code:** ```markdown --- title: "Le document 2.0" author: "François Pelletier" date: "7 décembre 2017" --- ``` --- ## Pandoc Markdown: mathématiques Pandoc permet de traiter les équations mathématiques saisies avec la syntaxe LaTeX à l'aide de différents outils tout dépendamment du format de document en sortie. Les principaux outils utilisés sont MathML et AMS \LaTeX --- ## Pandoc Markdown: mathématiques On saisis les contenus mathématiques entre signes `$` ou `$$` pour les expressions multilignes. **Code:** ```markdown $$ {\begin{aligned}/home/francois/nextCloud/LinuQ/20171025_pandoc/20171025_formats_ouverts &\gamma _{ij}(x,t) \\ =&\sum _{k=1}^{N}\sigma _{ik}(x,t)\sigma _{jk}(x,t) \end{aligned}} $$ ``` **Résultat:** $$ {\begin{aligned} &\gamma _{ij}(x,t) \\ =&\sum _{k=1}^{N}\sigma _{ik}(x,t)\sigma _{jk}(x,t) \end{aligned}} $$ --- ## Produire des présentations facilement Un exemple: cette présentation a été écrite avec le langage Markdown et exportée en PDF et en HTML avec Pandoc. ```bash #!/bin/bash pandoc -f markdown+simple_tables+pandoc_title_block \ -t html document2_0.md -o document2_0.html --template template.html \ --css template.css --mathjax --toc --toc-depth 2 pandoc -f markdown+simple_tables+pandoc_title_block \ -t slidy document2_0.md -o document2_0_slidy.html \ --css template.css --mathjax --toc --toc-depth 3 ``` --- ## Publier sur un wiki ou un site web Il est aussi possible d'exporter le contenu d'un document vers la syntaxe dokuwiki, ce qui peut être très utile ! ```bash pandoc -f markdown+simple_tables+pandoc_title_block \ -t dokuwiki -s presentation.md -o presentation.dokuwiki ``` ## Références - Source des templates Bootstrap CSS et HTML: [tonyblundell/pandoc-bootstrap-template](https://github.com/tonyblundell/pandoc-bootstrap-template) - Guide [Pandoc Markdown](http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html) - Beaucoup de [StackOverflow](https://stackoverflow.com/) !!! - [Logo Desjardins](https://www.desjardins.com/a-propos/desjardins/marque/logos/index.jsp)