NAME
Prty::Sdoc::Node - Basisklasse für die Knoten eines Sdoc-Dokuments (abstrakt)
BASE CLASS
DESCRIPTION
Die Klasse dient als Basisklasse für die Knotenklassen eines Sdoc-Dokuments. Jede Knotenklasse repräsentiert einen speziellen Elementtyp. Folgende Elementtypen existieren:
Document
Section
List
Item
Paragraph
Quote
Code
PageBreak
METHODS
Accessors
parent() - Liefere/Setze Elternknoten
Synopsis
$node = $doc->parent;
$node = $doc->parent($node);
Description
Liefere/Setze den Elternknoten. Die Referenz wird als schwache Referenz gespreichert, so dass eine Destrukturierung des Elternknotens durch die Referenz nicht verhindert wird.
childs() - Liste der Kindknoten
Synopsis
@arr|$arr = $doc->childs;
Description
Liefere die Liste der Kindknoten. Im Skalarkontext liefere eine Referenz auf die Liste.
title() - Liefere den Titel des Knotens
Synopsis
$title = $node->title;
Description
Liefere den Titel des Knotens. Hat der Knoten keinen Titel - weil dieser nicht definiert ist oder der Knoten dieses Attribut nicht besitzt - liefere einen Leerstring.
Anmerkung: Bestimmte Knotenklassen (Dokument, Definitionslisten-Element) überschreiben diese Methode.
Methods
nextType() - Liefere Typ des nächsten Elements
Synopsis
($type,$attH) = $parent->nextType($doc);
Description
Analysiere die nächste nichtleere Zeile in TextFile $doc (Leerzeilen am Anfang werden von der Methode entfernt) hinsichtlich ihres Elementtyps und liefere die Typbezeichnung und Attribute - sofern spezifiziert - zurück.
Folgende Elementtypen werden unterschieden:
- Section
-
Ein oder mehrere = am Zeilenanfang gefolgt von einem Leerzeichen. Zusätzlich zur Typbezeichnung wird der Level der Section geliefert.
- List
-
Wird mit dem ersten Item geliefert.
- Item
-
Zeile, die von $ln->item() als Item identifiziert wird.
- Table
-
Wird mit der ersten Row geliefert.
- Row
-
Zeile mit | am Anfang und am Ende.
- Code
-
Zeile mit Leerzeichen oder | am Anfang.
- Quote
-
Zeile mit > am Anfang.
- PageBreak
-
Zeile mit ~~~ (mindestens drei Tilden) am Anfang.
- Paragraph
-
Zeile, auf die keine der obigen Eigenschaften zutrifft.
parseObjectSpec() - Liefere Information zu Objektspezifikation
Synopsis
($type,$arr) = $node->parseObjectSpec($doc);
Description
Parse Objektspezifikation auf $doc und liefere den Typ und die Attribut/Wert-Paare des Objekts zurück.
anchors() - Liefere Zeichenkette aus allen Ankern
Synopsis
$str = $node->anchors($format,@args);
Description
Liefere die Zeichenkette aus allen Ankern zur Einbettung in das Dokument.
dumpChilds() - Erzeuge Repräsentation für Subelemente
Synopsis
$str = $node->dumpChilds($format,@args);
Description
Erzeuge eine externe Repräsentation im Format $format für die Subelemente des Knotens und liefere diese zurück. Dies ist eine Hilfsmethode, die von den Subkalssenmethoden $node->dump() gerufen wird um die externe Repräsentation eines Knotens zu erzeugen.
Elementtypen mit Subelementen (in Klammern die erlaubten Subelemente):
Document (alle Typen)
Section (alle Typen)
List (nur Items)
Item (alle Typen)
Table (nur Rows)
Elementtypen ohne Subelemente:
Paragraph
Code
Quote
PageBreak
Row
rootNode() - Liefere Wurzelknoten
Synopsis
$root = $node->rootNode;
select() - Selektiere Knoten
Synopsis
@nodes|$nodeA = $node->select(@keyVal);
Description
Selektiere alle Knoten ab und einschließlich Knoten $node, die die Kriterien @keyVal erfüllen und liefere die Liste dieser Knoten zurück. Im Skalarkontext liefere eine Referenz auf die Liste.
Ist kein Kriterium angegeben, liefere alle Knoten.
expand() - Schütze Metazeichen und ersetze Inline-Segmente
Synopsis
$newVal = $sdoc->expand($format,$val,$inlineSegments,@args);
Description
Ersetze in $val die Metazeichen des Zielformats $format (<, >, & im Falle von HTML) und liefere das Resultat zurück. Ist $inlineSegments wahr, expandiere zusätzlich die Sdoc Inline-Segmente.
Inline-Segmente
Folgende Inline-Segmente sind definiert:
B{...} bold
C{...} constant width
I{...} italic
Q{...} quote
U{...} URL (Link auf eine Webseite)
G{...} Grafik/Bild
In Code-Abschnitten sollte keine Inline-Ersetzung stattfinden.
tableOfContents() - Erzeuge Inhaltsverzeichnis
Synopsis
$str = $node->tableOfContents($format,@args);
VERSION
1.114
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2017 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.