Definition list (
<dl>) tag plugin for markdown-it markdown parser.
Syntax is largely compatible with Pandoc definition lists
in the commonmark_x Markdown variant.
npm install markdown-it-deflist --savevar md = require('markdown-it')()
.use(require('markdown-it-deflist'));
md.render(/*...*/);Pandoc removes paragraph wrappers from compact definitions even when a
definition contains multiple block elements. This plugin preserves the <p>
tags in that case, so block boundaries are not lost.
Block parsing follows markdown-it, so edge cases involving lazy continuation and nested block containers may differ from Pandoc.
Term
: First paragraph.
- list itemPandoc renders:
<dl>
<dt>Term</dt>
<dd>
First paragraph.
<ul>
<li>list item</li>
</ul>
</dd>
</dl>This plugin renders:
<dl>
<dt>Term</dt>
<dd>
<p>First paragraph.</p>
<ul>
<li>list item</li>
</ul>
</dd>
</dl>Pandoc's commonmark_x reader accepts multiple blank lines between a term and
its first definition marker:
Term
: definitionThis plugin accepts at most one blank line, so the example above is rendered as two paragraphs instead of a definition list.
Pandoc's commonmark_x reader also accepts terms spanning multiple lines:
First line
second line
: definitionThis plugin requires each term to fit on one line, so this example is not parsed as a definition list.
Differences in browser. If you load script directly into the page, without
package system, module will add itself globally as window.markdownitDeflist.