Présentation d'Org-mode

"Logo d'Org-mode"
Figure 1 : Logo d'Org-mode, créé par Christophe Bataillon, sous licence "GNU Free Documentation License version 1.3 or later"

Après plusieurs billets de blog au sujet d'Org-mode, je me rends compte que je n'ai pas pris le temps de le présenter. Corrigeons ça.

Org-mode est un mode Emacs qui sert à s'organiser: Prendre des notes et gérer des tâches.

Mais ses fonctionnalités de rédaction sont très développés et on peut aussi écrire toute sorte de documents: Article, livre, thèse, lettre, etc.

Et il est possible d'exporter ces documents vers de nombreux formats, dont des pages web ou des fichiers PDF.

Dans ce billet, je vais présenter Org-mode et une bonne partie de ses fonctionnalités. Mais sans rentrer trop dans les détails.

Un mode Emacs ?

Avant de continuer, je vais expliquer ce qu'est un mode Emacs.

Emacs est un éditeur de texte qu'on peut utiliser dans de nombreuses situations: Écrire un e-mail, ou un message instantané, prendre des notes, écrire un logiciel, etc.

Pour chacune de ces situations, Emacs doit pouvoir s'adapter au contexte, à ce qu'on veut faire.

Exemples:

  • Si on écrit un e-mail, Emacs doit mettre en évidence le ou la destinataire et le sujet. Il doit aussi proposer d'envoyer cette e-mail.
  • Si on discute sur une messagerie instantanée, Emacs doit afficher les messages reçus dès qu'ils arrivent. Il doit aussi envoyer le message qu'on écrit, au moment où on appuie sur la touche entrer.
  • Si on écrit une lettre, Emacs doit proposer de l'exporter vers un fichier PDF.

Bref, Emacs doit s'adapter. Pour ça, il utilise un système de mode. Quand un mode est actif, cela modifie:

  • En partie le comportement d'Emacs
  • Certains raccourcis clavier
  • Une partie des fonctionnalités disponibles

Quand le mode Org-mode est actif, Emacs devient un logiciel de prise de notes, de gestion de tâches et de rédaction de documents.

Prise de notes

Pour commencer à prendre des notes, il suffit d'ouvrir, avec Emacs, un fichier texte avec l'extension .org. Emacs va passer automatiquement en mode Org-mode et on peut commencer.

Chaque note est constituée d'un titre et, optionnellement, d'un corps. Chaque titre est précédé d'un caractère * (Asterisk) et le corps est écrit en dessous du titre.

Comme ceci:

* Exemple de note

Voici donc un petit exemple de notes.

Tu peux écrire sur plusieurs lignes.

Dans cette exemple, j'ai créé une note avec comme titre "Exemple de note" et un corps sur 2 lignes.

Pour créer une nouvelle note, tu peux soit écrire l'asterisk, soit utiliser le raccourcis clavier C-c Enter (Contrôle et C, puis la touche entrer).

Les notes, en plus d'être écrites dans un certain ordre, peuvent être organisées de façon hiérarchiques: On peut rattacher une ou plusieurs notes à une note parente. Le nombre d'asterisks au début de titre indique le niveau de chaque note. On peut avoir plusieurs notes du même niveau.

On peut également refermer une note sur son titre: Si on place le curseur d'écriture sur un titre et qu'on appuie sur la touche Tabulation, le corps disparait et seul le titre reste accompagné de trois points. Si on appuie à nouveau sur la touche Tabulation, le corps réapparait.

Écriture du contenu

Quand on écrit le contenu d'un document Org-mode, on retrouve les outils habituels:

On peut aussi utiliser:

Sur chaque note, on peut ajouter des étiquettes ainsi que des propriétés, qui pourront nous servir plus tard.

Pour les bloques de code, Emacs propose de:

Enfin, Org-mode propose aussi d'attacher des fichiers à n'importe quelle note.

Gestion des tâches

Pour transformer une note en tâche, il suffit d'ajouter le mot "TODO" au début de son titre. On peut ensuite passer du status TODO à DONE avec un simple raccourcis clavier.

Par défaut, Org-mode propose 2 status: TODO et DONE. Mais on peut personnaliser les status d'une tâche: Globalement ou au niveau d'un document Org-mode.

Org-mode est capable de gérer les dates et les heures. On peut s'en servir pour planifier une tâche ou indiquer une date limite. Il propose également de chronométrer le temps passé sur chaque tâche, puis de créer un résumé du temps passé.

Org-mode propose également, pour les listes, d'ajouter des cases à cocher. Et pour les tâches, de définir un niveau de priorité.

De la même façon qu'on peut attacher une ou plusieurs notes à une note parente, on peut faire la même choses avec les tâches. La tâche parente pouvant indiquer la progression de ses tâches enfants. On peut aussi mélanger notes et tâches.

Agenda

Pour organiser son temps, Org-mode propose un outils d'agenda.

Cet agenda va parcourir un ou plusieurs documents Org-mode, récolter les tâches et proposer de les voir de 2 façons: Soit sous la forme d'un agenda, soit sous la forme d'une liste de tâches.

L'agenda d'Org-mode propose également de rechercher des tâches, ou de les trier, selon leurs status, étiquettes, une de leurs propriétés, etc.

On peut également créer des vues personnalisées. Vue pour lesquelles on peut définir les filtres, le tris et mélanger les présentations sous forme d'agendas et de listes.

Enfin, on peut exporter des vues de l'agenda vers différents formats, dont l'iCalendar.

Capturer et redistribuer l'information

