renderer

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package renderer 负责将各个部分组装成最终的 HTML 文档。 使用 html/template 进行安全的 HTML 渲染,支持主题 CSS、封面、目录和章节内容的组合。

html_standalone.go 渲染自包含单页 HTML 文档。 输出包含嵌入式 CSS 和 JavaScript,实现 GitBook 风格的三栏布局:

  • 左栏:全局目录导航(可折叠/展开子章节,高亮当前章节)
  • 中栏:正文内容区(最大宽度 800px,居中)
  • 右栏:页内 TOC(scroll-spy 自动追踪阅读位置)

其他特性:暗色/亮色/跟随系统三档主题、代码块复制按钮+语言标签、 Callout 提示框、全文搜索(⌘K)、上一页/下一页导航、图片灯箱等。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChapterHTML

type ChapterHTML struct {
	Title    string       // 章节标题
	ID       string       // 章节唯一标识符
	Content  string       // 章节 HTML 内容
	Depth    int          // 章节在书籍结构中的层级(从 0 开始)
	Headings []NavHeading // 章节内标题树,用于导航
}

ChapterHTML 表示单个章节的 HTML 内容

type HTMLRenderer

type HTMLRenderer struct {
	// contains filtered or unexported fields
}

HTMLRenderer 用于将各个部分组装成最终的 HTML 文档

func NewHTMLRenderer

func NewHTMLRenderer(cfg *config.BookConfig, thm *theme.Theme) (*HTMLRenderer, error)

NewHTMLRenderer 创建一个新的 HTML 渲染器

func (*HTMLRenderer) Render

func (r *HTMLRenderer) Render(parts *RenderParts) (string, error)

Render 将各个部分组装成完整的 HTML 文档

type NavHeading struct {
	Title    string
	ID       string
	Children []NavHeading
}

NavHeading 表示章节内的导航标题树

type RenderParts

type RenderParts struct {
	CoverHTML    string        // 封面 HTML
	TOCHTML      string        // 目录 HTML
	ChaptersHTML []ChapterHTML // 所有章节
	CustomCSS    string        // 自定义 CSS
}

RenderParts 包含需要渲染的各个部分

type StandaloneHTMLRenderer

type StandaloneHTMLRenderer struct {
	// contains filtered or unexported fields
}

StandaloneHTMLRenderer 渲染自包含单页 HTML 文档

func NewStandaloneHTMLRenderer

func NewStandaloneHTMLRenderer(cfg *config.BookConfig, thm *theme.Theme) (*StandaloneHTMLRenderer, error)

NewStandaloneHTMLRenderer 创建单页 HTML 渲染器

func (*StandaloneHTMLRenderer) Render

func (r *StandaloneHTMLRenderer) Render(parts *RenderParts) (string, error)

Render 渲染完整的单页 HTML 文档

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL