Perspectivia

Einleitung. Die Grundlage herunterladen

english Hier wird beschrieben, wie man selbst eine Edition zur Veröffentlichung im Netz erstellt, und zwar mit einem möglichst geringen Aufwand an Voraussetzungen und Abhängigkeiten, ohne sich irgendeiner Möglichkeit zu begeben, die das Netz bietet. Fleiß und Genauigkeit braucht es freilich. Aber diese Tugenden sind in der Editionsphilologie ja ohnehin nötig; und nebenbei kann man sich einige Kenntnisse auf digitalem Terrain aneignen. Die Darstellung baut auf den Nutzerhinweisen auf und wird von den Entwicklerhinweisen fortgeführt.

Die Grundlage für die eigene Edition oder das eigene Portal von Editionen lässt sich herunterladen. Nach dem Herunterladen und Entpacken hat man einen Ordner mit folgenden Unterordnern:

Der Ordner code enthält den Code zum Betrieb des Systemes. Der Ordner content enthält die Datei glosses.xml und einen Ordner example. Die Datei enthält Übersetzungen und kann von Hand ergänzt werden, um eine mehrsprachige Benutzerführung zu ermöglichen. Der Ordner steht für eine Menge von einer oder mehreren Ausgaben, die vom selben System betrieben werden. Jede Ausgabe bekäme einen Unterordner. Der Unterordner goethe-schiller steht für eine Beispielausgabe. Solch ein Unterordner wird im Folgenden Editionsordner genannt. Der Unterordner portal dagegen steht für das Portal zu allen Editionen mit einer Überblicksseite, einer übergreifenden Suche und allgemeingültigen Hinweisen.

Die Editionsordner enthalten Dateien und Ordner:

Übrigens enthält der Ordner cssjs namentlich CSS-Dateien, das heißt Formatierungsanweisungen. Im vorliegenden System werden für alle Ausgaben einfachheits- und einheitlichkeitshalber dieselben CSS-Dateien verwendet. Für die Herausgebertätigkeit ist allenfalls die CSS-Datei cssjs/main.css von Belang; in der Regel kann man die gegebene Formatierung beibehalten.

Um eine neue Edition zu erstellen, ändert man die heruntergeladene Grundlage ab, insbesondere wird der Ordner goethe-schiller umbenannt, es werden in ihm Dateien geändert und vor allem neue Dateien abgelegt, die die Seiten der Edition enthalten. Wenn im Folgenden von Änderungen in Dateien die Rede ist, kann man diese Dateien einfach in einem beliebigen Texteditor öffnen und ändern. Wichtig ist, dass man in den Einstellungen dieses Editors die Zeichenkodierung auf UTF-8 stellt. UTF-8 ist der Standard in XML und im Netz, oft auch schon die Standardeinstellung in Editoren und vielerorts sonst. – Angenehm ist es, wenn der Editor ein Syntax-Highlighting für XML (oder HTML) bietet, das heißt, dass der Editor verschiedene Arten von Textbereichen in verschiedener Farbe anzeigt und zusammengehörige Klammern hervorhebt. Weiterhin angenehm ist, wenn der Editor überprüfen kann, ob das Dokument wohlgeformtes XML ist und wo gegebenenfalls ein Fehler sitzt. – Die für das Eingeben von Hand gegebenen Hinweise sind gerade auch jene, die man braucht, um schon vorhandene Daten mehr oder minder automatisch in die gewünschte Form zu konvertieren, z. B. wenn die Daten schon in einer Datenbank oder in Word-Dateien gespeichert gewesen sind.

Hat man seine Edition oder einen veröffentlichungsreifen Zwischenstand erstellt, ist die einfachste Art der Veröffentlichung, den Editionsordner in ein anderes Exemplar dieses Editionenportals zu kopieren, das auf einem Serverrechner läuft, also auf einem Rechner, der ans Netz angeschlossen und dort unter einer Anschrift erreichbar ist. Das heißt, man kann die Edition am eigenen Rechner erarbeiten, auf einen Serverrechner legen oder legen lassen, und die Edition ist dann im Netz sichtbar, nicht nur im Browser auf dem eigenen Rechner. Dazu im nächsten Abschnitt mehr.

Das Portal starten und die Beispieledition im Browser betrachten

