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("")}
+}