Markdown
Die Markdown-Unterstützung wird als experimentell angesehen, es wird Änderungen am Code geben. |
Sie können Text mit Markdown wiedergeben, einer gebräuchlichen »Auszeichnungssprache« für Text. Siehe zum Beispiel https://www.markdownguide.org, wenn Sie mehr über Markdown erfahren möchten.
Um Markdown in Ihrem Dokument zu verwenden, rufen Sie einfach die Funktion sd:markdown
auf:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Record element="data">
<PlaceObject>
<Textblock>
<Paragraph>
<Value select="sd:markdown(.)" />
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
mit dieser Datendatei:
<data>
# A title
* one
* anotherone
* three
</data>
erzeugt eine h1-Überschrift mit einer Aufzählungsliste:
Markdown Erweiterungen
Es gibt verschiedene Markdown-Erweiterungen, mit denen man Tabellen, Fußnoten und andere Spielereien erstellen kann. Einige davon werden vom speedata Publisher unterstützt. Die Implementierung wird zu gegebener Zeit verbessert werden. Einige der Erweiterungen aktivieren automatisch andere. Probieren Sie sie einfach aus.
Feature | Beschreibung | |
---|---|---|
gfm |
GitHub flavored Markdown | |
table |
Tabellen | |
strikethrough |
Helfer für durchstreichen mit ~ |
|
linkify |
Erzeuge automatische Links | |
definitionlist |
Definitionslisten | |
footnote |
Fußnoten | |
typographer |
Diese Erweiterung ersetzt Interpunktionen durch typografische Einheiten wie smartypants | |
highlight |
Quelltext farbig hervorheben |
Diese Optionen können gesetzt werden wie folgt:
<Options markdown-extensions="highlight,table" />
Sie können den Markierungsstil auch mit dem Präfix hlstyle_
auswählen, zum Beispiel
<Options markdown-extensions="highlight,hlstyle_tango" />
Die Liste der verfügbaren Stile ist unter https://github.com/alecthomas/chroma/tree/master/styles zu finden.
Man kann auch Optionen für die Umwandlung mit dem Präfix hloption_
setzen. Derzeit wird nur hloption_withclasses
unterstützt, das dazu führt, das Syntaxhervorhebung mit CSS-Klassen anstelle von <span>…</span>
erzeugt wird.
Ein speedata Publisher quine mit Markdown
Dieser Abschnitt darf nicht zu ernst genommen werden… Mit Markdown ist es nun leicht möglich, ein layout.xml
quine zu erstellen.
Wenn sie das folgende Layout mit sp --dummy
durchlaufen lassen, erzeugt es ein PDF mit »sich selbst« als Eingabe:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Options markdown-extensions="highlight,hlstyle_tango" />
<Record element="data">
<SetVariable
variable="raw"
select="unparsed-text('layout.xml')" />
<SetVariable
variable="fenced"
select="concat('```xml
', $raw ,'
```'))"/>
<PlaceObject>
<Textblock>
<Paragraph>
<Value select="sd:markdown($fenced)" />
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
Die Erklärung ist einfach. Mit unparsed-text()
wird die layout.xml
geladen, anschließend mit ``` (drei Backticks) und Zeilenumbruch umrandet und als Markdown ausgegeben. Die drei Backticks bedeuten, dass der Inhalt nicht interpretiert sondern nur ausgegeben wird (mit allen Leerzeichen wie in der Eingabe selber).