english Man muss Python 3.4 oder höher installieren. Installationsdateien für alle gängigen Betriebssysteme kann man hier herunterladen; bei manchen Betriebssystemen empfiehlt sich auch eine Installation über die Paketverwaltung. Hat man die Installationsdatei gestartet (Doppelklick), kann man einfach so lange auf Weiter, OK oder Beenden klicken, bis die Installation fertig ist. Dann kann man das Portal starten: Im Ordner code/python/example die Datei start_on_localhost.py starten (Doppelklick) und warten, bis in dem daraufhin geöffneten Meldungsfenster als letzte Zeile steht: Hit Ctrl-C to quit.; dann einen Browser öffnen, ins Adressfeld http://localhost:8080/goethe-schiller eingeben und Enter drücken. Es erscheint die Startseite der Beispieledition, und die URL wird zu http://localhost:8080/de/goethe-schiller/start geändert:

http
heißt hypertext transfer protocol und gibt an, welchen Regeln (welchem Protokoll) der Datenaustausch zu folgen hat, nämlich denen zum Versand von Netzseiten.
localhost
ist die Anschrift, genauer gesagt die Domain des jeweiligen eigenen Rechners. localhost ist der eigene Rechner selbst. Hat man die Edition auf einen Serverrechner gelegt, steht stattdessen die Domain dieses Rechners, z. B. quellen-perspectivia.net. Auf einem solchen Serverrechner muss das Portal dann etwas anders gestartet worden sein; dazu hier. Die Herausgebertätigkeit ist von diesem Unterschied in der Domain nicht betroffen.
8080
ist einer der Eingangskanäle (ports) des Rechners. Hat man die Edition auf einen Serverrechner gelegt, ist es meist der Port 80, der ans Netz angeschlossen ist; und dieser Port ist impliziert, wenn die Portangabe in der URL fehlt. So sind z. B. http://quellen-perspectivia.net und http://quellen-perspectivia.net:80 gleichwertig.
de
ist die Sprachangabe in der üblichen Abkürzung. Das System setzt automatisch die default-Sprache ein, wenn eine URL keine Sprachangabe oder eine Sprache angibt, die von der Edition nicht vorgesehen ist. (Wie man die vorgesehenen Sprachen festlegt, wird unten beschrieben.)
goethe-schiller
ist der Name der Ausgabe und zugleich des Ordners, der der Ausgabe entspricht.
start
ist der Name der Netzseite und zugleich der Datei, die der Netzseite entspricht.

Um einen ersten Eindruck vom System und seinen Seiten zu bekommen, kann man einmal die Sprache in english wechseln und auf einige Menüpunkte klicken, dabei die Änderungen in der URL betrachten.

Wenn im Folgenden die Beispieledition geändert wird, können die Änderungen gleich im Browser betrachtet werden. In der Regel genügt es, nach einer Änderung die Seite im Browser mit Druck auf die Taste F5 zu aktualisieren. Manchmal aber muss das System neu gestartet werden: Das oben erwähnte Meldungsfenster ausklicken und damit das Programm beenden, die Datei portal.py erneut starten und wie oben warten; dann F5 drücken. – Nötig ist ein Neustart, wenn man ein neues Projekt angelegt oder die Datei _config oder glosses geändert hat. (Zu diesen Änderungen unten mehr.)

Zumal wenn etwas nicht angezeigt wird wie gedacht, ist es oft hilfreich, sich das HTML-Dokument anzusehen, das der Darstellung im Browser zugrundeliegt. Das geht im Firefox etwa mit der Tastenkombination Strg u. Möglich ist auch, mit rechts auf einen fraglichen Bereich der Seite zu klicken und Element untersuchen anzuwählen: Dann erscheint der genau zu diesem Bereich gehörende HTML-Abschnitt zusammen mit den einschlägigen Formatierungsanweisungen aus den verwendeten CSS-Dateien.

Logos, Titelbild, Sprachen und Menüpunkte festlegen

Markierte Bereiche von oben nach unten: Shortcut-Icon, Projekt- und Organisationslogo, Menüpunkte, Sprachwahl.

english Um Sprachen, Logos, Titelbild und Menüpunkte festzulegen, ändert man im Ordner goethe-schiller die Datei _config, tauscht die Bilder im Unterordner icons aus und muss unter Umständen auch die Datei glosses im höheren Ordner portal ergänzen oder ergänzen lassen. Dazu nun im Einzelnen.

Bilder austauschen

english Im Unterordner icons sind folgende Bilder auszutauschen gegen zur eigenen Edition passende:

