Documentation
¶
Overview ¶
Package markdown 提供Markdown到Word文档的转换功能
Package markdown 提供Markdown到Word文档的转换功能
Index ¶
- Variables
- func LaTeXToOMMLString(latex string, isBlock bool) (string, error)
- type BidirectionalConverter
- type ConversionError
- type ConvertOptions
- type Converter
- func (c *Converter) BatchConvert(inputs []string, outputDir string, options *ConvertOptions) error
- func (c *Converter) ConvertBytes(content []byte, opts *ConvertOptions) (*document.Document, error)
- func (c *Converter) ConvertFile(mdPath, docxPath string, options *ConvertOptions) error
- func (c *Converter) ConvertString(content string, opts *ConvertOptions) (*document.Document, error)
- type ExportError
- type ExportOptions
- type Exporter
- func (e *Exporter) BatchExport(inputs []string, outputDir string, options *ExportOptions) error
- func (e *Exporter) ExportToBytes(doc *document.Document, options *ExportOptions) ([]byte, error)
- func (e *Exporter) ExportToFile(docxPath, mdPath string, options *ExportOptions) error
- func (e *Exporter) ExportToString(doc *document.Document, options *ExportOptions) (string, error)
- type MarkdownConverter
- type MarkdownWriter
- type MathDeg
- type MathDegHide
- type MathDelim
- type MathDelimChar
- type MathDelimPr
- type MathDen
- type MathE
- type MathFrac
- type MathFracPr
- type MathFracType
- type MathNum
- type MathRad
- type MathRadPr
- type MathRun
- type MathRunProp
- type MathSty
- type MathSub
- type MathSubElement
- type MathSubSup
- type MathSup
- type MathSupElement
- type MathText
- type OfficeMath
- type OfficeMathPara
- type WordRenderer
- type WordToMarkdownExporter
Constants ¶
This section is empty.
Variables ¶
var ( // ErrUnsupportedMarkdown 不支持的Markdown语法 ErrUnsupportedMarkdown = errors.New("unsupported markdown syntax") // ErrInvalidImagePath 无效的图片路径 ErrInvalidImagePath = errors.New("invalid image path") // ErrFileNotFound 文件未找到 ErrFileNotFound = errors.New("file not found") // ErrInvalidMarkdown 无效的Markdown内容 ErrInvalidMarkdown = errors.New("invalid markdown content") // ErrConversionFailed 转换失败 ErrConversionFailed = errors.New("conversion failed") // ErrUnsupportedWordElement 不支持的Word元素 ErrUnsupportedWordElement = errors.New("unsupported word element") // ErrExportFailed 导出失败 ErrExportFailed = errors.New("export failed") // ErrInvalidDocument 无效的Word文档 ErrInvalidDocument = errors.New("invalid word document") )
Functions ¶
Types ¶
type BidirectionalConverter ¶
type BidirectionalConverter struct {
// contains filtered or unexported fields
}
BidirectionalConverter 双向转换器
func NewBidirectionalConverter ¶
func NewBidirectionalConverter(mdOpts *ConvertOptions, exportOpts *ExportOptions) *BidirectionalConverter
NewBidirectionalConverter 创建双向转换器
func (*BidirectionalConverter) AutoConvert ¶
func (bc *BidirectionalConverter) AutoConvert(inputPath, outputPath string) error
AutoConvert 自动检测文件类型并转换
type ConversionError ¶
type ConversionError struct {
Type string // 错误类型
Message string // 错误消息
Line int // 错误行号(如果适用)
Column int // 错误列号(如果适用)
Cause error // 原始错误
}
ConversionError 转换错误,包含详细信息
func NewConversionError ¶
func NewConversionError(errorType, message string, line, column int, cause error) *ConversionError
NewConversionError 创建新的转换错误
func (*ConversionError) Unwrap ¶
func (e *ConversionError) Unwrap() error
Unwrap 返回原始错误,支持errors.Unwrap
type ConvertOptions ¶
type ConvertOptions struct {
// 基础配置
EnableGFM bool // 启用GitHub Flavored Markdown
EnableFootnotes bool // 启用脚注支持
EnableTables bool // 启用表格支持
EnableTaskList bool // 启用任务列表
EnableMath bool // 启用数学公式支持(LaTeX语法)
// 样式配置
StyleMapping map[string]string // 自定义样式映射
DefaultFontFamily string // 默认字体
DefaultFontSize float64 // 默认字号
// 图片处理
ImageBasePath string // 图片基础路径
EmbedImages bool // 是否嵌入图片
MaxImageWidth float64 // 最大图片宽度(英寸)
// 链接处理
PreserveLinkStyle bool // 保留链接样式
ConvertToBookmarks bool // 内部链接转书签
// 文档设置
GenerateTOC bool // 生成目录
TOCMaxLevel int // 目录最大级别
PageSettings *document.PageSettings // 页面设置(使用现有结构)
// 错误处理
StrictMode bool // 严格模式
IgnoreErrors bool // 忽略转换错误
ErrorCallback func(error) // 错误回调
// 进度报告
ProgressCallback func(int, int) // 进度回调
}
ConvertOptions 转换选项配置
type Converter ¶
type Converter struct {
// contains filtered or unexported fields
}
Converter 默认转换器实现
func (*Converter) BatchConvert ¶
func (c *Converter) BatchConvert(inputs []string, outputDir string, options *ConvertOptions) error
BatchConvert 批量转换文件
func (*Converter) ConvertBytes ¶
ConvertBytes 转换字节数据为Word文档
func (*Converter) ConvertFile ¶
func (c *Converter) ConvertFile(mdPath, docxPath string, options *ConvertOptions) error
ConvertFile 转换文件
func (*Converter) ConvertString ¶
ConvertString 转换字符串内容为Word文档
type ExportError ¶
ExportError 导出错误,包含详细信息
func NewExportError ¶
func NewExportError(errorType, message string, cause error) *ExportError
NewExportError 创建新的导出错误
type ExportOptions ¶
type ExportOptions struct {
// 基础配置
UseGFMTables bool // 使用GFM表格语法
PreserveFootnotes bool // 保留脚注
PreserveLineBreaks bool // 保留换行符
WrapLongLines bool // 自动换行长行
MaxLineLength int // 最大行长度
// 图片处理
ExtractImages bool // 是否导出图片文件
ImageOutputDir string // 图片输出目录
ImageNamePattern string // 图片命名模式
ImageRelativePath bool // 使用相对路径引用图片
// 链接处理
PreserveBookmarks bool // 保留书签为锚点链接
ConvertHyperlinks bool // 转换超链接
// 代码块处理
PreserveCodeStyle bool // 保留代码样式
DefaultCodeLang string // 默认代码语言标识
// 样式映射
CustomStyleMap map[string]string // 自定义样式映射
IgnoreUnknownStyles bool // 忽略未知样式
// 内容处理
PreserveTOC bool // 保留目录
IncludeMetadata bool // 包含文档元数据
StripComments bool // 移除注释
// 格式化选项
UseSetext bool // 使用Setext样式标题
BulletListMarker string // 项目符号标记
EmphasisMarker string // 强调标记
// 错误处理
StrictMode bool // 严格模式
IgnoreErrors bool // 忽略转换错误
ErrorCallback func(error) // 错误回调
// 进度报告
ProgressCallback func(int, int) // 进度回调
}
ExportOptions 导出选项配置
func DefaultExportOptions ¶
func DefaultExportOptions() *ExportOptions
DefaultExportOptions 返回默认的导出配置
func HighQualityExportOptions ¶
func HighQualityExportOptions() *ExportOptions
HighQualityExportOptions 返回高质量导出配置
type Exporter ¶
type Exporter struct {
// contains filtered or unexported fields
}
Exporter Word到Markdown导出器实现
func (*Exporter) BatchExport ¶
func (e *Exporter) BatchExport(inputs []string, outputDir string, options *ExportOptions) error
BatchExport 批量导出
func (*Exporter) ExportToBytes ¶
ExportToBytes 导出Word文档到Markdown字节数组
func (*Exporter) ExportToFile ¶
func (e *Exporter) ExportToFile(docxPath, mdPath string, options *ExportOptions) error
ExportToFile 导出Word文档到Markdown文件
func (*Exporter) ExportToString ¶
ExportToString 导出Word文档到Markdown字符串
type MarkdownConverter ¶
type MarkdownConverter interface {
// ConvertFile 转换单个文件
ConvertFile(mdPath, docxPath string, options *ConvertOptions) error
// ConvertBytes 转换字节数据
ConvertBytes(mdContent []byte, options *ConvertOptions) (*document.Document, error)
// ConvertString 转换字符串
ConvertString(mdContent string, options *ConvertOptions) (*document.Document, error)
// BatchConvert 批量转换
BatchConvert(inputs []string, outputDir string, options *ConvertOptions) error
}
MarkdownConverter Markdown转换器接口
type MarkdownWriter ¶
type MarkdownWriter struct {
// contains filtered or unexported fields
}
MarkdownWriter Markdown格式输出器
type MathDeg ¶ added in v1.5.0
MathDeg 表示根指数
func (*MathDeg) MarshalXML ¶ added in v1.5.0
MarshalXML 自定义XML序列化
type MathDegHide ¶ added in v1.5.0
MathDegHide 表示是否隐藏根指数
type MathDelim ¶ added in v1.5.0
type MathDelim struct {
XMLName xml.Name `xml:"m:d"`
DPr *MathDelimPr `xml:"m:dPr,omitempty"`
E *MathE `xml:"m:e"`
}
MathDelim 表示分隔符(括号等)
type MathDelimChar ¶ added in v1.5.0
MathDelimChar 表示分隔符字符
type MathDelimPr ¶ added in v1.5.0
type MathDelimPr struct {
XMLName xml.Name `xml:"m:dPr"`
BegChr *MathDelimChar `xml:"m:begChr,omitempty"`
EndChr *MathDelimChar `xml:"m:endChr,omitempty"`
}
MathDelimPr 表示分隔符属性
type MathDen ¶ added in v1.5.0
MathDen 表示分母
func (*MathDen) MarshalXML ¶ added in v1.5.0
MarshalXML 自定义XML序列化
type MathE ¶ added in v1.5.0
MathE 表示基础元素
func (*MathE) MarshalXML ¶ added in v1.5.0
MarshalXML 自定义XML序列化
type MathFrac ¶ added in v1.5.0
type MathFrac struct {
XMLName xml.Name `xml:"m:f"`
FracPr *MathFracPr `xml:"m:fPr,omitempty"`
Num *MathNum `xml:"m:num"`
Den *MathDen `xml:"m:den"`
}
MathFrac 表示分数
type MathFracPr ¶ added in v1.5.0
type MathFracPr struct {
XMLName xml.Name `xml:"m:fPr"`
Type *MathFracType `xml:"m:type,omitempty"`
}
MathFracPr 表示分数属性
type MathFracType ¶ added in v1.5.0
MathFracType 表示分数类型
type MathNum ¶ added in v1.5.0
MathNum 表示分子
func (*MathNum) MarshalXML ¶ added in v1.5.0
MarshalXML 自定义XML序列化
type MathRad ¶ added in v1.5.0
type MathRad struct {
XMLName xml.Name `xml:"m:rad"`
RadPr *MathRadPr `xml:"m:radPr,omitempty"`
Deg *MathDeg `xml:"m:deg,omitempty"`
E *MathE `xml:"m:e"`
}
MathRad 表示根号
type MathRadPr ¶ added in v1.5.0
type MathRadPr struct {
XMLName xml.Name `xml:"m:radPr"`
DegHide *MathDegHide `xml:"m:degHide,omitempty"`
}
MathRadPr 表示根号属性
type MathRun ¶ added in v1.5.0
type MathRun struct {
XMLName xml.Name `xml:"m:r"`
Text *MathText `xml:"m:t,omitempty"`
RunPr *MathRunProp `xml:"m:rPr,omitempty"`
}
MathRun 表示数学运行元素
type MathRunProp ¶ added in v1.5.0
MathRunProp 表示数学运行属性
type MathSub ¶ added in v1.5.0
type MathSub struct {
XMLName xml.Name `xml:"m:sSub"`
E *MathE `xml:"m:e"`
Sub *MathSubElement `xml:"m:sub"`
}
MathSub 表示下标
type MathSubElement ¶ added in v1.5.0
MathSubElement 表示下标元素
func (*MathSubElement) MarshalXML ¶ added in v1.5.0
func (s *MathSubElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML 自定义XML序列化
type MathSubSup ¶ added in v1.5.0
type MathSubSup struct {
XMLName xml.Name `xml:"m:sSubSup"`
E *MathE `xml:"m:e"`
Sub *MathSubElement `xml:"m:sub"`
Sup *MathSupElement `xml:"m:sup"`
}
MathSubSup 表示上下标
type MathSup ¶ added in v1.5.0
type MathSup struct {
XMLName xml.Name `xml:"m:sSup"`
E *MathE `xml:"m:e"`
Sup *MathSupElement `xml:"m:sup"`
}
MathSup 表示上标
type MathSupElement ¶ added in v1.5.0
MathSupElement 表示上标元素
func (*MathSupElement) MarshalXML ¶ added in v1.5.0
func (s *MathSupElement) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML 自定义XML序列化
type OfficeMath ¶ added in v1.5.0
type OfficeMath struct {
XMLName xml.Name `xml:"m:oMath"`
Content []interface{} `xml:"-"` // 使用自定义序列化
}
OfficeMath 表示Office数学公式的根元素 对应OMML中的 m:oMath 元素
func LaTeXToOMML ¶ added in v1.5.0
func LaTeXToOMML(latex string) *OfficeMath
LaTeXToOMML 将LaTeX公式转换为OMML格式 这是一个简化版本的转换器,支持常用的LaTeX数学语法
func (*OfficeMath) MarshalXML ¶ added in v1.5.0
func (o *OfficeMath) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML 自定义XML序列化
type OfficeMathPara ¶ added in v1.5.0
type OfficeMathPara struct {
XMLName xml.Name `xml:"m:oMathPara"`
Math *OfficeMath `xml:"m:oMath"`
}
OfficeMathPara 表示Office数学公式段落 对应OMML中的 m:oMathPara 元素(用于块级公式)
type WordRenderer ¶
type WordRenderer struct {
// contains filtered or unexported fields
}
WordRenderer Word文档渲染器
type WordToMarkdownExporter ¶
type WordToMarkdownExporter interface {
// ExportToFile 导出Word文档到Markdown文件
ExportToFile(docxPath, mdPath string, options *ExportOptions) error
// ExportToString 导出Word文档到Markdown字符串
ExportToString(doc *document.Document, options *ExportOptions) (string, error)
// ExportToBytes 导出Word文档到Markdown字节数组
ExportToBytes(doc *document.Document, options *ExportOptions) ([]byte, error)
// BatchExport 批量导出
BatchExport(inputs []string, outputDir string, options *ExportOptions) error
}
WordToMarkdownExporter Word到Markdown导出器接口