Lesedauer 31 - 32 Min.

Version 2.0.0 • Stand: 14.04.2021, 19:45 Uhr

©2020 Norbert Simon

OffSiteLogo OffSiteEditdit

©2020-2021 Norbert Simon Produktseite

Wartung und Pflege datenbankfreier Webseiten direkt vom PC aus.

Die Hilfe ist thematisch strukturiert. Für die Suche nach Menü-Einträgen die Suchfunktion des anzeigenden Browsers bemühen.
Bei aktivem Textfenster kann mit Tab / SHIFTTAB in den Überschriften navigiert werden.


Der Editor

Der Editor ist bewusst auf die für die projektorientierte Bearbeitung einzelner Webseiten reduziert, die damit erstellt und gepflegt werden. Ein besonderes Augenmerk wurde dabei auf die Unterbrechbarkeit einer Seitenerstellung gelegt, wie beispielsweise bei einem Blogbeitrag. Die Daten können dafür bequem zwischen mehreren Arbeitsplätzen ausgetauscht werden. Allerdings ist »OffSiteEdit« aufgrund der speziellen Projekt-Mechanismen für die Quellcode-Bearbeitung ungeeignet.

Deshalb ist für die Projektarbeit zwingend ein Quellcode-Editor erforderlich, wie beispielsweise PSPaD oder Noepad++, die hier lediglich exemplarisch genannt sind.

Der Editor ist eine „Yaml-basierte Kommando-Zentrale mit GUI“: Alles die einzelne Webseite betreffende wird in einer Markdown-Datei mit Yaml-Header gebündelt, für das Text-Erfassen gibt es einige Hilfen, wenn alles erledigt ist, kann das Ergebnis direkt vom PC aus publiziert werden.

Das grundlegende Konzept ist textbasiert. Es gibt nur einige wenige „Konfigurationsdialoge“ für Einstellungen, die – rein textbasiert – fehleranfällig wären (Schrift- und Farbeinstellung). Alle weiteren Einstellungen werden über Konfigurationsdateien erledigt. Hierbei unterstützt der Editor die Einstellung mit der Erzeugung von Basis-Konfigurationen.

Unterschied zu anderen CMS-Systemen

Ausgehende von der Markdown-Datei und einer Projektkonfiguration wird aus einer festgelegten Layout-Datei und der Markdown-Datei eine Ausgabe-Datei generiert, die direkt auf den Server geladen werden kann. Speichern der Markdown-Datei, das Erzeugen der Ausgabe-Datei und das Hochladen auf den Server kann in einem Zug erfolgen (s. FTP-Upload).

Lokal liegen daher die Vorstufen der Datei und eine Serverkopie vor. Diese Kopie kann in einer Testumgebung (z.B. XAMPP) liegen, was eine lokale Überprüfung des Ergebnisses ermöglicht und wenn gut befunden, direkt auf den Webserver geladen werden. Im Gegensatz zu Web-basierten CMS-Systemen lässt sich so für alle sichtbares „trial & error“ auf dem Server vermeiden. Gegenüber „Website-Generatoren“ hat das Verfahren den Charme, dass die übrigen Webseite unangetastet bleiben; es wird lediglich die bearbeitete Datei hinzugefügt oder geändert.

Grundlegende Bedienung

Der Editor ist vollständig mit Tastenbefehlen bedienbar. Für häufig benöitgte Funktionen gibt es Direkt-Shortcuts, die im Programm-Menü hinter dem Befehl aufgeführt sind. Ersatzweise kann mit der Alt-Taste die Menüsteuerung aktiviert werden.

Programmeinstellungen

Einstellungen→ …

Im Menü „Einstellungen“ werden die Parameter des Editors verwaltet. Neben der verwendeten Schriftart (Hintergrundinfo unter „Technisches“) sind das die Farben für die Textansicht, das generelle Erscheinungsbild und grundlegende Projekt-Funktionalitäten.

Farben

EinstellungenFarben…

Das Programm kann mit verschiedenen Themen individuell angepasst werden. Allerdings haben System-Themen keine konsistente Farb-Zuordnung für die Text-Farben. Bei der ersten Verwendung eines Themas müssen sie zugewiesen werden. Neben den Systemfarben kann

Die „Rand“-Farben sind Farbumschläge der Zeilennummerierung für den Count-Down.

Basiskonfiguration

EinstellungenBasisnfiguration…

Zusätzlich kann in diesem Menü die Basiskonfiguration in einem externen Texteditor geöffnet und angepasst werden. Ein Großteil der Einträge wird vom Editor automatisch beim Schließen des Programms gepflegt. „Wartbare“ Einträge sind:

AbschnittEintragFunktion
[Path]htmltemplateStandardvorlage für den Export (ohne Yaml-Header)
[Path]templateStandardpfad für Layout-Dateien
[Path]backupsAllgemeiner Pfad für Backups
[path]dobackup1 = Es werden Backups angelegt, 0 = keine Backups
[search](selbstredend)Pfade, an die ein Markiertes Wort zur Suche übergeben wird

Ausgehend vom Projektansatz des Editors sind diese Basispfade als „Not-Anker“ gedacht. Sie definieren die Vorgaben, wenn in der aktuell bearbeiteten Datei keine Projekt-Informationen hinterlegt sind. Es ist die Projektkonfiguration für „projektlose“ Dateien.

Die Basiskonfiguration wird beim ersten Programmstart automatisch mit Standardwerten angelegt. Bei Programm-Updates werden ggf. fehlende Einträge automatisch ergänzt.

Die Textbausteine

EinstellungenTextbausteine…

Textbausteine müssen ohne Umbruch einzeilig erfasst werden, doch es können Umbrüche damit erzeugt werden. Die nachfolgenden Steuerzeichen werden vor dem Einfügen entsprechend ersetzt:

SteuerzeichenErsetzt durch
|Das „Pipe“-Zeichen markiert Zeilenumbrüche
§Das Paragraph-Zeichen markiert die Position des Cursors.
Zwei davon wählen alles dazwischen aus, das mit der nächsten Eingabe überschrieben werden kann.
@@@Fügt den aktuellen Inhalt der Zwischenablage ein, z.B. eine URL.
&#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
::Trennt eine „Suchhilfe“ vom Einfügeteil ab: Alles bis zum ersten :: wird „abgeschnitten“, der Rest – mit den vorgenannt möglichen Ersetzungen – eingefügt.

