remark-deflist

Remark plugin for pandoc-style definition lists.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
remark-deflist
1.0.03 years ago5 years agoMinified + gzip package size for remark-deflist in KB

Readme

remark-deflist
CI/CD Status MIT License stars
Remark plugin for adding support for pandoc-style definition lists to Markdown.
Adds three new node types to MDAST: descriptionlist, descriptionterm, and descriptiondetails. When using rehype, these will be stringified as dl, dt, and dd respectively.
Mostly compatible with the pandoc/PHP Markdown Extra syntax. The only difference is that multi-paragraph descriptions are not currently supported.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.
npm:
npm install remark-deflist

Example

Syntax

Term 1

: Definition 1

AST

The example above will yield:
{
  type: 'descriptionlist',
  children: [
    {
      type: 'descriptionterm',
      children: [{
        type: 'text',
        value: 'Term 1'
      }]
    },
    {
      type: 'descriptiondetails',
      children: [{
        type: 'text',
        value: 'Definition 1'
      }]
    }
  ]
}

Syntax

Term with *inline markup*

: Definition **1**

Lazy Initialization
: Achievement of compactness by not typing an extra line after the definition term.

Continuation

:   Splitting a single paragraph
    across multiple lines.

Lazy Continuation
: Ugliness
by not indenting text.

This is an example of multiple definitions for a single term.

Indent
: (*noun*) A whitespace to align text in a beautiful way.
: (*verb*) To add whitespace to make ugly code beautiful.

Usage

import { unified } from 'unified'
import markdown from 'remark-parse'
import html from 'rehype-stringify'
import remark2rehype from 'remark-rehype'
import meta from 'remark-meta'

unified()
  .use(markdown)
  .use(meta)
  .use(remark2rehype)
  .use(html)

License

MIT © Alex Shaw