MultiMarkdown icon indicating copy to clipboard operation
MultiMarkdown copied to clipboard

Fails to Properly Parse Nested Definition Lists

Open theory opened this issue 14 years ago • 1 comments

MultiMarkdown fails to properly parse nested lists. Given this MultiMarkdown:

homepage

:   The official home of this project on the web.

bugtracker
:   This entry describes the bug tracking system for this distribution. It is
    a [Map](#Map) with the following valid keys:

    web
    :   a <a href="#URI">URI</a> pointing to a web front-end for the bug
        tracker

    mailto
    :   an email address to which bug reports can be sent

repository
:   This entry describes the source control repository for this distribution.
    It is a [Map](#Map) with the following valid keys:

    url
    :   a [URI](#URI) pointing to the repository itself

    we
    :   a [URI](#URI) pointing to a web front-end for the repository

    type
    :   a lowercase string indicating the VCS used

:   Because a URI like `http://myrepo.example.com/` is ambiguous as to type,
    producers should provide a `type` whenever a `url` key is given. The
    `type` field should be the name of the most common program used to work
    with the repository, e.g. git, svn, cvs, darcs, bzr or hg.

The output is:

<dl>
<dt>homepage</dt>
<dd>
<p>The official home of this project on the web.</p>
</dd>

<dt>bugtracker</dt>
<dd>
<p>This entry describes the bug tracking system for this distribution. It is
a <a href="#Map">Map</a> with the following valid keys:</p>
</dd>

</dl>

<pre><code>web
:   a &lt;a href="#URI"&gt;URI&lt;/a&gt; pointing to a web front-end for the bug
    tracker

mailto
:   an email address to which bug reports can be sent</code></pre>

<dl>
<dt>repository</dt>
<dd>
<p>This entry describes the source control repository for this distribution.
It is a <a href="#Map">Map</a> with the following valid keys:</p>
</dd>

</dl>

<pre><code>url
:   a [URI](#URI) pointing to the repository itself

we
:   a [URI](#URI) pointing to a web front-end for the repository

type
:&lt;dl&gt;</code></pre>

<p><dt>a lowercase string indicating the VCS used</dt>
<dd></p>

<p>Because a URI like <code>http://myrepo.example.com/</code> is ambiguous as to type,
producers should provide a <code>type</code> whenever a <code>url</code> key is given. The
<code>type</code> field should be the name of the most common program used to work
with the repository, e.g. git, svn, cvs, darcs, bzr or hg.</p>

<p></dd></p>

<p></dl></p>

Wow. Here's what it should be (output generated by peg-multimarkdown):

<dl>
<dt>homepage
</dt>
<dd>
<p>The official home of this project on the web.</p></dd>

<dt>bugtracker
</dt>
<dd>
<p>This entry describes the bug tracking system for this distribution. It is
 a <a href="#Map">Map</a> with the following valid keys:</p>
<dl>
<dt>web
</dt>
<dd>a <a href="#URI">URI</a> pointing to a web front-end for the bug
 tracker</dd>

<dt>mailto
</dt>
<dd>an email address to which bug reports can be sent</dd>
</dl>
</dd>

<dt>repository
</dt>
<dd>
<p>This entry describes the source control repository for this distribution.
 It is a <a href="#Map">Map</a> with the following valid keys:</p>
<dl>
<dt>url
</dt>
<dd>a <a href="#URI">URI</a> pointing to the repository itself</dd>

<dt>we
</dt>
<dd>a <a href="#URI">URI</a> pointing to a web front-end for the repository</dd>

<dt>type
</dt>
<dd>a lowercase string indicating the VCS used</dd>
</dl>
</dd>

<dd>
<p>Because a URI like <code>http://myrepo.example.com/</code> is ambiguous as to type,
 producers should provide a <code>type</code> whenever a <code>url</code> key is given. The
 <code>type</code> field should be the name of the most common program used to work
 with the repository, e.g. git, svn, cvs, darcs, bzr or hg.</p></dd>
</dl>

Since I rely on Text::MultiMarkdown from CPAN in my Perl apps (which is directly ported from here), I can't use peg-multimarkdown (yet!). So a fix for this issue in the Perl version would be appreciated.

Thanks!

David

theory avatar Apr 14 '11 04:04 theory

I'll leave this issue open for future reference.

But as I've indicated elsewhere - I am no longer actively developing MMD 2.0. If anyone else is interested in gaining access to this repo in github - let me know!

fletcher avatar Apr 14 '11 10:04 fletcher