The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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, dont 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, dont 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!

    • Take over world

    • Do laundry

EOPOD

is($results, <<'EOHTML', "nested 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>

<ul>

<li><p>Take over world</p>

</li> <li><p>Do laundry</p>

</li> </ul>

</li> </ul>

EOHTML

initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over

  1. P: Gee, Brain, what do you want to do tonight?

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

  1. P: Gee, Brain, what do you want to do tonight?

  2. B: The same thing we do every night, Pinky. Try to take over the world!

    1. Take over world

    2. Do laundry

EOPOD

is($results, <<'EOHTML', "nested 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>

<ol>

<li><p>Take over world</p>

</li> <li><p>Do laundry</p>

</li> </ol>

</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 &lt;brain@binkyandthebrain.com&gt;</p>

</li> <li><p>Pinky &lt;pinky@binkyandthebrain.com&gt;</p>

</li> </ul>

EOHTML

initialize($parser, $results); $parser->parse_string_document(<<'EOPOD'); =over

Pinky
World Domination
Brain

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:

World Domination

Fight the good fight

Go to Europe

(Steve Martin joke)

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.

This code is important to <me>!

EOPOD is($results, <<"EOHTML", "code entity in a paragraph"); <p>A plain paragraph with a <code>functionname</code>.</p>

<p><code>This code is <b>important</b> to &lt;me&gt;!</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 <span style="white-space: nowrap;">non breaking text</span>.</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">&quot;Newlines&quot; 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 a http://link.included.here?o=1&p=2. EOPOD is($results, <<"EOHTML", "A link in a paragraph"); <p>A plain paragraph with a <a href="http://link.included.here?o=1&amp;p=2">http://link.included.here?o=1&amp;p=2</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 &amp; dont you forget it
  my \$text = &quot;File is: &quot; . &lt;FILE&gt;;</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: &lt;, &gt;.</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->codes_in_verbatim(1); $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 &amp; dont you forget it
  <b>my \$file = &lt;FILE&gt; || Blank!;</b>
  my \$text = &quot;File is: &quot; . &lt;FILE&gt;;</code></pre>

EOHTML

  # Specify characters to encode.
  initialize($parser, $results);
  $parser->html_encode_chars('><"&T');
  $parser->parse_string_document(<<'EOPOD');
=pod

This is Anna's "Answer" to the <q>Question</q>.

9 POD Errors

The following errors were encountered while parsing the POD:

Around line 102:

'=item' outside of any '=over'

Around line 132:

'=item' outside of any '=over'

Around line 185:

'=item' outside of any '=over'

Around line 215:

'=item' outside of any '=over'

Around line 267:

'=item' outside of any '=over'

Around line 302:

'=item' outside of any '=over'

Around line 335:

'=item' outside of any '=over'

Around line 360:

'=item' outside of any '=over'

Around line 401:

'=item' outside of any '=over'