diff --git a/extension/ast/footnote.go b/extension/ast/footnote.go index 9bc52d9..27b33c7 100644 --- a/extension/ast/footnote.go +++ b/extension/ast/footnote.go @@ -41,6 +41,7 @@ func NewFootnoteLink(index int, ref []byte) *FootnoteLink { type FootnoteBackLink struct { gast.BaseInline Index int + Ref []byte } // Dump implements Node.Dump. @@ -59,9 +60,10 @@ func (n *FootnoteBackLink) Kind() gast.NodeKind { } // NewFootnoteBackLink returns a new FootnoteBackLink node. -func NewFootnoteBackLink(index int) *FootnoteBackLink { +func NewFootnoteBackLink(index int, ref []byte) *FootnoteBackLink { return &FootnoteBackLink{ Index: index, + Ref: ref, } } diff --git a/extension/footnote.go b/extension/footnote.go index c6ae1f5..972418e 100644 --- a/extension/footnote.go +++ b/extension/footnote.go @@ -194,11 +194,12 @@ func (a *footnoteASTTransformer) Transform(node *gast.Document, reader text.Read if fc := container.LastChild(); fc != nil && gast.IsParagraph(fc) { container = fc } - index := footnote.(*ast.Footnote).Index - if index < 0 { + n := footnote.(*ast.Footnote) + if n.Index < 0 { list.RemoveChild(list, footnote) } else { - container.AppendChild(container, ast.NewFootnoteBackLink(index)) + backlink := ast.NewFootnoteBackLink(n.Index, n.Ref) + container.AppendChild(container, backlink) } footnote = next }