Filters are nice to modify the AST as its being created.

Can also use the this to consume the AST to validate some fact, there are nice parsers for the AST in a few scripty languages

Extract metadata

Can use a ‘dummy template’ file to extract the yaml frontmatter:

pandoc --from=markdown-smart --to=plain --template=meta.template

where meta.template is:


The pandoc command prints something like:

{"Blog":"true","Date":"2020/06/12","Title":"Personal Server Setup"}