Kann Pandoc beliebigen Elementen beliebige HTML-Attribute hinzufügen?

8

So können Codeblöcke HTML-Attribute mit der Erweiterung fenced_code_blocks definieren:

%Vor%

Ist es möglich, die obige Syntax in gewisser Weise für normale Textblöcke zu verwenden? Zum Beispiel möchte ich den folgenden Markdown-Text konvertieren:

%Vor%

in etwas wie das:

%Vor%

Wenn es keine solche Unterstützung in Pandoc selbst gibt, wäre es dann möglich, einen benutzerdefinierten Schreiber in Lua zu erstellen?

Bearbeiten: Betrachten Sie die sample.lua benutzerdefinierte Writer, weiß jemand, was die "Attributtabelle" in Zeile 35 ist? Und wie gibt man diese Attribute an bestimmte Pandoc-Elemente weiter? Auch die Funktionalität, nach der ich oben suche, ist der % sehr ähnlich. co_de% Erweiterung, außer es würde für alle Elemente funktionieren, nicht nur für Header.

    
mart1n 25.11.2013, 18:37
quelle

2 Antworten

2

Dies ist sehr machbar in kramdown , welches die folgenden Eingaben konvertiert:

%Vor%

bis

%Vor%

Weitere Informationen finden Sie im Attributlisten-Definitionsabschnitt der Syntax .

    
Kyle Barbour 09.03.2014, 17:55
quelle
0

Pandocs Filter ermöglichen Ihnen, auf der internen Darstellung des Dokuments von Pandoc zu arbeiten. Es ist möglich, eine Filterkette zu verwenden, die verschiedene Transformationen durchführt. Ich werde zwei illustrative Beispiele von Filtern teilen, die helfen sollten.

Markdown Code Blöcke

Code-Blöcke in Pandoc sind normalerweise dazu gedacht, Quellcode-Listings aus Programmiersprachen einzubetten, aber hier versuchen wir, den Body zu extrahieren und ihn als Markdown zu interpretieren. Anstatt Klassen aus Ihrem Eingabedokument wie text und quote zu verwenden, verwenden Sie eine generische as-markdown -Klasse. Pandoc generiert automatisch die passenden Tags.

%Vor%

Um sicherzustellen, dass Codeblöcke ohne die as-markdown -Klasse wie üblich interpretiert werden, habe ich einen haskell -Code-Block eingefügt. Hier ist die Filterimplementierung:

%Vor%

Running pandoc --filter markdown-code-block.hs index.md erzeugt:

%Vor%

Fast da! Der einzige Teil, der nicht ganz richtig ist, sind die HTML-Attribute.

Benutzerdefinierte HTML-Attribute aus Codeblockmetadaten

Der folgende Filter soll Ihnen den Einstieg erleichtern. Es konvertiert Codeblöcke mit der Klasse web-script in ein HTML <script> -Tag, wenn das Zielformat html oder html5 ist.

%Vor%

Der data-id=test-123 in Ihrem letzten Block würde in den Schlüssel / Wert-Paaren _namevals mit dem Typ [(String, String)] durchkommen. Sie müssen lediglich script umgestalten, um beliebige Tags und Schlüssel / Wert-Paare für HTML-Attribute zu unterstützen, und angeben, welche HTML basierend auf diesen Eingaben generiert werden soll. Um die native Darstellung des Eingabedokuments anzuzeigen, führen Sie pandoc -t native index.md .

aus %Vor%

Wenn Sie mit einem dieser Beispiele spielen möchten, finden Sie beide in meinem pandoc-experiments Repository.

    
Jake Mitchell 19.02.2017 23:10
quelle

Tags und Links