Documentation
¶
Index ¶
- Variables
- func EChartsMindmap(listContent []byte) []byte
- func EChartsMindmapStr(listContent string) string
- func HeadingID(heading *ast.Node) (ret string)
- func NewTerms() (ret map[string]string)
- func NoHighlight(language string) bool
- func RenderHeadingText(n *ast.Node) (ret string)
- func Sanitize(str string) string
- func Space0(text string) (ret string)
- func SubStr(str string, length int) (ret string)
- type BaseRenderer
- func (r *BaseRenderer) EncodeLinkSpace(dest string) string
- func (r *BaseRenderer) FixTermTypo(tokens []byte) []byte
- func (r *BaseRenderer) LinkPath(dest []byte) []byte
- func (r *BaseRenderer) LinkTextAutoSpaceNext(node *ast.Node)
- func (r *BaseRenderer) LinkTextAutoSpacePrevious(node *ast.Node)
- func (r *BaseRenderer) Newline()
- func (r *BaseRenderer) NodeAttrs(node *ast.Node) (ret [][]string)
- func (r *BaseRenderer) NodeAttrsStr(node *ast.Node) (ret string)
- func (r *BaseRenderer) NodeID(node *ast.Node) (ret string)
- func (r *BaseRenderer) PrefixPath(dest []byte) []byte
- func (r *BaseRenderer) RelativePath(dest []byte) []byte
- func (r *BaseRenderer) Render() (output []byte)
- func (r *BaseRenderer) Space(tokens []byte) []byte
- func (r *BaseRenderer) Tag(name string, attrs [][]string, selfclosing bool)
- func (r *BaseRenderer) Text(node *ast.Node) (ret string)
- func (r *BaseRenderer) TextAutoSpaceNext(node *ast.Node)
- func (r *BaseRenderer) TextAutoSpacePrevious(node *ast.Node)
- func (r *BaseRenderer) Write(content []byte)
- func (r *BaseRenderer) WriteByte(c byte)
- func (r *BaseRenderer) WriteString(content string)
- type EChartsJSONRenderer
- type ExtRendererFunc
- type FormatRenderer
- type Heading
- type HtmlRenderer
- type JSONRenderer
- type KityMinderJSONRenderer
- type Options
- type ProtyleExportDocxRenderer
- type ProtyleExportMdRenderer
- type ProtyleExportRenderer
- type ProtylePreviewRenderer
- type ProtyleRenderer
- type Renderer
- type RendererFunc
- type TextBundleRenderer
- type VditorIRRenderer
- type VditorRenderer
- type VditorSVRenderer
Constants ¶
This section is empty.
Variables ¶
var NewlineSV = []byte("<span data-type=\"newline\"><br /><span style=\"display: none\">\n</span></span>")
Functions ¶
func EChartsMindmap ¶
func EChartsMindmapStr ¶
func NoHighlight ¶ added in v1.7.5
func RenderHeadingText ¶
Types ¶
type BaseRenderer ¶
type BaseRenderer struct {
Options *Options // 渲染选项
RendererFuncs map[ast.NodeType]RendererFunc // 渲染器
DefaultRendererFunc RendererFunc // 默认渲染器,在 RendererFuncs 中找不到节点渲染器时会使用该默认渲染器进行渲染
ExtRendererFuncs map[ast.NodeType]ExtRendererFunc // 用户自定义的渲染器
Writer *bytes.Buffer // 输出缓冲
LastOut byte // 最新输出的一个字节
Tree *parse.Tree // 待渲染的树
DisableTags int // 标签嵌套计数器,用于判断不可能出现标签嵌套的情况,比如语法树允许图片节点包含链接节点,但是 HTML <img> 不能包含 <a>
FootnotesDefs []*ast.Node // 脚注定义集
RenderingFootnotes bool // 是否正在渲染脚注定义
}
BaseRenderer 描述了渲染器结构。
func NewBaseRenderer ¶
func NewBaseRenderer(tree *parse.Tree, options *Options) *BaseRenderer
NewBaseRenderer 构造一个 BaseRenderer。
func (*BaseRenderer) EncodeLinkSpace ¶ added in v1.7.6
func (r *BaseRenderer) EncodeLinkSpace(dest string) string
func (*BaseRenderer) FixTermTypo ¶
func (r *BaseRenderer) FixTermTypo(tokens []byte) []byte
FixTermTypo 修正 tokens 中出现的术语拼写问题。
func (*BaseRenderer) LinkPath ¶
func (r *BaseRenderer) LinkPath(dest []byte) []byte
func (*BaseRenderer) LinkTextAutoSpaceNext ¶
func (r *BaseRenderer) LinkTextAutoSpaceNext(node *ast.Node)
func (*BaseRenderer) LinkTextAutoSpacePrevious ¶
func (r *BaseRenderer) LinkTextAutoSpacePrevious(node *ast.Node)
func (*BaseRenderer) NodeAttrsStr ¶
func (r *BaseRenderer) NodeAttrsStr(node *ast.Node) (ret string)
func (*BaseRenderer) PrefixPath ¶
func (r *BaseRenderer) PrefixPath(dest []byte) []byte
func (*BaseRenderer) RelativePath ¶
func (r *BaseRenderer) RelativePath(dest []byte) []byte
func (*BaseRenderer) Space ¶
func (r *BaseRenderer) Space(tokens []byte) []byte
Space 会把 tokens 中的中西文之间加上空格。
func (*BaseRenderer) Tag ¶
func (r *BaseRenderer) Tag(name string, attrs [][]string, selfclosing bool)
func (*BaseRenderer) TextAutoSpaceNext ¶
func (r *BaseRenderer) TextAutoSpaceNext(node *ast.Node)
func (*BaseRenderer) TextAutoSpacePrevious ¶
func (r *BaseRenderer) TextAutoSpacePrevious(node *ast.Node)
func (*BaseRenderer) WriteString ¶
func (r *BaseRenderer) WriteString(content string)
WriteString 输出指定的字符串 content。
type EChartsJSONRenderer ¶
type EChartsJSONRenderer struct {
*BaseRenderer
}
EChartsJSONRenderer 描述了 ECharts JSON 渲染器。
type ExtRendererFunc ¶
ExtRendererFunc 描述了用户自定义的渲染器函数签名。
type FormatRenderer ¶
type FormatRenderer struct {
*BaseRenderer
NodeWriterStack []*bytes.Buffer // 节点输出缓冲栈
}
FormatRenderer 描述了格式化渲染器。
func NewFormatRenderer ¶
func NewFormatRenderer(tree *parse.Tree, options *Options) *FormatRenderer
NewFormatRenderer 创建一个格式化渲染器。
type HtmlRenderer ¶
type HtmlRenderer struct {
*BaseRenderer
}
HtmlRenderer 描述了 HTML 渲染器。
func NewHtmlRenderer ¶
func NewHtmlRenderer(tree *parse.Tree, options *Options) *HtmlRenderer
NewHtmlRenderer 创建一个 HTML 渲染器。
func (*HtmlRenderer) Render ¶
func (r *HtmlRenderer) Render() (output []byte)
func (*HtmlRenderer) RenderFootnotes ¶
func (r *HtmlRenderer) RenderFootnotes() []byte
type JSONRenderer ¶
type JSONRenderer struct {
*BaseRenderer
}
type KityMinderJSONRenderer ¶
type KityMinderJSONRenderer struct {
*BaseRenderer
}
KityMinderJSONRenderer 描述了 KityMinder JSON 渲染器。
type Options ¶
type Options struct {
// SoftBreak2HardBreak 设置是否将软换行(\n)渲染为硬换行(<br />)。
SoftBreak2HardBreak bool
// AutoSpace 设置是否对普通文本中的中西文间自动插入空格。
// https://github.com/sparanoid/chinese-copywriting-guidelines
AutoSpace bool
// RenderListStyle 设置在渲染 OL、UL 时是否添加 data-style 属性 https://github.com/88250/lute/issues/48
RenderListStyle bool
// CodeSyntaxHighlight 设置是否对代码块进行语法高亮。
CodeSyntaxHighlight bool
// CodeSyntaxHighlightDetectLang bool
CodeSyntaxHighlightDetectLang bool
// CodeSyntaxHighlightInlineStyle 设置语法高亮是否为内联样式,默认不内联。
CodeSyntaxHighlightInlineStyle bool
// CodeSyntaxHightLineNum 设置语法高亮是否显示行号,默认不显示。
CodeSyntaxHighlightLineNum bool
// CodeSyntaxHighlightStyleName 指定语法高亮样式名,默认为 "github"。
CodeSyntaxHighlightStyleName string
// Vditor 所见即所得支持。
VditorWYSIWYG bool
// Vditor 即时渲染支持。
VditorIR bool
// Vditor 分屏预览支持。
VditorSV bool
// Protyle 所见即所得支持。
ProtyleWYSIWYG bool
// KramdownBlockIAL 设置是否打开 kramdown 块级内联属性列表支持。 https://kramdown.gettalong.org/syntax.html#inline-attribute-lists
KramdownBlockIAL bool
// KramdownSpanIAL 设置是否打开 kramdown 行级内联属性列表支持。
KramdownSpanIAL bool
// SuperBlock 设置是否支持超级块。 https://github.com/88250/lute/issues/111
SuperBlock bool
// ImageLazyLoading 设置图片懒加载时使用的图片路径,配置该字段后将启用图片懒加载。
// 图片 src 的值会复制给新属性 data-src,然后使用该参数值作为 src 的值 https://github.com/88250/lute/issues/55
ImageLazyLoading string
// ChineseParagraphBeginningSpace 设置是否使用传统中文排版“段落开头空两格”。
ChineseParagraphBeginningSpace bool
// Sanitize 设置是否启用 XSS 安全过滤 https://github.com/88250/lute/issues/51
// 注意:Lute 目前的实现存在一些漏洞,请不要依赖它来防御 XSS 攻击。
Sanitize bool
// FixTermTypo 设置是否对普通文本中出现的术语进行修正。
// https://github.com/sparanoid/chinese-copywriting-guidelines
// 注意:开启术语修正的话会默认在中西文之间插入空格。
FixTermTypo bool
// Terms 将传入的 terms 合并覆盖到已有的 Terms 字典。
Terms map[string]string
// ToC 设置是否打开“目录”支持。
ToC bool
// HeadingID 设置是否打开“自定义标题 ID”支持。
HeadingID bool
// KramdownIALIDRenderName 设置 kramdown 内联属性列表中出现 id 属性时渲染 id 属性用的 name(key) 名称,默认为 "id"。
// 仅在 HTML 渲染器 HtmlRenderer 中支持。
KramdownIALIDRenderName string
// HeadingAnchor 设置是否对标题生成链接锚点。
HeadingAnchor bool
// GFMTaskListItemClass 作为 GFM 任务列表项类名,默认为 "vditor-task"。
GFMTaskListItemClass string
// VditorCodeBlockPreview 设置 Vditor 代码块是否需要渲染预览部分
VditorCodeBlockPreview bool
// VditorMathBlockPreview 设置 Vditor 数学公式块是否需要渲染预览部分
VditorMathBlockPreview bool
// VditorHTMLBlockPreview 设置 Vditor HTML 块是否需要渲染预览部分
VditorHTMLBlockPreview bool
// LinkBase 设置链接、图片、脚注的基础路径。如果用户在链接或者图片地址中使用相对路径(没有协议前缀且不以 / 开头)并且 LinkBase 不为空则会用该值作为前缀。
// 比如 LinkBase 设置为 http://domain.com/,对于  则渲染为 <img src="http://domain.com/bar.png" alt="foo" />
LinkBase string
// LinkPrefix 设置连接、图片的路径前缀。一旦设置该值,链接渲染将强制添加该值作为链接前缀,这有别于 LinkBase。
// 比如 LinkPrefix 设置为 http://domain.com,对于使用绝对路径的  则渲染为 <img src="http://domain.com/local/path/bar.png" alt="foo" />;
// 在 LinkBase 和 LinkPrefix 同时设置的情况下,会先处理 LinkBase 逻辑,最后再在 LinkBase 处理结果上加上 LinkPrefix。
LinkPrefix string
// NodeIndexStart 用于设置块级节点编号起始值。
NodeIndexStart int
// ProtyleContenteditable 设置 Protyle 渲染时标签中的 contenteditable 属性。
ProtyleContenteditable bool
// KeepParagraphBeginningSpace 设置是否保留段首空格
KeepParagraphBeginningSpace bool
// NetImgMarker 设置 Protyle 是否标记网络图片
ProtyleMarkNetImg bool
// Spellcheck 设置是否启用拼写检查
Spellcheck bool
}
Options 描述了渲染选项。
func NewOptions ¶
func NewOptions() *Options
type ProtyleExportDocxRenderer ¶ added in v1.7.5
type ProtyleExportDocxRenderer struct {
*BaseRenderer
}
func NewProtyleExportDocxRenderer ¶ added in v1.7.5
func NewProtyleExportDocxRenderer(tree *parse.Tree, options *Options) *ProtyleExportDocxRenderer
func (*ProtyleExportDocxRenderer) Render ¶ added in v1.7.5
func (r *ProtyleExportDocxRenderer) Render() (output []byte)
type ProtyleExportMdRenderer ¶ added in v1.7.5
type ProtyleExportMdRenderer struct {
*BaseRenderer
NodeWriterStack []*bytes.Buffer
}
func NewProtyleExportMdRenderer ¶ added in v1.7.5
func NewProtyleExportMdRenderer(tree *parse.Tree, options *Options) *ProtyleExportMdRenderer
type ProtyleExportRenderer ¶ added in v1.7.5
type ProtyleExportRenderer struct {
*BaseRenderer
}
func NewProtyleExportRenderer ¶ added in v1.7.5
func NewProtyleExportRenderer(tree *parse.Tree, options *Options) *ProtyleExportRenderer
type ProtylePreviewRenderer ¶
type ProtylePreviewRenderer struct {
*BaseRenderer
}
func NewProtylePreviewRenderer ¶
func NewProtylePreviewRenderer(tree *parse.Tree, options *Options) *ProtylePreviewRenderer
func (*ProtylePreviewRenderer) Render ¶
func (r *ProtylePreviewRenderer) Render() (output []byte)
type ProtyleRenderer ¶ added in v1.7.5
type ProtyleRenderer struct {
*BaseRenderer
NodeIndex int
}
ProtyleRenderer 描述了 Protyle WYSIWYG Block DOM 渲染器。
func NewProtyleRenderer ¶ added in v1.7.5
func NewProtyleRenderer(tree *parse.Tree, options *Options) *ProtyleRenderer
NewProtyleRenderer 创建一个 WYSIWYG Block DOM 渲染器。
type Renderer ¶
type Renderer interface {
// Render 渲染输出。
Render() (output []byte)
}
Renderer 描述了渲染器接口。
func NewEChartsJSONRenderer ¶
NewEChartsJSONRenderer 创建一个 ECharts JSON 渲染器。
type RendererFunc ¶
type RendererFunc func(n *ast.Node, entering bool) ast.WalkStatus
RendererFunc 描述了渲染器函数签名。
type TextBundleRenderer ¶
type TextBundleRenderer struct {
*FormatRenderer
// contains filtered or unexported fields
}
TextBundleRenderer 描述了 TextBundle 渲染器。https://github.com/88250/lute/issues/77
继承 FormatRenderer,覆写链接地址渲染函数 renderLinkDest,如果 URL 在指定的链接前缀列表中,则将其替换为 assets/xxx,比如对于 Markdown 原文:
[foo](https://img.hacpai.com/dir1/bar.zip) 
指定链接前缀列表为:["https://img.hacpai.com", "https://b3logfile.com"],处理后渲染为:
[foo](assets/dir1/bar.zip) 
func NewTextBundleRenderer ¶
func NewTextBundleRenderer(tree *parse.Tree, linkPrefixes []string, options *Options) *TextBundleRenderer
NewTextBundleRenderer 创建一个 TextBundle 渲染器。
func (*TextBundleRenderer) Render ¶
func (r *TextBundleRenderer) Render() (output []byte, originalLink []string)
type VditorIRRenderer ¶
type VditorIRRenderer struct {
*BaseRenderer
}
VditorIRRenderer 描述了 Vditor Instant-Rendering DOM 渲染器。
func NewVditorIRRenderer ¶
func NewVditorIRRenderer(tree *parse.Tree, options *Options) *VditorIRRenderer
NewVditorIRRenderer 创建一个 Vditor Instant-Rendering DOM 渲染器。
type VditorRenderer ¶
type VditorRenderer struct {
*BaseRenderer
// contains filtered or unexported fields
}
VditorRenderer 描述了 Vditor WYSIWYG DOM 渲染器。
func NewVditorRenderer ¶
func NewVditorRenderer(tree *parse.Tree, options *Options) *VditorRenderer
NewVditorRenderer 创建一个 Vditor WYSIWYG DOM 渲染器。
type VditorSVRenderer ¶
type VditorSVRenderer struct {
*BaseRenderer
LastOut []byte // 最新输出的 newline 长度个字节
// contains filtered or unexported fields
}
VditorSVRenderer 描述了 Vditor Split-View DOM 渲染器。
func NewVditorSVRenderer ¶
func NewVditorSVRenderer(tree *parse.Tree, options *Options) *VditorSVRenderer
NewVditorSVRenderer 创建一个 Vditor Split-View DOM 渲染器
func (*VditorSVRenderer) Newline ¶
func (r *VditorSVRenderer) Newline()
func (*VditorSVRenderer) Write ¶
func (r *VditorSVRenderer) Write(content []byte)
func (*VditorSVRenderer) WriteByte ¶
func (r *VditorSVRenderer) WriteByte(c byte)
func (*VditorSVRenderer) WriteString ¶
func (r *VditorSVRenderer) WriteString(content string)
Source Files
¶
- code_block_html_render.go
- echarts_json_renderer.go
- filetype.go
- format_renderer.go
- html_renderer.go
- json_renderer.go
- kityminder_json_renderer.go
- link.go
- mindmap.go
- protyle_export_docx_renderer.go
- protyle_export_md_renderer.go
- protyle_export_renderer.go
- protyle_preview_renderer.go
- protyle_renderer.go
- renderer.go
- sanitizer.go
- space.go
- term_typographer.go
- textbundle_renderer.go
- vditor_ir_renderer.go
- vditor_sv_renderer.go
- vditor_wysiwyg_renderer.go