Pod::Simple::Pandoc - convert Pod to Pandoc document model
use Pod::Simple::Pandoc; my $parser = Pod::Simple::Pandoc->new; my $doc = $parser->parse_file( $filename ); # result is a Pandoc::Document object my $json = $doc->to_json; my $markdown = $doc->to_pandoc( -t => 'markdown' ); $doc->to_pandoc(qw( -o doc.html --standalone ));
This module converts POD format documentation (perlpod) to the document model used by Pandoc. The result object can be accessed with methods of Pandoc::Elements 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
Parse data sections of pandoc input formats with Pandoc and merge them into the document (disabled by default).
Base URL to link Perl module names to. Set to https://metacpan.org/pod/ by default.
Reads Pod from file or filehandle and convert it to a Pandoc::Document.
Reads Pod from string and convert it to a Pandoc::Document.
Pod elements are mapped to Pandoc elements as following:
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.
I<...>
B<...>
code
C<...>
Emph
Strong
Code
F<...>
filename
`...`{.filename}
code with bold
E<...>
S<...>
X<...>
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
codes
Numbered lists are
converted to NumberedList and
NumberedList
Bulleted lists are
converted to
BulletList
also supported.
An =over...=back region containing no =item is mapped to BlockQuote.
=over
=back
=item
BlockQuote
verbatim sections are mapped to code blocks
Data sections with target html or latex are passed as RawBlock. HTML, LaTeX, TeX, and tex are recognized as alias.
html
latex
RawBlock
HTML
LaTeX
TeX
tex
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.
parse-data-sections
markdown
markdown_github
rst
HTML is passed through as you can see here.
<div>...</div>
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.
Pod::Simple::...
To install Pandoc::Elements, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Pandoc::Elements
CPAN shell
perl -MCPAN -e shell install Pandoc::Elements
For more information on module installation, please visit the detailed CPAN module installation guide.