crossref

package
v0.6.2 Latest Latest
Warning

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

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

Documentation

Overview

Package crossref 提供交叉引用和自动编号功能。 支持对图表、表格和章节的编号和引用,可以在 HTML 中替换占位符为实际的编号。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Reference

type Reference struct {
	Type      ReferenceType // 引用类型(图、表或章节)
	ID        string        // 唯一标识符
	Number    int           // 自动分配的编号
	Title     string        // 标题或描述
	Level     int           // 对于章节,表示标题级别;其他类型默认为 0
	NumberStr string        // 分层编号字符串,如 "1.2.3"(仅章节类型使用)
}

Reference 表示一个被追踪的引用对象

type ReferenceType

type ReferenceType string

ReferenceType 定义引用类型的常量

const (
	TypeFigure  ReferenceType = "figure"  // 图片
	TypeTable   ReferenceType = "table"   // 表格
	TypeSection ReferenceType = "section" // 章节
)

type Resolver

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

Resolver 管理所有的交叉引用和自动编号

func NewResolver

func NewResolver() *Resolver

NewResolver 创建一个新的交叉引用解析器实例

func (*Resolver) AddCaptions

func (r *Resolver) AddCaptions(html string) string

AddCaptions 为图表添加编号标题 处理形如 <figure id="fig_1"><img ...></figure> 的 HTML 为其添加 <figcaption>图1: 标题</figcaption>

示例: 输入: <figure id="fig_demo"><img src="demo.png"></figure> 输出: <figure id="fig_demo"><img src="demo.png"><figcaption>图1: 演示图</figcaption></figure>

func (*Resolver) GetAllReferences

func (r *Resolver) GetAllReferences() map[string]*Reference

GetAllReferences 返回所有已注册的引用(用于调试或构建参考列表) 返回的映射包含所有类型的引用

func (*Resolver) ProcessHTML

func (r *Resolver) ProcessHTML(html string) string

ProcessHTML 处理 HTML 内容,替换 {{ref:id}} 占位符为实际的引用 支持的占位符格式: - {{ref:fig_1}} 替换为 "图1" - {{ref:table_1}} 替换为 "表1" - {{ref:section_intro}} 替换为 "1.2.3"(章节编号)

示例: 输入: "如图 {{ref:fig_demo}} 所示,..." 输出: "如图 图1 所示,..."

func (*Resolver) RegisterFigure

func (r *Resolver) RegisterFigure(id, title string) int

RegisterFigure 注册一个图片并返回自动分配的编号 参数 id 是图片的唯一标识符(通常用于生成 HTML 锚点) 参数 title 是图片的标题或说明 返回值是自动分配的图片编号

func (*Resolver) RegisterSection

func (r *Resolver) RegisterSection(id, title string, level int)

RegisterSection 注册一个章节 参数 id 是章节的唯一标识符 参数 title 是章节标题 参数 level 是标题级别(1-6),用于生成分层编号

对于分层编号的示例: Level 1: 1. 2. 3. ... Level 2: 1.1. 1.2. 2.1. ... Level 3: 1.1.1. 1.1.2. ...

func (*Resolver) RegisterTable

func (r *Resolver) RegisterTable(id, title string) int

RegisterTable 注册一个表格并返回自动分配的编号 参数 id 是表格的唯一标识符 参数 title 是表格的标题或说明 返回值是自动分配的表格编号

func (*Resolver) Reset

func (r *Resolver) Reset()

Reset 清空所有引用信息,重新初始化解析器 用于处理多个独立的文档时

func (*Resolver) Resolve

func (r *Resolver) Resolve(id string) (*Reference, error)

Resolve 根据 ID 查找引用信息 参数 id 是引用的唯一标识符 返回值是找到的 Reference 指针,如果未找到返回 error

Jump to

Keyboard shortcuts

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