kjelsrud.dev/node_modules/remark-gfm/index.js

35 lines
929 B
JavaScript
Raw Normal View History

2023-07-19 21:31:30 +02:00
/**
* @typedef {import('mdast').Root} Root
* @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options
*/
import {gfm} from 'micromark-extension-gfm'
import {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'
/**
* Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).
*
* @type {import('unified').Plugin<[Options?]|void[], Root>}
*/
export default function remarkGfm(options = {}) {
const data = this.data()
add('micromarkExtensions', gfm(options))
add('fromMarkdownExtensions', gfmFromMarkdown())
add('toMarkdownExtensions', gfmToMarkdown(options))
/**
* @param {string} field
* @param {unknown} value
*/
function add(field, value) {
const list = /** @type {unknown[]} */ (
// Other extensions
/* c8 ignore next 2 */
data[field] ? data[field] : (data[field] = [])
)
list.push(value)
}
}