Funktionen

Aktualisiert am 17.11.2024 Lesedauer 2 - 3 Min.

Dieses Untermenü stellt Nachbearbeitungen in zwei Export-Stufen von  OSE  bereit, die weit über das Ersetzen oder Entfernen der Editor-Variablen und Yaml-Variablen hinaus gehen.

Funktionen teilen sich in Präprozessor- und Postprozessor-Funktionen. Sie werden beim Erzeugen der Ausgabe angewandt.

  1. Präprozessor-Funktionen verändern die Markdownquelle, bevor sie an den Markdown-Konverter übergeben wird.
  2. Darin werden Module und Yaml-Variablen ersetzt.
  3. Der Markdown-Konvertert arbeitet nach der HTML-Übersetzung die Postprozessor-Funktionen ab.

Ob valider Code ausgegeben wird, hängt von der Sorgfalt bei der Verwendung der Module, Variablen und Funktionen ab. Es finden keinerlei Kontrollen des Ergebnisses statt.

Allgemeine Regeln

$$$ Funktionsname [Zuordnung] [option][option] [:] [Wertzuweisung] $$$
  • Falsch geschriebene, unbekannte oder ungenutzt gebliebene Funktionen werden vollständig ($$$…$$$) und ohne Rückmeldung entfernt.
  • Bei Funktionsname und Zuordnung ist A=a, es wird kein Unterschied in der Schreibweise gemacht.
  • Funktionsname und Zuordung müssen aus Buchstaben, Zahlen und ausgewählten Zeichen ≠ „:“„ “ (Leerzeichen) bestehen.
  • Der Funktionsname ist unveränderlich von  OSE  vorgegeben
  • Die Zuordnung kann – abhängig vom Funktion – entfallen oder eine eingeschränkte Schreibweise haben (s. Inhaltsverzeichnis).
  • Die Wertzuweisung darf beliebig lang sein und beliebige Zeichen enthalten. Hier können einige Zeichen eine besondere Eigenschaft für die Funktion haben (s. Wahl)
  • Funktionsname, Zuordnung und Wertzuweisung werden von den Funktionsbegrenzungen oder mindestens einem Leerzeichen oder dem Doppelpunkt voneinander getrennt. Zur besseren Leesbarkeit dürfen weitere Leerzeichen verwendet werden.

Ineinander verschachtelte Funktionen erzeugen eine unvorhersehbare Ausgabe.

Präprozessor

  • Der Yaml-Header importierter Markdown-Dateien wird ignoriert.
  • Markdown-Funktionen sollten vorzugsweise freistehend in einem Absatz verwendet werden.
  • Eingefügte Dateien werden grundsätzlich in einen Abschnitt (<div>) gesetzt, weshalb eine Einfügung innerhalb eines Absatzes dessen Struktur zerstört.
  • Es findet keine Prüfung statt, ob die eingefügten Dateien tatsächlich Markdown enthalten.
  • Es findet keinerlei Interpretation beim Einfügen des Dateiinhaltes statt.
  • Das eingefügte Markdown wird bearbeitet, als stünde es in der Quelldatei, von der aus das eingefügte Markdown referenziert wurde.
  • Präprozessor-Module können ausschließlich in der Markdown-Quelle verwendet werden.
Bitte beachten:
  • Yaml-Variablen werden mit den Werten der aktuellen Quelldatei ersetzt.
  • Relative Referenzen gelten relativ zur aktuellen Quelldatei.

Präprozessor-Funktionen werden vor der Bearbeitung des Markdown-Codes in eine im Hintergrund temporär erzeugte Arbeitsdatei eingefügt.

Das erfolgt überall in der Quelle – einschließlich Kommentarzeilen.

„Auskommentieren“ von Präprozessor-Funktionen führt zu unvorhersehbaren Ergebnissen.

Die „Lesezeit-Variablen“ werden nach dem Präprozessor auf Grundlage der ggf. temporär ergänzten Markdown-Quelle berechnet. Diese Ermittlung erfolgt unabhängig vom Status des „Worte zählen“-Schalters, weshalb die Variablen bei der Ausgabe immer einen gültigen Wert für die aus dem Markdown erzeugte Ausgabe haben.

Diese kann je nach eingefügten Ergänzungen erheblich von der ermittelten Dauer im Editor abweichen. Das ist kein Fehler, sondern entspricht dem Zweck der Variablen.

Postprozessor

  • Einige Funktionen können über mehrere Absätze hinweg eingesetzt werden. Es hängt vom Einzelfall ab, ob das erforderlich oder sinnvoll ist.
  • Innerhalb der Funktionsbegrenzungen $$$ werden Funktionen vom Markdown-Parster als Markdown angesehen, Auszeichnungen entsprechend ersetzt.
    Das ermöglicht Strukturen, die mit Standard-Markdown unmöglich sind oder die Integration von HTML-Code erfordern würden.
  • Postprozessor-Funktionen können in allen von  OSE  verarbeiteten Teilen verwendet werden. Sie werden in der erzeugte HTML-Zieldatei ersetzt.
    Deshalb können Postprozessor-Funktion auch in der Layout-Datei verwendet werden.