The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.204

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2022 Frank Seitz

LICENSE

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