Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upUnique IDs for footnotes with the same names #483
Comments
This comment has been minimized.
This comment has been minimized.
A third option I can think of is to offer a switch for removing footnotes completely. It looks like someone already did this using hand-rolled nokogiri to remove footnotes from excerpted posts, which is similar to what I'm trying to do. |
gettalong
self-assigned this
Jan 5, 2018
This comment has been minimized.
This comment has been minimized.
Thank you for pointing out this problem! I can imagine a solution similar to what is done with the |
This comment has been minimized.
This comment has been minimized.
It certainly would! |
gettalong
added
the
enhancement
label
Feb 3, 2018
This comment has been minimized.
This comment has been minimized.
@pjpoole This will be implemented for the next release. |
gettalong
added
the
next release
label
Jun 24, 2018
This comment has been minimized.
This comment has been minimized.
@pjpoole This will be in the release coming out today. I.e. there is a new option Additionally, I have added the footnote count of the document to the options of the root element. Together with the option require 'kramdown/document'
total_footnotes = 0
documents = [
"footnote[^a][^a]\n\n[^a]: My note\n[^b]: another (ignored) note",
"footnote[^a][^a]\n\n[^a]: My note\n[^b]: another (ignored) note",
"footnote[^a][^a]\n\n[^a]: My note\n[^b]: another (ignored) note",
]
documents.each do |document|
document = Kramdown::Document.new(document, {footnote_nr: total_footnotes + 1, footnote_prefix: total_footnotes + 1})
puts document.to_html
total_footnotes += document.root.options[:footnote_count]
end results in: <p>footnote<sup id="fnref:1a"><a href="#fn:1a" class="footnote">1</a></sup><sup id="fnref:1a:1"><a href="#fn:1a" class="footnote">1</a></sup></p>
<div class="footnotes">
<ol>
<li id="fn:1a">
<p>My note <a href="#fnref:1a" class="reversefootnote">↩</a> <a href="#fnref:1a:1" class="reversefootnote">↩<sup>2</sup></a></p>
</li>
</ol>
</div>
<p>footnote<sup id="fnref:2a"><a href="#fn:2a" class="footnote">2</a></sup><sup id="fnref:2a:1"><a href="#fn:2a" class="footnote">2</a></sup></p>
<div class="footnotes">
<ol start="2">
<li id="fn:2a">
<p>My note <a href="#fnref:2a" class="reversefootnote">↩</a> <a href="#fnref:2a:1" class="reversefootnote">↩<sup>2</sup></a></p>
</li>
</ol>
</div>
<p>footnote<sup id="fnref:3a"><a href="#fn:3a" class="footnote">3</a></sup><sup id="fnref:3a:1"><a href="#fn:3a" class="footnote">3</a></sup></p>
<div class="footnotes">
<ol start="3">
<li id="fn:3a">
<p>My note <a href="#fnref:3a" class="reversefootnote">↩</a> <a href="#fnref:3a:1" class="reversefootnote">↩<sup>2</sup></a></p>
</li>
</ol>
</div> |
pjpoole commentedJan 2, 2018
•
edited
This author highlighted a problem I am currently having: #56
His answer was different than mine. I prefer to use numbers, and even if I do use custom footnote names, I don't trust myself to never re-use a single name for multiple footnotes that may show up in the same view.
It looks like one solution would be to keep track of a global context and manually advance the starting footnote number as I render posts in a blog index page, but I don't see a way to query a Kramdown document to ask how many footnotes it sees. (i.e., something like:
but an easier solution would be the option to add in some sort of nonce into each footnote reference so that the ids would be like
fn:1-adf123
.