• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bin/H16-Nov-2009-7854

inc/Module/H16-Nov-2009-1,7361,276

lib/PPI/H16-Nov-2009-617299

t/H16-Nov-2009-250166

ChangesH A D16-Nov-2009943 3425

LICENSEH A D16-Nov-200919.7 KiB379304

MANIFESTH A D16-Nov-2009443 2423

META.ymlH A D16-Nov-2009740 3231

Makefile.PLH A D03-May-2022294 129

READMEH A D16-Nov-20093.4 KiB10574

README

1NAME
2    PPI::HTML - Generate syntax-hightlighted HTML for Perl using PPI
3
4SYNOPSIS
5      use PPI;
6      use PPI::HTML;
7
8  # Load your Perl file
9      my $Document = PPI::Document->load( 'script.pl' );
10
11  # Create a reusable syntax highlighter
12      my $Highlight = PPI::HTML->new( line_numbers => 1 );
13
14  # Spit out the HTML
15      print $Highlight->html( $Document );
16
17DESCRIPTION
18    PPI::HTML converts Perl documents into syntax highlighted HTML pages.
19
20HISTORY
21    PPI::HTML is the successor to the now-redundant PPI::Format::HTML.
22
23    While early on it was thought that the same formatting code might be
24    able to be used for a variety of different types of things (ANSI and
25    HTML for example) later developments with the here-doc code and the need
26    for independantly written serializers meant that this idea had to be
27    discarded.
28
29    In addition, the old module only made use of the Tokenizer, and had a
30    pretty shit API to boot.
31
32  API Overview
33    The new module is much cleaner. Simply create an object with the options
34    you want, pass PPI::Document objects to the "html" method, and you get
35    strings of HTML that you can do whatever you want with.
36
37METHODS
38  new %args
39    The "new" constructor takes a simple set of key/value pairs to define
40    the formatting options for the HTML.
41
42    page
43        Is the "page" option is enabled, the generator will wrap the
44        generated HTML fragment in a basic but complete page.
45
46    line_numbers
47        At the present time, the only option available. If set to true, line
48        numbers are added to the output.
49
50    colors | colours
51        For cases where you don't want to use an external stylesheet, you
52        can provide "colors" as a hash reference where the keys are CSS
53        classes (generally matching the token name) and the values are
54        colours.
55
56        This allows basic colouring without the need for a whole stylesheet.
57
58    css The "css" option lets you provide a custom CSS::Tiny object
59        containing any CSS you want to apply to the page (if you are using
60        page mode).
61
62        If both the "colors" and "css" options are used, the colour CSS
63        entries will overwrite anything contained in the CSS::Tiny object.
64        The object will also be cloned if it to be modified, to prevent
65        destroying any CSS objects passed in.
66
67    Returns a new PPI::HTML object
68
69  css
70    The "css" accessor returns the CSS::Tiny object originally provided to
71    the constructor.
72
73  html $Document | $file | \$source
74    The main method for the class, the "html" method takes a single
75    PPI::Document object, or anything that can be turned into a
76    PPI::Document via its "new" method, and returns a string of HTML
77    formatted based on the arguments given to the "PPI::HTML" constructor.
78
79    Returns a string, or "undef" on error.
80
81SUPPORT
82    Bugs should always be submitted via the CPAN bug tracker
83
84    <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PPI-HTML>
85
86    For other issues, contact the maintainer
87
88AUTHOR
89    Adam Kennedy <adamk@cpan.org>
90
91    Funding provided by The Perl Foundation
92
93SEE ALSO
94    <http://ali.as/>, PPI
95
96COPYRIGHT
97    Copyright 2005 - 2009 Adam Kennedy.
98
99    This program is free software; you can redistribute it and/or modify it
100    under the same terms as Perl itself.
101
102    The full text of the license can be found in the LICENSE file included
103    with this module.
104
105