diff --git a/kernel/model/export.go b/kernel/model/export.go index 1618b7810..52a98caa9 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -1990,7 +1990,7 @@ func exportMarkdownContent0(tree *parse.Tree, cloudAssetsBase string, assetsDest if 4 == blockRefMode { // 脚注+锚点哈希 if n.IsBlock() && gulu.Str.Contains(n.ID, defBlockIDs) { // 如果是定义块,则在开头处添加锚点 - anchorSpan := &ast.Node{Type: ast.NodeInlineHTML, Tokens: []byte("")} + anchorSpan := treenode.NewSpanAnchor(n.ID) if ast.NodeDocument != n.Type { firstLeaf := treenode.FirstLeafBlock(n) if nil != firstLeaf { @@ -2226,7 +2226,7 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool, } } else { if 4 == blockRefMode { // 脚注+锚点哈希 - anchorSpan := &ast.Node{Type: ast.NodeInlineHTML, Tokens: []byte("")} + anchorSpan := treenode.NewSpanAnchor(id) ret.Root.PrependChild(anchorSpan) } } diff --git a/kernel/treenode/tree.go b/kernel/treenode/tree.go index 1275cc8c6..5ea5452f5 100644 --- a/kernel/treenode/tree.go +++ b/kernel/treenode/tree.go @@ -116,3 +116,7 @@ func NewParagraph(id string) (ret *ast.Node) { ret.SetIALAttr("updated", newID[:14]) return } + +func NewSpanAnchor(id string) (ret *ast.Node) { + return &ast.Node{Type: ast.NodeInlineHTML, Tokens: []byte("")} +}