Ich fand schließlich einige Möglichkeiten, um die Aufgabe zu erledigen.
Der erste besteht darin, einen in Python geschriebenen Pandoc-Filter zu verwenden, der Include einschließt (er funktioniert genauso wie der in Pandoc-Dokumenten beschriebene Haskell-Filter). Jetzt ist es jedoch nur für die Verwendung mit enthaltenen Codeblöcken und nicht für allgemeine Inhaltselemente geeignet.
Der zweite Weg ist Inline - Perl - Skript zu verwenden, die auf den Build - Befehl vorangestellt werden (zuerst gesehen hier ). Dieser Weg hat sich als nützlich erwiesen und ich werde da einige Zeit bleiben, weil
- Ich bin nicht wirklich gut in Python und
- Dadurch können einige praktische Such- und Ersetzungsaufgaben erledigt werden, z. B. das Ersetzen von Teilen der Pfade der Bilder und der enthaltenen Dateien unterwegs.
Nachfolgend finden Sie den Befehl, den ich zum Erstellen einer Diashow im Reveal.js-Format verwende (obwohl dieser für das Hochladen in ein Webhosting vorgesehen war, gibt es andere Build-Varianten zum Erstellen einer eigenständigen Diashow-Datei mit der --self-contained
Option "Pandoc" oder beispielsweise "Sammeln" Sie alle Dateien, die sich auf die Diashow beziehen, in einem Ordner auf dem Desktop):
perl -ne 's/^#\\((.+)\\).*/`cat \"$\\$1\"`/e;s/\\((\\/_common\\/img)/(\\/presentations\\$1/g;print' $.md > result.md && pandoc -s -t revealjs --variable revealjs-url=http://www.site.com/presentations/_common/resources/revealjs --css=http://www.site.com/presentations/_common/resources/customcss_sky.css -H $/_common/resources/customhtml.html --highlight-style haddock result.md -o index.html && trash result.md
Dieser Befehl:
- Ersetzt alle # (Pfad / zu / Include) -Ausdrücke (Pfade müssen relativ zum Projektordner sein) durch Includes 'Inhalt;
- Ersetzt Pfade in Images (relativ zum Projektordner) durch Serverpfad zum Images-Verzeichnis.
- Gibt den resultierenden Markdown in eine temporäre Datei aus.
- Erstellt eine HTML-Diashow mit Pandoc.
- Verwischt die temporäre Datei mit dem
trash
Dienstprogramm von Ali Rantakari .