/** * @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' export {compile} from './lib/compile.js' export {parse} from './lib/parse.js' export {postprocess} from './lib/postprocess.js' export {preprocess} from './lib/preprocess.js' /** * Compile markdown to HTML. * * > Note: which encodings are supported depends on the engine. * > For info on Node.js, see: * > . * * @overload * @param {Value} value * Markdown to parse (`string` or `Uint8Array`). * @param {Encoding | null | undefined} encoding * Character encoding to understand `value` as when it’s a `Uint8Array` * (`string`, default: `'utf8'`). * @param {Options | null | undefined} [options] * Configuration. * @returns {string} * Compiled HTML. * * @overload * @param {Value} value * Markdown to parse (`string` or `Uint8Array`). * @param {Options | null | undefined} [options] * Configuration. * @returns {string} * Compiled HTML. * * @param {Value} value * Markdown to parse (`string` or `Uint8Array`). * @param {Encoding | Options | null | undefined} [encoding] * Character encoding to understand `value` as when it’s a `Uint8Array` * (`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)) ) ) }