The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Pod::Simple::Pandoc - convert Pod to Pandoc document model

SYNOPSIS

  use Pod::Simple::Pandoc;

  my $parser = Pod::Simple::Pandoc->new;
  my $doc    = $parser->parse_file( $filename );

  # result is a Pandoc::Document
  print $doc->to_json;

DESCRIPTION

This module converts POD format documentation (perlpod) to the document model used by Pandoc. The result can be accessed with methods of Pandoc::Element and emitted as JSON for further processing to other document formats (HTML, Markdown, LaTeX, PDF, EPUB, docx, ODT, man...).

The command line script pod2pandoc makes use of this module, for instance to directly convert to PDF:

  pod2pandoc input.pod | pandoc -f json -t output.pdf

OPTIONS

data-sections

Parse data sections of pandoc input formats with Pandoc and merge them into the document (disabled by default).

podurl

Base URL to link Perl module names to. Set to https://metacpan.org/pod/ by default.

METHODS

parse_file( $filename | *INPUT )

Reads Pod from file or filehandle and convert it to a Pandoc::Document.

parse_string( $string )

Reads Pod from string and convert it to a Pandoc::Document.

MAPPING

Pod elements are mapped to Pandoc elements as following:

Formatting codes

Formatting codes for italic text (I<...>), bold text (B<...>), and code (C<...>) are mapped to Emphasized text (Emph), strongly emphasized text (Strong), and inline code (Code). Formatting code for filenames (F<...>) are mapped to inline code with class filename (`...`{.filename} in Pandoc Markdown). Formatting codes inside code and filenames (e.g. code with bold or http://example.org/ as filename) are stripped to unformatted code. Character escapes (E<...>) and S<...> are directly mapped to Unicode characters. The special formatting code X<...> is ignored.

Some examples of links of different kinds:

http://example.org/

pod2pandoc

"OPTIONS" in pod2pandoc

perl(1)

"ENVIRONMENT" in crontab(5)

hell itself!

Link text can contain formatting codes:

the pod2pandoc script

Internal links are not supported yet:

"MAPPING"

mapping from PoD to Pandoc

Titles may contain formatting codes!

Lists

  1. Numbered lists are

  2. converted to NumberedList and

    • Bulleted lists are

    • converted to

      BulletList

Definition
Lists
are

also supported.

=over/=back

    An =over...=back region containing no =item is mapped to BlockQuote.

Verbatim sections

  verbatim sections are mapped
    to code blocks

Data sections

Data sections with target html or latex are passed as RawBlock. HTML, LaTeX, TeX, and tex are recognized as alias.

With option parse-data-sections additional targets supported by pandoc as input format (markdown, markdown_github, rst...) are parsed with Pandoc and merged into the result document.

HTML is passed through as you can see here.

HTML is automatically enclosed in <div>...</div> if needed.

SEE ALSO

This module is based on Pod::Simple (Pod::Simple::SimpleTree). It makes obsolete several specialized Pod::Simple::... modules such as Pod::Simple::HTML, Pod::Simple::XHTML, Pod::Simple::LaTeX, Pod::Simple::RTF Pod::Simple::Text, Pod::Simple::Wiki, Pod::WordML, Pod::Perldoc::ToToc etc.