Skip to content

Repository files navigation

markdown-it-deflist

CI NPM version Coverage Status

Definition list (<dl>) tag plugin for markdown-it markdown parser.

Syntax is largely compatible with Pandoc definition lists in the commonmark_x Markdown variant.

Install

npm install markdown-it-deflist --save

Use

var md = require('markdown-it')()
            .use(require('markdown-it-deflist'));

md.render(/*...*/);

Known differences

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 item

Pandoc 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


: definition

This 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
: definition

This 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.

About

Definition list (<dl>) tag plugin for markdown-it markdown parser

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages