Gee, Brain, what do you want to do tonight? EOPOD
is($results, <<'EOHTML', "simple paragraph"); <p>Gee, Brain, what do you want to do tonight?</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
B: Now, Pinky, if by any chance you are captured during this mission, remember you are Gunther Heindriksen from Appenzell. You moved to Grindelwald to drive the cog train to Murren. Can you repeat that?
P: Mmmm, no, Brain, don't think I can. EOPOD
is($results, <<'EOHTML', "multiple paragraphs"); <p>B: Now, Pinky, if by any chance you are captured during this mission, remember you are Gunther Heindriksen from Appenzell. You moved to Grindelwald to drive the cog train to Murren. Can you repeat that?</p>
<p>P: Mmmm, no, Brain, don't think I can.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
P: Gee, Brain, what do you want to do tonight?
B: The same thing we do every night, Pinky. Try to take over the world!
EOPOD
is($results, <<'EOHTML', "simple bulleted list"); <ul>
<li><p>P: Gee, Brain, what do you want to do tonight?</p>
</li> <li><p>B: The same thing we do every night, Pinky. Try to take over the world!</p>
</li> </ul>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
P: Gee, Brain, what do you want to do tonight?
B: The same thing we do every night, Pinky. Try to take over the world!
EOPOD
is($results, <<'EOHTML', "numbered list"); <ol>
<li><p>P: Gee, Brain, what do you want to do tonight?</p>
</li> <li><p>B: The same thing we do every night, Pinky. Try to take over the world!</p>
</li> </ol>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
- Pinky
-
Gee, Brain, what do you want to do tonight?
- Brain
-
The same thing we do every night, Pinky. Try to take over the world!
EOPOD
is($results, <<'EOHTML', "list with text headings"); <dl>
<dt>Pinky</dt> <dd>
<p>Gee, Brain, what do you want to do tonight?</p>
</dd> <dt>Brain</dt> <dd>
<p>The same thing we do every night, Pinky. Try to take over the world!</p>
</dd> </dl>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
Pinky
Gee, Brain, what do you want to do tonight?
Brain
The same thing we do every night, Pinky. Try to take over the world!
EOPOD
is($results, <<'EOHTML', "list with bullet and text headings"); <ul>
<li><p>Pinky</p>
<p>Gee, Brain, what do you want to do tonight?</p>
</li> <li><p>Brain</p>
<p>The same thing we do every night, Pinky. Try to take over the world!</p>
</li> </ul>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
Brain <brain@binkyandthebrain.com>
Pinky <pinky@binkyandthebrain.com>
EOPOD
is($results, <<'EOHTML', "bulleted author list"); <ul>
<li><p>Brain <brain@binkyandthebrain.com></p>
</li> <li><p>Pinky <pinky@binkyandthebrain.com></p>
</li> </ul>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
EOPOD
is($results, <<'EOHTML', 'nested lists'); <dl>
<dt>Pinky</dt> <dd>
<dl>
<dt>World Domination</dt> <dd>
</dd> </dl>
</dd> <dt>Brain</dt> <dd>
</dd> </dl>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over
- Pinky
-
On the list:
- Brain
-
Not so much
EOPOD
is($results, <<'EOHTML', 'multiparagraph nested lists'); <dl>
<dt>Pinky</dt> <dd>
<p>On the list:</p>
<dl>
<dt>World Domination</dt> <dd>
<p>Fight the good fight</p>
</dd> <dt>Go to Europe</dt> <dd>
<p>(Steve Martin joke)</p>
</dd> </dl>
</dd> <dt>Brain</dt> <dd>
<p>Not so much</p>
</dd> </dl>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
1 + 1 = 2;
2 + 2 = 4;
EOPOD
is($results, <<'EOHTML', "code block"); <pre><code> 1 + 1 = 2; 2 + 2 = 4;</code></pre>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with a functionname
. EOPOD is($results, <<"EOHTML", "code entity in a paragraph"); <p>A plain paragraph with a <code>functionname</code>.</p>
EOHTML
initialize($parser, $results); $parser->html_header("<html>\n<body>"); $parser->html_footer("</body>\n</html>"); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with body tags turned on. EOPOD is($results, <<"EOHTML", "adding html body tags"); <html> <body>
<p>A plain paragraph with body tags turned on.</p>
</body> </html>
EOHTML
initialize($parser, $results); $parser->html_css('style.css'); $parser->html_header(undef); $parser->html_footer(undef); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with body tags and css tags turned on. EOPOD like($results, qr/<link rel='stylesheet' href='style.css' type='text\/css'>/, "adding html body tags and css tags");
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with non breaking text. EOPOD is($results, <<"EOHTML", "Non breaking text in a paragraph"); <p>A plain paragraph with <nobr>non breaking text</nobr>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with a Newlines. EOPOD is($results, <<"EOHTML", "Link entity in a paragraph"); <p>A plain paragraph with a <a href="$PERLDOC?Newlines">Newlines</a>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with a "Newlines" in perlport. EOPOD is($results, <<"EOHTML", "Link entity in a paragraph"); <p>A plain paragraph with a <a href="$PERLDOC?perlport#Newlines">"Newlines" in perlport</a>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with a Boo. EOPOD is($results, <<"EOHTML", "A link in a paragraph"); <p>A plain paragraph with a <a href="http://link.included.here">Boo</a>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with a http://link.included.here. EOPOD is($results, <<"EOHTML", "A link in a paragraph"); <p>A plain paragraph with a <a href="http://link.included.here">http://link.included.here</a>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with bold text. EOPOD is($results, <<"EOHTML", "Bold text in a paragraph"); <p>A plain paragraph with <b>bold text</b>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with italic text. EOPOD is($results, <<"EOHTML", "Italic text in a paragraph"); <p>A plain paragraph with <i>italic text</i>.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A plain paragraph with a filename. EOPOD is($results, <<"EOHTML", "File name in a paragraph"); <p>A plain paragraph with a <i>filename</i>.</p>
EOHTML
# It's not important that 's (apostrophes) be encoded for XHTML output. initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
# this header is very important & dont you forget it
my $text = "File is: " . <FILE>;
EOPOD
is($results, <<"EOHTML", "Verbatim text with encodable entities");
<pre><code> # this header is very important & dont you forget it
my \$text = "File is: " . <FILE>;</code></pre>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A text paragraph using / and | special POD entities.
EOPOD is($results, <<"EOHTML", "Text with decodable entities"); <p>A text paragraph using / and | special POD entities.</p>
EOHTML
initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
A text paragraph using numeric POD entities: <, >.
EOPOD is($results, <<"EOHTML", "Text with numeric entities"); <p>A text paragraph using numeric POD entities: <, >.</p>
EOHTML
SKIP: for my $use_html_entities (0, 1) { if ($use_html_entities and not $Pod::Simple::XHTML::HAS_HTML_ENTITIES) { skip("HTML::Entities not installed", 1); } local $Pod::Simple::XHTML::HAS_HTML_ENTITIES = $use_html_entities; initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =pod
# this header is very important & dont you forget it
B<my $file = <FILEE<gt> || 'Blank!';>
my $text = "File is: " . <FILE>;
EOPOD
is($results, <<"EOHTML", "Verbatim text with markup and embedded formatting");
<pre><code> # this header is very important & dont you forget it
<b>my \$file = <FILE> || 'Blank!';</b>
my \$text = "File is: " . <FILE>;</code></pre>
EOHTML }
ok $parser = Pod::Simple::XHTML->new, 'Construct a new parser'; $results = ''; $parser->output_string( \$results ); # Send the resulting output to a string ok $parser->parse_string_document( "=head1 Poit!" ), 'Parse with headers'; like $results, qr{<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />}, 'Should have proper http-equiv meta tag';
# Test the link generation methods. is $parser->resolve_pod_page_link('Net::Ping', 'INSTALL'), "$PERLDOC?Net::Ping#INSTALL", 'POD link with fragment'; is $parser->resolve_pod_page_link('perlpodspec'), "$PERLDOC?perlpodspec", 'Simple POD link'; is $parser->resolve_pod_page_link(undef, 'SYNOPSIS'), '#SYNOPSIS', 'Simple fragment link'; is $parser->resolve_pod_page_link(undef, 'this that'), '#this-that', 'Fragment link with space'; is $parser->resolve_pod_page_link('perlpod', 'this that'), "$PERLDOC?perlpod#this-that", 'POD link with fragment with space';
is $parser->resolve_man_page_link('crontab(5)', 'EXAMPLE CRON FILE'), "${MANURL}5/crontab", 'Man link with fragment'; is $parser->resolve_man_page_link('crontab(5)'), "${MANURL}5/crontab", 'Man link without fragment'; is $parser->resolve_man_page_link('crontab'), "${MANURL}1/crontab", 'Man link without section';
# Make sure that batch_mode_page_object_init() works. ok $parser->batch_mode_page_object_init(0, 0, 0, 0, 6), 'Call batch_mode_page_object_init()'; ok $parser->batch_mode, 'We should be in batch mode'; is $parser->batch_mode_current_level, 6, 'The level should have been set';
######################################
sub initialize { $_[0] = Pod::Simple::XHTML->new (); $_[0]->html_header(""); $_[0]->html_footer(""); $_[0]->output_string( \$results ); # Send the resulting output to a string $_[1] = ''; return; }
7 POD Errors
The following errors were encountered while parsing the POD:
- Around line 93:
'=item' outside of any '=over'
- Around line 123:
'=item' outside of any '=over'
- Around line 153:
'=item' outside of any '=over'
- Around line 188:
'=item' outside of any '=over'
- Around line 221:
'=item' outside of any '=over'
- Around line 246:
'=item' outside of any '=over'
- Around line 287:
'=item' outside of any '=over'