cover.png
ist das Titelbild auf der Startseite. Die Breite und Höhe sollten ganz ungefähr so sein wie jene des Beispiels: Viel kleinere werden vergrößert und sehen dann körnig aus; viel größere verlangsamen die Übertragung der Seite übers Netz zum Nutzer.
main.png
ist das erste der beiden Logos ganz oben links auf der Seite. Es ist das Logo der Ausgabe selbst. Es kann z. B. hergestellt werden, indem man – mit einem Bildverarbeitungsprogramm wie GIMP – einen geeigneten Bereich des Titelbildes ausschneidet und vielleicht noch verkleinert.
main_org.png
ist das zweite der beiden Logos. Es ist das Logo einer Dachorganisation der Ausgabe.
shortcut.ico
ist das kleine Bildchen oben links im Browser-Tab. Das Dateiformat muss .ico sein, die Größe sollte 16 mal 16 Pixel sein. Es kann z. B. hergestellt werden, indem man das Logo der Ausgabe verkleinert, vielleicht noch vereinfacht, und als .ico-Datei abspeichert.

Es ist am einfachsten, die neuen, eigenen Bilder genauso zu nennen und über die alten Dateien zu speichern. Die neuen Bilder sieht man auf der Seite, wenn man zum Browser wechselt und die Taste F5 drückt. Manchmal allerdings sind Bilder vom Browser gespeichert und werden nicht erneut heruntergeladen; dann hilft mehrmaliges Drücken der Taste F5 oder das Leeren des Browser-Caches: im Firefox unter EinstellungenNetzwerkJetzt leeren, englisch: OptionsNetworkClear Now. Manchmal hilft nur ein Neustart des Browsers.

Möchte man einen anderen Namen als cover.png haben, muss man etwas in der Datei der Startseite ändern; und hier muss man natürlich auch den Text der Titelseite ändern – bis hin zur Bildbeschreibung, die beim Überschweben mit der Maus erscheint. Darauf kommen wir unten zurück.

Möchte man mehr oder weniger Logos, eine Verlinkung, eine etwas andere Gestaltung oder andere Dateinamen für die Logos haben, dann muss man etwas in der Datei _config ändern. Dazu im nächsten Abschnitt.

Die Datei _config ändern. Sprachen festlegen

Einleitung

english Die Datei _config kann man auch im Browser anschauen unter http://localhost:8080/goethe-schiller/_config. Denn sie ist trotz ihrer besonderen Funktion eine HTML5-XML-Datei, liegt in einem Editionsordner wie die anderen Netzseitendateien auch und wird daher, wenn ein Browser nach der genannten URL fragt, vom System in ein HTML5-Dokument verwandelt und dem Browser zugesandt. Diese Einheitlichkeit ist etwas grundsätzlich Gutes, auch, dass man so ohne weiteren Aufwand und ohne, dass man Daten an zwei Stellen pflegen muss, eine angenehme Leseansicht bekommt. Für einen gewöhnlichen Leser der Edition ist eine solche Konfigurationsseite aber in der Regel uninteressant, weswegen man sie im Menü oder Inhaltsverzeichnis nicht verlinkt. Im Browser sind die Legenden zu den Tabellen am besten lesbar. Mit einer Erweiterung des Portalssystemes könnte man die Einträge über den Browser auch ändern; in der vorliegenden Fassung geschieht das in der Datei goethe-schiller/_config selbst. Die Tabelle für die Sprachen ist die erste; sie beginnt mit der Grenzmarke <table class="mapping" id="lang_ids"> und schließt mit der Grenzmarke </table>.

Einschub: XML-Grundlagen

