Text::Markup::Markdown(3pm)

Name
Text::Markup::Markdown - Markdown parser for Text::Markup

Synopsis
  my $html = Text::Markup->new->parse(file => 'README.md');
  my $raw  = Text::Markup->new->parse(
      file    => 'README.md',
      options => [ raw => 1 ],
  );

Description
This is the Markdown <https://daringfireball.net/projects/markdown/> parser for Text::Markup. It reads in the file (relying on a BOM <https://www.unicode.org/unicode/faq/utf_bom.html#BOM>), hands it off to Text::Markdown::Discount for parsing, and then returns the generated HTML as an encoded UTF-8 string with an "http-equiv="Content-Type"" element identifying the encoding as UTF-8.

It recognizes files with the following extensions as Markdown:

.md
.mkd
.mkdn
.mdown
.markdown

To change it the files it recognizes, load this module directly and pass a regular expression matching the desired extension(s), like so:

  use Text::Markup::Markdown qr{markd?};

Normally this module returns the output wrapped in a minimal HTML document skeleton. If you would like the raw output without the skeleton, you can pass the "raw" parameter to "parse".

The Text::Markup::Markdown "parse" method supports an additional parameter, "flags", a bitmask of Text::Markdown::Discount options <https://github.com/Songmu/text-markdown-discount/blob/d6b1325/lib/Text/Markdown/Discount.xs#L16-L46>. Use this parameter to replace the default, which is:

  MKD_NOHEADER | MKD_TOC | MKD_DLEXTRA | MKD_FENCEDCODE | MKD_EXTRA_FOOTNOTE | MKD_IDANCHOR

See Also
National Funk Congress Deadlocked On Get Up/Get Down Issue <https://www.theonion.com/national-funk-congress-deadlocked-on-get-up-get-down-is-1819565355>. Markup or Markdown?

Author
David E. Wheeler <david@justatheory.com>

Copyright and License
Copyright (c) 2011-2025 David E. Wheeler. Some Rights Reserved.

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