Platzhalterinhalt definieren

Erstellt am 13.02.2024 Lesedauer 1 - 2 Min.

Postprozessor-Funktion

Platzhalter eröffnen außergewönliche Möglichkeiten. Damit lässt sich z.B. problemlos mehrzeiliger Code oder Text in ein Modul übertragen oder ein Aufzählungspunkt mit mehreren Absätzen erzeugen.

Platzhalter werden ohne Rücksicht auf Strukturen, überall im exportierten Code ersetzt.

Es findet keine Kontrolle statt, ob das Ergebnis darstellbar ist.

  • Es ist keine „Verschachtelung“ von Platzhaltern möglich.
  • Doubletten einer „define“-Zuordnung werden verworfen, es gilt die vom Textanfang betrachtet erste.
  • Der Inhalt der Definition wird vor der Einsetzung mit den Regeln des Markdown-Übersetzers übersetzt.

    Deshalb wird der Inhalt der Definition wie „normales“ Markdown behandelt, d. h. es kann – abhängig von der Verwendung – uneingeschränkt Markdown, Programmcode, …, verwendet werden.

  • Grundsätzlich kann eine Definition an beliebiger Stelle erfolgen, sogar innerhalb eines Absatzes. Wie sinnvoll (und nachvollziehbar) das ist, liegt im Ermessen des Verwenders.
  • Wird eine Definition innerhalb eines Absatzes beschrieben, enthält sie keine Strukturmerkmale (Absatz, Abschnitt).
  • Erfolgt eine Definition in mehreren Absätzen, werden diese als Absätze behandelt, die gesamte Definition mit <DIV>…</DIV> umschlossen.

Definition

$$$ define zuordnung :
Markdown-Abschnitt
$$$
Zuordnung

Eindeutiger Funktionsname, der für die Erkennung der Einfügeposition verwendet wird.

Markdown-Abschnitt

Der Inhalt der Definition wird als Markdown behandelt und vor der Entnahme mit den Regeln des Markdown-Übersetzers in HTML umgewandelt.

Beispiele

Definitionsvarianten

Beispieltext mit einer angehängten Absatzdefinition$$$ insert demo1 $$$.
 
­$$$ define demo1 : , die *wie sie ist*, ohne *Struktur*merkmale eingefügt wird. $$$
 
Beispieltext mit einer angehängten „Block'-Definition$$$ insert demo2 $$$
 
$$$ define demo2 :
, die als `<DIV>` umschlossen ist und zusätzlich jeder Absatz mit einem `<p>`.
Weshalb sich diese Variante beispielsweise vorzüglich dafür eignet, mehrere Absätze hinter einem Aufzählungspunkt zu versammeln.
­$$$
Ausgabe:

Beispieltext mit einer angehängten Absatzdefinition, die wie sie ist, ohne Strukturmerkmale eingefügt wird..

­

Beispieltext mit einer angehängten „Block“-Definition

, die als <DIV> umschlossen ist und zusätzlich jeder Absatz mit einem <p>.

Weshalb sich diese Variante beispielsweise vorzüglich dafür eignet, mehrere Absätze hinter einem Aufzählungspunkt zu versammeln.

Code-Übergabe

Wenn Code an ein Modul übergeben werden soll, lässt sich die Konvertierung des define-Bereichs mit Abschnittsmarkierungen verhindern:

<­?code
$$$ define zuordnung :
Hier steht das, **was 1:1** an ein Modul übergeben werden soll,
das – wenn das vom Modul verarbeitet werden kann, 
**beliebig viele Zeilen** enthalten darf.
$$$>

Die Code-Marken verhinder die Markdown-Übersetzung der Definition, die wird dennoch nach der Übersetzung entnommen und an die Stelle der Platzhalter mit der passenden Kennung gesetzt.

hier eingerahmt, damit die Seite „heil“ bleibt

Hier steht das, **was 1:1** an ein Modul übergeben werden soll,
das – wenn das vom Modul verarbeitet werden kann, 
**beliebig viele Zeilen** enthalten darf.

Der im Code umschlossene Markdown-Code wird ignoriert, der Text „genau so wie er ist“ übergeben.