Quiq::Html::Pygments - Syntax Highlighting in HTML
Quiq::Hash
Modul laden:
use Quiq::Html::Pygments;
Liefere die CSS-Regeln für Pygments-Style 'emacs', eingeschränkt auf einen Container 'highlight', der den gehighlighteten Code aufnimmt:
($rules,$bgColor) = Quiq::Html::Pygments->css('emacs','highlight'); # .highlight .hll { background-color: #ffffcc } # ... # #f8f8f8
Erzeuge Syntax-Highlighting für Perl-Code $code. Der gelieferte HTML-Code $html muss in einen Container 'highlight' (s.o.) eingebettet werden, damit die oben erzeugten CSS-Regeln greifen:
$html = Quiq::Html::Pygments->html('perl',$code);
Liefere die Namen aller Pygments-Styles:
@styles = Quiq::Html::Pygments->styles;
Liefere eine HTML-Seite mit einem Darstellungsbeispiel für jeden Pygments-Style. Gehighlightet wird der Code $code der Programmiersprache $lang:
$html = Quiq::Html::Pygments->stylesPage($h,$lang,$code);
Diese Klasse stellt eine Schnittstelle zum Pygments Syntax Highlighting Paket dar, speziell zum Syntax Highlighting in HTML. Die Methoden der Klassen liefern die CSS-Regeln und den HTML-Code, um gehighlighteten Quelltext in HTML-Seiten integrieren zu können.
($rules,$bgColor) | $rules = $class->css; ($rules,$bgColor) | $rules = $class->css($style); ($rules,$bgColor) | $rules = $class->css($style,$selector);
Name des Pygments-Style, für den die CSS-Information geliefert wird.
Mögliche Werte: abap, algol, algol_nu, arduino, autumn, borland, bw, colorful, default, emacs, friendly, fruity, igor, lovelace, manni, monokai, murphy, native, paraiso-dark, paraiso-light, pastie, perldoc, rainbow_dash, rrt, tango, trac, vim, vs, xcode.
Die definitiv gültige Liste der Stylenamen liefert die Methode styles().
Zusätzlicher CSS-Selektor, der den CSS-Regeln vorangestellt wird. Der Selektor schränkt den Gültigkeitsbereich der CSS-Regeln auf ein Parent-Element ein. Ist kein Selektor angegeben, gelten die CSS-Regeln global.
CSS-Regeln und Hintergrundfarbe (String, String). Im Skalarkontext werden nur die CSS-Regeln geliefert.
Liefere die CSS-Regeln für die Vordergrund-Darstellung von Syntax-Elementen und die zugehörige Hintergrundfarbe für Pygments-Style $style.
Gib die CSS-Regeln für den Pyments-Style 'emacs' aus:
print scalar Quiq::Html::Pygments->css('emacs'); __END__ .hll { background-color: #ffffcc } .c { color: #008800; font-style: italic } /* Comment */ .err { border: 1px solid #FF0000 } /* Error */ .k { color: #AA22FF; font-weight: bold } /* Keyword */ .o { color: #666666 } /* Operator */
Gib die CSS-Regeln für den Pyments-Style 'emacs' und Parent-Elemente der Klasse 'highlight' aus:
print scalar Quiq::Html::Pygments->css('emacs','.syntax'); __END__ .syntax .hll { background-color: #ffffcc } .syntax .c { color: #008800; font-style: italic } /* Comment */ .syntax .err { border: 1px solid #FF0000 } /* Error */ .syntax .k { color: #AA22FF; font-weight: bold } /* Keyword */ .syntax .o { color: #666666 } /* Operator */
$html = $class->html($lang,$code);
Die Sprache des Quelltexts $code. In Pygments-Terminiologie handelt es sich um den Namen eines "Lexers". Die Liste aller Lexer liefert das Kommando:
$ pygmentize -L lexers
Der Quelltext, der gehighlightet wird.
HTML-Code mit gehighlightetem Quelltext (String)
Liefere den HTML-Code mit dem Syntax-Highlighting für Quelltext $code der Sprache $lang.
@styles | $styleA = $class->styles;
Liste von Pygments Stylenamen (Array of Strings).
Ermittele die Liste der Namen aller Pygments-Styles und liefere diese zurück. Im Skalarkontext liefere ein Referenz auf die Liste.
Interaktiv lässt sich die (kommentierte) Liste aller Styles ermitteln mit:
$ pygmentize -L styles
$html = $class->stylesPage($h,$lang,$code);
HTML-Generator.
Die Sprache des Quelltexts $code (siehe auch Methode html()).
Beispiel-Quelltext der Sprache $lang.
HTML-Seite (String)
Erzeuge für Codebeispiel $code der Sprache (des "Lexers") $lang eine HTML-Seite mit allen Pygments-Styles und liefere diese zurück.
Diese Seite bietet Hilfestellung für die Entscheidung, welcher Style am besten passt.
Generiere eine Seite mit allen Styles und schreibe sie auf Datei $file:
my $h = Quiq::Html::Tag->new; my $html = Quiq::Html::Pygments->stylesPage($h,'perl',q~ PERL-CODE ~)); Quiq::Path->write($file,$html);
1.195
Frank Seitz, http://fseitz.de/
Copyright (C) 2021 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.