Skip to content

Commit

Permalink
🎨 Improve exporting block ref #13331
Browse files Browse the repository at this point in the history
  • Loading branch information
88250 committed Dec 9, 2024
1 parent 8d0aac6 commit 5342f9f
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion kernel/model/export.go
Original file line number Diff line number Diff line change
Expand Up @@ -1402,11 +1402,39 @@ func ExportStdMarkdown(id string) string {
if IsSubscriber() {
cloudAssetsBase = util.GetCloudAssetsServer() + Conf.GetUser().UserId + "/"
}

var defBlockIDs []string
if 4 == Conf.Export.BlockRefMode { // 脚注+锚点哈希
// 导出锚点哈希,这里先记录下所有定义块的 ID
ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus {
if !entering {
return ast.WalkContinue
}

var defID string
if treenode.IsBlockLink(n) {
defID = strings.TrimPrefix(n.TextMarkAHref, "siyuan://blocks/")

} else if treenode.IsBlockRef(n) {
defID, _, _ = treenode.GetBlockRef(n)
}

if "" != defID {
if defBt := treenode.GetBlockTree(defID); nil != defBt {
defBlockIDs = append(defBlockIDs, defID)
defBlockIDs = gulu.Str.RemoveDuplicatedElem(defBlockIDs)
}
}
return ast.WalkContinue
})
}
defBlockIDs = gulu.Str.RemoveDuplicatedElem(defBlockIDs)

return exportMarkdownContent0(tree, cloudAssetsBase, false,
Conf.Export.BlockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode,
Conf.Export.TagOpenMarker, Conf.Export.TagCloseMarker,
Conf.Export.BlockRefTextLeft, Conf.Export.BlockRefTextRight,
Conf.Export.AddTitle, nil)
Conf.Export.AddTitle, defBlockIDs)
}

func BatchExportPandocConvertZip(ids []string, pandocTo, ext string) (name, zipPath string) {
Expand Down

0 comments on commit 5342f9f

Please sign in to comment.