web-dev-qa-db-fra.com

Pandoc: Quels sont les surligneurs de syntaxe disponibles?

Le point 18 de http://pandoc.org/demos.html#examples montre comment changer le surligneur de syntaxe utilisé en donnant un argument à --highlight-style. Par exemple:

pandoc code.text -s --highlight-style pygments -o example18a.html
pandoc code.text -s --highlight-style kate -o example18b.html
pandoc code.text -s --highlight-style monochrome -o example18c.html
pandoc code.text -s --highlight-style espresso -o example18d.html
pandoc code.text -s --highlight-style haddock -o example18e.html
pandoc code.text -s --highlight-style tango -o example18f.html
pandoc code.text -s --highlight-style zenburn -o example18g.html

Je me demande si ce sont les seules combinaisons de couleurs disponibles. Sinon, comment puis-je charger un surligneur de syntaxe différent? Puis-je définir le mien?

35
user1002119

Le Pandoc README dit :

--highlight-style=STYLE|FILE

Spécifie le style de coloration à utiliser dans le code source en surbrillance. Les options sont pygments (par défaut), kate, monochrome, breezeDark, espresso, zenburn, haddock et tango. Pour plus d'informations sur la mise en évidence de la syntaxe dans pandoc, voir Mise en évidence de la syntaxe , ci-dessous. Voir également --list-highlight-styles.

