kramdown 2.3.2 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTERS +11 -2
- data/VERSION +1 -1
- data/bin/kramdown +15 -12
- data/lib/kramdown/converter/base.rb +2 -2
- data/lib/kramdown/converter/html.rb +23 -15
- data/lib/kramdown/converter/kramdown.rb +31 -21
- data/lib/kramdown/converter/latex.rb +11 -10
- data/lib/kramdown/converter/man.rb +3 -3
- data/lib/kramdown/converter/math_engine/mathjax.rb +1 -1
- data/lib/kramdown/converter/remove_html_tags.rb +5 -4
- data/lib/kramdown/document.rb +1 -1
- data/lib/kramdown/element.rb +1 -1
- data/lib/kramdown/options.rb +50 -15
- data/lib/kramdown/parser/base.rb +6 -0
- data/lib/kramdown/parser/html.rb +24 -18
- data/lib/kramdown/parser/kramdown/abbreviation.rb +4 -2
- data/lib/kramdown/parser/kramdown/codespan.rb +1 -1
- data/lib/kramdown/parser/kramdown/emphasis.rb +6 -1
- data/lib/kramdown/parser/kramdown/escaped_chars.rb +1 -1
- data/lib/kramdown/parser/kramdown/extensions.rb +6 -6
- data/lib/kramdown/parser/kramdown/html.rb +26 -23
- data/lib/kramdown/parser/kramdown/html_entity.rb +1 -1
- data/lib/kramdown/parser/kramdown/link.rb +4 -4
- data/lib/kramdown/parser/kramdown/list.rb +19 -18
- data/lib/kramdown/parser/kramdown/smart_quotes.rb +1 -1
- data/lib/kramdown/parser/kramdown.rb +5 -4
- data/lib/kramdown/utils/entities.rb +661 -5
- data/lib/kramdown/utils/html.rb +1 -1
- data/lib/kramdown/utils/unidecoder.rb +9 -13
- data/lib/kramdown/version.rb +1 -1
- data/man/man1/kramdown.1 +25 -0
- data/test/test_files.rb +11 -0
- data/test/testcases/block/03_paragraph/to_kramdown.kramdown +7 -0
- data/test/testcases/block/03_paragraph/to_kramdown.text +5 -0
- data/test/testcases/block/04_header/with_header_links.html +7 -0
- data/test/testcases/block/04_header/with_header_links.options +2 -0
- data/test/testcases/block/04_header/with_header_links.text +8 -0
- data/test/testcases/block/04_header/with_line_break.html +1 -0
- data/test/testcases/block/04_header/with_line_break.text +1 -0
- data/test/testcases/block/08_list/escaping.html +4 -0
- data/test/testcases/block/08_list/escaping.text +4 -0
- data/test/testcases/block/08_list/nested_compact.kramdown +7 -0
- data/test/testcases/block/08_list/nested_compact.text +6 -0
- data/test/testcases/block/08_list/special_cases.html +10 -0
- data/test/testcases/block/08_list/special_cases.text +9 -0
- data/test/testcases/block/09_html/cdata_section.html +10 -0
- data/test/testcases/block/09_html/cdata_section.text +10 -0
- data/test/testcases/block/09_html/html_to_native/table_simple.html +3 -0
- data/test/testcases/block/09_html/html_to_native/table_simple.text +3 -0
- data/test/testcases/block/12_extension/options.html +2 -2
- data/test/testcases/block/12_extension/options2.html +2 -2
- data/test/testcases/block/14_table/table_with_footnote.html +2 -2
- data/test/testcases/block/16_toc/toc_with_footnotes.html +2 -2
- data/test/testcases/span/02_emphasis/normal.html +6 -1
- data/test/testcases/span/02_emphasis/normal.text +5 -0
- data/test/testcases/span/04_footnote/backlink_inline.html +10 -10
- data/test/testcases/span/04_footnote/backlink_text.html +2 -2
- data/test/testcases/span/04_footnote/footnote_link_text.html +12 -0
- data/test/testcases/span/04_footnote/footnote_link_text.options +1 -0
- data/test/testcases/span/04_footnote/footnote_link_text.text +4 -0
- data/test/testcases/span/04_footnote/footnote_nr.html +3 -3
- data/test/testcases/span/04_footnote/footnote_prefix.html +3 -3
- data/test/testcases/span/04_footnote/inside_footnote.html +6 -6
- data/test/testcases/span/04_footnote/markers.html +10 -10
- data/test/testcases/span/04_footnote/placement.html +2 -2
- data/test/testcases/span/04_footnote/regexp_problem.html +2 -2
- data/test/testcases/span/04_footnote/without_backlink.html +2 -2
- data/test/testcases/span/abbreviations/abbrev.html +4 -0
- data/test/testcases/span/abbreviations/abbrev.text +7 -0
- data/test/testcases/span/abbreviations/in_footnote.html +2 -2
- metadata +23 -9
@@ -20,12 +20,7 @@ module Kramdown
|
|
20
20
|
File.directory?(File.join(File.expand_path(dir), "stringex", "unidecoder_data"))
|
21
21
|
end
|
22
22
|
|
23
|
-
if
|
24
|
-
def self.decode(string)
|
25
|
-
string
|
26
|
-
end
|
27
|
-
else
|
28
|
-
|
23
|
+
if path
|
29
24
|
CODEPOINTS = Hash.new do |h, k|
|
30
25
|
h[k] = YAML.load_file(File.join(path, "stringex", "unidecoder_data", "#{k}.yml"))
|
31
26
|
end
|
@@ -33,15 +28,16 @@ module Kramdown
|
|
33
28
|
# Transliterate string from Unicode into ASCII.
|
34
29
|
def self.decode(string)
|
35
30
|
string.gsub(/[^\x00-\x7f]/u) do |codepoint|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
"?"
|
41
|
-
end
|
31
|
+
unpacked = codepoint.unpack1("U")
|
32
|
+
CODEPOINTS[sprintf("x%02x", unpacked >> 8)][unpacked & 255]
|
33
|
+
rescue StandardError
|
34
|
+
"?"
|
42
35
|
end
|
43
36
|
end
|
44
|
-
|
37
|
+
else
|
38
|
+
def self.decode(string)
|
39
|
+
string
|
40
|
+
end
|
45
41
|
end
|
46
42
|
|
47
43
|
end
|
data/lib/kramdown/version.rb
CHANGED
data/man/man1/kramdown.1
CHANGED
@@ -100,6 +100,15 @@ Setting this option to true tries to place the footnote backlink in the last, po
|
|
100
100
|
Default: false Used by: HTML converter
|
101
101
|
.RE
|
102
102
|
.TP
|
103
|
+
\fB\-\-footnote\-link\-text\fP \fIARG\fP
|
104
|
+
The text used for the footnote number in a footnote link
|
105
|
+
.RS
|
106
|
+
.P
|
107
|
+
This option can be used to add additional text to the footnote link\. It should be a format string, and is passed the footnote number as the only argument to the format string\. e\.g\. \[u201c][footnote %s]\[u201d] would display as \[u201c][footnote 1]\[u201d]\&\.
|
108
|
+
.P
|
109
|
+
Default: \[u2018]%s\[u2019] Used by: HTML
|
110
|
+
.RE
|
111
|
+
.TP
|
103
112
|
\fB\-\-footnote\-nr\fP \fIARG\fP
|
104
113
|
The number of the first footnote
|
105
114
|
.RS
|
@@ -127,6 +136,15 @@ The value needs to be an array of option names\.
|
|
127
136
|
Default: [template] Used by: HTML converter
|
128
137
|
.RE
|
129
138
|
.TP
|
139
|
+
\fB\-\-[no\-]header\-links\fP
|
140
|
+
Adds anchor tags within headers that can be used to generate permalinks when not using a table of contents\.
|
141
|
+
.RS
|
142
|
+
.P
|
143
|
+
The anchor tags are empty, but can be styled to your liking\.
|
144
|
+
.P
|
145
|
+
Default: false
|
146
|
+
.RE
|
147
|
+
.TP
|
130
148
|
\fB\-\-header\-offset\fP \fIARG\fP
|
131
149
|
Sets the output offset for headers
|
132
150
|
.RS
|
@@ -174,6 +192,13 @@ If the value is a String, it has to contain a valid YAML hash and the hash has t
|
|
174
192
|
Default: {} Used by: kramdown parser
|
175
193
|
.RE
|
176
194
|
.TP
|
195
|
+
\fB\-\-list\-indent\fP \fIARG\fP
|
196
|
+
Sets the number of spaces to use for list indentation
|
197
|
+
.RS
|
198
|
+
.P
|
199
|
+
Default: 2 Used by: Kramdown converter
|
200
|
+
.RE
|
201
|
+
.TP
|
177
202
|
\fB\-\-math\-engine\fP \fIARG\fP
|
178
203
|
Set the math engine
|
179
204
|
.RS
|
data/test/test_files.rb
CHANGED
@@ -86,6 +86,7 @@ class TestFiles < Minitest::Test
|
|
86
86
|
'test/testcases/span/05_html/mark_element.html', # bc of tidy
|
87
87
|
'test/testcases/block/09_html/xml.html', # bc of tidy
|
88
88
|
'test/testcases/span/05_html/xml.html', # bc of tidy
|
89
|
+
'test/testcases/block/04_header/with_header_links.html', # because of header_links option
|
89
90
|
].compact
|
90
91
|
EXCLUDE_HTML_TEXT_FILES = [
|
91
92
|
'test/testcases/block/09_html/parse_as_span.htmlinput',
|
@@ -138,6 +139,7 @@ class TestFiles < Minitest::Test
|
|
138
139
|
'test/testcases/block/06_codeblock/with_lang_in_fenced_block_any_char.text',
|
139
140
|
'test/testcases/block/03_paragraph/standalone_image.text', # bc of standalone image
|
140
141
|
'test/testcases/cjk-line-break.text', # latex unicode support
|
142
|
+
'test/testcases/block/04_header/with_auto_ids.text', # bc of Unicode characters
|
141
143
|
].compact
|
142
144
|
Dir[File.dirname(__FILE__) + '/testcases/**/*.text'].each do |text_file|
|
143
145
|
next if EXCLUDE_LATEX_FILES.any? {|f| text_file =~ /#{f}$/ }
|
@@ -197,6 +199,9 @@ class TestFiles < Minitest::Test
|
|
197
199
|
kdtext = Kramdown::Document.new(File.read(text_file), options).to_kramdown
|
198
200
|
html = Kramdown::Document.new(kdtext, options).to_html
|
199
201
|
assert_equal(tidy_output(File.read(html_file)), tidy_output(html))
|
202
|
+
kdtext4 = Kramdown::Document.new(File.read(text_file), options.merge({list_indent: 4})).to_kramdown
|
203
|
+
html = Kramdown::Document.new(kdtext4, options).to_html
|
204
|
+
assert_equal(tidy_output(File.read(html_file)), tidy_output(html))
|
200
205
|
end
|
201
206
|
end
|
202
207
|
end
|
@@ -237,6 +242,7 @@ class TestFiles < Minitest::Test
|
|
237
242
|
'test/testcases/span/04_footnote/backlink_inline.html', # bc of mathjax
|
238
243
|
'test/testcases/block/09_html/standalone_image_in_div.html', # bc of standalone image
|
239
244
|
'test/testcases/block/09_html/processing_instruction.html', # bc of PI
|
245
|
+
'test/testcases/block/04_header/with_header_links.html', # bc of header_links option
|
240
246
|
].compact
|
241
247
|
Dir[File.dirname(__FILE__) + '/testcases/**/*.html'].each do |html_file|
|
242
248
|
next if EXCLUDE_HTML_KD_FILES.any? {|f| html_file =~ /#{f}$/ }
|
@@ -263,6 +269,7 @@ class TestFiles < Minitest::Test
|
|
263
269
|
|
264
270
|
EXCLUDE_MODIFY = [
|
265
271
|
'test/testcases/block/06_codeblock/rouge/multiple.text', # bc of HTMLFormater in options
|
272
|
+
'test/testcases/block/04_header/with_header_links.text', # bc of header_links option
|
266
273
|
].compact
|
267
274
|
|
268
275
|
# Generate test methods for asserting that converters don't modify the document tree.
|
@@ -275,7 +282,11 @@ class TestFiles < Minitest::Test
|
|
275
282
|
define_method("test_whether_#{conv_class}_modifies_tree_with_file_#{text_file.tr('.', '_')}") do
|
276
283
|
doc = Kramdown::Document.new(File.read(text_file), options)
|
277
284
|
options_before = Marshal.load(Marshal.dump(doc.options))
|
285
|
+
abbrev_proc = doc.root.options[:abbrev_defs].default_proc
|
286
|
+
doc.root.options[:abbrev_defs].default_proc = doc.root.options[:abbrev_attr].default_proc = nil
|
278
287
|
tree_before = Marshal.load(Marshal.dump(doc.root))
|
288
|
+
doc.root.options[:abbrev_defs].default_proc = doc.root.options[:abbrev_attr].default_proc =
|
289
|
+
abbrev_proc
|
279
290
|
Kramdown::Converter.const_get(conv_class).convert(doc.root, doc.options)
|
280
291
|
assert_equal(options_before, doc.options)
|
281
292
|
assert_tree_not_changed(tree_before, doc.root)
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>foo<br />bar</h1>
|
@@ -0,0 +1 @@
|
|
1
|
+
# foo<br />bar
|
@@ -10,11 +10,11 @@ some <span>*para*</span>
|
|
10
10
|
<p>some <span><em>para</em></span></p>
|
11
11
|
</div>
|
12
12
|
|
13
|
-
<p>Some text<sup id="fnref:ab"
|
13
|
+
<p>Some text<sup id="fnref:ab"><a href="#fn:ab" class="footnote" rel="footnote" role="doc-noteref">10</a></sup>.</p>
|
14
14
|
|
15
15
|
<div class="footnotes" role="doc-endnotes">
|
16
16
|
<ol start="10">
|
17
|
-
<li id="fn:ab"
|
17
|
+
<li id="fn:ab">
|
18
18
|
<p>Some text. <a href="#fnref:ab" class="reversefootnote" role="doc-backlink">↩</a></p>
|
19
19
|
</li>
|
20
20
|
</ol>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
|
2
|
-
<p>Some text<sup id="fnref:ab"
|
2
|
+
<p>Some text<sup id="fnref:ab"><a href="#fn:ab" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>.</p>
|
3
3
|
|
4
4
|
<div class="footnotes" role="doc-endnotes">
|
5
5
|
<ol>
|
6
|
-
<li id="fn:ab"
|
6
|
+
<li id="fn:ab">
|
7
7
|
<p>Some text. <a href="#fnref:ab" class="reversefootnote" role="doc-backlink">↩</a></p>
|
8
8
|
</li>
|
9
9
|
</ol>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<table>
|
2
2
|
<tbody>
|
3
3
|
<tr>
|
4
|
-
<td>this is <sup id="fnref:1"
|
4
|
+
<td>this is <sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup></td>
|
5
5
|
<td>a table</td>
|
6
6
|
</tr>
|
7
7
|
<tr>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
<div class="footnotes" role="doc-endnotes">
|
15
15
|
<ol>
|
16
|
-
<li id="fn:1"
|
16
|
+
<li id="fn:1">
|
17
17
|
<p>Something</p>
|
18
18
|
|
19
19
|
<blockquote>
|
@@ -2,11 +2,11 @@
|
|
2
2
|
<li><a href="#header1-level-1" id="markdown-toc-header1-level-1">Header level 1</a></li>
|
3
3
|
</ul>
|
4
4
|
|
5
|
-
<h1 id="header1-level-1">Header<sup id="fnref:1"
|
5
|
+
<h1 id="header1-level-1">Header<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> level 1</h1>
|
6
6
|
|
7
7
|
<div class="footnotes" role="doc-endnotes">
|
8
8
|
<ol>
|
9
|
-
<li id="fn:1"
|
9
|
+
<li id="fn:1">
|
10
10
|
<p>Some footnote content here <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
|
11
11
|
</li>
|
12
12
|
</ol>
|
@@ -45,7 +45,12 @@ Or this *<em>this</em>* way
|
|
45
45
|
Or that <em>*that</em>* way
|
46
46
|
Or that *<em>that*</em> way</p>
|
47
47
|
|
48
|
-
<p><a href="http://blah.com/blah_%28">http://blah.com/blah_%28</a
|
48
|
+
<p><a href="http://blah.com/blah_%28">http://blah.com/blah_%28</a>
|
49
|
+
<a href="http://blah.com/blah__%28">http://blah.com/blah__%28</a>
|
50
|
+
<a href="http://blah.com/blah___%28">http://blah.com/blah___%28</a>
|
51
|
+
<a href="http://blah.com/blah____%28">http://blah.com/blah____%28</a>
|
52
|
+
<a href="http://blah.com/blah_____%28">http://blah.com/blah_____%28</a>
|
53
|
+
<a href="http://blah.com/blah______%28">http://blah.com/blah______%28</a></p>
|
49
54
|
|
50
55
|
<p><a href="A_-B">A-_B</a></p>
|
51
56
|
|
@@ -46,6 +46,11 @@ Or that *\*that*\* way
|
|
46
46
|
Or that \**that\** way
|
47
47
|
|
48
48
|
[http://blah.com/blah_%28](http://blah.com/blah_%28)
|
49
|
+
[http://blah.com/blah__%28](http://blah.com/blah__%28)
|
50
|
+
[http://blah.com/blah___%28](http://blah.com/blah___%28)
|
51
|
+
[http://blah.com/blah____%28](http://blah.com/blah____%28)
|
52
|
+
[http://blah.com/blah_____%28](http://blah.com/blah_____%28)
|
53
|
+
[http://blah.com/blah______%28](http://blah.com/blah______%28)
|
49
54
|
|
50
55
|
[A-_B](A_-B)
|
51
56
|
|
@@ -1,16 +1,16 @@
|
|
1
|
-
<p>This is <sup id="fnref:paragraph"
|
1
|
+
<p>This is <sup id="fnref:paragraph"><a href="#fn:paragraph" class="footnote" rel="footnote" role="doc-noteref">1</a></sup><sup id="fnref:header"><a href="#fn:header" class="footnote" rel="footnote" role="doc-noteref">2</a></sup><sup id="fnref:blockquote"><a href="#fn:blockquote" class="footnote" rel="footnote" role="doc-noteref">3</a></sup><sup id="fnref:codeblock"><a href="#fn:codeblock" class="footnote" rel="footnote" role="doc-noteref">4</a></sup><sup id="fnref:list"><a href="#fn:list" class="footnote" rel="footnote" role="doc-noteref">5</a></sup><sup id="fnref:table"><a href="#fn:table" class="footnote" rel="footnote" role="doc-noteref">6</a></sup><sup id="fnref:hrule"><a href="#fn:hrule" class="footnote" rel="footnote" role="doc-noteref">7</a></sup><sup id="fnref:mathblock"><a href="#fn:mathblock" class="footnote" rel="footnote" role="doc-noteref">8</a></sup><sup id="fnref:html"><a href="#fn:html" class="footnote" rel="footnote" role="doc-noteref">9</a></sup></p>
|
2
2
|
|
3
3
|
<div class="footnotes" role="doc-endnotes">
|
4
4
|
<ol>
|
5
|
-
<li id="fn:paragraph"
|
5
|
+
<li id="fn:paragraph">
|
6
6
|
|
7
7
|
<p>A paragraph <a href="#fnref:paragraph" class="reversefootnote" role="doc-backlink">↩</a></p>
|
8
8
|
</li>
|
9
|
-
<li id="fn:header"
|
9
|
+
<li id="fn:header">
|
10
10
|
|
11
11
|
<h1 id="a-header">A header <a href="#fnref:header" class="reversefootnote" role="doc-backlink">↩</a></h1>
|
12
12
|
</li>
|
13
|
-
<li id="fn:blockquote"
|
13
|
+
<li id="fn:blockquote">
|
14
14
|
|
15
15
|
<blockquote>
|
16
16
|
<p>blockquote</p>
|
@@ -18,13 +18,13 @@
|
|
18
18
|
<p>paragraph <a href="#fnref:blockquote" class="reversefootnote" role="doc-backlink">↩</a></p>
|
19
19
|
</blockquote>
|
20
20
|
</li>
|
21
|
-
<li id="fn:codeblock"
|
21
|
+
<li id="fn:codeblock">
|
22
22
|
|
23
23
|
<pre><code>codeblock
|
24
24
|
</code></pre>
|
25
25
|
<p><a href="#fnref:codeblock" class="reversefootnote" role="doc-backlink">↩</a></p>
|
26
26
|
</li>
|
27
|
-
<li id="fn:list"
|
27
|
+
<li id="fn:list">
|
28
28
|
|
29
29
|
<ul>
|
30
30
|
<li>item 1</li>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
</li>
|
44
44
|
</ul>
|
45
45
|
</li>
|
46
|
-
<li id="fn:table"
|
46
|
+
<li id="fn:table">
|
47
47
|
|
48
48
|
<table>
|
49
49
|
<tbody>
|
@@ -59,17 +59,17 @@
|
|
59
59
|
</table>
|
60
60
|
<p><a href="#fnref:table" class="reversefootnote" role="doc-backlink">↩</a></p>
|
61
61
|
</li>
|
62
|
-
<li id="fn:hrule"
|
62
|
+
<li id="fn:hrule">
|
63
63
|
|
64
64
|
<hr />
|
65
65
|
<p><a href="#fnref:hrule" class="reversefootnote" role="doc-backlink">↩</a></p>
|
66
66
|
</li>
|
67
|
-
<li id="fn:mathblock"
|
67
|
+
<li id="fn:mathblock">
|
68
68
|
|
69
69
|
\[x + 2\]
|
70
70
|
<p><a href="#fnref:mathblock" class="reversefootnote" role="doc-backlink">↩</a></p>
|
71
71
|
</li>
|
72
|
-
<li id="fn:html"
|
72
|
+
<li id="fn:html">
|
73
73
|
|
74
74
|
<div>test
|
75
75
|
</div>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<p>Some footnote here<sup id="fnref:fn"
|
1
|
+
<p>Some footnote here<sup id="fnref:fn"><a href="#fn:fn" class="footnote" rel="footnote" role="doc-noteref">1</a></sup></p>
|
2
2
|
|
3
3
|
<div class="footnotes" role="doc-endnotes">
|
4
4
|
<ol>
|
5
|
-
<li id="fn:fn"
|
5
|
+
<li id="fn:fn">
|
6
6
|
<p>Some text here <a href="#fnref:fn" class="reversefootnote" role="doc-backlink">text &8617; <img /></a></p>
|
7
7
|
</li>
|
8
8
|
</ol>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<p>This is a<sup id="fnref:ab"><a href="#fn:ab" class="footnote" rel="footnote" role="doc-noteref">[footnote 1]</a></sup> footnote<sup id="fnref:ab:1"><a href="#fn:ab" class="footnote" rel="footnote" role="doc-noteref">[footnote 1]</a></sup>. And another<sup id="fnref:bc"><a href="#fn:bc" class="footnote" rel="footnote" role="doc-noteref">[footnote 2]</a></sup>.</p>
|
2
|
+
|
3
|
+
<div class="footnotes" role="doc-endnotes">
|
4
|
+
<ol>
|
5
|
+
<li id="fn:ab">
|
6
|
+
<p>Some text. <a href="#fnref:ab" class="reversefootnote" role="doc-backlink">↩</a> <a href="#fnref:ab:1" class="reversefootnote" role="doc-backlink">↩<sup>2</sup></a></p>
|
7
|
+
</li>
|
8
|
+
<li id="fn:bc">
|
9
|
+
<p>Some other text. <a href="#fnref:bc" class="reversefootnote" role="doc-backlink">↩</a></p>
|
10
|
+
</li>
|
11
|
+
</ol>
|
12
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
:footnote_link_text: "[footnote %s]"
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<p>This is a footnote<sup id="fnref:ab"
|
1
|
+
<p>This is a footnote<sup id="fnref:ab"><a href="#fn:ab" class="footnote" rel="footnote" role="doc-noteref">35</a></sup>. And another<sup id="fnref:bc"><a href="#fn:bc" class="footnote" rel="footnote" role="doc-noteref">36</a></sup>.</p>
|
2
2
|
|
3
3
|
<div class="footnotes" role="doc-endnotes">
|
4
4
|
<ol start="35">
|
5
|
-
<li id="fn:ab"
|
5
|
+
<li id="fn:ab">
|
6
6
|
<p>Some text. <a href="#fnref:ab" class="reversefootnote" role="doc-backlink">↩</a></p>
|
7
7
|
</li>
|
8
|
-
<li id="fn:bc"
|
8
|
+
<li id="fn:bc">
|
9
9
|
<p>Some other text. <a href="#fnref:bc" class="reversefootnote" role="doc-backlink">↩</a></p>
|
10
10
|
</li>
|
11
11
|
</ol>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<p>This is a<sup id="fnref:adf123-ab"
|
1
|
+
<p>This is a<sup id="fnref:adf123-ab"><a href="#fn:adf123-ab" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> footnote<sup id="fnref:adf123-ab:1"><a href="#fn:adf123-ab" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. And another<sup id="fnref:adf123-bc"><a href="#fn:adf123-bc" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>.</p>
|
2
2
|
|
3
3
|
<div class="footnotes" role="doc-endnotes">
|
4
4
|
<ol>
|
5
|
-
<li id="fn:adf123-ab"
|
5
|
+
<li id="fn:adf123-ab">
|
6
6
|
<p>Some text. <a href="#fnref:adf123-ab" class="reversefootnote" role="doc-backlink">↩</a> <a href="#fnref:adf123-ab:1" class="reversefootnote" role="doc-backlink">↩<sup>2</sup></a></p>
|
7
7
|
</li>
|
8
|
-
<li id="fn:adf123-bc"
|
8
|
+
<li id="fn:adf123-bc">
|
9
9
|
<p>Some other text. <a href="#fnref:adf123-bc" class="reversefootnote" role="doc-backlink">↩</a></p>
|
10
10
|
</li>
|
11
11
|
</ol>
|
@@ -1,16 +1,16 @@
|
|
1
|
-
<p>Lorem ipsum<sup id="fnref:first"
|
1
|
+
<p>Lorem ipsum<sup id="fnref:first"><a href="#fn:first" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> dolor sit amet.</p>
|
2
2
|
|
3
|
-
<p>Lorem ipsum<sup id="fnref:second"
|
3
|
+
<p>Lorem ipsum<sup id="fnref:second"><a href="#fn:second" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> dolor sit amet.</p>
|
4
4
|
|
5
5
|
<div class="footnotes" role="doc-endnotes">
|
6
6
|
<ol>
|
7
|
-
<li id="fn:first"
|
8
|
-
<p>Consecutur adisping.<sup id="fnref:third"
|
7
|
+
<li id="fn:first">
|
8
|
+
<p>Consecutur adisping.<sup id="fnref:third"><a href="#fn:third" class="footnote" rel="footnote" role="doc-noteref">3</a></sup> <a href="#fnref:first" class="reversefootnote" role="doc-backlink">↩</a></p>
|
9
9
|
</li>
|
10
|
-
<li id="fn:second"
|
10
|
+
<li id="fn:second">
|
11
11
|
<p>Sed ut perspiciatis unde omnis. <a href="#fnref:second" class="reversefootnote" role="doc-backlink">↩</a></p>
|
12
12
|
</li>
|
13
|
-
<li id="fn:third"
|
13
|
+
<li id="fn:third">
|
14
14
|
<p>Sed ut. <a href="#fnref:third" class="reversefootnote" role="doc-backlink">↩</a></p>
|
15
15
|
</li>
|
16
16
|
</ol>
|
@@ -1,25 +1,25 @@
|
|
1
|
-
<p>This is some *ref.<sup id="fnref:fn"
|
1
|
+
<p>This is some *ref.<sup id="fnref:fn"><a href="#fn:fn" class="footnote" rel="footnote" role="doc-noteref">1</a></sup></p>
|
2
2
|
|
3
3
|
<blockquote>
|
4
|
-
<p>a blockquote <sup id="fnref:3"
|
4
|
+
<p>a blockquote <sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">2</a></sup></p>
|
5
5
|
</blockquote>
|
6
6
|
|
7
7
|
<ul>
|
8
|
-
<li>and a list item <sup id="fnref:1"
|
8
|
+
<li>and a list item <sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">3</a></sup></li>
|
9
9
|
</ul>
|
10
10
|
|
11
|
-
<h1>And a header<sup id="fnref:now"
|
11
|
+
<h1>And a header<sup id="fnref:now"><a href="#fn:now" class="footnote" rel="footnote" role="doc-noteref">4</a></sup></h1>
|
12
12
|
|
13
13
|
<p>A marker without a definition [^without].</p>
|
14
14
|
|
15
|
-
<p>A marker <sup id="fnref:empty"
|
15
|
+
<p>A marker <sup id="fnref:empty"><a href="#fn:empty" class="footnote" rel="footnote" role="doc-noteref">5</a></sup> used twice<sup id="fnref:fn:1"><a href="#fn:fn" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> and thrice<sup id="fnref:fn:2"><a href="#fn:fn" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>.</p>
|
16
16
|
|
17
17
|
<div class="footnotes" role="doc-endnotes">
|
18
18
|
<ol>
|
19
|
-
<li id="fn:fn"
|
19
|
+
<li id="fn:fn">
|
20
20
|
<p>Some foot note text <a href="#fnref:fn" class="reversefootnote" role="doc-backlink">↩</a> <a href="#fnref:fn:1" class="reversefootnote" role="doc-backlink">↩<sup>2</sup></a> <a href="#fnref:fn:2" class="reversefootnote" role="doc-backlink">↩<sup>3</sup></a></p>
|
21
21
|
</li>
|
22
|
-
<li id="fn:3"
|
22
|
+
<li id="fn:3">
|
23
23
|
<p>other text
|
24
24
|
with more lines</p>
|
25
25
|
|
@@ -28,17 +28,17 @@ with more lines</p>
|
|
28
28
|
</blockquote>
|
29
29
|
<p><a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩</a></p>
|
30
30
|
</li>
|
31
|
-
<li id="fn:1"
|
31
|
+
<li id="fn:1">
|
32
32
|
<p>some <em>text</em> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
|
33
33
|
</li>
|
34
|
-
<li id="fn:now"
|
34
|
+
<li id="fn:now">
|
35
35
|
|
36
36
|
<pre><code>code block
|
37
37
|
continued here
|
38
38
|
</code></pre>
|
39
39
|
<p><a href="#fnref:now" class="reversefootnote" role="doc-backlink">↩</a></p>
|
40
40
|
</li>
|
41
|
-
<li id="fn:empty"
|
41
|
+
<li id="fn:empty">
|
42
42
|
|
43
43
|
<p><a href="#fnref:empty" class="reversefootnote" role="doc-backlink">↩</a></p>
|
44
44
|
</li>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<div class="footnotes" role="doc-endnotes">
|
2
2
|
<ol>
|
3
|
-
<li id="fn:1"
|
3
|
+
<li id="fn:1">
|
4
4
|
<p>Footnote \` text <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p>
|
5
5
|
</li>
|
6
6
|
</ol>
|
7
7
|
</div>
|
8
8
|
|
9
|
-
<p>Some para with a<sup id="fnref:1"
|
9
|
+
<p>Some para with a<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup> footnote.</p>
|
10
10
|
|
11
11
|
<p>And another para.</p>
|