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

Changes for version 0.22 - 2012-07-22

  • All dialects except the Standard dialect are now roles. This makes it possible to create a parser that parses multiple dialects. It's possible for dialects to have conflicting parsing rules, in which case the results are unpredictable.
    • This is a backwards incompatible change, but should not break most code, unless you have implemented your own dialect, or you were explicitly setting a block or span parser class to something like
      • block_parser_class => 'Markdent::Dialect::Theory::BlockParser'
    • But there was really no good reason to do this.
  • The Standard dialect block/span parser classes are now named Markdent::Parser::BlockParser and ::SpanParser.
  • The use of a "dialect" as a named parameter has been replaced by "dialects". The "dialects" parameter can be either a string or an array ref of strings. However, the "dialect" parameter is still accepted for backwards compatibility. This may be removed in the future.
  • The Standard dialect now parses two spaces at the end of a line as a line break. There is a new Markdent::Event::LineBreak class to go with this.
  • Improve the bin/markdent-html script. It now has a --help option. You can pass it Markdown text via the CLI --text option, rather than only via a --file.
  • Implemented most of GitHub-flavored Markdown as a dialect.

Documentation

Markdown extensions implemented on GitHub
Markdown as defined by John Gruber
Markdown extensions proposed by David Wheeler (aka Theory)
Using and Extending Markdent

Modules

An event-based Markdown parser toolkit
Represents a series of captured events
Block parser for GitHub Markdown
Span parser for GitHub Markdown
Block parser for Theory's proposed Markdown extensions
Span parser for Theory's proposed Markdown extensions
An event for auto-links
An event for a code block
An event for the end of a blockquote
An event for the end of a code span
An event for the end of a document
An event for the end of an emphasis span
An event for the end of an inline HTML tag
An event for the end of a header
An event for the end of a link
An event for the end of a list item
An event for the end of a ordered list
An event for the end of a paragraph
An event for the end of a strong span
An event for the end of a table
An event for the end of a table body
An event for the end of a table cell
An event for the end of a table header
An event for the end of a table row
An event for the end of an unordered list
An event for an HTML block
An event for an HTML comment
An event for an HTML comment as a standalone block
An event for an HTML entity
An event for an inline self-closing HTML tag
An event for a horizontal rule
An event for an image
An event for a line break
An event for preformatted text
An event for the start of a blockquote
An event for the start of a code span
An event for the start of a document
An event for the start of an emphasis span
An event for the start of an inline HTML tag
An event for the start of a header
An event for the start of a link
An event for the start of a list item
An event for the start of a ordered list
An event for the start of a paragraph
An event for the start of a strong span
An event for the start of a table
An event for the start of a table body
An event for the start of a table cell
An event for the start of a table header
An event for the start of a table row
An event for the start of an unordered list
An event for plaint text
Captures events for replaying later
Filters out HTML events from the event stream
Turns Markdent events into a complete HTML document
Turns Markdent events into an HTML fragment
A Markdent handler which builds a tree
Passes events on to multiple handlers
A handler which ignores all events
A markdown parser
Block parser for standard Markdown
Span parser for standard Markdown
A role for block and span parsers
A parameterized role for events which can check if they match balance another event
A role for block parsers
A role for classes which output debugging information
A role for a dialect block parser
A role for a dialect span parser
Implements behavior shared by all events
Indicates that an event has an as_text method
Turns events into method calls
A role for handlers which act as filters
A role for handlers which generate HTML
A required role for all handlers
A role for simple markdown to html converter classes
A role for span parsers
Convert Markdown to an HTML Document
Convert Markdown to an HTML Fragment

Provides

in lib/Markdent/CLI.pm
in lib/Markdent/Regexes.pm
in lib/Markdent/Types.pm
in lib/Markdent/Types/Internal.pm