Présentation d'Org-mode
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:
- Typographie (gras, italique, sous-ligné, etc)
- Images, avec description
- Liens
- Listes
- Etc
On peut aussi utiliser:
- Des tableaux, avec des formules et des graphiques
- Des formules de math, avec la syntaxe LaTeX
- Des bloques de code source
- Des bloques dont le texte est généré automatiquement
- Une gestion de la bibliographie et des citations
- Une gestion des notes de bas de page
- Et bien d'autres outils
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:
- Éditer son contenu dans une fenêtre à part
- Exécuter le contenu du bloque et d’inclure le résultat dans le document Org-mode
- Passer une valeur au bloque de code, sous la forme d'une variable. Par exemple le résultat d'un autre bloque ou les valeurs d'un tableau
- Choisir quel partie sera gardée, entre le bloque et le résultat, quand on exportera le document Org-mode vers un autre format
- Extraire le contenu d'un ou plusieurs bloques vers un autre fichier
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é.