kjelsrud.dev/node_modules/remark-parse/lib/index.js

32 lines
942 B
JavaScript
Raw Normal View History

2023-07-19 21:31:30 +02:00
/**
* @typedef {import('mdast').Root} Root
* @typedef {import('mdast-util-from-markdown').Options} Options
*/
import {fromMarkdown} from 'mdast-util-from-markdown'
/**
* @this {import('unified').Processor}
* @type {import('unified').Plugin<[Options?] | void[], string, Root>}
*/
export default function remarkParse(options) {
/** @type {import('unified').ParserFunction<Root>} */
const parser = (doc) => {
// Assume options.
const settings = /** @type {Options} */ (this.data('settings'))
return fromMarkdown(
doc,
Object.assign({}, settings, options, {
// Note: these options are not in the readme.
// The goal is for them to be set by plugins on `data` instead of being
// passed by users.
extensions: this.data('micromarkExtensions') || [],
mdastExtensions: this.data('fromMarkdownExtensions') || []
})
)
}
Object.assign(this, {Parser: parser})
}