Die Textbausteine orientiert sich an Eingaben links neben dem Cursor für die Vorauswahl von möglichen Einfügekandidaten. Beim ersten Aufruf wird in der Textbaustein-Datei ein (löschbarer) Mustereintrag zur Orientierung erzeugt.

Änderungen der Konfiguration oder Textbausteine erfordern einen Neustart.Der Menüeintrag „Konfiguration aktualisieren“ übernimmt das „zumachen, aufmachen“.
Hier wird – aus noch unklaren Gründen – manchmal die Lizenzdatei ignoriert. Sollte das eintreten: Das Programm schließen und „normal“ startn, behebt das.

Lieblingsworte

Farben verwenden

Der Schalter oben rechts färbt Worte aus der darunter befindliche Wortliste mit der „Textfarbe Wortliste“ ein. Das erfolgt unabhängig von der Schreibweise (groß/KLEIN). Verteilung und Häufigkeit dieser Worte wird sichtbar. Unerwünschte Worthäufungen lassen sich damit vermeiden.

Die Wortliste ist eine ewige Liste. Mit dem Tastenbefehl ALTL wir ein Wort am Cursor oder die aktuelle Auswahl in die Liste eingefügt. Die Pflege erfolgt durch hineingehen und bearbeiten. Beim Verlassen (mit ALTL zurück zur letzten Position) werden die Einträge in KAPITÄLCHEN gewandelt, die Liste alphabetisch sortiert, Dubletten entfernt.

Zählerei

Worte zählen

Ist diese Funktion rechts unter der Hervorheben-Liste deaktiviert, werden neben der Konkordanzliste („Top 300“-Worte im Text) weitere Aussagen zum Text deaktiviert. Das sind:

Die angezeigten Werte über dem Eingabefeld für den

Die Zählung einer Auswahl oder Differenz wird bis zur nächsten Textänderung nach dem Moduswechsel angezeigt bzw. zurückgesetzt. Mit dem Differenz-Schalter ∇ lässt sich z.B. „noch 100 Worte“, „40 Zeichen weniger“,…, bequem erreichen.

Die Wortzählung ist darüber hinaus Grundlage für die durchschnittliche Lesezeit. Deshalb werden …

… für den ganzen Text und bei der Differenz-Zählung ignoriert. Bei einer Auswahl wird diese „ungefiltert“ ausgewertet.

Yaml-Header

Drei Minus-Zeichen am Zeilenanfang der ersten Zeile markieren einen „Yaml-Header-Anfang“. Er endet (für »OffSiteEdit«) entweder mit dem nächsten Dreifach-Minus oder einer Leerzeile1. Hier können beliebige Parameter für die Layoutdatei oder Module definiert werden:

Parametername: Parameterwert ⟨beliebig lang, *kein* HTML-Code!, *kein* Umbruch⟩

Die Parameter werden gemäß dieser Regeln verarbeitet:

  1. *Groß/KLEIN in der Schreibweise der Parameter wird ignoriert.
  2. Lesezeichen am Anfang/Ende des Parameters werden entfernt.
  3. Die Parameter werden nach der Markdown-Konvertierung und Einbettung in die Formatdatei an allen Fundstellen ersetzt. So lassen sich im Ergebnis an beliebiger Stelle in der Ausgabe-Datei Parameter nutzen.
  4. Es findet keine Inhaltskontrolle statt: Ein „leerer“ Parameter erzeugt einen „Leer-Eintrag“. Dem sollte in Code-Teilen durch Sicherheitsabfragen Rechnung getragen werden.
  5. Parameter ohne Ersetzung werden aus dem Ergebnis entfernt. Aus "%­%­%abc%­%­%" wird "".
  6. Parameter ohne Ersetzung, die mit „!“ beginnen, löschen den gesamten Absatz. So lässt sich überflüssiger Code vermeiden. Diese Optionen sind kombinierbar:

Varianten für die Parameter-Verwendung

%­%­%!p1%­%­% Was passiert %­%­%p2%­%­%  mit dieser Zeile?
ParameterErgebnis
!p1:Frage:
p2:beim Ersetzen
»Frage: Was passiert beim Ersetzen mit dieser Zeile?«
!p1:
p2:beim Ersetzen
»Was passiert beim Ersetzen mit dieser Zeile?«
Ein leerer Eintrag wird genau so ausgegeben: Leer.
!p1:
p!2:beim Ersetzen
»Was passiert beim mit dieser Zeile?«
Fehlt ein Parameter (p2→p!2), wird der Parameter-Eintrag im Ergebnis entfernt.
!p!1:(egal)p2:(egal)»«
Fehlt ein „!-Parameter“ (!p1) wird der ganze Absatz, in dem er sich befindet, im Ergebnis entfernt.

Besondere Editor-Variablen

BearbeitenEditor-Variable → …

Folgende „Editor-Variablen“ werden durch den zum Exportzeitpunkt gültigen Wert vor der Markdown-Übersetzung ersetzt:

Editor-VariableFunktion
%­%­%READ%­%%Aktuell angezeigte Lesedauer gerundet: ≤ 1 oder m - n
%­%%DATE%­%%Aktuelles Datum (tt.mm.yyyy)
%­%%YEAR%­%%Aktuelles Jahr (yyyy)
%­%%SORTDATE%­%%„umgedrehtes“ Datum (yyyy-mm-dd) → sortierbar
%­%%TIME%­%%Aktuelle Zeit, minutengenau
%­%%CLEANTIME%­%%Aktuelle Zeit (hh:mm), auf Viertelstunden abgerundet
%­%%RAWTIME%­%%Datum des Computers als Double/Float-Zeitstempel
%-%%filewithoutext%—%%Der vollständige Pfad der erzeugten Datei (s. nächster Abschnitt)

Besondere Projekt-Variablen