english Der folgende Abschnitt geht von der eben geöffneten Datei _config aus und bietet einen Überblick über die wichtigsten XML-Regeln zur Bearbeitung dieser Datei, berücksichtigt aber auch Fragen, die sich später, bei der Eingabe anderer Texte stellen können. Er kann hier also etwas überflogen werden.

  1. Einen durch Grenzmarken abgesteckten Bereich nennt man Element. In diesem Fall ist das Element eine Tabelle. Grenzmarken werden vom Browser nicht angezeigt, sondern ausgewertet, um den eigentlichen Text richtig darstellen zu können.
  2. Grenzmarken enthalten den Namen des Elementes, hier table.
  3. Eine Grenzmarke wird von den Zeichen < > umgeben und dadurch vom eigentlichen Text abgehoben.
  4. Das Zeichen / macht eine Grenzmarke zu einer schließenden.
  5. Elemente können leer sein: <td></td> ist eine leere Tabellenzelle. Wichtig für die Verwendung des Systems: Damit das eingegebene XML zugleich ein Stück gültiges HTML ist, werden bestimmte leere Elemente (und nur diese) in einer Kurzschreibung geschrieben, bei der die schließende Grenzmarkierung fehlt und die öffnende mit einem / am Ende geschlossen wird. Es handelt sich nämlich um HTML-Elemente, die immer leer sind: <area/> <base/> <br/> <col/> <embed/> <hr/> <img/> <input/> <keygen/> <link/> <meta/> <param/> <source/> <track/> <wbr/>.
    Nur <br/> und <img/> sind für die Herausgebertätigkeit wichtig.
    Bei <br/> muss noch eine Unterscheidung beachtet werden: In einem Fall wie Zeilen-<br/>
    wechsel
    darf vor dem <br/> kein Leerzeichen stehen; in einem jeden Fall wie Wechsel der <br/>
    Zeile
    muss ein Leerzeichen stehen. Denn wenn man den Zeilenwechsel entfernt (z. B. für eine Volltextsuche), dann muss im ersten Fall Zeilen-wechsel entstehen (woraus noch Zeilenwechsel gemacht werden kann), im zweiten Fall aber unbedingt Wechsel der Zeile, nicht Wechsel derZeile.
  6. Elemente können andere Elemente enthalten, die Grenzmarken sind dann verschachtelt. Vgl. <table><caption>information</caption></table>; hier ist das caption-Element im table-Element enthalten. Die Tabelle für die Sprachenwahl enthält ein caption-Element (was die Legende ist), ein thead-Element (den Kopf mit den Spaltenüberschriften) und ein tbody-Element (den Rumpf mit den eigentlichen Inhalten).
  7. Eine Verschachtelung muss gemäß den XML-Syntaxregeln überlappungsfrei sein, das heißt, ein Element muss ganz oder gar nicht in einem anderen enthalten sein; seine Grenzmarken stehen also beide innerhalb dieses Elementes oder beide außerhalb.
  8. Es muss genau ein Element geben, dass alle anderen enthält, mit seinen Grenzmarken also alle anderen umschließt. Im Beispiel der Datei _config ist es ein article-Element.
  9. Zeilenumbrüche und Einrückungen – wie sie die Datei _config zeigt – dienen der Lesbarkeit für den menschlichen Betrachter, werden von Maschinen aber entweder gar nicht beachtet oder (wenn sie unmittelbar neben oder innerhalb von eigentlichem Text stehen) durch ein einziges Leerzeichen ersetzt. Ein Beispiel:
    
    <i>eins
    	zwei</i>
    (mit Zeilenwechsel und Einrückung) erscheint im Browser bloß als: eins zwei (in ein- und derselben Zeile).
  10. Öffnende Grenzmarken können Zusatzangaben über das Element enthalten, sogenannte Attribute. class="mapping" z. B. ist ein Attribut mit dem Namen class und dem Wert mapping. (Vererbung:) Attributangaben eines Elementes gelten für jedes in diesem Element enthaltene Element mit. Wenn aber das enthaltene Element selbst ein Attribut gleichen Namens hat, dann gilt natürlich dessen Wert.
    class-Attribute
    Ein Browser nimmt den Wert als Stichwort, das in der CSS-Formatvorlage zu finden ist, wo sich dann Formatanweisungen finden. Der Wert kann auch mehrere Stichwörter auf einmal angeben, mit Leerzeichen getrennt. Vgl. class="index non-source".
    Bei der Erstellung von Ausgaben ist zu beachten, dass Herausgebertext und Quellentext überall einheitlich und ausdrücklich voneinander unterschieden werden müssen: Herausgebertext muss in einem Element stehen, das entweder selbst oder ererbt von einem enthaltenden Element durch class="non-source" ausgezeichnet ist; bei Quellentext ist es class="source".
    href-Attribute
    Der Wert wird als URL verstanden; z. B. bildet <a href="user_guide">Link</a> einen Link auf den vorliegenden Leitfaden, vom Browser dargestellt als: Link. Dabei sind folgende Arten von URLs zu unterscheiden (zu URLs allgemein hier):
    http://…-URLs
    wie http://d-nb.info/gnd/118540238 sind die ausführlichsten URLs und werden benutzt, um eine Seite zu verlinken, die in einer anderen Domain liegt als die Seite, die den Link enthält.
    /…-URLs
    wie /de/goethe-schiller/start haben keine Domain-Angabe und werden benutzt, um innerhalb derselben Domain zu verlinken. Das ist nötig, um seine Links nicht ändern zu müssen je nach dem, ob man eine Seite auf localhost testen oder auf den Server legen wird. Ein Beispiel:
    href="/de/goethe-schiller/start" bedeutet dasselbe wie
    href="http://localhost:8080/de/goethe-schiller/start", wenn es auf einer Seite steht, deren URl mit
    http://localhost:8080// beginnt.
    …-URLs
    wie das obige Beispiel user_guide beginnen nicht mit / und werden benutzt, um relativ von der Seite aus zu verlinken, auf der sie stehen: In der URL dieser Seite wird alles nach dem letzten / ersetzt durch die relative URL. Das ist nötig, um durch den Pfad gegebene Einstellungen wie z. B. die Sprache zu erhalten. Ein Beispiel:
    href="user_guide#rdfa" bedeutet dasselbe wie
    href="http://localhost:8080/de/portal/user_guide#rdfa, wenn es auf der Seite
    http://localhost:8080/de/portal/editor_guide steht.
    id-Attribute
    Das Attribut id="lang_ids" z. B. belegt sein Element mit einer ID. Sie kann in URLs verwendet werden, um nicht auf eine Seite allgemein, sondern auf ein besimmtes Element auf der Seite zu verweisen. Eine solche URL ist die URL der Seite plus # plus die ID. Vgl. http://localhost:8080/goethe-schiller/_config#lang_ids. Die ID kann frei vergeben werden, muss aber für das ganze Dokument einmalig sein und darf nur Zeichen enthalten, die in URLs erlaubt sind (welche, wird später erläutert).
    Wichtig ist eine Untergliederung durch id-Attribute vor allem für genaueres Verlinken und Verweisen, insbesondere bei Zitation und Volltextsuche. Meist ist es dann noch nötig, die id-Attribute sichtbar zu machen. Auf den vorliegenden Seiten geschieht dass, indem man <a class="local" href="#…"></a> unmittelbar hinter die Grenzmarkierung mit dem Attribut id="…" setzt (für ist die tatsächliche ID einzusetzen).
    lang-Attribute
    Zu beachten sind die Hinweise zu Übersetzungen.
    property-Attribute
    about-Attribute
    werden für die RDFa-Auszeichnung verwendet. Dazu hier.
  11. Eindeutigkeitshalber müssen gewisse Zeichen unbedingt umschrieben werden, wenn sie im eigentlichen Text vorkommen sollen:
    • Statt < schreibt man &lt;.
    • Statt > schreibt man &gt;.
    • Statt & schreibt man &amp;.
    Ein Beispiel:
    &c<etera> wäre zu schreiben als:
    &amp;c&lt;etera&gt;
    In Attributwerten gilt außerdem:
    • Statt " schreibt man &quot;.
    • Statt ' schreibt man &apos;.
    Alle anderen Zeichen können als sie selbst eingegeben werden, wobei die richtige Kodierung im Editor eingestellt sein muss: UTF-8.
    Man kann Zeichen übrigens auch in einer numerischen Umschreibung eingeben, entweder mit Dezimal- oder Hexadezimalzahl (die Zahlen kann man z. B. hier finden):
    • Dezimales &#8239; oder hexadezimales &#x202F; steht für ein schmales geschütztes Leerzeichen. Es ist anzuwenden in u. a., z. B. usw.
    • &#160; oder &#xa0; steht für ein normales geschütztes Leerzeichen. Es ist anzuwenden in Wort1 / Wort2 vor dem Schrägstrich.
    • &#8209; oder &#x2011; steht für einen geschützten Bindestrich.
    • &#8211; oder &#x2013; steht für einen Gedankenstrich.
    • &#8220; oder &#x201c; steht für (öffnende Anführungsstriche)
    • &#8221; oder &#x201d; steht für (schließende Anführungsstriche)
    • &#8216; oder &#x2018; steht für (öffnenden Anführungsstrich)
    • &#8217; oder &#x2019; steht für (schließenden Anführungsstrich und Apostroph)
    Diese Zeichen müssen guter Typographie halber häufig verwendet werden, können aber nicht über die normale Tastatur eingegeben werden. Die Leerzeichen sind überdies schwer voneinander zu unterscheiden. Hier empfiehlt sich die Eingabe über die numerische Umschreibung.

