Food and Addiction, avec Lulu Cook
1 juillet 2020
Se connecter avec la nature – Sexe et guérison relationnelle
1 juillet 2020

Une fenêtre de terminal fonctionnant sur un ordinateur portable Linux avec un thème de bureau de style Ubuntu.
Fatmawati Achmad Zaenuri / Shutterstock

Vous pouvez utiliser pandoc sous Linux pour convertir entre plus de 40 formats de fichiers. Vous pouvez également l'utiliser pour créer un système simple de documents en tant que code en écrivant dans Markdown, en le stockant dans gitet la publication dans l'un de ses formats pris en charge.

Conversion de documents et documents en tant que code

Si vous avez un document dans l'un des pandoc's de nombreux formats de fichiers pris en charge, le convertir en n'importe lequel des autres est un jeu d'enfant. C’est un outil pratique à avoir!

Mais le vrai pouvoir de pandoc devient évident lorsque vous l'utilisez comme base d'un système de docs-as-code simple. Le principe de docs-as-code est d'adopter certaines des techniques et des principes du développement logiciel et de les appliquer à la rédaction de la documentation, en particulier pour les projets de développement logiciel. Vous pouvez cependant l'appliquer au développement de tout type de documentation.

Les développeurs de logiciels utilisent leur éditeur préféré ou environnement de développement intégré (IDE) pour écrire leurs programmes. Le code qu'ils saisissent est enregistré dans des fichiers texte. Ceux-ci contiennent le code source pour le programme.

Ils utilisent un système de contrôle de versionou VCS (Git est le plus populaire), pour capturer les modifications apportées au code source au fur et à mesure de son développement et de son amélioration. Cela signifie que le programmeur a un historique complet de toutes les versions des fichiers de code source. Il ou elle peut accéder rapidement à n'importe quelle version précédente d'un fichier. Git stocke les fichiers dans un référentiel. Il existe un référentiel local sur l'ordinateur de chaque développeur et un référentiel central, partagé et distant, souvent hébergé dans le cloud.

Lorsqu'ils sont prêts à produire une version de travail du programme, ils utilisent un compilateur pour lire le code source et générer un exécutable binaire.

En écrivant vos documents dans un langage de balisage léger basé sur du texte, vous pouvez utiliser un VCS pour contrôler la version de votre écriture. Lorsque vous êtes prêt à distribuer ou publier un document, vous pouvez utiliser pandoc pour générer autant de versions différentes de votre documentation que vous le souhaitez, y compris sur le Web (HTML), traitement de texte ou composition (LibreOffice, Microsoft Word, Texas), Portable Document Format (PDF), livre électronique (ePub), etc.

Vous pouvez faire tout cela à partir d'un ensemble de fichiers texte légers contrôlés par version.

Installation de pandoc

À installer pandoc sur Ubuntu, utilisez cette commande:

sudo apt-get install pandoc

sudo apt-get install pandoc dans une fenêtre de terminal.

Sur Fedora, la commande dont vous avez besoin est la suivante:

sudo dnf install pandoc

sudo dnf installe pandoc dans une fenêtre de terminal.

Sur Manjaro, vous devez taper:

sudo pacman -Syu pandoc

sudo pacman -Syu pandoc dans une fenêtre de terminal.

Vous pouvez vérifier la version que vous avez installée en utilisant le --version option:

pandoc --version

pandoc --version dans une fenêtre de terminal. "width =" 646 "height =" 247 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this. onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Utilisation de pandoc sans fichiers

Si tu utilises pandoc sans aucune option de ligne de commande, il accepte également les entrées tapées. Vous appuyez simplement sur Ctrl + D pour indiquer que vous avez terminé de taper. pandoc s'attend à ce que vous tapiez au format Markdown, et il génère une sortie HTML.

Regardons un exemple:

pandoc

pandoc dans une fenêtre de terminal.

