wake-up-neo.com

Pandoc: Was sind die verfügbaren Syntax-Highlighter?

Punkt 18 von http://pandoc.org/demos.html#examples zeigt, wie Sie den verwendeten Syntax-Textmarker ändern, indem Sie --highlight-style Ein Argument geben. Beispielsweise:

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

Ich frage mich, ob dies die einzigen verfügbaren Farbschemata sind. Wenn nicht, wie kann ich einen anderen Syntax-Textmarker laden? Kann ich meine eigene definieren?

35
user1002119

Das Pandoc README sagt :

--highlight-style=STYLE|FILE

Gibt den Farbstil an, der im markierten Quellcode verwendet werden soll. Optionen sind pygments (Standardeinstellung), kate, monochrome, breezeDark, espresso, zenburn, haddock und tango. Weitere Informationen zur Syntaxhervorhebung in pandoc finden Sie unter Syntaxhervorhebung unten. Siehe auch --list-highlight-styles.

Anstelle eines [~ # ~] Stils [~ # ~] wird eine JSON-Datei mit der Erweiterung .theme kann geliefert werden. Dies wird als KDE-Syntax-Hervorhebungsschema analysiert und (falls gültig) als Hervorhebungsstil verwendet. Um ein Beispieldesign anzuzeigen, das geändert werden kann, pandoc --print-default-data-file default.theme.

Für die Hervorhebung wird die Bibliothek Oberlicht (in älteren Versionen Highlighting-Kate ) verwendet. Wenn Ihnen eines der angebotenen Farbschemata nicht gefällt, können Sie entweder:

  • Geben Sie ein .theme Datei wie oben erwähnt,
  • beim Exportieren in HTML wird <span> Tags werden generiert, die Sie mit Ihrem benutzerdefinierten CSS formatieren können, oder
  • beim Exportieren nach LaTeX/PDF müssen Sie ein benutzerdefiniertes Pandoc LaTeX Vorlage verwenden und das $highlighting-macros$ Teil Ihrer benutzerdefinierten Farbdefinitionen, wie in dieses Problem beschrieben.
17
mb21

Wenn Ihr pandoc --version Eine Veröffentlichung von 1.15.1 (Ab dem 15. Oktober 2015) oder einer neueren Version anzeigt, können Sie überprüfen, ob der Parameter --bash-completion Für Sie funktioniert, um eine vollständige Liste zu erhalten Verfügbare integrierte Hervorhebungsstile.

Lauf

pandoc --bash-completion

Wenn es funktioniert, sehen Sie viel Ausgabe. Und es wird weit über die ursprüngliche Frage hinaus nützlich sein ...

Wenn --bash-completion Funktioniert, setzen Sie diese Zeile gegen Ende Ihrer ${HOME}/.bashrc - Datei (unter Mac OS X oder Linux - funktioniert unter Windows noch nicht):

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

Sobald Sie ein neues Terminal öffnen, können Sie den Befehl pandoc mit "tab completion" verwenden:

pandoc --h[tab]

wird nachgeben

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

pandoc --hi[tab]

wird nachgeben

pandoc --highlight-style

Antwort auf die ursprüngliche Frage:

Drücken Sie nun noch einmal die Taste [tab] Und Sie werden sehen

espresso   haddock   kate   monochrome  pygments    tango    zenburn

Dies ist die Liste aller verfügbaren Syntax-Highlighter. Um die Prozedur zu verkürzen, können Sie auch eingeben

pandoc --hi[tab][tab]

um das gleiche Ergebnis zu erzielen.

Nützlichkeit der Tab-Vervollständigung von Pandoc über die ursprüngliche Frage hinaus:

Die Bash-Tab-Vervollständigung von Pandoc funktioniert auch für alle anderen Befehlszeilenoptionen:

pandoc -h[tab]

ergibt dies - eine Liste aller möglichen Kommandozeilenparameter:

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

Ein interessanter Anwendungsfall für die Vervollständigung von Pandocs Registerkarten ist folgender:

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

gibt die Ausgabeliste der Vervollständigung für pandoc --print-default-data-file an. Diese Liste gibt Ihnen einen einzigartigen Einblick, welche Datendateien Ihre Instanz von Pandoc lädt, wenn sie ihre Arbeit erledigt. Sie könnten beispielsweise ein Detail des Standard-ODT-Ausgabestils (OpenDocument-Textdatei) von Pandoc wie folgt untersuchen:

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

Seit pandoc 2.0.5 können Sie auch --print-highlight-style, um eine theme -Datei auszugeben und zu bearbeiten.

Für mich ist der beste Weg, diese Option zu nutzen, zu

  1. Wählen Sie einen angenehmen verfügbaren Stil

  2. Die theme -Datei ausgeben

  3. Bearbeiten Sie die Datei theme

  4. Benutze es!

1. Verfügbare Stile

Wählen Sie Ihren Stil aus:

breezedark

monochrome

kate

zenburn

espresso

haddock

tango

2. Geben Sie die Datei theme aus

Sobald Sie entschieden haben, welcher Stil Ihren Anforderungen am nächsten kommt, können Sie seine theme -Datei ausgeben, indem Sie (zum Beispiel für pygments, den Standardstil) verwenden:

pandoc --print-highlight-style pygments

damit Sie diesen Stil in einer Datei speichern können, z.

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

3. Bearbeiten Sie die Datei

Bearbeiten Sie die Datei anhand der Anleitung Skylighting JSON Themes nach Bedarf/Geschmack.

4. Verwenden Sie die Datei

Im richtigen Ordner einfach benutzen

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

Wenn Sie Pandoc Version 1.18 (veröffentlicht im Oktober 2016) oder höher verwenden, ist eine neue Antwort möglich:

  pandoc --list-highlight-languages

und

  pandoc --list-highlight-styles

gibt Ihnen alle Informationen, die Sie gefragt haben.

Weitere neue informative Befehlszeilenparameter, die zu Version 1.18 hinzugefügt wurden, sind:

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