Fortsetzung

english Die Sprachenauswahl wird im tbody-Element der Tabelle lang_ids geändert; Reihen sind tr-Elemente, Zellen td-Elemente. Jede Reihe enthält zwei Zellen: Die erste nennt die Sprache mit dem ISO-639-1-Kürzel; die zweite kann den Vermerk default enthalten. Der alte Zustand ist:


<tbody>
	<tr><td>ar</td><td></td></tr>
	<tr><td>de</td><td>default</td></tr>
	<tr><td>en</td><td></td></tr>
	<tr><td>fr</td><td></td></tr>
	<tr><td>it</td><td></td></tr>
	<tr><td>ja</td><td></td></tr>
	<tr><td>pl</td><td></td></tr>
	<tr><td>ru</td><td></td></tr>
	<tr><td>tr</td><td></td></tr>
</tbody>

Das heißt, es werden die neun Sprachen arabisch, deutsch, englisch, französisch, italienisch, japanisch, polnisch, russisch, türkisch dem Nutzer zur Wahl gestellt; deutsch ist die default-Sprache, die genommen wird, wenn noch keine Wahl getroffen wurde und die URL keine Sprachangabe enthält. Möchte man nur deutsch, englisch, französisch zur Wahl stellen und französisch als default-Sprache haben, ändert man die Tabelle ab in:


