Skip to content

Commit d9a392d

Browse files
committed
Proper output for footnote definitions
1 parent 22cc874 commit d9a392d

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

src/markd/node.cr

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ module Markd
7070
property fence_offset = 0
7171
property? last_line_blank = false
7272
property? last_line_checked = false
73-
property footnote_definitions = {} of String => Node
7473

7574
property! parent : Node?
7675
property! first_child : Node?

src/markd/parsers/block.cr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ module Markd::Parser
106106
end
107107

108108
# Footnote definitionss are moved to the end of the document
109-
footnotes.each_with_index do |(title, _), _|
109+
footnotes.each do |(title, _)|
110110
node = footnote_definitions[title]
111111
node.unlink
112112
@document.append_child(node)

src/markd/renderers/html_renderer.cr

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,12 +305,24 @@ module Markd
305305

306306
def footnote_definition(node : Node, entering : Bool) : Nil
307307
if entering
308+
if !node.prev.type.footnote_definition?
309+
newline
310+
tag("section", {"class" => "footnotes", "data-footnotes" => nil})
311+
newline
312+
tag("ol")
313+
end
308314
newline
309315
tag("li", {
310316
id: "fn-foobar",
311317
})
312318
else
313319
tag("li", end_tag: true)
320+
if node == node.parent.last_child
321+
newline
322+
tag("ol", end_tag: true)
323+
newline
324+
tag("section", end_tag: true)
325+
end
314326
end
315327
end
316328

0 commit comments

Comments
 (0)