Seitenabschnitte
Während in HTML der Zweck der Anker ist, eine Position im Text anzuspringen, dienen sie in PmWiki auch noch einem internen Zweck: Jeder Anker erzeugt auch einen Abschnitt, denn Abschnitte sind definiert als Teil einer Seite zwischen ihrem Startanker und dem nächsten Anker. Ein Abschnittname ist definiert als der Name seines Startankers.
Einsatz
Das Einsatzszenario für Abschnitte schließt ein:
- Einfügen von Teile einer Seite in einer anderen Seiten oder in ihr selbst,
- leichtes Abrufen von Teilen einer Seite in PHP mit Hilfe der
RetrieveAuthSection()
-Funktion, - Wiederverwendung der Abschnitte als Vorlage mit Variablen als Parameter für dynamische Teile.
- In Blöcken mit bedingten Auszeichnungen können Sie die Interpretation des Markups verhindern, das gewöhnlich vor den Bedingungen geparsed wird. Ein Weg, das zu erreichen, ist, in die Mitte des Schlüsselworts des frühen Markups eine unechte Include-Variable einzufügen und es so zu ungültigem Müll zu machen. Wenn die Bedingungen auf Ihr Include-Kommando treffen, wird der Abschnitt mit dem deaktivierten Markup noch einmal interpretiert, jedoch erst, nachdem die Include-Variable ersetzt worden ist. Da ihre unechte Variable keinen Text enthält, verschwindet sie einfach, so das dieses Mal das frühe Markup nicht mehr ungültig ist.
Regeln für gültige Abschnittnamen sind per Definition die gleichen wie die für Anker (beschrieben in Anker), aber in der Praxis gibt es ein paar Einschränkungen:
- Wenn der Name auf mehr als einen Punkt endet, können das
(:include:)
-Kommando und dieRetrieveAuthSection()
-Funktion ihn als Endanker, aber nicht als Startanker benutzen.
Sie können Experiment auf der Test.ExoticSectionNames-Seite vornehmen, vielleicht nur mit deren Vorschau.
Seien Sie auf der Hut vor subtilen Unterschieden:
- Wenn ein Anker in der Mitte einer Zeile als Startanker für das
(:include:)
-Kommando benutzt wird, wird der Abschnitt vom Beginn der Zeile an, die den Anker enthält, gelesen und fügt das[[#anchor]]
-Markup ein, was dazu führt, dass ein HTML-Anker erzeugt wird. - Im Vergleich dazu würde
RetrieveAuthSection()
mit dem Lesen exakt hinter dem Anker inmitten der Zeile beginnen. - Beim Einsatz eines Anker in der Zeilenmitte als Endanker dagegen ist das Verhalten der Funktion
RetrieveAuthSection()
genau wie das des(:include:)
-Kommandos, vor dem in Einbinden anderer Seiten gewarnt wird: Es hört mit dem Einlesen am Anfang der Zeile auf, die den Endanker enthält, sodass das letzte Zeichen das Zeilenendezeichen der Zeile vor dem Endanker ist.- Um zu verhindern, dass das abschließende EOL hinter Ihrem
(:include:)
-Kommando Whitespace erzeugt, beenden Sie die Zeile vor dem Endanker mit einem Zeilenverbinder (Backslash "\").
- Um zu verhindern, dass das abschließende EOL hinter Ihrem
Übersetzung von PmWiki.PageSections, Originalseite auf PmWikiDe.PageSections — Retroenlaces
Zuletzt geändert: | PmWikiDe.PageSections | am 11.07.2017 |
PmWiki.PageSections | am 25.06.2017 |