<tbody>
	<tr><td>de</td><td></td></tr>
	<tr><td>en</td><td></td></tr>
	<tr><td>fr</td><td>default</td></tr>
</tbody>

Welche und wie viele Sprachen soll man anbieten? Die Sprachwahl betrifft einerseits einzelne Wörter und kurze Wendungen in Menü, Kurztitel, Suchtabelle und Suchformular, andererseits ganze Texte im Hauptinhalt der Seite:

  1. Übersetzungen einzelner Wörter und kurzer Wendungen stehen in der Datei glosses im Ordner portal. In der vorliegenden Fassung stehen dort in allen oben genannten neun Sprachen Übersetzungen für alle bisher eingesetzten Menüpunkte, Kurztitel und Aufschriften. Will man mehr, muss man die Datei ergänzen oder ergänzen lassen. (Dazu hier.) Wenn sich für die ausgewählte Sprache kein Eintrag in der Datei findet, wird der Eintrag für die default-Sprache des Portals genommen; ist auch der nicht da, wird das Stichwort selbst, zu dem die Übersetzung vergeblich gesucht wurde, eingesetzt.
  2. Übersetzungen ganzer Texte muss man selbst vornehmen. Die Texte in verschiedenen Sprachen werden einfach nebeneinander in den Editionsordner gelegt und durch ein ISO-639-1-Kürzel unterschieden, z. B. start+de, start+en und start (der Text in der default-Sprache, hier etwa französisch, kann bezeichnet werden oder unbezeichnet bleiben). Wenn sich zu einer ausgewählten Sprache kein Text findet, wird der default-Text genommen.
    Wichtig ist die Richtigkeit der Sprachauszeichnung: Wenn ein Textstück in einer Datei eine andere Sprache hat, als der Dateiname schließen lässt, dann muss das Element, in dem dieser sprachlich abweichende Text steht, mit einem Attribut lang="_" versehen und statt _ das Sprachkürzel nach ISO 639-1 gesetzt werden. Wenn die Sprache zu oft wechselt (etwa in einem Verzeichnis) oder überhaupt fraglich ist (etwa bei Eigennamen), schreibt man lang="" und lässt den Attributwert leer; die Sprache ist dann offen gelassen. Das kann man auch für jenes Element machen, das alle anderen enthält; dann ist die Sprache für das ganze Dokument offengelassen.
    Wenn man einen ganzen Text übersetzt hat, aber für das Menü viel mehr Sprachen anbietet, mag es sinnvoll sein, wenn der Nutzer nicht nur über die normale Sprachauswahl zur Übersetzung kommt, sondern auch über einen Link im Text selbst. So wird deutlich, dass und welche Übersetzungen es gibt, und es kann nicht nur die ganze Seite, sondern auch eine bestimmte Stellen der Übersetzung verlinkt sein. Dazu hier.

Die nächsten beiden Tabellen erlauben es, von den Logos die Anzahl, die Reihenfolge, etwaige Verlinkung und Schattierung festzulegen und bei Bedarf andere Dateinamen anzugeben. Genaue Hinweise finden sich in der jeweiligen Legende (dem caption-Element) der Tabellen.

Änderungen in der Datei _config werden erst nach einem Neustart des Systems wirksam.

english In der letzten Tabelle kann man die Einträge im Menü links auf der Seite festlegen, das heißt, festlegen, welche Netzseiten als Menüpunkte verlinkt sein sollen. Genaue Hinweise findet man in der Legende der Tabelle. Zum Ausprobieren kann man eine der im Beispiel schon vorhandenen Seiten, z. B. die Datei introduction, kopieren, die Kopie im selben Ordner unter anderem Namen speichern und den neuen Namen zu den Menüpunkten hinzufügen.

