# 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;
}

参考源码 以获取更多细节和例子。