NAME

Quiq::Html::Listing - Programm-Listing in HTML

BASE CLASS

Quiq::Html::Base

SYNOPSIS

use Quiq::Html::Listing;

my $h = Quiq::Html::Tag->new;

my $obj = Quiq::Html::Listing->new(
    language => 'Perl',
    lineNumbers => 1,
    colNumbers => 79,
    source => $file,
);

my $html = $obj->html($h);

ATTRIBUTES

anchor => 'doc'|'method'|undef (Default: 'doc')

Setze Methodenanker an den Anfang der eingebetteten Dokumentation zur Methode (im Fall von Perl der POD-Dokumentation) oder an den Anfang der Methode selbst. Im Falle von undef wird kein Anker gesetzt.

colNumbers => $n (Default: 0)

Setze eine Zeile mit Kolumnennummern. Die Mindest-Zeilenlänge ist $n (z.B. 79). Bei colNumbers=>0 werden keine Kolumnennummern gesetzt.

escape => $bool (Default: 1)

Schütze &, >, < in den Daten durch HTML-Entities. Wenn die Daten bereits geschützt sind, kann dies mit escape=>0 abgeschaltet werden. In dem Fall sind die ermittelten Zeilenlängen für Option colNumbers u.U. zu groß.

language => 'Perl' (Default: undef)

Sprache. Aktuell nur 'Perl'.

lineNumbers => $n (Default: 1)

Setze die Zeilennummer an den Anfang jeder Zeile, beginnend mit $n. Bei lineNumbers=>0 wird keine Zeilennummer gesetzt.

minLineNumberWidth => $n (Default: 2)

Minimale Breite der Zeilennummern-Spalte in Zeichen. Ungenutzte Stellen werden mit Leerzeichen aufgefüllt.

source => $filename -or- $strRef (Default: undef)

Inhalt. Dieser kann aus einer Datei oder einem String kommen.

EXAMPLE

Programm:

 1: require R1::HtmlTag;
 2: require R1::Html::Listing;
 3: 
 4: my $h = R1::HtmlTag->new;
 5: 
 6: my $text = << '__PERL__';
 7: #!/usr/bin/perl
 8: 
 9: =encoding utf8
10: 
11: Nur ein Demo-Programm.
12: 
13: =cut
14: 
15: print "Hello world!\n";
16: 
17: # eof
18: __PERL__
19: 
20: my $html = R1::Html::Listing->html($h,
21:     cssPrefix=>'sdoc-code',
22:     language=>'Perl',
23:     source=>\$text,
24: );

Ergebnis:

1: 

Im Browser:

METHODS

Konstruktor

new() - Konstruktor

Synopsis

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

Objektmethoden

html() - Generiere HTML

Synopsis

$html = $obj->html($h);
$html = $class->html($h,@keyVal);

DETAILS

CSS-Klassen

PREFIX-table|Das gesamte Konstrukt (Tabelle)
PREFIX-tr-odd|Ungerade Zeile
PREFIX-tr-even|Gerade Zeile
PREFIX-td-ln|Zelle für Zeilennummer
PREFIX-td-cn|Zelle für Kolumnennummer
PREFIX-td-edge|Eckzelle Kolumnennummer/Zeilennummer
PREFIX-td-line|Zelle für Zeileninhalt
PREFIX-doc|Kennzeichnung Doku (bei Perl POD)
PREFIX-comment|Kennzeichnung Kommentar

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.