Ce n'est que par hasard que j'ai vu un exemple de document utilisant le toc: true
ligne dans leurs options d'en-tête YAML dans un fichier Markdown à traiter par Pandoc. Et les Pandoc docs n'ont pas mentionné cette option pour contrôler la table des matières en utilisant l'en-tête YAML. De plus, je vois des lignes quelque peu arbitraires dans des exemples de documents sur le même site Lisez-moi Pandoc.
Question principale:
Méta-question:
Remarque: mon flux de travail consiste à utiliser des fichiers Markdown (.md
) et les traiter via Pandoc pour obtenir des fichiers PDF. Il a une écriture manuscrite hiérarchiquement organisée avec des mathématiques. Tels que:
pandoc --standalone --smart \
--from=markdown+yaml_metadata_block \
--filter pandoc-citeproc \
my_markdown_file.md \
-o my_pdf_file.pdf
En fait, tout est contenu dans le manuel [~ # ~] de Pandoc [~ # ~] . Plus précisément:
Les modèles peuvent contenir des variables.
Par exemple, dans votre modèle HTML , vous pouvez écrire:
<title>$title$</title>
Ces variables de modèle peuvent être définies avec le --variable KEY[=VAL]
option.
Cependant, ils sont également définis à partir des métadonnées du document, qui à leur tour peuvent être définies à l'aide de:
--metadata KEY[=VAL]
option,--metadata-file
option.Le --variable
options insère des chaînes textuellement dans le modèle, tandis que --metadata
échappe les chaînes. Chaînes dans les métadonnées YAML (également lors de l'utilisation de --metadata-file
) sont interprétés comme des démarques, que vous pouvez contourner en utilisant les attributs génériques bruts de pandoc markdown . Par exemple pour la sortie HTML:
`<script>alert()</script>`{=html}
Voir ce tableau pour un schéma de --variable
contre --metadata
par rapport aux métadonnées YAML .
Pour répondre à votre question: le modèle détermine quels champs du bloc de métadonnées YAML ont un effet. Pour afficher, par exemple, le modèle latex, utilisez:
$ pandoc -D latex
Pour voir certaines variables définies automatiquement par pandoc, voir le manuel . Enfin, d'autres comportements de pandoc (tels que les extensions de démarques, etc.) ne peuvent être définis que comme options de ligne de commande (sauf lors de l'utilisation d'un script wrapper ).
Il s'agit d'une liste assez longue que vous pouvez parcourir en exécutant man pandoc
dans la ligne de commande et en accédant à la section "Variables définies par pandoc" sous "MODÈLES".
Le haut de la liste comprend les options suivantes parmi de nombreuses autres options:
Variables set by pandoc
Some variables are set automatically by pandoc. These vary somewhat depending on the
output format, but include metadata fields as well as the following:
title, author, date
allow identification of basic aspects of the document. Included in PDF metadata
through LaTeX and ConTeXt. These can be set through a pandoc title block, which
allows for multiple authors, or through a YAML metadata block:
---
author:
- Aristotle
- Peter Abelard
...
subtitle
document subtitle; also used as subject in PDF metadata
abstract
document summary, included in LaTeX, ConTeXt, AsciiDoc, and Word docx
keywords
list of keywords to be included in HTML, PDF, and AsciiDoc metadata; may be
repeated as for author, above
header-includes
contents specified by -H/--include-in-header (may have multiple values)
toc non-null value if --toc/--table-of-contents was specified
toc-title
title of table of contents (works only with EPUB and docx)
include-before
contents specified by -B/--include-before-body (may have multiple values)
include-after
contents specified by -A/--include-after-body (may have multiple values)
body body of document
`` ''
Vous pouvez voir la documentation de pandoc pour un indice: http://pandoc.org/getting-started.html
Mais pour savoir exactement où il sera utilisé, vous pouvez rechercher des sources de modèles de pandoc: https://github.com/jgm/pandoc-templates
Par exemple, pour la sortie html5, le fichier est: https://github.com/jgm/pandoc-templates/blob/master/default.html5
Voici une section du code:
<title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title>
Comme vous pouvez le voir, il a title-prefix
et pagetitle
.
Vous pouvez consulter la documentation, mais la meilleure solution consiste à rechercher le code source de la version que vous utilisez.