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:

markdownsimple
Die vertikalen Abstände sind noch nicht optimal, dies wird in einer zukünftigen Version des speedata Publishers behoben.

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&#x0a;', $raw ,'&#x0a;```'))"/>
        <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).