From 6ee0b663e2c533f594c4427426cb30bcb81c361e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 16 Jan 2026 23:20:21 +0800 Subject: [PATCH] :art: Supports setting Pandoc parameters for export https://github.com/siyuan-note/siyuan/issues/16845 Signed-off-by: Daniel <845765@qq.com> --- kernel/conf/export.go | 1 + kernel/model/conf.go | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/kernel/conf/export.go b/kernel/conf/export.go index 506b40165..962fd3d5b 100644 --- a/kernel/conf/export.go +++ b/kernel/conf/export.go @@ -34,6 +34,7 @@ type Export struct { FileAnnotationRefMode int `json:"fileAnnotationRefMode"` // 文件标注引用导出模式,0:文件名 - 页码 - 锚文本,1:仅锚文本 PandocBin string `json:"pandocBin"` // Pandoc 可执行文件路径 PandocParams string `json:"pandocParams"` // Pandoc 额外参数 + DocxTemplate string `json:"docxTemplate"` // Docx 导出时模板文件路径 TODO 已经废弃,计划于 2026 年 6 月 30 日后删除 https://github.com/siyuan-note/siyuan/issues/16845 RemoveAssetsID bool `json:"removeAssetsID"` // Markdown 导出时是否移除资源文件名 ID 部分 https://github.com/siyuan-note/siyuan/issues/16065 MarkdownYFM bool `json:"markdownYFM"` // Markdown 导出时是否添加 YAML Front Matter https://github.com/siyuan-note/siyuan/issues/7727 InlineMemo bool `json:"inlineMemo"` // 是否导出行级备注 https://github.com/siyuan-note/siyuan/issues/14605 diff --git a/kernel/model/conf.go b/kernel/model/conf.go index c617b5385..571abcb5d 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -321,6 +321,17 @@ func InitConf() { Conf.Export.PandocBin = util.PandocBinPath } + docxTemplate := util.RemoveInvalid(Conf.Export.DocxTemplate) + if "" != docxTemplate { + params := util.RemoveInvalid(Conf.Export.PandocParams) + if gulu.File.IsExist(docxTemplate) && !strings.Contains(params, "--reference-doc") { + params += " --reference-doc " + docxTemplate + Conf.Export.PandocParams = strings.TrimSpace(params) + } + Conf.Export.DocxTemplate = "" + Conf.Save() + } + if nil == Conf.Graph || nil == Conf.Graph.Local || nil == Conf.Graph.Global { Conf.Graph = conf.NewGraph() }