Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Pod::Markdown(3)      User Contributed Perl Documentation     Pod::Markdown(3)

       Pod::Markdown - Convert POD to Markdown

       version 3.300

	 # Pod::Simple API is supported.

	 # Command line	usage: Parse a pod file	and print to STDOUT:
	 # $ perl -MPod::Markdown -e 'Pod::Markdown->new->filter(@ARGV)' path/to/POD/file >

	 # Work	with strings:
	 my $markdown;
	 my $parser = Pod::Markdown->new;

	 # See Pod::Simple docs	for more.

       This module uses	Pod::Simple to convert POD to Markdown.

       Literal characters in Pod that are special in Markdown (like
       *asterisks*) are	backslash-escaped when appropriate.

       By default "markdown" and "html"	formatted regions are accepted.
       Regions of "markdown" will be passed through unchanged.	Regions	of
       "html" will be placed inside a "<div>" tag so that markdown characters
       won't be	processed.  Regions of ":markdown" or ":html" will be
       processed as POD	and included.  To change which regions are accepted
       use the Pod::Simple API:

	 my $parser = Pod::Markdown->new;
	 $parser->unaccept_targets(qw( markdown	html ));

   A note on encoding and escaping
       The common Pod::Simple API returns a character string.  If you want
       Pod::Markdown to	return encoded octets, there are two attributes	to
       assist: "match_encoding"	and "output_encoding".

       When an output encoding is requested any	characters that	are not	valid
       for that	encoding will be escaped as HTML entities.

       This is not 100%	safe, however.

       Markdown	escapes	all ampersands inside of code spans, so	escaping a
       character as an HTML entity inside of a code span will not be correct.
       However,	with pod's "S" and "E" sequences it is possible	to end up with
       high-bit	characters inside of code spans.

       So, while "output_encoding => 'ascii'" can work,	it is not recommended.
       For these reasons (and more), "UTF-8" is	the default, fallback encoding
       (when one is required).

       If you prefer HTML entities over	literal	characters you can use
       "html_encode_chars" which will only operate outside of code spans
       (where it is safe).


       The constructor accepts the following named arguments:

       o   "local_module_url_prefix"

	   Alters the perldoc urls that	are created from "L<>" codes when the
	   module is a "local" module ("Local::*" or "Foo_Corp::*" (see

	   The default is to use "perldoc_url_prefix".

       o   "local_module_re"

	   Alternate regular expression	for determining	"local"	modules.
	   Default is "our $LOCAL_MODULE_RE = qr/^(Local::|\w*?_\w*)/".

       o   "man_url_prefix"

	   Alters the man page urls that are created from "L<>"	codes.

	   The default is "".

       o   "perldoc_url_prefix"

	   Alters the perldoc urls that	are created from "L<>" codes.  Can be:

	   o   "metacpan" (shortcut for	"")

	   o   "sco" (shortcut for "")

	   o   any url

	   The default is "metacpan".

	       Pod::Markdown->new(perldoc_url_prefix =>	'http://localhost/perl/pod');

       o   "perldoc_fragment_format"

	   Alters the format of	the url	fragment for any "L<>" links that
	   point to a section of an external document (""section" in name").
	   The default will be chosen according	to the destination
	   "perldoc_url_prefix".  Alternatively	you can	specify	one of the

	   o   "metacpan"

	   o   "sco"

	   o   "pod_simple_xhtml"

	   o   "pod_simple_html"

	   o   A code ref

	   The code ref	can expect to receive two arguments: the parser	object
	   ($self) and the section text.  For convenience the topic variable
	   ($_)	is also	set to the section text:

	     perldoc_fragment_format =>	sub { s/\W+/-/g; }

       o   "markdown_fragment_format"

	   Alters the format of	the url	fragment for any "L<>" links that
	   point to an internal	section	of this	document ("section").

	   Unfortunately the format of the id attributes produced by whatever
	   system translates the markdown into html is unknown at the time the
	   markdown is generated so we do some simple clean up.

	   Note: "markdown_fragment_format" and	"perldoc_fragment_format"
	   accept the same values: a (shortcut to a) method name or a code

       o   "include_meta_tags"

	   Specifies whether or	not to print author/title meta tags at the top
	   of the document.  Default is	false.

       o   "escape_url"

	   Specifies whether or	not to escape URLs.  Default is	true.  It is
	   not recommended to turn this	off with an empty
	   local_module_url_prefix, as the resulting local module URLs can be
	   confused with IPv6 addresses	by web browsers.

       A string	of characters to encode	as html	entities (using
       "encode_entities" in HTML::Entities if available, falling back to
       numeric entities	if not).

       Possible	values:

       o   A value of 1	will use the default set of characters from
	   HTML::Entities (control chars, high-bit chars, and "<&>"'").

       o   A false value will disable.

       o   Any other value is used as a	string of characters (like a regular
	   expression character	class).

       By default this is disabled and literal characters will be in the
       output stream.  If you specify a	desired	"output_encoding" any
       characters not valid for	that encoding will be HTML entity encoded.

       Note that Markdown requires ampersands ("&") and	left angle brackets
       ("<") to	be entity-encoded if they could	otherwise be interpreted as
       html entities.  If this attribute is configured to encode those
       characters, they	will always be encoded.	 If not, the module will make
       an effort to only encode	the ones required, so there will be less html
       noise in	the output.

       Boolean:	If true, use the "=encoding" of	the input pod as the encoding
       for the output.

       If no encoding is specified, Pod::Simple	will guess the encoding	if it
       sees a high-bit character.

       If no encoding is guessed (or the specified encoding is unusable),
       "output_encoding" will be used if it was	specified.  Otherwise "UTF-8"
       will be used.

       This attribute is not recommended but is	provided for consistency with
       other pod converters.

       Defaults	to false.

       The encoding to use when	writing	to the output file handle.

       If neither this nor "match_encoding" are	specified, a character string
       will be returned	in whatever Pod::Simple	output method you specified.

       Returns the regular expression used to determine	local modules.

       Returns the url prefix in use for local modules.

       Returns the url prefix in use for man pages.

       Returns the url prefix in use (after resolving shortcuts	to urls).

       Returns the coderef or format name used to format a url fragment	to a
       section in an external document.

       Returns the coderef or format name used to format a url fragment	to an
       internal	section	in this	document.

       Returns the boolean value indicating whether or not meta	tags will be

       Returns the boolean value indicating whether or not URLs	should be

       Used internally to create a url (using "man_url_prefix")	from a string
       like man(1).

	   # With $name	and section being the two parts	of L<name/section>.
	   my $url = $parser->format_perldoc_url($name,	$section);

       Used internally to create a url from the	name (of a module or script)
       and a possible section (heading).

       The format of the url fragment (when pointing to	a section in a
       document) varies	depending on the destination url so
       "perldoc_fragment_format" is used (which	can be customized).

       If the module name portion of the link is blank then the	section	is
       treated as an internal fragment link (to	a section of the generated
       markdown	document) and "markdown_fragment_format" is used (which	can be

       Format url fragment for an internal link	by replacing non-word
       characters with dashes.

       Format url fragment like	"idify"	in Pod::Simple::XHTML.

       Format url fragment like	"section_name_tidy" in Pod::Simple::HTML.

       Format fragment for	(uses

       Format fragment for (uses

       Uses "local_module_re" to determine if passed module is a "local"

       o   pod2markdown	- script included for command line usage

       o   Pod::Simple - Super class that handles Pod parsing

       o   perlpod - For writing POD

       o   perlpodspec - For parsing POD

       o   <>	- Markdown

       You can find documentation for this module with the perldoc command.

	 perldoc Pod::Markdown

       The following websites have more	information about this module, and may
       be of help to you. As always, in	addition to those websites please use
       your favorite search engine to discover more resources.

       o   MetaCPAN

	   A modern, open-source CPAN search engine, useful to view POD	in
	   HTML	format.


   Bugs	/ Feature Requests
       Please report any bugs or feature requests by email to
       "bug-pod-markdown at", or through the web interface at
       <>.	You
       will be automatically notified of any progress on the request by	the

   Source Code

	 git clone

       o   Marcel Gruenauer <>

       o   Victor Moral	<>

       o   Ryan	C. Thompson <rct at thompsonclan d0t org>

       o   Aristotle Pagaltzis <>

       o   Randy Stauner <>

       o   Aristotle Pagaltzis <>

       o   Cindy Wang (CindyLinz) <>

       o   Graham Ollis	<>

       o   Mike	Covington <>

       o   motemen <>

       o   moznion <>

       o   Peter Vereshagin <>

       o   Ryan	C. Thompson <>

       o   Yasutaka ATARASHI <>

       This software is	copyright (c) 2011 by Randy Stauner.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.32.1			  2020-10-31		      Pod::Markdown(3)


Want to link to this manual page? Use this URL:

home | help