The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Quiq::Sdoc::Producer - Sdoc-Generator

BASE CLASS

Quiq::Hash

DESCRIPTION

Ein Objekt der Klasse repräsentiert einen Sdoc-Generator. Die Methoden der Klasse erzeugen die Konstrukte, aus denen ein Sdoc-Dokument aufgebaut ist.

ATTRIBUTES

indentation => $n (Default: 4)

Einrücktiefe bei der Codegenerierung

METHODS

Konstruktor

new() - Konstruktor

Synopsis

$gen = $class->new(@keyVal);

Description

Instantiiere einen Sdoc-Generator mit den Eigenschaften @keyVal (s. Abschnitt Attributes) und liefere eine Referenz auf dieses Objekt zurück.

Example

Generiere Sdoc mit Einrückung 2:

$gen = Quiq::Sdoc::Producer->new(
    indentation => 2,
);

Objektmethoden

code() - Code-Abschnitt

Synopsis

$str = $gen->code($text,@keyVal);

Arguments

$text

Text des Code-Abschnitts.

@keyVal

Eigenschaften des Code-Abschnitts.

Description

Erzeuge einen Code-Abschnitt mit Text $text und liefere den resultierenden Sdoc-Code zurück.

Example

$gen->code("Dies ist\nein Test\n");

erzeugt

|  Dies ist\n
|  ein Test.\n
|\n

comment() - Kommentar

Synopsis

$str = $gen->comment($text);

Description

Erzeuge einen Kommentar mit dem Text $text und liefere den resultierenden Sdoc-Code zurück.

Example

$gen->comment("Dies ist\nein Test\n");

erzeugt

# Dies ist\n
# ein Test.\n
\n

document() - Dokument-Definition

Synopsis

$str = $gen->document(@keyVal);

Description

Erzeuge eine Dokument-Definition mit den Eigenschaften @keyVal und liefere den resultierenden Sdoc-Code zurück.

format() - Format-Abschnitt

Synopsis

$str = $gen->format(
    $format => $code,
    ...
);

Description

Erzeuge einen Format-Abschnitt für die angegebenen Format/Code-Paare und liefere den resultierenden Sdoc-Code zurück.

Synopsis

$str = $gen->link($name,
    url => $url,
    ...
);

Description

Erzeuge ein Link-Segment. Intern wird die Link-Defínition gespeichert, die später mit allen anderen Link-Definitionen per $gen->linkDefs() abgerufen werden kann.

Synopsis

$str = $gen->linkDefs;

Description

Generiere Link-Definitionen zu den Link-Segmenten des Dokuments und liefere diese zurück. Die Methode wird typischerweise am Ende des Dokuments gerufen.

paragraph() - Paragraph

Synopsis

$str = $gen->paragraph($text);

Description

Erzeuge einen Paragraph mit Text $text und liefere den resultierenden Sdoc-Code zurück.

Example

$gen->paragraph("Dies ist\nein Test\n");

erzeugt

|Dies ist\n
|ein Test.\n
|\n

table() - Tabelle

Synopsis

$str = $gen->table(\@titles,\@rows,@keyVal); # mit Titelzeile
$str = $gen->table($width,\@rows,@keyVal); # ohne Titelzeile
$str = $gen->table($text,@keyVal);

Arguments

@titles

(Array of Strings) Liste der Kolumnentitel

@rows

(Array of Arrays of Strings) Liste der Zeilen

$width

(Integer) Anzahl der Kolumnen

$text

(String) Tabellen-Body als Text

@keyVal

(Pairs of Strings) Liste von Tabellen-Eigenschaften

Returns

(String) Sdoc-Code

Description

Erzeuge eine Tabelle mit den Titeln @titles und den Zeilen @rows bzw. dem Tabellen-Body $text sowie den Eigenschaften @keyVal und liefere den resultierenden Sdoc-Code zurück.

Example

$str = $gen->table(['Integer','String','Float'],[
    [1,  'A',  76.253],
    [12, 'AB', 1.7   ],
    [123,'ABC',9999  ],
]);
==>
%Table:
Integer String    Float
------- ------ --------
      1 A        76.253
     12 AB        1.700
    123 ABC    9999.000
.
\n

tableOfContents() - Inhaltsverzeichnis-Definition

Synopsis

$str = $gen->tableOfContents(@keyVal);

Description

Erzeuge eine Inhaltsverzeichnis-Definition mit den Eigenschaften @keyVal und liefere den resultierenden Sdoc-Code zurück.

section() - Abschnitt

Synopsis

$str = $gen->section($level,$title,@keyVal);
$str = $gen->section($level,$title,@keyVal,$body);

Description

Erzeuge einen Abschnitt der Tiefe $level mit dem Titel $title und dem Abschnitts-Körper $body und liefere den resultierenden Sdoc-Code zurück.

Example

$gen->section(2,'Test',"Dies ist\nein Test.");

erzeugt

== Test\n
\n
Dies ist\n
ein Test.\n
\n

definitionList() - Definitions-Liste

Synopsis

$str = $gen->definitionList(\@items);

Description

Erzeuge eine Definitions-Liste mit den Elementen @items (Array von Schlüssel/Wert-Paaren oder von zweielementigen Sub-Arrays) und liefere den resultierenden Sdoc-Code zurück.

Examples

Die Aufrufe

$gen->definitionList([A=>'Eins',B=>'Zwei']);

oder

$gen->definitionList([['A','Eins'],['B','Zwei']]);

erzeugen

[A]:\n
    Eins\n
\n
[B]:\n
    Zwei\n
\n

Endet der Schlüssel mit einem Doppelpunkt, wie bei den Aufrufen

$gen->definitionList(['A:'=>'Eins','B:'=>'Zwei']);

oder

$gen->definitionList([['A:','Eins'],['B:','Zwei']]);

steht der Doppelpunkt in der Klammer

[A:]\n
    Eins\n
\n
[B:]\n
    Zwei\n
\n

was bedeutet, dass dieser mit gesetzt wird.

eof() - EOF-Kommentar

Synopsis

$str = $gen->eof;

Description

Erzeuge einen EOF-Kommentar und liefere den resultierenden Sdoc-Code zurück.

Example

$gen->eof;

erzeugt

# eof\n

VERSION

1.220

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2024 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.