Nous avons tapé quelques lignes de Markdown et sommes sur le point d'appuyer sur Ctrl + D.

Exemples de lignes de démarque tapées dans pandoc dans une fenêtre de terminal. "Width =" 646 "height =" 307 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror = "this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Dès que nous le faisons, pandoc génère la sortie HTML équivalente.

HTML généré par pandoc dans une fenêtre de terminal. "Width =" 646 "height =" 383 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this. onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Pour faire quelque chose d'utile avec pandoc, cependant, nous devons vraiment utiliser des fichiers.

Notions de base sur le démarque

Markdown est un langage de balisage léger, et une signification particulière est donnée à certains caractères. Vous pouvez utiliser un éditeur de texte brut pour créer un fichier Markdown.

Markdown peut être lu facilement, car il n'y a pas de balises visuellement encombrantes pour distraire du texte. Le formatage dans les documents Markdown ressemble au formatage qu'il représente. Voici quelques principes de base:

  • Pour souligner le texte avec italique, enveloppez-le dans des astérisques. * Cela sera souligné *
  • À audacieux texte, utilisez deux astérisques. ** Ce sera en gras **
  • Les en-têtes sont représentés par le signe numérique / la marque de hachage (#). Le texte est séparé du hachage par un espace. Utilisez un hachage pour un en-tête de niveau supérieur, deux pour un deuxième niveau, etc.
  • Pour créer une liste à puces, commencez chaque ligne de la liste par un astérisque et insérez un espace avant le texte.
  • Pour créer une liste numérotée, commencez chaque ligne par un chiffre suivi d'un point, puis insérez un espace avant le texte.
  • Pour créer un lien hypertexte, mettez le nom du site entre crochets (()) et l'URL entre parenthèses (()) ainsi: (Lien vers How to Geek) (https://www.howtogeek.com/).
  • Pour insérer une image, tapez un point d'exclamation juste avant les crochets (! ()). Tapez tout texte alternatif pour l'image entre crochets. Ensuite, placez le chemin d'accès à l'image entre parenthèses (()“). Voici un exemple: ! (Le Geek) (HTG.png).

Nous couvrirons plus d'exemples de tous ces éléments dans la section suivante.

EN RELATION: Qu'est-ce que le Markdown et comment l'utilisez-vous?

Conversion de fichiers

Les conversions de fichiers sont simples. pandoc peut généralement déterminer les formats de fichiers avec lesquels vous travaillez à partir de leurs noms de fichiers. Ici, nous allons générer un fichier HTML à partir d'un fichier Markdown. le -o (sortie) indique pandoc le nom du fichier que nous souhaitons créer:

pandoc -o sample.html sample.md

pandoc -o sample.html sample.md dans une fenêtre de terminal.

Notre exemple de fichier Markdown, sample.md, contient la courte section de Markdown montrée dans l'image ci-dessous.

Texte de démarque dans le fichier sample.md dans une fenêtre de l'éditeur gedit. "Width =" 646 "height =" 352 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); " onerror = "this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Un fichier appelé sample.html est créé. Lorsque nous double-cliquez sur le fichier, notre navigateur par défaut l'ouvre.

Rendu HTML du fichier de démarque sample.md, dans une fenêtre de navigateur. "Width =" 646 "height =" 627 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Maintenant, générons un Format de document ouvert document texte que nous pouvons ouvrir LibreOffice Writer:

pandoc -o sample.odt sample.md

pandoc -o sample.odt sample.md dans une fenêtre de terminal.

Le fichier ODT a le même contenu que le fichier HTML.

Un document ODT rendu à partir de démarque et ouvert dans LibreOffice Writer. "Width =" 646 "height =" 662 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror = "this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Une touche nette est le texte alternatif pour l'image est également utilisé pour générer automatiquement une légende pour la figure.

Légende de figure générée automatiquement dans LibreOffice Writer. "Width =" 386 "height =" 130 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this .onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Spécification des formats de fichier

le -F (de) et -t (à) les options sont utilisées pour dire pandoc vers quels formats de fichier vous souhaitez convertir et vers. Cela peut être utile si vous travaillez avec un format de fichier qui partage une extension de fichier avec d'autres formats associés. Par exemple, Texas, et Latex les deux utilisent l'extension «.tex».

Nous utilisons également le -s (autonome) donc pandoc générera tout le préambule LaTeX requis pour qu'un document soit un document LaTeX complet, autonome et bien formé. Sans le -s (autonome), la sortie serait toujours un LaTeX bien formé qui pourrait être inséré dans un autre document LaTeX, il ne serait pas analysé correctement en tant que document LaTeX autonome.

Nous tapons ce qui suit:

pandoc -f markdown -t latex -s -o sample.tex sample.md

pandoc -f markdown -t latex -s -o sample.tex sample.md dans une fenêtre de terminal. "width =" 646 "height =" 77 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed. lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Si vous ouvrez le fichier "sample.tex" dans un éditeur de texte, vous verrez le LaTeX généré. Si vous avez un éditeur LaTeX, vous pouvez ouvrir le fichier TEX pour voir un aperçu de la façon dont les commandes de composition LaTeX sont interprétées. Rétrécir la fenêtre pour l'adapter à l'image ci-dessous donnait à l'écran un aspect étroit, mais en réalité, c'était bien.

Un fichier LaTeX ouvert dans Texmaker, montrant un aperçu de la page de composition. "Width =" 647 "height =" 405 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Nous avons utilisé un éditeur LaTeX appelé Texmaker. Si vous souhaitez l'installer dans Ubuntu, tapez ce qui suit:

sudo apt-get install texmaker

Dans Fedora, la commande est:

sudo dnf install texmaker

À Manjaro, utilisez:

sudo pacman -Syu texmaker

Conversion de fichiers avec des modèles

Vous commencez probablement à comprendre la flexibilité pandoc fournit. Vous pouvez écrire une fois et publier dans presque tous les formats. C’est un grand exploit, mais les documents semblent un peu vanillés.

Avec les modèles, vous pouvez dicter quels styles pandoc utilise lorsqu'il génère des documents. Par exemple, vous pouvez dire pandoc d'utiliser les styles définis dans un Feuilles de style en cascade (CSS) avec le --css option.

Nous avons créé un petit fichier CSS contenant le texte ci-dessous. Il modifie l'espacement au-dessus et en dessous de l'en-tête de niveau d'un style. Il change également la couleur du texte en blanc et la couleur d'arrière-plan en une nuance de bleu:

h1 {
  couleur: #FFFFFF;
  couleur de fond: # 3C33FF;
  margin-top: 0px;
  marge en bas: 1px;
}

La commande complète est ci-dessous – notez que nous avons également utilisé l'option autonome (-s):

pandoc -o sample.html -s --css sample.css sample.md

pandoc utilise le style unique de notre fichier CSS minimaliste et l'applique à l'en-tête de niveau un.

HTML rendu à partir du démarquage avec un style CSS appliqué à l'en-tête de niveau un, dans une fenêtre de navigateur "width =" 646 "height =" 347 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Une autre option de réglage précis dont vous disposez lorsque vous travaillez avec des fichiers HTML consiste à inclure le balisage HTML dans votre fichier Markdown. Cela sera transmis au fichier HTML généré en tant que balisage HTML standard.

Cependant, cette technique doit être réservée lorsque vous ne générez qu'une sortie HTML. Si vous travaillez avec plusieurs formats de fichiers, pandoc ignorera le balisage HTML pour les fichiers non HTML et sera transmis à ceux-ci sous forme de texte.

Nous pouvons également spécifier les styles utilisés lors de la génération des fichiers ODT. Ouvrez un document LibreOffice Writer vierge et ajustez les styles de titre et de police en fonction de vos besoins. Dans notre exemple, nous avons également ajouté un en-tête et un pied de page. Enregistrez votre document sous le nom «odt-template.odt».

Nous pouvons maintenant l'utiliser comme modèle avec le --reference-doc option:

pandoc -o sample.odt --reference-doc = odt-template.odt sample.md

pandoc -o sample.odt --reference-doc = odt-template.odt sample.md dans une fenêtre de terminal. "width =" 646 "height =" 77 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload = "pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);" onerror = "this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Comparez cela avec l'exemple ODT précédent. Ce document utilise une police différente, a des en-têtes colorés et comprend des en-têtes et des pieds de page. Cependant, il a été généré à partir du même fichier Markdown "sample.md".

Un fichier ODT rendu à partir du démarquage avec un document LibreOffice faisant office de feuille de style, dans une fenêtre de LibreOffice Writer. "Width =" 646 "height =" 572 "src =" / pagespeed_static / 1.JiBnMqyl6S.gif "onload =" pagespeed. lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); "onerror =" this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);

Les modèles de document de référence peuvent être utilisés pour indiquer différentes étapes de la production d'un document. Par exemple, vous pourriez avoir des modèles qui ont des filigranes «Brouillon» ou «Pour révision». Un modèle sans filigrane serait utilisé pour un document finalisé.

Génération de PDF

Par défaut, pandoc utilise le moteur PDF LaTeX pour générer des fichiers PDF. Le moyen le plus simple de vous assurer que les dépendances LaTeX appropriées sont satisfaites est d'installer un éditeur LaTeX, tel que Texmaker.

C'est une grosse installation, cependant – Tex et LaTeX sont tous les deux assez lourds. Si votre espace sur le disque dur est limité ou si vous savez que vous n'utiliserez jamais TeX ou LaTeX, vous préférerez peut-être générer un fichier ODT. Ensuite, vous pouvez simplement l'ouvrir dans LibreOffice Writer et l'enregistrer au format PDF.

Docs-as-Code

L'utilisation de Markdown comme langue d'écriture présente plusieurs avantages, notamment les suivants:

  • Travailler dans des fichiers en texte brut est rapide: Ils se chargent plus rapidement que les fichiers de traitement de texte de taille similaire et ont également tendance à se déplacer plus rapidement dans le document. De nombreux éditeurs, dont gedit , Vigueur , et Emacs, utilisez la coloration syntaxique avec le texte Markdown.
  • Vous aurez une chronologie de toutes les versions de vos documents: Si vous stockez votre documentation dans un VCS, tel que Git, vous pouvez facilement voir les différences entre deux versions du même fichier. Cependant, cela ne fonctionne vraiment que lorsque les fichiers sont en texte brut, car c'est ce avec quoi un VCS s'attend à travailler.
  • Un VCS peut enregistrer qui a apporté des modifications et quand: Cela est particulièrement utile si vous collaborez souvent avec d'autres sur de grands projets. Il fournit également un référentiel central pour les documents eux-mêmes. De nombreux services Git hébergés dans le cloud, tels que GitHub, GitLab, et BitBucket, ont des niveaux gratuits dans leurs modèles de tarification.
  • Vous pouvez générer vos documents dans plusieurs formats: Avec seulement quelques scripts shell simples, vous pouvez extraire les styles des documents CSS et de référence. Si vous stockez vos documents dans un référentiel VCS qui s'intègre à Intégration et déploiement continus (CI / CD), elles peuvent être générées automatiquement à chaque fois que le logiciel est construit.

EN RELATION: Qu'est-ce que GitHub et à quoi sert-il?

Dernières pensées

Il y a beaucoup plus d'options et de fonctionnalités dans pandoc que ce que nous avons couvert ici. Les processus de conversion pour la plupart des types de fichiers peuvent être modifiés et affinés. Pour en savoir plus, consultez les excellents exemples sur le site officiel (et extrêmement détaillés) page web pandoc.

//]]>