Wenn man diese Einträge gemacht hat, möchte man sie möglicherweise in den Übersetzungen ergänzen, damit statt des bloßen, einsprachigen Dateinamens eine Übersetzung angezeigt wird, die sich nach der Sprachwahl des Nutzers richtet. Dazu im nächsten Abschnitt.

Die Übersetzungen ergänzen

english Im Ordner portal befindet sich die Datei glosses, die Übersetzungen einzelner Wörter und kurzer Wendungen enthält, wie oben beschrieben. Der Inhalt der Datei ist eine Tabelle, grundsätzlich also schon aus der Datei _config bekannt (dazu hier) und übrigens ebenfalls im Browser anschaubar. Um Übersetzungen zu ergänzen, fügt man Reihen folgender Gestalt hinzu:


<tr><td>1</td><td>2</td><td>3</td></tr>

Für 1 setzt man das Stichwort ein: Bei Menüpunkten ist das einfach der Name der Datei, auf die der Menüpunkt verlinkt; bei den Kurztiteln ist es, wie wir noch sehen werden, der Name des Editionsordners. Für 2 muss das zweibuchstabige Sprachkürzel gemäß ISO 639-1 eingesetzt werden und für 3 die Übersetzung, die dem Stichwort und der Sprache zuzuordnen ist. Beispiele finden sich in der Datei selbst zur Genüge.

URL und Kurztitel festlegen

english Um den Beispielnamen goethe-schiller in der URL der Seite und im Kurztitel unter den Logos auszutauschen, benennt man zunächst den Editionsordner um. Der neue Name des Editionsordners wird in der URL der Netzseite verwendet. Daher kann der Name nur jene Zeichen enthalten, die in URLs erlaubt sind. Das sind in etwa auch jene Zeichen, die in Ordner- und Dateinamen erlaubt sind: einfache lateinische Buchstaben, Zahlen und Buchstaben anderer Schriftsysteme; ausgeschlossen aber sind Leerzeichen und alle Interpunktionszeichen außer den folgenden vier, die erlaubt sind: - . _ ~ Genauer gesagt: Erlaubt sind die sogenannten iunreserved characters, die im RFC 3987 auf Seite 7 definiert sind. Für das Portal sei darüber hinaus empfohlen, auf Großbuchstaben zu verzichten, um die Gefahr von Verwechslungen zu verringern und sicherzustellen, dass zwei verschiedene Namen immer auch verschiedene Dateinamen sind (denn manche Betriebssysteme unterscheiden bei Dateinamen nicht zwischen Groß- und Kleinschreibung).

Nach der Umbenennung muss man das System neu starten und im Browser statt http://localhost:8080/goethe-schiller nun http://localhost:8080/[Editionsordner] eingeben. Da in der URL nur die Edition, keine Seite der Edition und auch keine Sprache angegeben sind, setzt das System die default-Sprache und die default-Seite in die URL ein, wie sie in der Datei _config bestimmt werden konnten. Ein Leser gelangt also auch mit einer solchermaßen abgekürzten URL zur Edition, und zwar zur default-Seite (die dann die Startseite ist) in der default-Sprache.

Allerdings kann man vorher noch die Übersetzungen um den neuen Ordnernamen ergänzen: Das geschieht wie oben beschrieben, wobei man als Stichwort den Ordnernamen nimmt. Es folgt ein Beispiel, und zwar mit der Besonderheit, dass in den Übersetzungen (nach Briefwechsel, Correspondence und Correspondance) ein Enterzeichen gesetzt ist:


<tr><td>fantin-scholderer</td><td>de</td><td>Briefwechsel
Fantin-Latour und Scholderer</td></tr>
<tr><td>fantin-scholderer</td><td>en</td><td>Correspondence
Fantin-Latour and Scholderer</td></tr>
<tr><td>fantin-scholderer</td><td>fr</td><td>Correspondance
Fantin-Latour et Scholderer</td></tr> 

Das Enterzeichen wird übernommen und dient der besseren Darstellung des Kurztitels. Dazu hier.

Erreichbarkeit der Seiten. Inhaltsverzeichnis

