Extension for mdast-util-from-markdown
and/or
mdast-util-to-markdown
to support GitHub flavored markdown
task list items in mdast.
When parsing (from-markdown
), must be combined with
micromark-extension-gfm-task-list-item
.
Use this if you’re dealing with the AST manually.
It’s might be better to use remark-gfm
with remark,
which includes this but provides a nicer interface and makes it easier to
combine with hundreds of plugins.
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install mdast-util-gfm-task-list-item
Say we have the following file, example.md
:
* [ ] To do
* [x] Done
1. Mixed…
2. [x] …messages
And our module, example.js
, looks as follows:
import fs from 'node:fs'
import {fromMarkdown} from 'mdast-util-from-markdown'
import {toMarkdown} from 'mdast-util-to-markdown'
import {gfmTaskListItem} from 'micromark-extension-gfm-task-list-item'
import {gfmTaskListItemFromMarkdown, gfmTaskListItemToMarkdown} from 'mdast-util-gfm-task-list-item'
const doc = fs.readFileSync('example.md')
const tree = fromMarkdown(doc, {
extensions: [gfmTaskListItem],
mdastExtensions: [gfmTaskListItemFromMarkdown]
})
console.log(tree)
const out = toMarkdown(tree, {extensions: [gfmTaskListItemToMarkdown]})
console.log(out)
Now, running node example
yields (positional info removed for the sake of
brevity):
{
type: 'root',
children: [
{
type: 'list',
ordered: false,
start: null,
spread: false,
children: [
{
type: 'listItem',
spread: false,
checked: false,
children: [
{type: 'paragraph', children: [{type: 'text', value: 'To do'}]}
]
},
{
type: 'listItem',
spread: false,
checked: true,
children: [
{type: 'paragraph', children: [{type: 'text', value: 'Done'}]}
]
}
]
},
{
type: 'list',
ordered: true,
start: 1,
spread: false,
children: [
{
type: 'listItem',
spread: false,
checked: null,
children: [
{type: 'paragraph', children: [{type: 'text', value: 'Mixed…'}]}
]
},
{
type: 'listItem',
spread: false,
checked: true,
children: [
{type: 'paragraph', children: [{type: 'text', value: '…messages'}]}
]
}
]
}
]
}
* [ ] To do
* [x] Done
1. Mixed…
2. [x] …messages
This package exports the following identifier: gfmTaskListItemFromMarkdown
,
gfmTaskListItemToMarkdown
.
There is no default export.
Support task list items.
The exports are extensions, respectively
for mdast-util-from-markdown
and
mdast-util-to-markdown
.
remarkjs/remark
— markdown processor powered by pluginsremarkjs/remark-gfm
— remark plugin to support GFMmicromark/micromark
— the smallest commonmark-compliant markdown parser that existsmicromark/micromark-extension-gfm-task-list-item
— micromark extension to parse GFM task list itemssyntax-tree/mdast-util-from-markdown
— mdast parser usingmicromark
to create mdast from markdownsyntax-tree/mdast-util-to-markdown
— mdast serializer to create markdown from mdast
See contributing.md
in syntax-tree/.github
for ways to get
started.
See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.