# Renderer
# 说明
从解析后的 token 流生成 HTML。每个(Renderer)实例都有独立的规则副本。这些(副本)可以很容易地被改写。此外,如果创建插件并添加新的 token 类型,就可以添加新规则。
# 构造器
# 类方法
render, renderAttrs, renderInline, renderInlineAsText, renderToken
# 实例属性
# Renderer.new
new Renderer()
创建新的 Renderer 实例并且填充默认的 Renderer#rules。
# Renderer.render
Renderer.render(tokens, options, env)String
- tokens (Array) -- 用来渲染的块 tokens 的列表
- options (Object) -- 解析器实例的参数
- env (Object) -- 来自解析后的输入的附加数据(例如引用)
获取 token 流并生成 HTML。可能你永远都不需要去直接调用这个方法。
# Renderer.renderAttrs
Renderer.renderAttrs(token) -> String
渲染 token 属性成字符串。
# Renderer.renderInline
- tokens (Array) -- 用来渲染的块 tokens 的列表
- options (Object) -- 解析器实例的参数
- env (Object) -- 来自解析后的输入的附加数据(例如引用)
类似 Renderer.render,但用于 inline
类型的单个 token。
# Renderer.renderInlineAsText
内部的- tokens (Array) -- 用来渲染的块 tokens 的列表
- options (Object) -- 解析器实例的参数
- env (Object) -- 来自解析后的输入的附加数据(例如引用)
让图片 alt
属性符合 CommonMark 规格的特殊的不成熟产品。不要试图使用它!特殊在于要求要和裸的标记(stripped markup)展示 alt
内容,而不是简单的转义。
# Renderer.renderToken
- tokens (Array) -- token 们的列表
- idx (Number) -- 用来渲染的 token 的索引
- options (Object) -- 解析器实例的参数
默认的 token 渲染器。可以被 Renderer#rules 里的自定义函数覆盖。
# Renderer#rules
Renderer#rules -> Object
包含对于 token 们的渲染规则,可以被更新和扩展。
# 示例
var md = require('markdown-it')();
md.renderer.rules.strong_open = function () { return '<b>'; };
md.renderer.rules.strong_close = function () { return '</b>'; };
var result = md.renderInline(...);
每个规则都被作为独立的静态函数,有着鲜明的调用特征:
function my_token_render(tokens, idx, options, env, renderer) {
// ...
return renderedHTML;
}
参考源码 以获取更多细节和例子。