Changes for version 0.03 - 2009-11-26

  • Added Markdent::Handler::CaptureEvents and Markdent::CapturedEvents. In my benchmarks, thawing a Markdent::CaptureEvents object and replaying its events to generate HTML for a bunch of documents was about 6x faster than parsing from scratch.
  • Started implementing some Markdown extensions proposed by David Wheeler as the "Theory" dialect. This includes a nice syntax for tables. For now this only includes the table extension.
  • Made it easy to specify a dialect for a parser by writing
    • my $parser = Markdent::Parser->new( dialect => 'Theory' );
  • HTML comments are now parsed as comments, not text or HTML tags. There are two events for this, HTMLCommentBlock and HTMLComment. The block version is for standalone comments, the other is for comments embedded in text.
  • Made tag balancing a bit more generic with the Markdent::Role::BalancedEvent role, which makes it easier to compare start & end events to see if they're balanced.
  • Refactored some parser internals to improve subclassability.

Documentation

Markdown as defined by John Gruber
Markdown extensions proposed by David Wheeler (aka Theory)

Modules

An event-based Markdown parser toolkit
Represents a series of captured events
Block parser for standard Markdown
Span parser for standard Markdown
Block parser for Theory's Markdown
Span parser for Theory's Markdown
An event for auto-links
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 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
A Markdent handler which generates HTML
A Markdent handler which builds a tree
A markdown parser
A role for block and span parsers
A parameterized role for end events which can check if the match a start event
A role for block parsers
A role for classes which output debugging information
Implements behavior shared by all events
Indicates that an event has an as_text method
Turns events into method calls
A required role for all handlers
A role for span parsers
Convert Markdown to HTML

Provides

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