diff --git a/src/markdownit.ts b/src/markdownit.ts index 93b1eb0..4dc2ce9 100644 --- a/src/markdownit.ts +++ b/src/markdownit.ts @@ -291,9 +291,6 @@ class MarkdownIt { * containing rules with given names. If rule not found, and `ignoreInvalid` * not set - throws exception. * - * @param list Rule name or list of rule names to enable. - * @param ignoreInvalid Set `true` to ignore errors when rule not found. - * * @example * ```javascript * import MarkdownIt from 'markdown-it' @@ -326,9 +323,6 @@ class MarkdownIt { /** * The same as {@link MarkdownIt.enable}, but turn specified rules off. - * - * @param list Rule name or list of rule names to disable. - * @param ignoreInvalid Set `true` to ignore errors when rule not found. */ disable (list: string | string[], ignoreInvalid = false): this { let result: string[] = [] @@ -383,9 +377,6 @@ class MarkdownIt { * metadata like reference info, needed for the renderer. It also can be used to * inject data in specific cases. Usually, you will be ok to pass `{}`, * and then pass updated object to renderer. - * - * @param src Source string. - * @param env Environment sandbox. */ parse (src: string, env: Env): Token[] { if (typeof src !== 'string') { @@ -405,9 +396,6 @@ class MarkdownIt { * `env` can be used to inject additional metadata (`{}` by default). * But you will not need it with high probability. See also comment * in {@link MarkdownIt.parse}. - * - * @param src Source string. - * @param env Environment sandbox. */ render (src: string, env: Env = {}): string { return this.renderer.render(this.parse(src, env), this.options, env) @@ -417,9 +405,6 @@ class MarkdownIt { * The same as {@link MarkdownIt.parse} but skip all block rules. It returns * the block tokens list with the single `inline` element, containing parsed * inline tokens in `children` property. Also updates `env` object. - * - * @param src Source string. - * @param env Environment sandbox. */ parseInline (src: string, env: Env): Token[] { const state = new this.core.State(src, this, env) @@ -433,9 +418,6 @@ class MarkdownIt { /** * Similar to {@link MarkdownIt.render} but for single paragraph content. * Result will NOT be wrapped into `

` tags. - * - * @param src Source string. - * @param env Environment sandbox. */ renderInline (src: string, env: Env = {}): string { return this.renderer.render(this.parseInline(src, env), this.options, env) diff --git a/src/renderer.ts b/src/renderer.ts index 8441c99..cd20c26 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -192,10 +192,6 @@ class Renderer { /** * Default token renderer. Can be overriden by custom function * in {@link Renderer.rules}. - * - * @param tokens List of tokens. - * @param idx Token index to render. - * @param options Params of parser instance. */ renderToken (tokens: Token[], idx: number, options: Required): string { const token = tokens[idx] @@ -269,10 +265,6 @@ class Renderer { /** * The same as {@link Renderer.render}, but for single token of `inline` type. - * - * @param tokens List on block tokens to render. - * @param options Params of parser instance. - * @param env Additional data from parsed input (references, for example). */ renderInline (tokens: Token[], options: Required, env: Env | undefined): string { let result = '' @@ -295,10 +287,6 @@ class Renderer { * Special kludge for image `alt` attributes to conform CommonMark spec. * Don't try to use it! Spec requires to show `alt` content with stripped markup, * instead of simple escaping. - * - * @param tokens List on block tokens to render. - * @param options Params of parser instance. - * @param env Additional data from parsed input (references, for example). */ renderInlineAsText (tokens: Token[], options: Required, env: Env | undefined): string { let result = '' @@ -332,10 +320,6 @@ class Renderer { /** * Takes token stream and generates HTML. Probably, you will never need to call * this method directly. - * - * @param tokens List on block tokens to render. - * @param options Params of parser instance. - * @param env Additional data from parsed input (references, for example). */ render (tokens: Token[], options: Required, env?: Env): string { let result = '' diff --git a/src/ruler.ts b/src/ruler.ts index 04ac9f6..d23689d 100644 --- a/src/ruler.ts +++ b/src/ruler.ts @@ -17,15 +17,7 @@ type RuleOptions = { alt?: string[] } * {@link MarkdownIt.use}. */ class Ruler { - // List of added rules. Each element is: - // - // { - // name: XXX, - // enabled: Boolean, - // fn: Function(), - // alt: [ name2, name3 ] - // } - // + /** @internal */ __rules__: Array<{ name: string enabled: boolean @@ -38,12 +30,10 @@ class Ruler { // First level - chain name, '' for default. // Second level - diginal anchor for fast filtering by charcodes. // + /** @internal */ __cache__: Record Result>> | null = null - // Helper methods, should not be used directly - - // Find rule index by name - // + /** @internal */ __find__ (name: string): number { for (let i = 0; i < this.__rules__.length; i++) { if (this.__rules__[i].name === name) { @@ -53,8 +43,7 @@ class Ruler { return -1 } - // Build rules lookup cache - // + /** @internal */ __compile__ (): void { const chains = new Set() @@ -90,11 +79,6 @@ class Ruler { * Replace rule by name with new function & options. Throws error if name not * found. * - * @param name Rule name to replace. - * @param fn New rule function. - * @param options Rule options. `alt` is an array with names of "alternate" - * chains. - * * @example Replace existing typographer replacement rule with new one * ```javascript * import MarkdownIt from 'markdown-it' @@ -119,12 +103,6 @@ class Ruler { * Add new rule to chain before one with given name. See also * {@link Ruler.after}, {@link Ruler.push}. * - * @param beforeName New rule will be added before this one. - * @param ruleName Name of added rule. - * @param fn Rule function. - * @param options Rule options. `alt` is an array with names of "alternate" - * chains. - * * @example * ```javascript * import MarkdownIt from 'markdown-it' @@ -154,12 +132,6 @@ class Ruler { * Add new rule to chain after one with given name. See also * {@link Ruler.before}, {@link Ruler.push}. * - * @param afterName New rule will be added after this one. - * @param ruleName Name of added rule. - * @param fn Rule function. - * @param options Rule options. `alt` is an array with names of "alternate" - * chains. - * * @example * ```javascript * import MarkdownIt from 'markdown-it' @@ -189,11 +161,6 @@ class Ruler { * Push new rule to the end of chain. See also * {@link Ruler.before}, {@link Ruler.after}. * - * @param ruleName Name of added rule. - * @param fn Rule function. - * @param options Rule options. `alt` is an array with names of "alternate" - * chains. - * * @example * ```javascript * import MarkdownIt from 'markdown-it' @@ -221,9 +188,7 @@ class Ruler { * * See also {@link Ruler.disable}, {@link Ruler.enableOnly}. * - * @param list List of rule names to enable. - * @param ignoreInvalid Set `true` to ignore errors when rule not found. - * @returns List of found rule names (if no exception happened). + * Returns list of found rule names (if no exception happened). */ enable (list: string | string[], ignoreInvalid = false): string[] { if (!Array.isArray(list)) { list = [list] } @@ -251,9 +216,6 @@ class Ruler { * not found - throw Error. Errors can be disabled by second param. * * See also {@link Ruler.disable}, {@link Ruler.enable}. - * - * @param list List of rule names to enable (whitelist). - * @param ignoreInvalid Set `true` to ignore errors when rule not found. */ enableOnly (list: string | string[], ignoreInvalid = false): void { if (!Array.isArray(list)) { list = [list] } @@ -269,9 +231,7 @@ class Ruler { * * See also {@link Ruler.enable}, {@link Ruler.enableOnly}. * - * @param list List of rule names to disable. - * @param ignoreInvalid Set `true` to ignore errors when rule not found. - * @returns List of found rule names (if no exception happened). + * Returns list of found rule names (if no exception happened). */ disable (list: string | string[], ignoreInvalid = false): string[] { if (!Array.isArray(list)) { list = [list] } diff --git a/src/types.ts b/src/types.ts index db37980..c29d082 100644 --- a/src/types.ts +++ b/src/types.ts @@ -47,19 +47,39 @@ export interface Delimiter { * @category Main */ export interface MarkdownItOptions { - /** Enable HTML tags in source. */ + /** + * Enable HTML tags in source. + * + * @defaultValue `false` (`true` for `'commonmark'` preset only) + */ html?: boolean - /** Use '/' to close single tags (`
`). */ + /** + * Use '/' to close single tags (`
`). + * + * @defaultValue `false` (`true` for `'commonmark'` preset only) + */ xhtmlOut?: boolean - /** Convert '\n' in paragraphs into `
`. */ + /** + * Convert '\n' in paragraphs into `
`. + * + * @defaultValue `false` + */ breaks?: boolean - /** CSS language prefix for fenced blocks, used by external syntax highlighters. */ + /** + * CSS language prefix for fenced blocks, used by external syntax highlighters. + * + * @defaultValue `'language-'` + */ langPrefix?: string - /** Autoconvert URL-like text to links. */ + /** + * Autoconvert URL-like text to links. + * + * @defaultValue `false` + */ linkify?: boolean /** @@ -67,6 +87,8 @@ export interface MarkdownItOptions { * * See the [replacement rules](https://github.com/markdown-it/markdown-it/blob/master/src/rules_core/replacements.ts) * for the full list. + * + * @defaultValue `false` */ typographer?: boolean @@ -76,6 +98,8 @@ export interface MarkdownItOptions { * * For example, use `'«»„“'` for Russian, `'„“‚‘'` for German, and * `['«\xA0', '\xA0»', '‹\xA0', '\xA0›']` for French (including nbsp). + * + * @defaultValue `'“”‘’'` */ quotes?: string | string[] @@ -125,9 +149,15 @@ export interface MarkdownItOptions { * } * }); * ``` + * + * @defaultValue `null` */ highlight?: ((str: string, lang: string, attrs: string) => string) | null - /** Internal protection against excessive recursion. */ + /** + * Internal protection against excessive recursion. + * + * @defaultValue `100` + */ maxNesting?: number }