Au lieu d'un nom de style [~ # ~] [~ # ~] , un fichier JSON avec l'extension .theme peut être fourni. Il sera analysé comme un thème de mise en évidence de la syntaxe KDE et (s'il est valide) utilisé comme style de mise en évidence. Pour voir un exemple de thème pouvant être modifié, pandoc --print-default-data-file default.theme.

La bibliothèque lucarne (dans les anciennes versions highlighting-kate ) est utilisée pour la surbrillance. Si vous n'aimez aucun des schémas de couleurs fournis, vous pouvez soit:

  • Spécifiez un .theme fichier comme mentionné ci-dessus,
  • lors de l'exportation au format HTML, <span> des balises sont générées que vous pouvez styliser avec votre CSS personnalisé, ou
  • lors de l'exportation vers LaTeX/PDF, vous devez utiliser un Pandoc LaTeX modèle personnalisé et remplacer le $highlighting-macros$ séparez vos définitions de couleurs personnalisées, comme décrit dans ce problème .
17
mb21

Si votre pandoc --version indique une version de 1.15.1 (à partir du 15 octobre 2015) ou plus récent, vous pouvez vérifier si le --bash-completion Le paramètre vous permet d'obtenir une liste complète des styles de surbrillance intégrés disponibles.

Courir

pandoc --bash-completion

Si cela fonctionne, vous verrez beaucoup de sortie. Et cela sera utile bien au-delà de la question initiale ci-dessus ...

Si --bash-completion fonctionne, puis placez cette ligne vers la fin de votre ${HOME}/.bashrc fichier (sous Mac OS X ou Linux - ne fonctionne pas encore sous Windows):

eval "$(pandoc --bash-completion)"

Une fois que vous ouvrez un nouveau terminal, vous pouvez utiliser la commande pandoc avec "tabulation":

pandoc --h[tab]

donnera

--help     --highlight-style  --html-q-tags

pandoc --hi[tab]

donnera

pandoc --highlight-style

Réponse à la question d'origine:

Frappez maintenant le [tab] touchez une fois de plus, et vous verrez

espresso   haddock   kate   monochrome  pygments    tango    zenburn

C'est la liste de tous les surligneurs de syntaxe disponibles. Pour raccourcir la priorité, vous pouvez également taper

pandoc --hi[tab][tab]

pour obtenir le même résultat.

Utilité de la complétion de l'onglet de Pandoc au-delà de la question d'origine:

L'achèvement de l'onglet bash de Pandoc fonctionne également pour tous les autres commutateurs de ligne de commande:

pandoc -h[tab]

donne ceci - une liste de tous les paramètres de ligne de commande possibles:

Display all 108 possibilities? (y or n)
--ascii                    --indented-code-classes    --template
--asciimathml              --jsmath                   --title-prefix
--atx-headers              --katex                    --to
--base-header-level        --katex-stylesheet         --toc
--bash-completion          --latex-engine             --toc-depth
--biblatex                 --latex-engine-opt         --trace
--bibliography             --latexmathml              --track-changes
--chapters                 --listings                 --variable
--citation-abbreviations   --mathjax                  --verbose
--columns                  --mathml                   --version
--csl                      --metadata                 --webtex
--css                      --mimetex                  --wrap
--data-dir                 --natbib                   --write
--default-image-extension  --no-highlight             -A
--dpi                      --no-tex-ligatures         -B
--dump-args                --no-wrap                  -D
--email-obfuscation        --normalize                -F
--epub-chapter-level       --number-offset            -H
--epub-cover-image         --number-sections          -M
--epub-embed-font          --old-dashes               -N
--epub-metadata            --output                   -R
--epub-stylesheet          --parse-raw                -S
--extract-media            --preserve-tabs            -T
--file-scope               --print-default-data-file  -V
--filter                   --print-default-template   -c
--from                     --read                     -f
--gladtex                  --reference-docx           -h
--help                     --reference-links          -i
--highlight-style          --reference-odt            -m
--html-q-tags              --section-divs             -o
--id-prefix                --self-contained           -p
--ignore-args              --slide-level              -r
--include-after-body       --smart                    -s
--include-before-body      --standalone               -t
--include-in-header        --tab-stop                 -v
--incremental              --table-of-contents        -w

Un cas d'utilisation intéressant pour la complétion de l'onglet de Pandoc est le suivant:

pandoc --print-default-d[tab][tab]

donne la liste de sortie d'achèvement pour pandoc --print-default-data-file. Cette liste vous donne un aperçu uniq des fichiers de données que votre instance de Pandoc chargera lors de son travail. Par exemple, vous pouvez rechercher un détail du style de sortie ODT (fichier texte OpenDocument) par défaut de Pandoc comme ceci:

pandoc --print-default-data-file odt/content.xml \
 | tr " " "\n" \
 | tr "<" "\n" \
 | grep --color "style"
22
Kurt Pfeifle

Depuis pandoc 2.0.5 , vous pouvez également utiliser --print-highlight-style pour sortir un fichier theme et le modifier.

Pour moi, la meilleure façon d'utiliser cette option est de

  1. Choisissez un style disponible agréable

  2. Sortir son fichier theme

  3. Modifiez le fichier theme

  4. Utilise le!

1. Styles disponibles

Choisissez votre style, parmi ceux déjà existants:

breezedark

monochrome

kate

zenburn

espresso

haddock

tango

2. Sortez son fichier theme

Une fois que vous avez décidé quel style était le plus proche de vos besoins, vous pouvez sortir son fichier theme, en utilisant (par exemple pour pygments, le style par défaut):

pandoc --print-highlight-style pygments

afin que vous puissiez stocker ce style dans un fichier, en utilisant, par exemple,

pandoc --print-highlight-style pygments > my_style.theme

3. Modifiez le fichier

À l'aide du guide Skylighting JSON Themes , modifiez le fichier en fonction de vos besoins/goûts.

4. Utilisez le fichier

Dans le bon dossier, utilisez simplement

pandoc my_file.md --highlight-style my_style.theme -o doc.html
17
Clément

Si vous utilisez Pandoc version 1.18 (sortie en octobre 2016) ou une version ultérieure, une nouvelle réponse est possible:

  pandoc --list-highlight-languages

et

  pandoc --list-highlight-styles

vous donnera toutes les informations que vous demandiez.

D'autres nouveaux paramètres d'information en ligne de commande ajoutés à la v1.18 sont:

  pandoc --list-input-formats
  pandoc --list-output-formats
  pandoc --list-extensions
12
Kurt Pfeifle