mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-03 03:09:29 +08:00
42 lines
1.2 KiB
Text
42 lines
1.2 KiB
Text
/**
|
||
* @typedef {import('micromark-util-types').Options} Options
|
||
* @typedef {import('micromark-util-types').Value} Value
|
||
* @typedef {import('micromark-util-types').Encoding} Encoding
|
||
*/
|
||
|
||
import {compile} from './lib/compile.js'
|
||
import {parse} from './lib/parse.js'
|
||
import {postprocess} from './lib/postprocess.js'
|
||
import {preprocess} from './lib/preprocess.js'
|
||
|
||
/**
|
||
* @param value Markdown to parse (`string` or `Buffer`).
|
||
* @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).
|
||
* @param [options] Configuration
|
||
*/
|
||
export const micromark =
|
||
/**
|
||
* @type {(
|
||
* ((value: Value, encoding: Encoding, options?: Options) => string) &
|
||
* ((value: Value, options?: Options) => string)
|
||
* )}
|
||
*/
|
||
(
|
||
/**
|
||
* @param {Value} value
|
||
* @param {Encoding} [encoding]
|
||
* @param {Options} [options]
|
||
*/
|
||
function (value, encoding, options) {
|
||
if (typeof encoding !== 'string') {
|
||
options = encoding
|
||
encoding = undefined
|
||
}
|
||
|
||
return compile(options)(
|
||
postprocess(
|
||
parse(options).document().write(preprocess()(value, encoding, true))
|
||
)
|
||
)
|
||
}
|
||
)
|