/** | |
* @typedef {import('micromark-util-types').Encoding} Encoding | |
* @typedef {import('micromark-util-types').Options} Options | |
* @typedef {import('micromark-util-types').Value} Value | |
*/ | |
import {compile} from './lib/compile.js' | |
import {parse} from './lib/parse.js' | |
import {postprocess} from './lib/postprocess.js' | |
import {preprocess} from './lib/preprocess.js' | |
/** | |
* Compile markdown to HTML. | |
* | |
* @overload | |
* @param {Value} value | |
* Markdown to parse (`string` or `Buffer`). | |
* @param {Encoding | null | undefined} encoding | |
* Character encoding to understand `value` as when it’s a `Buffer` | |
* (`string`, default: `'utf8'`). | |
* @param {Options | null | undefined} [options] | |
* Configuration. | |
* @returns {string} | |
* Compiled HTML. | |
* | |
* @overload | |
* @param {Value} value | |
* Markdown to parse (`string` or `Buffer`). | |
* @param {Options | null | undefined} [options] | |
* Configuration. | |
* @returns {string} | |
* Compiled HTML. | |
* | |
* @param {Value} value | |
* Markdown to parse (`string` or `Buffer`). | |
* @param {Options | Encoding | null | undefined} [encoding] | |
* Character encoding to understand `value` as when it’s a `Buffer` | |
* (`string`, default: `'utf8'`). | |
* @param {Options | null | undefined} [options] | |
* Configuration. | |
* @returns {string} | |
* Compiled HTML. | |
*/ | |
export function micromark(value, encoding, options) { | |
if (typeof encoding !== 'string') { | |
options = encoding | |
encoding = undefined | |
} | |
return compile(options)( | |
postprocess( | |
parse(options).document().write(preprocess()(value, encoding, true)) | |
) | |
) | |
} | |