Souvent, quand on doit prendre des notes, ou écrire un nouvelle tâche, on est déjà en train de faire quelque chose d'autre. Ce qui peut nous déconcentrer.

Org-mode propose de capturer des notes, ou des tâches, depuis n'importe où dans Emacs. On peut définir, à l'avance, ce qu'on veux capturer et comment.

Quand on a capturé plusieurs notes, ou tâches, on peut les redistribuer vers d'autres documents Org-mode. Cette fonction peut être utilisé depuis n'importe quel document Org-mode. Pour archiver des tâches, Org-mode propose une fonction dédiée.

On peut également créer automatiquement de nouvelles notes, ou tâches, à partir d'un flux RSS.

Rédaction de documents

Jusque là, on a vue qu'on pouvait prendre des notes ou gérer des tâches. Mais il n'y a aucune différence entre une note et le chapitre d'un livre, ou la section d'un rapport. Tous et toutes on un titre et un corps.

On peut donc utiliser Org-mode pour écrire toute sorte de documents:

  • Article
  • Rapport
  • Livre
  • Lettre
  • Thèse
  • Etc

Comme Org-mode ne s'occupe pas de la mise en page, on peut se concentrer sur le fond du document: Son contenu et sa structure. Et on a accès à toutes les fonctionnalités d'Org-mode pour écrire notre document. Document qu'on pourra ensuite exporter vers un format adapté au(x) destinataire(s).

Formats et exportation

Chaque document Org-mode est sauvegardé dans un simple fichier texte. On peut donc accéder à ce qu'on a écrit avec n'importe quel logiciel capable de lire du texte.

On peut également utiliser certains outils conçus pour le développement logiciel. Comme un gestionnaire de version, ou un outils de recherche.

Org-mode propose également d'exporter ses documents vers de nombreux formats. Dont des pages web ou des fichiers PDF. D'autres formats sont disponibles et on peut en ajouter.

Certaines exportations sont même spécialisés pour certains types de documents. Par exemple l'exportation au format Beamer, qui produit un fichier PDF adapté aux présentations. Où koma-letter, qui produit des lettres au format PDF.

Il est possible de définir les options d'exportations au début de chaque document Org-mode.

Publication

On a vu qu'il est possible d'exporter sois-même chaque document Org-mode vers un autre format. Mais on peut aussi automatiser l'exportation de tout un dossier.

Avec Org-mode, on peut ainsi créer un site web complet. La fonctionnalité de publication exporte chaque document Org-mode trouvés vers une page web. Les liens entre documents seront automatiquement adaptés. Il est aussi possible de demander à org-mode de copier les fichiers statiques, comme les images ou les fichiers CSS, vers le même dossier de destination que les pages web.

Cette fonctionnalité de publication peut également servir à générer le support de tout un cours, en choisissant le format PDF.

L'exportation est possible vers d'autres format, tant qu'un exportateur Org-mode propose une fonction de publication.

Base de données

Il est également possible d'utiliser Org-mode comme une base de données. Par exemple, pour suivre les livres qu'on a lut, ou les séries TV et films qu'on a vu.

Chaque note peut représenter le tome d'un livre, un épisode d'une série TV, etc. On lui attache les propriétés qu'on trouve les plus utiles, comme le nom de l'auteur ou de l'autrice, l'année, etc. Et on utilise les étiquettes pour indiquer le genre de la série.

Ensuite, il est possible de créer des notes parentes pour regrouper les épisodes d'une série. Ou des notes enfants de chaque livre, pour y écrire ce qu'on en a pensé ou ce qu'on y a appris.

Si le status TODO et DONE ne nous sont pas utiles, il est toujours possible de définir des status un niveau du document Org-mode. Comme par exemple, pour des livre: TOBUY, TOREAD, READ, LENT.

Et à tout moment, Org-mode propose de visualiser notre base de données sous la forme d'un tableau.

Extensible

Org-mode étant un mode Emacs, il est toujours possible de l'étendre et de le modifier.

Pour ça, la communauté à développé d'excellents outils. Je te conseille:

  • Org-noter: Pour prendre des notes sur un document PDF ou Epub
  • Org-roam: Pour construire une base de connaissances avec Org-mode
  • org-ql: Un système de recherche pour les documents Org-mode
  • Org-Reveal (ox-reveal): Un exportateur, pour créer des présentations au format Web avec Reveal.js

Si tu utilise un smartphone, je te conseil aussi Orgzly. Il s'agit d'un logiciel de prise de notes et un gestionnaire de tâches qui utilise le même format que Org-mode. Et pour synchroniser tes documents Org-mode avec ton téléphone, je conseil Syncthing.

Comment obtenir Org-mode

Org-mode est fourni avec Emacs. Si tu installe Emacs, tu as Org-mode.

Aller plus loin

Je d'invite à lire la documentation d'Org-mode, ou son guide compact.

Tu peux aussi voir l'excellente vidéo "Getting Started With Org Mode" de Harry Schwartz.

Et enfin, tu peux aussi visiter le site web officiel d'Org-mode.

Conclusion

Org-mode est un outils très complet. Il peut servir à prendre des notes, gérer des tâches, écrire des documents, des sites web, etc. Il propose un grand nombre de fonctionnalités, mais il reste très simple à utiliser et très léger.

À titre personnel, je m'en sert prendre des notes quand j'étudie, pour gérer ce que je dois ou veut faire, pour écrire ce site web et pour suivre ce que je lis. Il est idéal quand on souhaite apprendre ou enseigner. Et aussi quand on a besoin d'aide pour rester organisé.