pandoc-cl/README.md

107 lines
2.3 KiB
Markdown

# Pandoc Champs-Libres
Filtres et recommandations pour CL
## Metadatas
```yaml
# Inclut babel-french
# le paquet ajoute des espaces insécables, les filtres lua "format semi-column",
# "format-column" et "
# voir: http://lesfichesabebert.fr/latex/Fran%C3%A7ais.html
babel-main: french
```
## Filtres
### `boxes.lua`
Ajoute des boxes aux documents latex, en utilisant [awesomebox](https://ctan.org/pkg/awesomebox).
:warning: Nécessite le paquet CTAN correspondant, qui doit être installé sur le poste qui génère le pdf.
Boxes disponibles:
* note;
* tip;
* warning;
* caution;
* important;
* info (alias pour "note");
Usage:
```
::: { .tip }
Ceci est un truc (des trucs et astuces)
:::
```
### Traitement des solutions et exercices dans un pdf
A partir de ce texte:
```
<!-- la balise "title" est facultative" -->
::: { .exercice title="Titre de l'exercice" }
Description de l'exercice.
:::::: { .solution }
Solution de l'exercice
::::::
:::
```
Les scripts lua suivant vont:
* `remove-solutions.lua`: effacer la solution des exercices du document généré.
* `exercice-only.lua`: crée un document qui ne contiendra que les exercices dans le document. Si `remove-solutions` est également utilisé, alors les solutions seront également enlevées.
Si un titre est présent, alors un titre sera ajouté avant l'exercice.
### `timesheet.lua`
Extrait des timesheets d'un fichier markdown.
Usage:
En markdown, indiquer:
* une variable `timesheet`, qui indique le nom du fichier vers lequel exporter le contenu des timesheet;
* remplir les timesheet en csv, à l'intérieur du markdown. Pour chaque bloc de code concerné, indiquer une classe `.timesheet`
Exemple:
`````markdown
---
timesheet: /path/to/file.csv
---
```{.timesheet}
2020-12-15, CL, 1, test
```
`````
Execution:
```
pandoc --to markdown --lua-filter timesheet.lua fixtures/timesheet.md
```
Le fichier CSV sera enregistré à la place du fichier `/path/to/file.csv` (déterminé par la variable `timesheet` dans le front-matter du document).
Comme le fichier en sortie n'est pas utilisé, la sortie peut être re-dirigée vers `/dev/null`. Exemple chez JuFa depuis son fichier de TODO
```bash
#!/bin/bash
cat $TODO | pandoc --to json -o /dev/null --lua-filter /home/julien/dev/champs-libres/pandocCL/timesheet.lua
```