---
name: "Markdent::Dialect::Theory"
section: "3pm"
platform: "linux"
package: "libmarkdent-perl"
version: "0.40-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Markdent::Dialect::Theory"
---

# Markdent::Dialect::Theory(3pm)

Markdown extensions proposed by David Wheeler (aka Theory)

## NAME

Markdent::Dialect::Theory - Markdown extensions proposed by David Wheeler (aka Theory)

## SYNOPSIS

```
  use Markdent::Parser;
  my $parser = Markdent::Parser->new( dialects => 'Theory', handler => ... );
```

## DESCRIPTION

The Theory roles add parsing for Markdown extensions proposed by David Wheeler (aka Theory). See \<http://justatheory.com/computers/markup/markdown-table-rfc.html\> and \<http://justatheory.com/computers/markup/modest-markdown-proposal.html\> for details.

### DEVIATIONS

The dialect differs from David Wheeler's proposals in a few ways. Most of these deviations were discussed with David Wheeler and included with his approval.

- •

  The header's "marker" row can use "+====+" as well as "+----+":

  ```
    | Header 1 | Header 2 |
    +==========+==========+
    | Body 1   | Body 2   |
  ```

- •

  The table does not require a header:

  ```
    | Body 1 | Body 2 |
    | Body 3 | Body 4 |
  ```

- •

  You can include a header marker at the beginning and/or end of the table. This matches how MySQL outputs tables from its CLI tool.

  ```
    +------+-------------+------------------------------+--------+
    | id   | name        | description                  | price  |
    +------+-------------+------------------------------+--------+
    |    1 | gizmo       | Takes care of the doohickies |   1.99 |
    |    2 | doodad      | Collects *gizmos*            |  23.80 |
    |   10 | dojigger    | Foo                          | 102.98 |
    | 1024 | thingamabob | Self-explanatory, no?        |   0.99 |
    +------+-------------+------------------------------+--------+
  ```

- •

  Currently it just does tables, not definition lists. This will be fixed in a future release.

- •

  Table continuation lines are expected to have the same number of cells as the line being continued. In other words, this doesn't work:

  ```
   | cell1 | cell2     |
           : continues
  ```

  Instead, you must write this:

  ```
   | cell1 | cell2     |
   :       : continues :
  ```

  This is not an approved deviation, and may be corrected in a future release if I can figure out how to do so (patches welcome).

## BUGS

See Markdent for bug reporting details.

## AUTHOR

Dave Rolsky, \<autarch@urth.org\>

## COPYRIGHT & LICENSE

Copyright 2009-2012 Dave Rolsky, All Rights Reserved.

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