unified

Project: landakram/remark-task-list

Package: remark-task-list@0.0.3

  1. Dependents: 0
  2. Toggle task list items and reference them by IDs.
  1. remark 214
  2. markdown 154
  3. remark-plugin 82
  4. gfm 21

remark-task-list

npm version Build Status

This remark plugin does a few things:

Usage

const unified = require('unified')
const markdown = require('remark-parse')
const taskListPlugin = require('remark-task-list');

let processor = unified()
    .use(markdown, { gfm: true })
    .use(taskListPlugin, { 
        toggle: ['task-list-item-1'], // Default is []
        idPrefix: 'task-list-item-'   // Default is 'task-list-item-'
    })

When the processor is run, each checkbox listItem node will have a few properties attached to its data key:

data: {
    idx: 0,                    // Incremented for each task list item
    id: 'task-list-item-0',    // Controlled by `idPrefix`
    hProperties: {
        id: 'task-list-item-0' // Causes the node to be rendered to HTML with an `id` attribute
    }
}

We used the toggle option above to indicate that we'd like the task list item with the ID task-list-item-1 to be toggled. If it is checked, it will be toggled unchecked, and vice versa.

Say that we have this markdown string:

- [ ] task 1
- [x] task 2

Since we specified toggle: ["task-list-item-1"], the second listItem node will have its checked property flipped. Thus, the markdown would be re-rendered like so:

-   [ ] task 1
-   [ ] task 2