Quiq::Tag - Erzeuge Markup-Code gemäß XML-Regeln
Quiq::Hash
use Quiq::Tag; my $p = Quiq::Tag->new;
$code = $p->tag('person', firstname => 'Lieschen', lastname => 'Müller', );
liefert
<person firstname="Lieschen" lastname="Müller" />
$code = $p->tag('bold','sehr schön');
<bold>sehr schön</bold>
Enthält der Content, wie hier, keine Zeilenumbrüche, werden Begin- und End-Tag unmittelbar um den Content gesetzt. Andernfalls wird der Content eingerückt mehrzeilig zwischen Begin- und End-Tag gesetzt. Siehe nächstes Beispiel.
$code = $p->tag('person','-', $p->tag('firstname','Lieschen'), $p->tag('lastname','Müller'), );
erzeugt
<person> <firstname>Lieschen</firstname> <lastname>Müller</lastname> </person>
Das Bindestrich-Argument ('-') bewirkt, dass die nachfolgenden Argumente zum Content des Tag konkateniert werden. Die umständlichere Formulierung wäre:
'-'
$code = $p->tag('person',$p->cat( $p->tag('firstname','Lieschen'), $p->tag('lastname','Müller'), ));
Ein Objekt der Klasse erzeugt Markup-Code gemäß den Regeln von XML. Mit den beiden Methoden tag() und cat() kann Markup-Code beliebiger Komplexität erzeugt werden.
$p = $class->new;
Objekt
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.
$code = $p->tag($elem,@opts,@attrs); $code = $p->tag($elem,@opts,@attrs,$content); $code = $p->tag($elem,@opts,@attrs,'-',@content);
Name des Elements.
Optionen. Siehe unten.
Element-Attribute und ihre Werte.
Inhalt des Tag.
Sequenz von Inhalten.
Liste der Default-Attribute und ihrer Werte. Ein Attribut in @keyVals, das nicht unter den Attributen @attrs des Aufrufs vorkommt, wird auf den angegebenen Defaultwert gesetzt.
Hash, der die Default-Formatierung und Default-Attribute von Elementen definiert. Aufbau:
%elements = ( $elem => [$fmt,\@keyVals], ... )
Der Hash muss nicht jedes Element definieren. Nicht-vorkommende Elemente gemäß Default-Formatierung formatiert (siehe -fmt) besitzen keine Default-Attribute.
Art der Content-Formatierung.
Wie 'm', nur dass der Content in CDATA eingefasst wird (in HTML: script):
<TAG ...> // <![CDATA[ CONTENT // ]]> </TAG>\n
Element hat keinen Content (in HTML: br, hr, ...):
<TAG ... />\n
Wie 'e', nur ohne Newline am Ende (in HTML: img, input, ...):
<TAG ... />
Der Content wird belassen wie er ist. Dies ist nützlich für Tags, die in Fließtext eingesetzt werden. Ein Newline wird nicht angehängt.
Text Text <TAG ...>Text Text Text</TAG> Text Text
(in HTML: a, b, span, ...)
Content wird auf eigene Zeile(n) zwischen Begin- und End-Tag gesetzt und um -ind=>$n Leerzeichen eingerückt:
<TAG ...> CONTENT </TAG>\n
Ist der Content leer, wird nur ein End-Tag gesetzt:
Wie 'm', nur ohne Einrückung (in HTML: html, ...):
Der Content wird geschützt, indem dieser einzeilig gemacht (LF und CR werden durch und ersetzt) und unmittelbar zwischen Begin- und End-Tag gesetzt wird (in HTML: pre, textarea, ...):
<TAG ...>CONTENT</TAG>\n
Wie 'p', nur dass die Einrückung des Content entfernt wird.
Ist der Content einzeilig, wird er unmittelbar zwischen Begin- und End-Tag gesetzt:
Ist der Content mehrzeilig, wird er eingerückt:
(in HTML: title, h1-h6, ...)
Anzahl Newlines am Ende.
-nl => 0 (kein Newline):
<TAG>CONTENT</TAG>
-nl => 1 (ein Newline):
<TAG>CONTENT</TAG>\n
-nl => 2 (zwei Newlines):
<TAG>CONTENT</TAG>\n\n
usw.
Ersetze im erzeugten Code die angegebenen Platzhalter durch ihre Werte.
Erzeuge den Code eines Tag und liefere diesen zurück.
$code = $p->cat(@opt,@args);
Sequenz von Werten.
Ersetze im generierten Code die angegebenen Platzhalter durch die angegebenen Werte.
Füge die Arguments @args zusammen und liefere den resultierenden Code zurück.
1.207
Frank Seitz, http://fseitz.de/
Copyright (C) 2023 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.