Class: MarkdownExit
Defined in: core.ts:147
Constructors
Constructor
new MarkdownExit(options?): MarkdownExit;Defined in: core.ts:237
Parameters
options?
Returns
MarkdownExit
Constructor
new MarkdownExit(presetName, options?): MarkdownExit;Defined in: core.ts:238
Parameters
presetName
options?
Returns
MarkdownExit
Properties
block
block: ParserBlock;Defined in: core.ts:160
Instance of ParserBlock. You may need it to add new rules when writing plugins. For simple rules control use MarkdownExit.disable and MarkdownExit.enable.
core
core: Core;Defined in: core.ts:167
Instance of Core chain executor. You may need it to add new rules when writing plugins. For simple rules control use MarkdownExit.disable and MarkdownExit.enable.
helpers
helpers: __module;Defined in: core.ts:232
Link components parser functions, useful to write plugins. See details here.
inline
inline: ParserInline;Defined in: core.ts:153
Instance of ParserInline. You may need it to add new rules when writing plugins. For simple rules control use MarkdownExit.disable and MarkdownExit.enable.
linkify
linkify: LinkifyIt;Defined in: core.ts:193
linkify-it instance. Used by linkify rule.
normalizeLink()
normalizeLink: (url) => string;Defined in: core.ts:213
Function used to encode link url to a machine-readable format, which includes url-encoding, punycode, etc.
Parameters
url
string
Returns
string
normalizeLinkText()
normalizeLinkText: (url) => string;Defined in: core.ts:218
Function used to decode link url to a human-readable format`
Parameters
url
string
Returns
string
options
options: Required<MarkdownExitOptions>;Defined in: core.ts:234
renderer
renderer: Renderer;Defined in: core.ts:186
Instance of Renderer. Use it to modify output look. Or to add rendering rules for new token types, generated by plugins.
Example
function myToken(tokens, idx, options, env, self) {
//...
return result;
};
md.renderer.rules['my_token'] = myTokenSee Renderer docs and source code.
utils
utils: __module;Defined in: core.ts:226
Assorted utility functions, useful to write plugins. See details here.
validateLink()
validateLink: (url) => boolean;Defined in: core.ts:207
Link validation function. CommonMark allows too much in links. By default we disable javascript:, vbscript:, file: schemas, and almost all data:... schemas except some embedded image types.
You can change this behaviour:
// enable everything
md.validateLink = () => trueParameters
url
string
Returns
boolean
Methods
configure()
configure(presets): this;Defined in: core.ts:284
chainable*, internal
Batch load of all options and compenent settings. This is internal method, and you probably will not need it. But if you with - see available presets and data structure here
We strongly recommend to use presets instead of direct config loads. That will give better compatibility with next versions.
Parameters
presets
PresetName | Preset
Returns
this
disable()
disable(list, ignoreInvalid?): this;Defined in: core.ts:359
chainable*
The same as MarkdownExit.enable, but turn specified rules off.
Parameters
list
rule name or list of rule names to disable.
string | string[]
ignoreInvalid?
boolean
set true to ignore errors when rule not found.
Returns
this
enable()
enable(list, ignoreInvalid?): this;Defined in: core.ts:329
chainable*
Enable list or rules. It will automatically find appropriate components, containing rules with given names. If rule not found, and ignoreInvalid not set - throws exception.
Example
md.enable(['sub', 'sup'])
.disable('smartquotes');Parameters
list
rule name or list of rule names to enable
string | string[]
ignoreInvalid?
boolean
set true to ignore errors when rule not found.
Returns
this
parse()
parse(src, env): Token[];Defined in: core.ts:419
internal
Parse input string and returns list of block tokens (special token type "inline" will contain list of inline tokens). You should not call this method directly, until you write custom renderer (for example, to produce AST).
env is used to pass data between "distributed" rules and return additional 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.
Parameters
src
string
source string
env
MarkdownExitEnv = {}
environment sandbox
Returns
Token[]
parseInline()
parseInline(src, env): Token[];Defined in: core.ts:463
internal*
The same as MarkdownExit.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.
Parameters
src
string
source string
env
MarkdownExitEnv = {}
environment sandbox
Returns
Token[]
render()
render(src, env): string;Defined in: core.ts:441
Render markdown string into html. It does all magic for you 😃.
env can be used to inject additional metadata ({} by default). But you will not need it with high probability. See also comment in MarkdownExit.parse.
Parameters
src
string
source string
env
MarkdownExitEnv = {}
environment sandbox
Returns
string
renderAsync()
renderAsync(src, env): Promise<string>;Defined in: core.ts:449
Async version of MarkdownExit.render. Runs all render rules in parallel (Promise.all) and preserves output order.
Parameters
src
string
env
MarkdownExitEnv = {}
Returns
Promise<string>
renderInline()
renderInline(src, env): string;Defined in: core.ts:479
Similar to MarkdownExit.render but for single paragraph content. Result will NOT be wrapped into <p> tags.
Parameters
src
string
source string
env
MarkdownExitEnv = {}
environment sandbox
Returns
string
renderInlineAsync()
renderInlineAsync(src, env): Promise<string>;Defined in: core.ts:487
Async version of MarkdownExit.renderInline. Runs all render rules in parallel (Promise.all) and preserves output order.
Parameters
src
string
env
MarkdownExitEnv = {}
Returns
Promise<string>
set()
set(options): this;Defined in: core.ts:269
chainable*
Set parser options (in the same format as in constructor). Probably, you will never need it, but you can change options after constructor call.
Example
md.set({ html: true, breaks: true })
.set({ typographer: true });Note: To achieve the best possible performance, don't modify a markdown-exit instance options on the fly. If you need multiple configurations it's best to create multiple instances and initialize each with separate config.
Parameters
options
Returns
this
use()
Call Signature
use(plugin): this;Defined in: core.ts:395
chainable*
Load specified plugin with given params into current parser instance. It's just a sugar to call plugin(md, params) with curring.
Example
var iterator = require('markdown-it-for-inline');
md.use(iterator, 'foo_replace', 'text', function (tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
});Parameters
plugin
Returns
this
Call Signature
use<T>(plugin, options?): this;Defined in: core.ts:396
chainable*
Load specified plugin with given params into current parser instance. It's just a sugar to call plugin(md, params) with curring.
Example
var iterator = require('markdown-it-for-inline');
md.use(iterator, 'foo_replace', 'text', function (tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
});Type Parameters
T
T = any
Parameters
plugin
options?
T
Returns
this
Call Signature
use(plugin, ...params): this;Defined in: core.ts:397
chainable*
Load specified plugin with given params into current parser instance. It's just a sugar to call plugin(md, params) with curring.
Example
var iterator = require('markdown-it-for-inline');
md.use(iterator, 'foo_replace', 'text', function (tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
});Parameters
plugin
params
...any[]
Returns
this