Aneamal-Version 2018-M01
Die Aneamal-Version 2018-M01 steht zum Herunterladen bereit.
Neu: Ein Kopf-, ein Fußbereich und eine CSS-Datei zur Gestaltung lassen sich mit einem hierarchischen System auf allen Seiten vollautomatisch einbinden. Da Ausnahmen sprichwörtlich die Regel bestätigen, kannst du auch leicht Ausnahmen von der Automatik setzen. So kannst du sie ohne Sorge, dich damit in ein starres Korsett zu zwingen, einsetzen.
Außerdem neu: Abschnitte einer Seite kann man nun zunächst ausgeblendet lassen und es dem Leser überlassen, sie aufzuklappen, wenn er sich für mehr Details, für ein Beispiel, für die Antwort auf eine von häufig gestellten Fragen, für die Lösung eines Rätsels, … interessiert.✻
Weitere Änderungen betreffen Metavariablen und Details bei der Übersetzung von Aneamal zu HTML. Auf dieser Seite stelle ich ausgewählte Neuerungen vor. Eine kurz gefasste Liste aller Änderungen findet sich in der Versionsgeschichte.
Übrigens, wenn du von der vorigen auf die neue Version aktualisieren möchtest, musst du ausschließlich diese drei Dateien ersetzen:
- aneamal/functions.php
- aneamal/html.php
- aneamal/main.php
Ansonsten brauchst du nichts zu ändern.
Automatisches Layout
Greift man mit dem Webbrowser auf eine Aneamalseite zu, werden nun ein Kopfbereich, ein Fußbereich und ein Stylesheet automatisch eingebunden – falls vorhanden. Angenommen, die Seite seite.nml im Verzeichnis /beiss/spiel/ unter der Domain example.org wird aufgerufen:
https://example.org/beiss/spiel/seite
Falls es auch eine Datei @header.nml im gleichen Verzeichnis gibt, im Beispiel also /beiss/spiel/@header.nml, wird sie als Kopfbereich eingebunden. Wenn es jene Datei nicht gibt, es jedoch eine Datei @header.nml im übergeordneten Verzeichnis gibt, also /beiss/@header.nml, wird diese als Kopfbereich eingebunden. Wenn es auch jene Datei nicht gibt, aber eine Datei @header.nml im wiederum übergeordneten Verzeichnis existiert, also /@header.nml, wird diese als Kopfbereich eingebunden …
Beim Fußbereich verhält es sich genauso mit Dateien namens @footer.nml und ein Stylesheet wird dementsprechend automatisch eingebunden, wenn es @look.css heißt.
Manuelles Layout
Kopfbereich, Fußbereich und/oder Stylesheet können auch in einer Aneamaldatei manuell angegeben werden. Das geht so:
@header: ->exempelkopf.nml
@footer: ->demofuss.nml
@look: ->zbgestaltung.css
Diese manuelle Angabe hat Vorrang vor Dateien zur automatischen Einbindung. Man kann auch angeben, dass die automatische Einbindung unterlassen werden soll, ohne dass stattdessen eine manuell angegebene Datei geladen werden soll. Das geht mit dem Wert off
:
@footer: off
@header: off
@look: off
Wenn man gar keine Datei automatisch einbinden möchte, muss man nicht jede Automatik einzeln abschalten. Man kann stattdessen einfach die Metavariable @layout: manual
setzen. Es steht einem dann noch immer frei, beispielsweise einen Fußbereich manuell zu laden:
@footer: ->/vorlagen/navigation.nml
@layout: manual
Die Metavariable @layout
kennt noch einen weiteren Wert, blank
. Wenn man in einer Aneamaldatei @layout: blank
setzt, wird bei direktem Aufruf dieser Datei gar nichts angezeigt. Vielleicht fragst du dich, wo das nützlich sein kann? Zum Beispiel in Dateien, die gar nicht direkt aufgerufen werden sollen, sondern die nur als eingebundener Bestandteil anderer Seiten sichtbar werden sollen.
Übersetzung nach HTML und CSS
Hauptinhalte
Der Inhalt einer aufgerufenen Datei wird in HTML in ein <main>
-Element gepackt. Automatisch oder manuell geladene Fuß- und Kopfbereiche liegen vor und nach diesem Bereich.
Formeln
Formelblöcke, die in Aneamal mit $$
markiert werden, werden in HTML mit <div role='math'>
markiert. Bislang wurde stattdessen <div style='position:relative'>
verwendet, falls auch eine Formelnummer angegeben war. Falls du diese CSS-Angabe benötigst, kannst du sie in deinem Stylesheet zum Beispiel so setzen:
div[role=math] {position:relative}
Formeln im Fließtext ($
) werden in HTML mit <span role='math'>
markiert.
Hinweise zu Bildern
Bei Bildern kann man in Aneamal seit langem Hinweise mit {…}
anfügen. So wurde beispielsweise
[i:Pudel]->bello.jpg{Wau wau!}
nach HTML in etwa so übersetzt:
<span title='Wau wau!'><img src='bello.jpg' alt='Pudel'></span>
Jetzt wandert das HTML-title
-Attribut direkt ins HTML-<img>
-Element:
<img src='bello.jpg' alt='Pudel' title='Wau wau!'>
Anmerkungen/Fußnoten
Anmerkungen wie beispielsweise Fußnoten werden in Aneamal unter drei Unterstriche ___
gesetzt. Bislang wurden diese mit <div class='_notes' role='note'><hr>
markiert. Stattdessen heißt es nun nur <div role='note'><hr>
. In Stylesheets kann man diese Bereich mit [role=note]
selektieren.
Unterzeilen in Überschriften
Unterzeilen innerhalb von Überschriften wurden bisher in HTML mit <span class='_subhead'>
markiert. Die Klasse entfällt nun, sodass eine Hauptüberschrift mit enthaltener Unterzeile so aussieht:
<h1>Überschrift<br><span>mit Unterzeile</span></h1>
In Stylesheets kann man die Unterzeilen mit h1 > br + span
beziehungsweise h2 > br + span
und h3 > br + span
in mittleren und untergeordneten Überschriften selektieren.
Danksagung
Danke an David für sein umfangreiches Feedback, welches in die Weiterentwicklung von Aneamal eingeflossen ist.
✻ Leider unterstützen Microsofts Browser zum Zeitpunkt der Veröffentlichung dieser Aneamal-Version diese Funktion noch nicht. Siehe https://caniuse.com/#feat=details