diff --git a/extension/ast/footnote.go b/extension/ast/footnote.go index 835f847..9bc52d9 100644 --- a/extension/ast/footnote.go +++ b/extension/ast/footnote.go @@ -10,6 +10,7 @@ import ( type FootnoteLink struct { gast.BaseInline Index int + Ref []byte } // Dump implements Node.Dump. @@ -28,9 +29,10 @@ func (n *FootnoteLink) Kind() gast.NodeKind { } // NewFootnoteLink returns a new FootnoteLink node. -func NewFootnoteLink(index int) *FootnoteLink { +func NewFootnoteLink(index int, ref []byte) *FootnoteLink { return &FootnoteLink{ Index: index, + Ref: ref, } } diff --git a/extension/footnote.go b/extension/footnote.go index ede72db..c6ae1f5 100644 --- a/extension/footnote.go +++ b/extension/footnote.go @@ -149,6 +149,7 @@ func (s *footnoteParser) Parse(parent gast.Node, block text.Reader, pc parser.Co return nil } index := 0 + var ref []byte for def := list.FirstChild(); def != nil; def = def.NextSibling() { d := def.(*ast.Footnote) if bytes.Equal(d.Ref, value) { @@ -157,6 +158,7 @@ func (s *footnoteParser) Parse(parent gast.Node, block text.Reader, pc parser.Co d.Index = list.Count } index = d.Index + ref = d.Ref break } } @@ -164,7 +166,7 @@ func (s *footnoteParser) Parse(parent gast.Node, block text.Reader, pc parser.Co return nil } - return ast.NewFootnoteLink(index) + return ast.NewFootnoteLink(index, ref) } type footnoteASTTransformer struct {