english Es sind drei besondere Möglichkeiten vorgesehen, wie ein Leser von der Startseite aus letztlich alle Seiten der Edition erreichen kann: erstens über das Menü, wie oben beschrieben, zweitens über ein Inhaltsverzeichnis, drittens über Indizes. Im Menü stehen nur wenige Hauptseiten. Im Inhaltsverzeichnis können grundsätzlich alle Seiten stehen; aber eine sehr lange Reihe von Seiten – z. B. hunderte von Briefen – sind besser in einem sortier- und filterbaren Index untergebracht. Hier zunächst zur Einrichtung eines Inhaltsverzeichnisses: Die Seite des Inhaltsverzeichnisses heißt im Beispielordner table_of_contents und ist auch als Menüpunkt verzeichnet. Die entsprechende Datei enthält aber nur einen Verweis auf das Template, mit dem das Inhaltsverzeichnis nämlich automatisch erstellt wird. Dazu braucht es eine Aufstellung der Seiten, die im Inhaltsverzeichnis auftauchen sollen; diese Aufstellung steht in der Datei _table_of_contents_ids. Sie kann wie die Datei _config im Browser betrachtet werden und weist auch die bekannte Tabellenstruktur auf. In die Tabellenzeilen trägt man die Namen jener Dateien ein, die im Inhaltsverzeichnis berücksichtigt werden sollen. Automatisch wird dann gesorgt für: Übersetzungen der Dateinamen je nach der Sprache des enthaltenen Textes, die Überschriften in den Dateien, Einrückung je nach Überschriftenebene und Links zur jeweiligen Seite oder Überschrift. Hat man es mit vielen Seiten zu tun, wird man auch die Tabellenzeilen automatisch erzeugen wollen. So erzeugt etwa das folgende Pythonskript eine Datei _table_of_contents_ids im Ordner FOLDERPATH, in der alle Seiten dieses Ordners berücksichtigt sind. Aus dieser Datei sind dann von Hand jene Seiten herauszulöschen, die man nicht im Inhaltsverzeichnis haben will, etwa die Dateien _config, _table_of_contents_ids, table_of_contents und die Titelseite(n). Hier das Skript: Man kann die Zeilen in eine leere reine Textdatei kopieren, die Textdatei schließen, die Endung von .txt in .py umbenennen und mit Doppelklick starten (wenn Python 3.4 installiert ist, wie oben angegeben). Für /path/to/the/folder/of/the/edition muss man aber vorher den richtigen Pfad zum Editionenordner angeben.


import os

FOLDERPATH = '/path/to/the/folder/of/the/edition'
RESULTNAME = '_table_of_contents_ids' 

DOC_TEMPLATE = '''
<article class="index non-source">
	<table class="mapping">
		<!-- Ensure, that every table_of_contents_id
		     is the name of a webpage-file. -->
		<thead>
			<tr><th>table_of_contents_id</th></tr>
		</thead>
		<tbody>
{}
		</tbody>
	</table>
</article>
'''

doc = DOC_TEMPLATE.format(
        os.linesep.join(
            '\t\t\t<tr><td>{}</td></tr>'.format(name)
            for name in os.listdir(FOLDERPATH)
            if os.path.isfile(os.path.join(FOLDERPATH, name))))

with open(
        os.path.join(FOLDERPATH, RESULTNAME),
        'w',
        encoding = 'utf-8') as file:
    file.write(doc)

Titelseite. Bibliographische Metadaten. RDFa

english Die Titelseite ist die Startseite einer Ausgabe. Beispiele für Startseiten finden sich im Editionsordner: die Dateien start und start+en; letztere die englische Fassung der ersteren. (Auf ein +de kann verzichtet werden, weil die default-Sprache deutsch ist.) Nach diesen Mustern kann man am einfachsten seine eigene Startseite erstellen, indem man jenen Text, der im Browser sichtbar ist, austauscht, nicht zu vergessen die Beschriftung zum Bild, die erscheint, wenn man das Hintergrundbild mit der Maus überschwebt. (Zum Austausch des Hintergrundbildes hier.)

Bei der Eingabe in die Datei sind die oben gegebenen Regeln genau zu beachten.

Ein Nutzer muss auf der Titelseite alle bibliographischen Metadaten finden. Eine Liste dazu gibt es hier. In dieser Liste steht auch jeweils der Ausdruck, der für die RDFa-Auszeichnung verwendet wird. Zu RDFa allgemein hier. Die in den beiden Musterdateien start und start+en schon vorliegende Auszeichnung kann grundsätzlich beibehalten werden. Zu beachten ist:

Weitere Seiten. Abermals RDFa

english Weitere Seiten kann man nach dem schon bei der Titelseite angewandten Grundmuster erstellen: