Page
Library
Module
Module type
Parameter
Class
Class type
Source
This library is meant to help creating filters for pandoc which is tool to convert between textual formats, notably markdown and LaTeX. It is vaguely inspired of the corresponding Haskell library.
Basically, a pandoc filter will
Yojson.Basic.from_channel
{.ocaml}Pandoc.of_json
{.ocaml}Pandoc.map
{.ocaml} function which recursively maps functions on various elements,Pandoc.of_json
{.ocaml},Yojson.Basic.to_string
{.ocaml}.Once you have build your filter (say, myfilter
) you can use it to transform pandoc documents while they are being processed by using the --filter
commandline argument. For instance:
pandoc --filter=myfilter file.md -o file.pdf
Some examples are provided in the examples directory for you convenience (or because I needed those).
pandoc-abbreviations
: adds non-breakable spaces after abbreviations (listed in abbreviations
file). Pandoc already does this natively, but it does not play well with other plugins.pandoc-crossref
: handles cross-references in LaTeX. It replaces references of the form #chap:bla
and #sec:bli
to \cref{chap:bla}
and ``cref{sec:bli}` respectively.pandoc-include
: includes other documents. It replaces
!include "file"
by the contents of the file file
and
```{.ocaml include="test.ml" from=2 to=5}
```
by the contents of the file test.ml
between lines 2 and 5 (negative values for to
are counted from the end of the file). Useful for including small code snippets.
pandoc-inspects
: acts as the identity plugin, but prints the JSON output given by pandoc on the standard error. Useful for debugging and adding missing features to the library.The code is simple and stable enough for me but some features are missing. Feel free to fill bug reports or submit pull requests.