Lesedauer ~15:10 Min.

Version 4.2.1 • Stand: 01.11.2022, 16:45 Uhr

©2020 Norbert Simon

OffSiteEdit

Inhaltsverzeichnis

©2020-2022 Norbert Simon Produktseite

Wartung und Pflege datenbankfreier Webseiten direkt vom PC aus.

Diese Hilfe ist eine „Schnellnachschlagewerk“ und Sprungbrett zur ausführlichen Programmerläuterung auf der dafür eingerichteten Internet-Domäne. Dort kann eine Volltextsuche angeboten werden, die in einer lokalen HTML-Hilfe, abhängig vom jeweiligen Betriebssystem, nur eingeschränkt angeboten werden könnte.

Kapitel der Online-Hilfe

Besondere Themen in der Online-Hilfe

Parameter der Basiskonfiguration

Änderungen der Konfiguration erfordern einem Neustart: Einstellungen-→Konfiguration aktualisieren.

Mit einem Texteditor manuell einstellbar sind:

EintragFunktion
[Path] → htmltemplateStandardvorlage für den HTML-Export (ohne Yaml-Header)
[Path] → templateStandardpfad für Layout-Dateien für Dateien ohne Projekt-Verknüpfung
[Path] → backupsAllgemeiner Pfad für Backups
[path] → dobackup1 = Es werden Backups angelegt, 0 = keine Backups
[path] → phpDer Pfad zum „www“-Verzeichnis eines lokalen Webservers, der Installationsstandard von XAMPP lautet c:\xampp\htdocs
[search] → …Menüeinträge und Links für Online-Werkzeuge, s. „search“

Die Pfade htmltemplate, template, backups sind die „Projektkonfiguration für projektlose Dateien“.

Textbausteine

Änderungen der Textbausteine erfordern für die Verwendung einem Neustart: EinstellungenKonfiguration aktualisieren

Für wiederkehrende Elemente können Textbausteine in einer Liste definiert werden:

[Suchkürzel::]Textbaustein…

Textbausteine müssen ohne Umbruch einzeilig definiert werden. Nachfolgende Steuerzeichen werden vor dem Einfügung ersetzt:

Steuerzeichenwird ersetzt durch
::Trennt eine „Suchhilfe“ vom Textbaustein: „Alles dahinter“ wird eingefügt.
|Das „Pipe“-Zeichen markiert Zeilen-/Absatzumbrüche
§Ein Paragraph-Zeichen markiert die Position des Cursors.
§…§Zwei Paragraph-Zeichen wählen Text im Baustein aus, der mit „lostippen“ überschrieben wird.
@@@Fügt den aktuellen Inhalt der Zwischenablage ein
&#dDer aktuelle Tag, zweistellig
&#mDer aktuelle Monat, zweistellig
&#yDas aktuelle Jahr, vierstellig
&#hDie aktuelle Stunde, zweistellig, 0 - 24
&#nDie aktuelle Minute, zweistellig
&#sDie aktuelle Sekunde, zweistellig

Projekt-Parameter

Einige vorgegebenen Yaml-Einträge dienen der Projektsteuerung. Sie geben Speicherorte der Dateien, sowie Verarbeitungskonfigurationen vor.

Der „Minimal-Header“
Project: Projektname
in: [pfad/]Datei.[md|txt|…]
media: [pfad]

Darüber hinaus gibt es weitere optional nutzbare. Nachfolgend die vollständige Übersicht. „Optionalen“ Werten ist das Kommentarzeichen ?? vorangestellt:

VariableFunktion
projectDer Ordnername für ein Projekt im Editor-Verzeichnis UND einer Projektkonfiguration, auf die nachfolgende Einträge aus dem Yaml-Header zugreifen.
inDer Speicherort und Name der Datei, der für den Editortext vorgeschlagen wird. Der Name kann eine relative Pfadergänzung enthalten. Wird kein Dateityp angegeben, wird automatisch der Default verwendet (s. „Set“-Parameter“ )
??outDer Pfad und Dateiname für den Export. Der Name kann eine relative Pfadergänzung enthalten.
Fehlt dieser Eintrag, wird ein relativer in-Pfad zum vorgegebenen Pfad der Konfiguration mit dem eingestellten Dateityp (s. „Set“-Parameter“)
??langDieser Eintrag erzeugt automatisch das „Sprachverzeichnis“, das dem in bzw. out-Pfad vorangestellt wird. Intern wird er wie !Sprachkürzel zur Vorlagensteuerung verwendet (s. Yaml-Header )
??layoutEine „Format-Datei“ für die Ausgabe.
Ohne Layout-Datei wird der Editor-Text als HTML-Rumpf (ohne HTML-Seitenstruktur) erzeugt.
??draftErmöglicht die Umleitung der Ausgabe in ein Testverzeichnis sowohl lokal als auch auf dem Server.
??titleKein „echter“ Parameter, doch fehlt „title“, verweigern einige für OSE geschriebene PHP-Scripte den Dienst.
mediaLegt den Zielpfad für Medien-Dateien fest, die in diese Datei importiert werden (Drag & Drop oder Menübefehl). Ein hier angegebener relativer Pfad ergänzt den Basispfad für Medien, in den sie beim Einfügen in den Text automatisch kopiert werden.
Beim Einfügen ohne media-Angabe werden Medien — nach einem Hinweis mit Abbruchmöglichkeit — in den Standardpfad kopiert.
??mediaEin auskommentierter Medienpfad deaktiviert den FTP-Upload für verknüpfte Medien. Beim Einfügen von Medien wird er dennoch verwendet.
??uploadDieser Yaml-Eintrag ermöglicht das Hochladen einzelner Dateien oder ganzer Verzeichnisse unabhängig vom Verknüpfungen in der HTML-Datei, s. Dateien hochladen.
Ausschließlich Upload darf mehrfach im Yaml-Header vorkommen.
??deleteDieser Schalter ermöglicht das Löschen von Dateien auf dem Server. Die Funktionalität hängt von weiteren Schaltern ab, s. Parameter media.

Aus der (ggf. generischen) Yaml-Variablen out (inkl. evtl. Sprachpfad) wird die Editor-Variable filewithoutext generiert. Sie enthält den Ausgabepfad samt Dateinamen ohne Datei-Endung.

Für die generische Webseiten-Erzeugung werden „Text-Dateien“ im UTF81 Format mit der Endung .md erwartet (anpassbar, s. Set-Parameter). Die vorgegebenen Pfadstrukturen werden gegebenenfalls automatisch erzeugt.

Projekt-Backups

Es gibt kein Backup-Limit oder automatisches „aufräumen“: Backup-Verzeichnisse werden manuell mit dem Explorer gepflegt.

Projekte

Eine Webseite besteht üblicherweise aus mehreren Seiten, die über einen längeren Zeitraum gepflegt werden, weshalb OSE Webseiten als „Projekt“ behandelt.

Im Menü Projekte werden alle Projekte mit einer Projektkonfiguration im Unterverzeichnis „Projekte“ aufgelistet. Die Einträge haben abhängig von Einträgen im Yaml-Header der Arbeitsdatei unterschiedliche Funktionen:

Datei im Editor hatFunktion
keinen Yaml-HeaderYaml-Header aus der Konfiguration einfügen
den Yaml-Header des gewählten ProjektsProjektkonfiguration öffnen
den Yaml-Header eines anderen ProjektsProjekt wechseln

Modul-Verzeichnis(se) öffnen

Das globale Modul-Verzeichnis im Programmverzeichnis ist für alle Projekte das Selbe und deshalb Bestandteil aller Projekte. Das Verzeichnis öffnet im Explorer.

Änderungen eines Moduls gelten sofort für allen Seiten die es verwenden und nach der Änderung exportiert werden.

Neue Projektkonfiguration

Die Projekt-Konfiguration ist Programmseitig unverschlüsselt. Zum Schutz möglicherweise sensibler Daten müssen geeignete Datenschutz-Maßnahmen getroffen werden.

Für die Projektorganisation sind Konfigurationsdateien erforderlich. Diese müssen im Projektverzeichnis von OSE liegen. Darin definierte Pfade werden den Pfaden der Projektdateien vorangestellt.

EintragFunktion
[Set]Gruppe Projekt-Einstellungen
backup1 : beim Laden von Dateien werden Backups des Editor-Inhalts angelegt (default), 0: keine Backups
autoopenNach dem manuellen Export wird dieser direkt angezeigt
stdinErmöglicht die Definition einer beliebigen Default-Editor-Extension für Dateien ohne Endung.
stdoutErmöglicht die Definition einer beliebigen Default-Export-Endung für Dateien ohne Endung.
environmentEs wird eine aktive Umgebung, z.B. für PHP, vorausgesetzt
[header]**Gruppe Header**
Project=…↓ Der Yaml-Header-Standard für neue Dateien
in=…↓ und dem Abgleich mit bestehenden
out=…↓ Die Einträge erfolgen wie im Yaml-Header,
media=…↓ statt : als Trennstelle muss ein = verwendet werden.
↓ Es wird ein frei bearbeitbares Grundgerüst generiert.
↓ Datumsvariablen (s. Textbausteine) werden ersetzt
↓ Mit dem Eintrag #in# kann der Eingabecursor bei neuen Dateien/Dateiheadern festgelegt werden.
[Path]Gruppe Projektpfade
inBasis-Pfad zu den Quelldateien (Markdown)
outBasis-Pfad für den generierten lokalen Export
mediaBasis-Pfad für im Editor eingefügte Medien-Dateien
layoutBasis-Pfad zu den Layout-Dateien des Projekts
  backups  Basis-Pfad für die beim Öffnen von Dateien automatisch angelegten Backups
[ftp]Serverkonfiguration für Upload
userFTP-Benutzername
passPasswort des FTP-Benutzers
hostder FTP-Host (typischerweise ohne ftp://)
rootDer Basispfad des Projekts, ohne Angabe ist das /
timeoutoptional: Legt die Dauer fest, in der eine Verbindung zustande kommen muss. Vorgabe sind 5 Sekunden. Bei langsamen Verbindungen kann der Wert nach Bedarf erhöht, bei schnellen ggf. auch verkürzt werden (ganzzahlig Millisekunden angeben 10s = 10000)
xchangeLege den relativen Pfad zur root für die Datensynchronisation fest.
uploadLegt fest, welche referenzierten, relativ verknüpften Medien (src="…", href="…" ohne ://) automatisch mit hochgeladen werden. Die Dateiendungen in der Liste müssen mit einem . beginnen.
[pack]Konfiguration der Archivierung
type1 = Standardzip; 0 = Stark schützbares ZIP, inkompatibel zu den meisten Standard-Programmen (kein Entpacken möglich)
passPasswort für Archive
[styles]Optionale Gruppe für Wrapper-Definitionen.
Stilvorlagen für Pandoc-Blöcke, die mit einer Beschreibung versehen werden können.

Drag & Drop

Diese Funktion erfordert eine Lizenz.

Der Editor akzeptiert „TXT“ und „MD“-Dateien als neue Arbeitsdatei oder Mediendateien gemäß Projektkonfiguration. Von der vorhandenen Datei wird konfigurationsabhängig ein Backup angelegt. Mediendateien werden in das für die Arbeitsdatei gültige Medienverzeichnis kopiert, der dazugehörende Pfad an der aktuellen Curorposition eingefügt.

Ist keine Projektdatei vorgegeben, wird der absolute Dateipfad eingefügt. In diesem Fall findet keine Kontrolle bzgl. des Dateityps statt.

Markdown

Es können und müssen keine Einstellungen vorgenommen werden.

Konvertierungsreihenfolge

  1. Einlesen des Yaml-Headers und puffern der Parameter
  2. Laden der verfügbaren Module
  3. Konvertieren des Editor-Textes
    1. Doublettenprüfung und Entfernen des YAML-Headers (wenn vorhanden)
    2. Ersetzen der Meta-Zeichen
    3. Kommentare entfernen
    4. Fußnoten sammeln und aus dem Text entfernen
    5. Referenzen sammeln und aus dem Text entfernen
    6. Einzüge für Listen normalisieren (Tabs und Leerzeichen)
    7. HTML-Code erzeugen
      1. Definitionslisten
      2. Blockbehandlung für Code-Blöcke, Blockquote, Tabellen
      3. Überschriften
      4. Linien (<hr>)
      5. Listen (•, a, A, 1., i, I)
      6. Fett, Kursiv, Fett-kursiv, code, …
      7. Fußnotenverweise einfügen
      8. Referenzen einfügen
      9. Fußnotentexte anhängen
      10. Module ersetzen
  4. Laden der eingestellten Layoutdatei
  5. Zusammenfügen des Layouts des konvertierten Textes zu einer Ausgabedatei
  6. Ersetzen bzw. Entfernen der Yaml-Parameter/-Variablen
  7. Ersetzten bzw. Entfernen der Vorgangsvariablen

Die Reihenfolge kann insbesondere im Zusammenspiel mit Modulen relevant sein. Einerseits werden eventuell Moduleinträge (Sonderzeichen) verändert, andererseits können Yaml-Parameter in Modulen ebenso wie im Layout genutzt werden, während Module und Markdonw-Auszeichnungen nur im Markdown-Bereich ersetzt werden. Yaml-Parameter werden deshalb immer „wie sie sind“ übergeben.

Zeichenkonvertierung

Im Markdown muss keine Rücksicht auf nachgelagerte Module genommen werden. Deshalb werden Zeichen »1:1« durchgereicht. Ersetzungen finden für diese „Meta-Zeichen“ statt, damit sich Sonderfälle lösen lassen:

WasWofürErsetzungAnmerkung
\>>>„größer“ umschifft ggf. HTML-Konflikte
\<<&lgt;„kleiner“ umschifft ggf. HTML-Konflikte
&#shy;(-)(-)„Bedingter Trennstrich“, in der Ausgabe unsichtbar, nur wenn eine Trennung nötig ist (ALT173)
\&lbrack;[[nur in Sonderfällen erforderlich
\&nbsp;  „festes Leerzeichen“, Backslash + Leertaste ( ALT160)
\&#34;""Damit sind Hochkomma z.B. in Bild-Titeln möglich
\***„Sternchen“
\&nbsp;&nbsp;\„Backslash“
\^^^„Caret“
\___Unterstrich
\```Sonst wird es Code
\|||innerhalb von Tabellen
\]]]nur in Sonderfällen erforderlich
\0…\9₀…₉₀…₀Tiefgestellte Zahlen (s. HTML-Symbole

Sonderfunktion DIV

Beginnt ein Absatz mit mindestens zwei , wird der gesamte Absatz mit <DIV> ersetzt. Nachfolgender Text wird als Klasse interpretiert. Geschlossen wird der Block mit mindestens zwei am Anfang eines weiteren Absatzes. Dort folgender Text wird als Kommentar ignoriert.

­⟨⟨ einzug1
…
­⟩⟩ Hier endet der Einzug
→
<div class="einzug1">
…
</div>

Für verschachtelte Konstruktionen können beliebig viele bzw. zur Visualisierung verwendet werden.

Sonderfunktion Pandoc DIV

Der Konverter Pandoc unterstützt das Einfügen von Blöcken mit einer anderen Notation, die aus Kompatibilitätsgründen ebenfalls unterstützt wird. Ein Block beginnt am Absatzanfang mit :::. Es können beliebig viele weitere Doppelpunkte verwendet und so ein Einzug bei Verschachtelungen dargestellt werden.

Es muss eine Klasse folgen, ansonsten wird ein </DIV> (Block schließt) erzeugt. Es findet keine Validierung statt, ob noch ein Block offen ist oder geschlossen wird, obwohl keiner offen war.

Einzüge sowie die Nummierierung von Listen können von der „Pandoc-Variante“ gestört werden. In diesem Fall schafft die „Klammervariante“ Abhilfe.

­::: Formatname
…
­:::::: Formatname
…
­:::
­:::

Im Gegensatz zur Lösung mit Klammern kann hier kein Hilfstext beim Schließen einer Struktur angegeben werden, da sich aufgrund der identischen Marke nur ohne nachfolgende Inforamtion das Schließen eines Abschnitts erkennen lässt. Im Gegensatz zur Klammer-Variante findet keine Hervorhebung es Blocks im Editor statt.

Sonderfunktion Notiz

Beginnt ein Absatz mit ?? wird er als „interner Kommentar“ angesehen und beim Export wie eine Leerzeile behandelt.

Blockquote

Die Blockstruktur lässt sich beliebig tief verschachteln. Dabei ist egal, ob vor oder zwischen den >-Symbolen Leerzeichen stehen (≠ Standard-Markdown). Innerhalb eines Blocks können alle nachfolgend beschriebenen Auszeichnungen verwendet werden.

pre

Codeblöcke folgen im Rang den Blockquotes. Sie können wahlweise mit dreifachem Akzent (```) oder dreifacher Tilde (~~~) eingeleitet werden. Sie müssen am Zeilenanfang bzw. direkt nach dem letzten Blockquote-Zeichen stehen und werden mit <pre><code> eingeschlossen. Optional kann eine Formatklasse angehängt werden: Alles im Absatz hinter ~ ≠ Whitespace.

Überschriften

Aus dem Text der Überschrift wird (für H1…H6) ein ID erzeugt. Die Erzeugung endet bei Zeichen, die keine gültige ID zur Folge hätten, d.h. einem Zeichen, dass für Links unzulässig ist.

Markdown erweiternde Auszeichnungen

WaswofürAnmerkung
°­°…°­°°­°klein°­°schreibenkleinschreiben
^…^^hoch^stellenhochstellen
~…~~tief~stellentiefstellen
~~…~~~~durch~~streichendurchstreichen
!­!…!­!!­!unter!­!streichenunterstreichen
=­=…=­==­=Achtung=­=Achtung

Bilder

   ![Ersatztext]⟨Link Titel⟩
   [Linktext]⟨Link Titel⟩

Hyperlinks werden in der aktuellen Seite geöffnet.

Referenzen

`[Linktext][referenz]`
…
`[referenz]: Link Titel`

~

Referenzen werden in einem neuen Fenster/Tab geöffnet.

Fußnoten

Fußnote[^ref]
…
[^ref]: …

Definitionslisten

Tabellen

Leerzeichen hinter dem letzten Tabellenelement führen zu einer „leeren Zelle“ am Ende in dieser Tabellenzeile.

Aufzählungen

Markdown unterstützt ungeordnete Listen (Zeile beginnt mit -,+ oder *) und geordnete, nummerierte Listen. OSE unterstützt darüber hinaus alpha- und römische Nummerierung. Bis auf die römische Nummerierung können geordnete Listen durch den verwendeten Startwert (mit bis zu drei Stellen) fortgesetzt werden.

Erste ZeichenAnmerkung
-, +, <em>ungeordnete Liste, </em> kann mit Textauszeichungen (kursiv, fett) kollidieren
1. … 999.Nummierierte Liste, optionaler Startwert bis 999.
A) … H), J) … Z)Alphanummerisch Großbuchstaben, Startwert bis ZZZ
a) … h), j) … z)Alphanummerisch Kleinbuchstaben, Startwert bis zzz
I) oder i)Römische Nummerierung, Kein freier Startwert möglich

Module

„Module“ sind „benannte Kurznotationen“, an die Werte übergeben werden können. Beim HTML-Export wird die Abkürzung durch einen damit definierten – beliebig komplexen – Code ersetzt. Innerhalb dieses Codes werden die in der Kurznotation übergebenen Werte ersetzt. Für die Ersetzung gibt es unterschiedliche Strategien, die den Einsatz von Modulen flexibel machen.

Grundstruktur
 [modulname] oder [modulname wert "wert" …]

Für den Aufruf von Modulen gelten diese Bedingungen:

Zur Einhaltung dieser Konvention werden aus den Parameter-Strings von Modulen alle Mehrfach- Leerzeichen entfernt.

Bitte beachten:

Module können keine Module im Aufruf enthalten. „Verschachtelte“ Modulaufrufe führen zu einem Parser-Fehler.

Layoutdatei(en)

Es handelt sich um „entkernte“ HTML/PHP-Dateien, die mit Variablen aus dem Yaml-Header ergänzt werden. Der in HTML transferierte Markdown-Text wird für die Variable %­%%content%­%% eingefügt.

  • Es findet keine Syntax- oder Funktionsprüfung statt.
  • Es findet keine Prüfung auf Existenz verwendeter Include-, CSS-, oder sonstiger verknüpften Daten statt.

Maßgeblich ist die Funktionalität im Rahmen der Webseite.

Lizenzabhängige Funktionen

Für die nachfolgenden Funktionen von OSE ist eine Lizenz erforderlich:

Medien-Unterstützung:

Drag&Drop oder Einfügen von Media-Daten inklusive korrektem Pfad im Dokument und Kopieren der Daten in die Projekt-Struktur

FTP-Funktionen

Upload des Dokuments und verknüpfte Medien aus dem Editor in die Server-Struktur per Knopfdruck

„Alles speichern“

Speichern der Datei, Erzeugen des Exports und Upload der Daten auf den Server „in einem Zug“

Archiv-Funktionen

Ein- und Auspacken von (optional) verschlüsselten Arbeitsarchiven, sowie Upload/Download dieser Archive zur Synchronisation der Arbeitsdaten über mehrere Arbeitsplätze.

1Dateien für Webserver (PHP, HTML, CSS,…) sollten grundsätzlich ohne Boom-Flag sein. Das ist häufig ein Grund für vielfältige Probleme, die aufwändig diesem Detail zugeordnet werden können.