Macadoc

Ecrire en Markdown, publier en Word et LaTeX

Macadoc est un projet d’application pour convertir des fichiers Markdown et BibTeX en documents Word ou LaTeX.

J’ai créé ce projet pour deux raisons :

  • avoir un outil adapté à ma façon de travailler ;
  • apprendre à créer des applications cross-platform avec Electronjs.

Créer un outil pour écrire avec Markdown

Concernant la première raison, j’utilise Markdown quotidiennement que ce soit pour prendre des notes, écrire des communications ou des articles et même pour rédiger mon manuscrit de thèse. Markdown me permet de découpler la phase de rédaction de celle de mise en forme du document. J’écris avec un éditeur Markdown sans avoir à me préoccuper du rendu visuel final ; à ce moment, seules l’écriture et la structuration des idées comptent. Puis, je mets en forme mon document avec Word ou LaTeX (plutôt pour les documents longs, comme une thèse ou livre).

Pour passer de Markdown à Word ou LaTeX, le plus simple est de passer par Pandoc, un logiciel en ligne de commandes permettant de convertir des documents dans de multiples formats.

Macadoc est simplement une interface graphique pour faciliter l’utilisation de Pandoc. L’interface permet uniquement de convertir depuis Markdown (.md) vers Word (.docx) et LaTeX (.tex) avec des paramètres adaptés. Notamment, il permet d’intégrer facilement des références bibliographiques au format .bib. Il suffit de glisser-déposer les fichiers Markdown et BibTeX dans Macadoc et d’appuyer sur Convertir.

Pour les connaisseurs, voici les paramètres Pandoc que j’utilise : pandoc -s -f markdown-auto_identifiers -t [docx ou latex] --wrap=none --bibliography=… --csl=… --filter=pandoc-citeproc --output=… [--natbib (pour LaTeX)].

Apprendre à développer avec Electronjs

Il existe déjà des interfaces graphiques pour Pandoc dont l’application DocDown créée par Raphael Kabo qui permet de convertir depuis Markdown vers Word. Pourquoi créer une nouvelle application si DocDown existe et fait plus ou moins la même chose ? Eh bien d’abord parce que DocDown ne fait la conversion qu’en Word et que je souhaitais pouvoir choisir entre Word et LaTeX. Ensuite, Macadoc est l’occasion d’apprendre à créer des logiciels cross-platform avec le framework Electronjs. Avec celui-ci, il est possible de développer un logiciel en utilisant les langages liés au Web (JavaScript, HTML et CSS) au lieu des langages tels que C++ ou Java. Bref, je suis curieux de voir comment cela fonctionne et ce qu’il est possible de faire.

Pré-Requis

L’intérêt de Macadoc est de gérer les références bibliographiques lors de la conversion vers Word ou LaTeX. Cela requiert le logiciel Zotero pour deux choses :

  • insérer des citations dans votre éditeur Markdown ;
  • créer un fichier bibtex (.bib) contenant les références bibliographiques de votre article.

La configuration de Zotero pour réaliser ces deux tâches est très bien expliquée dans cet article : Markdown et Zotero

Vous n’avez pas besoin d’installer Pandoc, il est inclus dans Macadoc.

Installation

Attention, Macadoc est en version BETA ! L'utiliser, c'est se préparer à rencontrer (très probablement) des bugs étranges ! Vous pouvez m'en faire part : bouchereau.aymeric[at]gmail[dot]com.

L'application Macadoc sera disponible pour macOS, Windows et Linux.

Utilisation

  • Glissez-déposez votre fichier Markdown et, si vous en avez un, votre fichier de références (.bib) dans l'application ;
  • Dans les paramètres, choisissez le format de conversion : Word ou LaTeX ;
  • Si vous avez un fichier de références, vous pouvez choisir d'inclure ou non la bibliographie à la fin de votre document final et vous pouvez sélectionner le style de citation (APA, IEEE ...) ;
  • Cliquez sur Convertir. Le document final est dans le même dossier que votre fichier Markdown initial.

Améliorations à venir

  • paramétrer des préférences
  • choisir l'endroit où enregistrer le document final
  • changer le nom du document final

Macadoc : Glissez-déposez vos fichiers markdown à convertir Macadoc : Paramétrez la conversion de votre fichier markdown