Quiq::Pod::Generator - POD-Generator
Quiq::Hash
Dokumentation der POD-Syntax: http://perldoc.perl.org/perlpod.html
Ein Objekt der Klasse repräsentiert einen POD-Generator. Mit den Methoden der Klasse können aus einem Perl-Programm heraus POD-Dokumente erzeugt werden, wobei man sich um die Syntaxregeln und die Details der Formatierung nicht zu kümmern braucht.
Einrücktiefe bei Code-Abschnitten und Listen.
$pg = $class->new(@keyVal);
Instantiiere einen POD-Generator und liefere eine Referenz auf dieses Objekt zurück.
Generiere POD mit Einrückung 2:
$pg = Quiq::Pod::Generator->new( indentation=>2, );
Alle Abschnitts-Methoden ergänzen den generierten POD-Code um eine Leerzeile am Ende, so dass das nächste Konstrukt direkt angefügt werden kann. Diese Leezeile ist in den Beispielen nicht wiedergegeben.
$pod = $pg->encoding($encoding);
Erzeuge eine Deklaration des Encodings $encoding und liefere den resultierenden POD-Code zurück.
$pg->encoding('utf-8');
erzeugt
=encoding utf-8
$pod = $pg->section($level,$title); $pod = $pg->section($level,$title,$body);
Erzeuge einen Abschnitt der Tiefe $level mit dem Titel $title und dem Abschnitts-Körper $body und liefere den resultierenden POD-Code zurück. Ist $body nicht angegeben oder ein Leerstring, wird nur der Titel erzeugt. Andernfalls wird $body per trim() von einer Einrückung befreit.
ohne Body
$pg->section(1,'Test');
=head1 Test
mit Body
$pg->section(1,'Test',"Dies ist\nein Test.");
=head1 Test Dies ist ein Test.
eine Einrückung wird automatisch entfernt
$pg->section(1,'DESCRIPTION',q~ Dies ist ein Test. ~);
$pod = $pg->code($text);
Erzeuge einen Code-Abschnitt mit Text $text und liefere den resultierenden POD-Code zurück.
$pg->code("sub f {\n return 1;\n}");
$n Leerzeichen ---- sub f { return 1; }
Der Code ist um $n Leerzeichen (den Wert des Objekt-Attributs "indentation") eingerückt.
$pod = $pg->bulletList(\@items);
Erzeuge eine Punkte-Liste mit den Elementen @items und liefere den resultierenden POD-Code zurück.
$pg->bulletList(['Eins','Zwei']);
=over 4 =item * Eins =item * Zwei =back
$pod = $pg->orderedList(\@items);
Erzeuge eine Aufzählungs-Liste mit den Elementen @items und liefere den resultierenden POD-Code zurück.
$pg->orderedList(['Eins','Zwei']);
=over 4 =item 1. Eins =item 2. Zwei =back
$pod = $pg->definitionList(\@items);
Erzeuge eine Definitions-Liste mit den Elementen @items und liefere den resultierenden POD-Code zurück.
Die Aufrufe
$pg->definitionList([A=>'Eins',B=>'Zwei']);
oder
$pg->definitionList([['A','Eins'],['B','Zwei']]);
erzeugen
=over 4 =item A Eins =item B Zwei =back
$pod = $pg->for($format,$code);
Definiere Code $code für Formatierer des Formats $format und liefere das Resultat zurück. Ist $code einzeilig, wird eine for-Instruktion erzeugt, ansonsten eine begin/end-Instruktion.
einzeiliger Code
$pg->for('html','<img src="figure1.png" />');
=for html <img src="figure1.png" />
mehrzeiliger Code
$pg->for('html',qq|Ein Bild:\n<img src="figure1.png" />|);
=begin html Ein Bild: <img src="figure1.png" /> =end html
$pod = $pg->pod;
Beginne einen POD-Block. Diese Instruktion ist nur nötig, wenn der Block mit einem einfachen Text beginnt, denn jede andere POD-Instruktion beginnt ebenfalls einen POD-Block.
$pg->pod;
=pod
$pod = $pg->cut;
Beende einen POD-Block. Diese Instruktion ist nicht nötig, wenn danach kein Perl-Code folgt.
$pg->cut;
=cut
$str = $this->fmt($type,$text);
Erzeuge Inline-Segment vom Typ $type (B, I, C usw.) und liefere den resultierenden POD-Code dieses zurück.
Die Methode sorgt dafür, dass das Segment korrekt generiert wird, wenn in $text die Zeichen '<' oder '>' vorkommen.
Nomal:
$pg->fmt('C','$x'); => C<$x>
1x > eingebettet:
$pg->fmt('C','$class->new()'); => C<< $class->new() >>
2x > eingebettet:
$pg->fmt('C','$x >> $y'); => C<<< $x >> $y >>>
1.133
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 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.