Project: Projektname
in: [pfad/]Datei.md
out: [pfad/]Datei.html
media: [pfad]
Layout: [pfad/]Layout.html
VariableFunktion
projectDer Ordnername für ein Projekt im Editor-Verzeichnis ODER eine [Konfigurationsdatei[(#projektkonfiguration), auf die Einträge aus dem Yaml-Header zugreifen. Darin lassen sich die Wurzelverzeichnisse der nachfolgenden Variablen festlegen.
inDer Speicherort und Name der Datei, der beim Speichern des Editortextes vorgeschlagen wird. Der Name kann eine relative Pfadergänzung enthalten.
outDer Pfad und Dateiname für den Ergebnis-Export. Hier kann ebenfalls eine relative Pfadergänzung genutzt werden.
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.
Beim Einfügen ohne media-Angabe werden Medien — nach einem Hinweis mit Abbruchmöglichkeit — in den Standardpfad kopiert.
!mediaEin Ausrufezeichen vor dem Medienpfad deaktiviert ihn. Das verhindert den (erneuten) FTP-Upload für Medien.
layoutDie „Format-Datei“, in der das Markdown-Ergebnis aus dem Editor integriert wird. Ohne Layout-Datei entsteht eine reine Markdwon-Übersetzung des Textes ohne die Strukturen einer Webseite.

Die im Yaml-Header gewählten Pfadstrukturen werden gegebenenfalls automatisch erzeugt.

Aus der Variablen out wird die Variable filewithoutext generiert. Sie enthält den Ausgabepfad samt Dateinamen, jedoch ohne Datei-Endung. Damit lässt sich z.B. der „php“-Extender unterdrücken. Die Verwendung erfolgt analog zu den anderen Variablen.

Projektkonfiguration

ProjekteNeue Projektkonfiguration…

Für die Projektorganisation sollten Konfigurationsdateien erzeugt werden. Diese müssen im Projektverzeichnis von »OffSiteEdit« liegen (s. Projekt-Organisation). Darin definierte Pfade werden den Pfaden der Projektdateien vorangestellt, womit „absolute“ Pfade außerhalb des Projektverzeichnisses möglich werden. Pfade außerhalb des Projektverzeichnisses schränken allerdings die Portabilität von Projekten ein (womöglich „aus“).

EintragFunktion
[Set]Gruppe Projekt-Einstellungen
backup1 : beim Laden von Dateien werden Backups angelegt (default), 0: keine Backups
headerFür neue Dateien kann hier ein Standard-Yaml-Header hinterlegt 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
backupsBasis-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 /
xchangeLege den relativen Pfad für Arbeitsdaten-Backups und den Austausch fest. Er wird innerhalb der root erzeugt
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.

Beim Upload der Daten gibt [FTP] root den Basispfad für [path] out vor. Die Struktur auf dem Server stellt eine Kopie der lokalen Struktur dar. Deshalb muss der lokale Basis-Pfad für Medien innerhalb des out-Pfades liegen.

Der Menübefehl ProjekteNeue Projektkonfiguration… generiert standardmäßig ein Projektverzeichnis innerhalb des Programm-Verzeichnisses. Das ist ein funktionierender Vorschlag, der an die eigenen Anforderungen angepasst werden kann.

FTP-Upload

Diese Funktion erfordert eine Lizenz.

DateiFTP-Upload, DateiAlles speichern → FTP

Wenn beide Einträge im Yaml-Header vorkommen (media: + !media:) gewinnt !media. Sowohl der Medienimport als auch die FTP-Funktion weisen darauf hin.

Das dient vor allem als Hinweis: Wenn eine neue Mediendatei mit !media:-Einstllung eingefügt würde, gäbe es später keinen Upload…

Projekt-Organisation

Projekte → …

Nachdem mit ProjekteNeue Projektkonfiguration… eine Projektkonfiguration erzeugt wurde, erscheint sie unterhalb der Menüfunktion, wo bereits vorhandene Konfigurationen aufgelistet sind. Die Projekteinträge haben aus dem Programmablauf heraus unterschiedliche Funktionen:

FunktionVoraussetzung
Yaml-Header anlegenFehlt in der Arbeitsdatei der Yaml-Header, wird der in der Projektkonfiguration definierten vorangestellt.
Projektkonfiguration öffnenIn der Arbeitsdatei ist ein Yaml-Header der Projektdatei vorhanden
Projektpfad öffnenIn der Arbeitsdatei verweist der Yaml-Heaer auf ein anderes Projekt
Bitte beachten
  1. Die Konfigurationsdateien enthalten unverschlüsselte FTP-Zugangsdaten.
    Für den Schutz dieser Daten muss der Nutzer geeignete Maßnahmen ergreifen, z.B. Passwortgeschützte Verschlüsselung des Projekt-Verzeichnisses.
  2. Für »OffSiteEdit« muss (wahrscheinlich) eine Firewall-Ausnahmeregel definiert werden.
  3. Der FTP-Upload setzt eine Projektdatei voraus. Ausschließlich dort hinterlegte Zugangsdaten werden ausgewertet.
  4. Für „https:“/„FTPS“-Verbindungen sind die Programmbibliotheken libeay32.dll und ssleay32.dll erforderlich.

Die weiteren Funktionen des Menüs sind weitestgehend „selbstredend“:

Modul-Verzeichnis öffnen
Das für alle Projekte identische Modulverzeichnis wird mit dem Explorer göffnet.
Projektverzeichnis öffnen
Das Verzeichnis des aktuellen Projekts, definiert durch den Yaml-Eintrag der angezeigten Datei, wird geöffnet.
PHP-Pfad → out setzen
Wenn in der Basiskonfiguration im Abschnitt Path eine Definition php=Absoluter Pfad vorhanden ist, wird dieser Pfad als symbolischer Link für das aktuelle Projekt gesetzt. Ein möglicherweise bereits vorhandener Symlink wird vorher entfernt. So kann die PHP-Umgebung problemlos gewechselt werden, wenn diese wiederum auf den Pfad zeigt, der als Symlink gesetzt wird.

Arbeitsdaten synchonisieren

Diese Funktion erfordert eine Lizenz.

Die Synchronisation ermöglicht den Austausch der Arbeitsdaten über den eingestellten Backup-Pfad via FTP.

„In Arbeit“

Datei„In Arbeit“

Die gespeicherte Version der im Editor befindlichen Datei kann mit dieser Funktion „In Arbeit“ → FTP „eingepackt“ und in den Backup-Pfad des Projekts hochgeladen werden. Wenn die Datei lokal exportiert wurde (ohne FTP-Upload), werden verknüpfte Medien in der vorgefundenen Pfadstruktur mit eingepackt. Es können mehrere Dateien in den Backup-Pfad geladen werden. Sie werden mit einem vorangestellten wk- und ihrem Namen als ZIP-Datei abgelegt.

Die Funktion FTP → „In Arbeit“ kehrt den Vorgang um, erledigt das jedoch in einem Zug: Alle wk--Dateien werden in das lokale Projekt-Backup-Verzeichnis heruntergeladen und gemäß den hinterlegten Pfadangaben in die lokale Umgebung entpackt. Lokal werden nur (nach Zeitstempel) ältere Dateien als die im Archiv befindlichen überschrieben.

Einziges „Erkennungsmerkmal“ für die Funktion ist das vorangestellte wk-. Werden mehrere Projekte in einem Backup-Verzeichnis organisert, gibt das ein Problem… . Für jedes Projekt sollte deshalb zumindest ein dediziertes Unterverzeichnis verwendet werden.
Bei „absoluten“ Pfaden kann das „Auspacken“ scheitern.

Die letzte Funktion dieses Blocks, „In Arbeit“ aufräumen, löscht sowohl auf dem FTP-Server als auch lokal alle wk--Archive in den Backup-Verzeichnissesn.

Projekt

DateiProjekt

Alle „Arbeitsdateien“ können mit Projekt einpacken in ein lokales ZIP komprimiert werden. Hierbei wird neben dem in-Pfad zusätzlich der layout-Pfad und die Projektkonfigurationsdatei eingepackt und in den Backup-Pfad des Projekts abgelegt. Falls ein „Moduls-Status“ mitgesichert werden soll: Eine Kopie des Modul-Ordners in den Layout-Ordner legen….

Ein wiederholter Aufruf der Funktion aktualisiert ein vorhandenes Backup. Soll ein Zwischenstand dauerhaft gespeichert werden, kann das Backup nach einer Umbenennung im Verzeichnis verbleiben. Es wird beim nächsten Funktionsaufruf ein neues „Standardbackup“ erzeugt.

Projekt einpacken → FTP erzeugt ein aktuelles „Standardbackup“ und lädt es in den Backup-Pfad des Projekts auf den FTP-Server, FTP → Gepacktes Projekt „holt“ ein Standardbackup vom Server. Dafür wird ein vorhandenes lokales „Standardprojekt“ mit einem Zeitstempel („Z-yymmddhhnnss-Projektname.zip“) umbenannt. Falls das heruntergeladene Archiv beschädigt sein sollte,… .

Deshalb bietet die Operation Projekt auspacken einen Auswahldialog. Damit kann das Archiv entpackt werden, das gebraucht wird. Beim Auspacken werden nur (nach Zeitstempel) ältere Dateien überschrieben.

Zeitbedarf messen

Messen → …

Die Sanduhr ganz links zeigt „fix“ die Dauer der aktuellen Sitzung an (ab Programmstart).Rechts daneben kann unterhalb des „Stoppuhr“-Symbols eine Zeit-Vorgabe in Minuten eingestellt werden, die mit dem Knopf rechts daneben gestartet/gestoppt wird. Der aktuelle Stand wird mit einem „Status-Icon“ angezeigt. Zur Halbzeit ertönt ein (dezenter) Hinweiston, der Rand wird mit der „Halbzeit“-Farbe eingefärbt. Bei ca. 10% Restzeit, schaltet der Rand auf die „Endspurt“-Farbe, mit weiterem akustischen Hinweis. Ist die Zeit abgelaufen, wird die „Ende“-Farbe mit akustischem Signal aktiviert. Eine Überziehungsdauer wird als negativer Minutenwert angezeigt. Aus-/Ein-Schalten des Schreiblimits setzt den Count-Down fort, ggf. wird weiter „ins Minus“ gearbeitet.

Für einen Neustart muss der Count-Down ausgeschaltet und der Startwert aktiviert (und Bedarfsweise angepasst) werden (ins Feld und wieder hinaus).
Der Count-Down ist „in etwa“. Start/Stopp verwirft den Anteil einer aktuellen Minute. Die Funktion ist lediglich als Erinnerung an ein selbstgestecktes Zeit-Budget gedacht.

Speichern und Laden

OffSiteEdit speichert den aktuellen Text im Programmverzeichnis beim Fensterwechsel und Programm-Ende als Arbeitsdatei. Das ist fest vorgegeben, weshalb das Programm in einem beschreibbaren Ordner liegen muss. Dieser Ordner kann beliebig bewegt werden: Dort ist „alles erforderliche drin“.

Der automatisch gespeicherte Text ist dem mit Speichern unter… gespeichertem. Es sind zwei unabhängige Dateien: Die vom Editor automatisch gespeicherte ist die Arbeitsdatei des Editors, die mit Speichern unter… gespeicherte ist eine Projektdatei, die den Status zum Zeitpunkt des Speicherns hat. Alle weiteren Daten (Wortliste, Sprungmarken) gelten nur für die „Arbeitsdatei“ des OffSiteEditors.

Wann wird was gespeichert

Automatisch

Datei → Speichern unter…

DateiSpeichern untern…

Datei laden

DateiDatei laden…

Alles speichern

DateiAlles speichern → FTP

Dieser Befehl setzt einen Yaml-Header und eine Projektdatei voraus. Liegt Beides vor, wird die Dateiquelle (in:) gespeichert, die vorgegebene Exportdatei erzeugt (out:) und direkt via FTP hochgeladen. Das wird in einem Zug erledigt, es öffnen sich keine Dialoge, wie beim Aufruf der individuellen Funktion Speichern unter… und HTML exportieren…. Die dort jeweils geltenden Regeln werden berücksichtigt.

Automatisches Backup

Es gibt kein Limit oder „aufräumen“: Backups müssen im Explorer gepflegt werden.

Hunspell-Korrektur

Korrektur → …

Für diese Funktion ist die Bibliothek-Datei hinspellx86.dll, sowie das Verzeichnis dict im Programmverzeichnis mit entsprechenden Wörterbüchern erforderlich.

Im Sinne von „ablenkungsfreiem Schreiben“ gibt keine „Fehlermarkierungen“ im Text. Die Korrektur soll bewusst und willentlich erfolgen, deshalb können Vorschläge der Korrektur nur mit den bereitgestellten Befehlen gefunden und bearbeitet werden:

TastenbefehlFunktion
STRGNSucht ab der aktuellen Cursor-Position das nächste im Wörterbuch unbekannte Wort und markiert es. Ein erneuer Suchlauf beendet einen möglicherweise geöffneten Korrekturvorschlag.
STRGKKorrekturvorschläge öffnet dort eine Liste mit dem Wörterbuch bekannten Worten. Eine Auswahl wird Enter übernommen.
STRG MMerkt sich das markierte Wort im Wörterbuch. Es gibt keine Nachträgliche Korrekturmöglichkeit – es könnten lediglich „korrigierte“ Hunspell-Wörterbücher bestehende ersetzen.

Als Sprache ist „Deutsch“ voreingestellt, die im Haupt- und Eigenschaften-Menü („Rechtsklick“) geändert werden kann. Weitere Wörterbücher können beim Hunspell-Projekt herunter geladen werden. Diese müssen im Programmverzeichnis, im Ordner dict eingefügt sein, damit sie beim nächsten Programmstart zur Verfügung stehen.

Solide gepflegte Wörterbücher gibt es bei „Softmaker“. Diese müssen nach dem Herunterladen lediglich in ein zip umbenannt werden, damit sie — ausgepackt — genutzt werden können. Benötigt werden die aff- und dic-Dateien.

Suchen & Ersetzen

BearbeitenSuchen, BearbeitenErsetzen

Die Suche erfolgt wahlweise im »RegEX«-Modus«, voreingestellt ist „RegEx aus“.

Eine „lesbare“ Einführung gibt es im Artikel „Bis das Gehirn blutet: Der Regex-Guide von t3n“ oder als Kurzübersicht bei Autohotkey, Regeln entwickeln und Testen geht vorzüglich mit dem REGEXR.

Der Suchen-Ersetzen-Schalter „Ab Anfang“ ist beim Programmstart standardmäßig aktiviert, die übrigen standardmäßig „aus“.

Mit den Tastenbefehlen für Suchen/Ersetzen wird

Die Suchhistorie gilt nur für die jeweilige Sitzung. Sie geht mit Schließen des Programms verloren.

Querverweise

BearbeitenQuerverweis⟨e⟩…

Alle Überschriften des aktuellen Textes werden gelistet. Innerhalb der Liste gibt es mehrere Möglichkeiten:

Tab
Ohne Aktion wieder raus gehen und schließen (alternativ „irgendwo anders“ hinklicken)
Enter → Ein Eintrag ausgewählt
An die aktuelle Cursor-Position wird ein Querverweise auf die gewählte Überschrift in den Text eingefügt
Enter → Mehrere Einträge ausgewählt
Alle gewählten Einträge werden als Liste eingefügt (z.B. für ein Inhalts-/Teilinhaltsverzeichnis)
STRGEnter → Ein Eintrag ausgewählt
Zur Überschrift hingehen
ESC
Ist etwas ausgewählt, wird die Auswahl gelöscht, ohne Auswahl wird die Liste geschlossen

Alle Enter-Aktionen fügen vorher die Marke 0 an der aktuellen Cursor-Position ein. Wird dabei etwas eingefügt, steht der Cursor anschließend auf dieser Marke.

Seitenverweis

BearbeitenSeienverweis…

Für das Verknüpfen von Seiten innerhalb des Projekts kann mit dieser Funktion eine Datei ausgewählt werden, für die der Pfad relativ zur aktuellen Datei an der aktuellen Cursor-Position eingefügt wird.

Bilder/Medien einfügen

Diese Funktion erfordert eine Lizenz.

DateiDatei verknüpfen… oder Drag & Drop

Über einen Auswahldialog kann eine an einer beliebigen Stelle auf dem Rechner befindliche Mediendatei als datei-relativer Pfad eingefügt werden. Dafür wird das ausgewählte Bild in den im Yaml-Header angegebenen Medienpfad kopiert.

Datei als Mime einfügen

DateiDatei als Mime einfügen…

Es können Bilddateien Mime-codiert direkt in die Datei eingebettet werden. Diese Funktion ist für kleine Bilder gedacht, die auf diese Weise keinen Ladevorgang erfordern.

Für Hilfe-Dateien können Illustrationen eingebettet werden, die Bestandteil der HTML-Datei werden. Allerdings ist der Platzbedarf als Mime normalerweise deutlich größer, als es ein GIF, PNG, WEBP im Original ist.

Tastenbefehle

Der Editor unterstütz die „gebräuchlichen“ Tastenbefehle, die von Word & Co bekannt sind. Das Menü reagiert auf ALT → (dann) unterstrichener Buchstabe. Zum Verlassen des aktivierten Menüs muss ggf. mehrfach ESC gedrückt werden.

Nachfolgend die „Schnelltasten“ vieler Menü- und besonderer Befehle:

Absatzbefehle

BefehlFunktionAnmerkung
SHIFT ALT 8Zeilen sortieren A..ZMindestens zwei Zeilen müssen markiert sein, Dubletten werden entfernt, A=a
SHIFT ALT 9Zeilen sortieren Z..AMindestens zwei Zeilen müssen markiert sein, Dubletten werden entfernt, A=a
SHIFT ALT ↑ oder ↓Absatz hoch/runter kopierenCursorposition bzw. Block
SHIFT STRG ↑ oder ↓Absatz hoch/runter schiebenCursorposition bzw. Block
STRG ↑ oder ↓hoch/runter rollenCursor bleibt wo er ist
F11Umbruch an/ausUmbruch an der Fensterkante, alternativ im Kontextmenü, Setzt Marke 0
STRG YZeile löschenAktuelle Zeile
SHIFT STRG YBis Zeilenende löschenAktuelle Zeile

Blockbefehle

BefehlFunktionAnmerkung
STRG ALT AAuswahlmodus wechselnNormal → Spalte → Zeile →… , alternativ im Kontextmenü
STRG ALT Ualles GROSS (wenn möglich)Schreibweise für Wort unter dem Cursor oder alles im Block
STRG Ualles kleinSchreibweise für Wort unter dem Cursor oder alles im Block
STRG SHIFT UA ß B # C - Ö → aßb#c-öAlles klein ohne Leerzeichen
ALT SHIFT Ualles SubstantivierenSchreibweise für Wort unter dem Cursor oder alles im Block
ALT UÄn Dern → aenndern → KlemmbrettMarkierter Text wird „umlautfrei“ und „Linkfähig“ z.B. für einen Dateinamen, entspricht der Funktion für die ID-Bildung der Überschriften
STRG TBis Wortende LöschenCursorposition bzw. Block

Dateibefehle

BefehlFunktionAnmerkung
STRG OText öffnen/ersetzenErsetzt den aktuellen Text mit einem hinzu geladenen. Es werden nur UTF8-Codierte Dateien akzeptiert. möglicherweise gesetzte Sprungmarken gelöscht
STRG SSpeichern unterAktuellen Text in (beliebige) Datei speichern.Der Text im Editor wird weiterhin in der Standard-Datei gespeichert.
STRG EMedien einfügen/kopierenKopiert eine Mediendatei gemäß Header und erzeugt einen Pfad im Editor an der Cursor-Position.
SHIFT STRG EMedien Mime-codiert einbettenEinbettung einer Media-Datei als Mime-Typ.
F12Text → HTML exportierens.HTML-Export
SHIFT F12FTP-Datei des Exportss. FTP-Upload
SHIFT ALT F12Alles speichern (lokal, FTP)entspricht funktional der Tastenfolge STRGS,F12,SHIFTF12
F5Module-Verzeichnis öffnenÖffnet das Module-Verzeichnis im Explorer
F9„In Arbeit“ → FTPHochlagen der gespeicherten Arbeitsdaten als Backup
ALT F9FTP → „In Arbeit“Alle Arbeitsdateien vom FTP-Backup herunterladen und lokal entpacken
STRG ALT F9„In Arbeit“ aufräumenAlle „In Arbeit“-Projekt-Dateien (lokal & FTP) löschen

Korrektur

BefehlFunktionAnmerkung
STRG NNächster Fehlerschließt ggf. Wortliste
STRG KKorrekturvorschlägeerneute Auslösung schließt die Liste
STRG MWort in Wörterbuchdirekt, ohne Rückfrage!
STRG LLieblingswortmarkierter Text wird mitgenommen, in der Liste ausgelöst erfolgt Rücksprung in den Text
ALT WNächstes Wort länger als 11 ZeichenErleichtert die Suche nach manuellen „Umbruchskandidaten“ (ALT 173)
F6Rechtschreibung DudenOnline-Duden-Abfrage mit markiertem Wort
SHIFT F6Duden SprachwissenDuden-Sprachwissen-Abfrage mit markiertem Wort
F7WikipediaWikipedia-Suche mit markiertem Wort

Textbefehle

BefehlFunktionAnmerkung
ALT ↑ oder ↓Markdown Überschrift hoch/runterSprung zur nächsten Zeile mit Hash in Spalte 1
STRG GQuerverweiseSetzt ggf. Marke 0
SHIFT STRG BKlammerpaar findenCursor muss links neben der Klammer stehen
STRG 1…9Marke 0-9 anspringenn = [0..9] s. Hinweis Marke 0
STRG FSuchenmarkierter Text wird mitgenommen
F3 / EnterWeitersuchenFokus wird auf dem Suchen-Knopf gehalten
STRG HErsetzenmarkierter Text wird mitgenommen
ALT #Suche a<>A an/ausStandard: aus
ALT -Suche rückwärts an/ausStandard: aus
ALT XStandard/RegEx-Suche umschaltenStandard: RegEx aus
ALT +Ab Anfang suchen an/ausStandard: An
SHIFT STRG 1…9
ALT 1…9
Marke 1-9 setzen/löschenn = [1..9] erneute Auslösung auf der Marke löscht sie
STRG BMarke dynamisch setzen/löschenErzeugt die nächste freie Marke (1-9), löscht eine beliebige Marke an der Position
ALT STRG ← oder →Nächste Marke davor/danachSpringt zur nächsten Marke ab Cursor in die entsprechende Richtung
SHIFT ALT STRG BAlle Marken löschenEntfernt ohne Rückfrage alle Textmarken
STRG ALT ,Schrift 1pt kleinerSetzt Marke 0
STRG ALT .Schrift 1pt größerSetzt Marke 0
F10Schrift wählen/einstellenSetzt Marke 0
STRG F10Farben wählen/einstellenSetzt Marke 0
ALT FFarben verwendenStandard: an

Projektbefehle

BefehlFunktionAnmerkung
F5Modulverzeichnis öffnenÖffnet das für alle Projekte gültige Modulverzeichnis im Explorer.
F4Projektverzeichnis öffnenÖffnet das Projekte-Verzeichnis im Explorer
STRG F4Neue Projektverzeichnis anlegenErzeugt das Grundgrüst einer Konfiguration für ein neues Projekt.
SHIFT STRG F4PHP-Pfad → out setzenSetzt den PHP-Pfad auf das Projekt. Dafür muss diese in der Basiskonfiguration festgelegt sein und dem Standard-Webverzeichnis der PHP-Installation entsprechen. Bei XAMPP ist das z.B. typischerweise „htdocs“
SHIFT STRG SAktuelle Daten einpackenErzeugt im Backup-Pfad ein verschlüsseltes ZIP-Archiv, s. Projekt-Backups
STRG SHIFT OArbeitsbackup auspackenÖffnet ein verschlüsseltes Arbeitsdaten-Backup, s. Projekt-Backups
SHIFT ALT STRG F12FTP Uplad ArbeitsdatenDas Arbeitsdaten-Archiv wird aktualisiert und in den FTP-Upload-Pfad geladen, s. Projekt-Backups
STRG SHIFT ALT OFTP Download ArbeitsdatenArbeitsdaten-Archiv des aktuellen Projekts herunter laden, s. Projekt-Backups

Messen-Befehle

BefehlFunktionAnmerkung
ALT TTimer an / ausWenn an: ein Status-Icon, wenn aus: Stoppuhr
SHIFT ALT TTimer-Zeit einstellenStellt neu, wenn aus, bildet Differenz, wenn an, ±1 2
F2Differenz zählenSchalter ∇ an/aus, Taste angelehnt an „F2 → Bearbeiten“
ALT RWorte pro Minute einstellenDurchschnittliche Lesegeschwindigkeit ±10 2

Marke 0

Die Marke 0 wird vom Editor automatisch für die aktuelle Position gesetzt, wenn…

Das erlaubt den Rücksprung an die jeweilige Position, die durch die gewählte Aktion eventuell verschoben oder verlassen wurde. Das erfolgt in einigen Fällen automatisch, wenn z.B. die letzte Position durch veränderte Zeichengrößen oder Zeilenumbruch aus dem sichtbaren Bereich rutscht.

Das erneute Setzen einer Marke an der gleichen Stelle löscht sie. Werden wiederholt Funktionen mit Auswirkung auf die Marke 0 an der gleichen Cursor-Position ausgeführt, kann das zur Folge haben, dass keine Marke gesetzt ist.

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.


Ende Editor-Dokumentation


Markdown-Konvertierung

Die Übersetzung des Editor-Inhalts erfolgt mit den nachfolgenden Regeln. Sie folgen in weiten Teilen den mittlerweile gebräuchlichen Markdown-Standards, sind jedoch an einigen Stellen spezialisiert und erweitert. Das kann zu unerwarteten Ergebnissen führen, die anhand dieser Dokumentation alle behoben bzw. erklärt werden können.


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. Leerzeilen und Notizen entfernen
    4. Fußnoten sammeln und aus dem Text entfernen
    5. Referenzen sammeln und aus dem Text entfernen
    6. Module ersetzen
    7. Einzüge für Listen normalisieren (Tabs und Leerzeichen)
    8. HTML-Code erzeugen
      1. Blockbehandlung für Code-Blöcke, Kommentare, Notizen, Blockquote, Blockquote, Tabellen
      2. Überschriften
      3. Definitionen
      4. Linien (<hr>) → Theoretisch an jeder beliebigen Stelle, damit sie auch in Blöcken genutzt werden können
      5. Listen (•, a, A, 1., i, I), a,A,1 registrieren einen Startwert, römisch kann immer nur bei i/I anfangen, dehalb kann es a/A nicht.
      6. Fett, Kursiv, Fett-kursiv, code, …
      7. Fußnotenverweise im Text einfügen
      8. Referenzen im Text einfügen
      9. Fußnotentexte anhängen
  4. Laden der eingesellten Layoutdatei
  5. Zusammenfügen des layouts des konvertierten Textes zu einer Ausgabedatei
  6. Ersetzen bzw. Entfernen der Yaml-Parameter in der Ausgabedatei

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

Code-Blöcke, Kommentare, Notizen

Zeilenweise eingerahmter HTML-Kommentar oder PHP-Code wird „durchgereicht“:

<?php
// wird inklusive der Start- und Endmarke 1:1 übernommen
?>
<!--
Dito.
-->

Eventuell noch offene“ Strukturen (Tabellen, Blockquotes, Aufzählungen, …) werden vor dem Beginn dieser Strukturen geschlossen.

Innerhalb eines Absatzes werden Kommentare und PHP ebenfalls durchgereicht.

Werden mehrzeilige Kommentare/Codezeilen innerhalb eines Absatzes eingeleitet, unterliegt die darin eingeschlossenen Absätze der Markdown-Interpretation. Der Code wird dadurch (sehr wahrscheinlich) fehlerhaft!

Sonderfunktion Notiz

Beginnt ein Absatz mit ?? wird er als „interner Kommentar“ angesehen und beim Export wie eine Leerzeile behandelt (s. Absätze).

Absätze

Die „offiziellen“ fünf Leerzeichen als Ersatz für <br/> → „weicher Umbruch“ werden ignoriert: Das geht optisch unter, deshalb <br/> schreiben…5

Blockquote

Diese 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 hier nachfolgend beschriebenen Auszeichnungen verwendet werden6.

Damit das „optisch konsistent“ funktioniert, müssen entsprechende Stile definiert werden.


Das „Blockquote-Dilemma“

Es gibt keine Referenzierung in CSS auf das Eltern-Element. Über Folge-Definitionen wie z.B. :first-child lässt sich für mehrstufige Blockquotes schwer vorhersehen, was am Ende heraus kommt. Erwartbare Format-Kombinationen sollten daher explizit mit Stilvorlagen definiert sein. Ist es in der Formatvorlage berücksichtigt, lässt sich problemlos

  beispielsweise Code in eine Blockquote legen,
  was ziemlich cool aussieht…

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

­## Eine Ganz - besondere - Überschrift
             ↓ wird zu ↓
<h2 id="eine-ganz-besondere-ueberschrift" tabindex="0">Eine Ganz - besondere - Überschrift</h2>

Aus dem Text der Überschrift wird (für H1…H6) ein ID erzeugt, bei dem [ÄÖÜ,äöüß] mit [ae..ue,ss] ersetzt und alles ≠ [A..Z,a..z,-] ersatzlos entfernt und klein geschrieben wird. Zusätzlich erhalten alle Überschriften den „tabindex="0"“, was sie mit der TAB / SHIFTTAB „navigierbar“ macht.

Zum einfachen Verweisen auf Überschriften in dieser Form können sie im Editor wahlweise per Querverweis eingefügt werden, oder mit dem Tastenbefehl ALTU ein markierter Text in dieser konvertierten Form in die Zwischenablage kopiert werden.

Auszeichnungen

WaswofürAnmerkung
**…****Fett**Fett 10
__…____Fett__Fett 10
*…**kursiv*Kursiv 10
_…__kursiv_Kursiv 10
***…******kursiv-fett***kursiv-fett 10
___…______kursiv-fett___kursiv-fett 10
\`…\`\`Code\`Code, HTML-encodiert 9
˜…˜;˜tief˜tiefstellen
^…^^hoch^hochstellen
˜˜…˜˜˜durch˜durchstreichen
AchtungAchtung 8

Bilder

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

Referenzen

Im Text: [Linktext][referenz]

Referenz:

Ausgabe:

Eine „vergessene Referenz“ wird hervorgehoben: UNGÜLTIGE REFERENZ

Fußnoten

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

Eine „vergessene Fußnote“ wird hervorgehoben: UNGÜLTIGE FUSSNOTE

Definitionslisten

Vorschlag
: Aufzählen als einfache Liste
: Ggf. auch mehrzeilig
    ↓ wird zu ↓
<dt>Vorschlag</dt>
<dd>Aufzählen als einfache Liste</dd>
<dd>Ggf. auch mehrzeilig</dd>

Tabellen


| Kopf 1 | Kopf 2 | kopf 3 |{tabellenid}
| :--- | :---: | ---: |
| links | Mitte | rechts |
| Das ist ein Muster | Das ist ein Muster | Das ist ein Muster |

Kopf 1Kopf 2kopf 3
linksMitterechts
Das ist ein MusterDas ist ein MusterDas ist ein Muster

Das ganze in einer Blockquote:

> | Kopf 1 | Kopf 2 | kopf 3 |{tabellenid2}
> | :--- | :---: | ---: |
> | links | Mitte | rechts |
> | Das ist ein Muster  | Das ist ein Muster | Das ist ein Muster |

Kopf 1Kopf 2kopf 3
linksMitterechts
Das ist ein MusterDas ist ein MusterDas ist ein Muster

Aufzählungen

Erstes ZeichenAnmerkung
- oder +ungeordnete Liste
1…9…nNummierierte Liste, optionaler Startwert = erste Zahl
A…H,J…ZAlphanummerisch Großbuchstaben, Startwert = erster Buchstabe
a…h,j…zAlphanummerisch Kleinbuchstaben, Startwert = erster Buchstabe 12
I oder iRömische Nummerierung, Kein freier Startwert möglich
  1. ungeordnete Listen mit - oder +
  2. Der Zähler der Einzugsebene wird mit dem ersten Eintrag festgelegt
  3. Eine Zählung wird mit einer folgenden höheren Ebene zurückgesetzt
  4. Die Aufzählung kann an beliebiger Stelle starten, maßgeblich ist der tatsächliche Einzug vom Absatzanfang (als Leerzeichen,> zählt als Leerzeichen, Tab wird zu zwei davon) für die Nummerierungstiefe.

Module

ProjekteModule-Verzeichnis öffnen

[modulname parameter "parameter" …]

Mit der abgebildeten Syntax können beliebige Erweiterungen realisiert werden. Der „Modulblock“ wird durch einen Code-Block ersetzt, in dem die Parameter vor der Einfügung ersetzt werden. Diese Erweiterungen müssen

Ab der nächsten Zeile werden - die im Kopf definierten Variablennamen mit dem übergebenen Wert ersetzt, wenn sie in der Form %parameter% eingefügt wurden. Die Übergabe erfolgt Reihenfolge-abhängig. Variablen können Standardwerte haben, die allerdings weder Leerzeichen enthalten dürfen, noch durch Anführungsstriche geklammert werden können:

modulname vertikal=rechts horizontal=unten breite=45.23

Wenn für dieses Beispiel nur die Breite übergeben werden soll:

[modulname - - 20]

Von hinten können Parameter mit Vorgabe ausgelassen werden. Für ungültige oder „leere“ Parameter müssen (gegebenenfalls) im Modulcode Vorkehrungen getroffen werden.

Ein fehlendes Modul wird hervorgehoben: » UNGÜLTIGES MODUL «


Es findet keine Syntaxkontrolle des Ergebnisses statt.

Beispielmodul „img“

img href Titel=Keine Bildbeschreibung verfügbar ID=px css=right
<img id="%ID%" class="%css%" src="%href%" alt="%Titel%" title="%Titel%" />

Damit ein Bild mit Formatierung versehen werden kann, wird ein mit [img Bildpfad] übergebenes Bild ohne weitere Parameter so im HTML-Code eingefügt:

<img id="px" class="right" src="Bildpfad" alt="Keine Bildbeschreibun" title="Keine Bildbeschreibung" />

Die Worte im Vorgabewert für den Titel sind mit ALT0173=&­nbsp; getrennt – so werden soe als „ein Parameter“ erkannt. Der Vorschlaf für „ID“ kann kritisch werden, wenn mehrere Bilder mit gleicher ID eingefügt werden.

Die Parameter-Reihenfolge ist so gewählt, dass die notwendigen Eingaben am Anfang, die sinnvollen im Anschluss und die „optionalen“ am Ende stehen.

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.

Technisches

Editor und Schriften

Die Basis von »OffSiteEdit« ist das Paket SynEdit. Dessen Fokus ist Programmieren, weshalb nur „unproportionale“ Schriften verwendet werden können. Davon gibt es vergleichsweise wenig „gute“, typischerweise sind es Schreibmaschinen-Schriften.

Gut geeignet ist „Consolas“ (Windows Standardschrift) oder „Hack“, Fira Code, die trotz Unproportionalität angenehm lesbar sind. Ein (m.E.) noch angenehmeres Schriftbild hat Telder Mono, dieser Font ist allerdings kostenpflichtig und hat einen eingeschränkten Zeichenumfang.

Weitere unproportionale Schriften gibt es bei Google-Fonts. Qualität und Umfang der Fonts dort variiert stark, das muss fallweise ausprobiert werden.

Hunspell-Korrektur

Die Hunspell-Korrektur basiert auf dem SynEdit-Spell-Checker von Jürgen Rathlev.


1Standard sind drei Minus-Zeichen am Anfang und Ende. Das Interpretieren einer Leerzeile verhindert eine leere Ausgabe-Datei.  

2Versteckt den Eingabe-Cursor. Damit dieser sichtbar wird, entweder Zahlen tippen (bei unklarer Position) oder / wiederholt drücken, bis der Cursor angezeigt wird.  

3https://www.htmlsymbols.xyz/miscellaneous-symbols/subscript-and-superscript "HTML Symbols"  

4Das gilt für den HTML-Export mit OffSiteEdit. Andere Markdown-Interpreter/Parser verhalten sich womöglich anders.  

5Das schränkt die Portabilität des Markdown-Codes etwas ein. Mit Blick auf den primären Zweck des mit OffSiteEdit erzeugen Markdowns ist das vertretbar.  

6Das ist gemäß „Daring-Fireball“-Konvention, wird jedoch von wenigen Interpretern gemacht.  

8Das ist kein offizielles Markdown. Es wird das HTML5-Element <mark>…</mark> verwendet, das älteren Browsern unbekannt ist  

9Automatische Ersetzung von <,>,[,],(,) mit HTML-Encodierung innerhalb der <Code>-Auszeichnung.  

10Bei Auszeichnungsfehlern wird „der kleinste Nenner“ genommen, „unpaarige“ Sterne bleiben übrig. Falls ein Stern „überleben“ soll, muss er mit \* geschützt werden. Die „Unterstrich-Varianten“ werden unterstützt, allerdings werden sie von der Korrektur als „Zeichen“ interpretiert.  

11Wofür ist das gut? Technisch zum sortieren der Fußnoten. Ob es auch einen praktischen Wert hat, ist unklar. ;)  

12Wegen der Option „römisch“ kann I bzw. i kein Startwert sein.