## Aperçu des possibilités avancées

### Ensemble de notes

Afin d'organiser ses notes, il est possible de réunir un ensemble de fichiers
dans le même répertoires (y compris avec des sous répertoires) et de faire des
liens entre les fichiers (et même au sein d'un seul fichier).

Certains éditeurs, ou certaines extensions d'éditeurs, proposent des facilités
pour générer ces liens, au prix d'une syntaxe *ad hoc* (« wiki links »). Mais
il est parfaitement possible de le faire avec la syntaxe « normale » du lien.

![Lien depuis le fichier `README.md` vers le fichier `points-a-ameliorer.md`][14]

La figure 5 montre sur la gauche une arborescence de fichiers, avec
des sous-répertoires, et dans le fichier affiché (`README.md`), un lien vers le
fichier `points-a-ameliorer.md`. Dans cet éditeur, en plaçant le curseur sur le
lien et en tapant la touche « entrée », on ouvre le fichier cible.

La figure 6 montre la recherche du terme `rdv-info` lancée sur la même
arborescence de fichiers que la figure 5, au moyen du logiciel Visual Studio
Code. Il y a 13 occurrences du terme dans 7 fichiers. Ce type de recherche est
facilité par le fait que ce sont des fichiers au format texte et se retrouve
dans la plupart des éditeurs généralistes de qualité.

![Recherche dans Visual Studio Code][15]

### Export vers d'autres formats

La conversion d'un document markdown en un autre format, plus simple à partager
devient assez vite utile. Pour les conversions, `pandoc` est l'outil le plus
souvent utilisé. Il est soit utilisé par votre éditeur pour faire les exports
(par exemple avec Zettlr), soit par vous même en ligne de commande. C'est un
logiciel libre et gratuit, développé très activement.

Il est capable de lire et d'écrire dans un grand nombre de formats différents,
parfois à l'aide de logiciels spécifiques. Par exemple, pour produire un
fichier PDF, il peut utiliser plusieurs méthodes, dont LaTeX, ce qui suppose
d'en avoir une version installée.

La commande pour une conversion simple est de la forme suivante :

```bash
pandoc --output fichier.docx fichier.md
```

Le format obtenu correspond à celui qui est indiqué en extension du nom de
fichier de sortie `--output`, ici du DOCX. Mais il est possible de
l'expliciter :

```bash
pandoc --to docx --output fichier.docx fichier.md
```

Le support de cours de cette introduction à markdown a été rédigée en markdown
et est exportée en PDF grâce à `pandoc` et à *Paged.js*.[^3]

### Citations et Bibliographie {.newpage}

Pour insérer des citations et générer une bibliographie, il est nécessaire
d'avoir au moins une collection de références bibliographiques, par exemple
sous la forme d'un fichier `.bib`. Pour obtenir ce fichier, il est possible de
passer par Zotero et d'exporter une collection dans le format BibTex (ou Better
BibTex avec l'extension Zotero du même nom.)

Dans ce fichier (et dans Zotero), on trouve pour chaque référence une « clé de
citation » qui permet de l'identifier de manière unique. C'est cette clé que
l'on va insérer dans notre fichier markdown pour indiquer une citation. Elle
est insérée avec la syntaxe suivante : `[@clé-de-citation]`.

On peut encore ajouter à la fin de notre fichier un titre de deuxième niveau
avec le texte bibliographie, pour que `pandoc` puisse y insérer la
bibliographie.

Pour être en mesure de traiter ces informations, il faut utiliser l'option de
`--citeproc` intégrée dans `pandoc` :

```bash
pandoc --citeproc \
       --to=pdf --pdf-engine=xelatex \
       --bibliography=references.bib \
       --output fichier.pdf fichier.md
```

Dans l'exemple ci-dessus, nous voyons l'option `--citeproc` et l'option
`--bibliography=` qui indique où se trouve le fichier des références
bibliographiques. Par défaut le style est Chicago, de type auteur-date.

Pour aller plus loin, le mieux est de consulter la [documentation
officielle][16] de `pandoc.`
