qiita-markdown 0.44.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +2 -2
- data/.rubocop.yml +0 -4
- data/.rubocop_todo.yml +15 -239
- data/CHANGELOG.md +15 -0
- data/README.md +5 -3
- data/lib/qiita/markdown/filters/checkbox.rb +5 -1
- data/lib/qiita/markdown/filters/code_block.rb +13 -13
- data/lib/qiita/markdown/filters/custom_block.rb +8 -6
- data/lib/qiita/markdown/filters/external_link.rb +2 -0
- data/lib/qiita/markdown/filters/final_sanitizer.rb +126 -120
- data/lib/qiita/markdown/filters/footnote.rb +2 -0
- data/lib/qiita/markdown/filters/group_mention.rb +2 -2
- data/lib/qiita/markdown/filters/heading_anchor.rb +44 -0
- data/lib/qiita/markdown/filters/html_toc.rb +67 -0
- data/lib/qiita/markdown/filters/image_link.rb +6 -6
- data/lib/qiita/markdown/filters/inline_code_color.rb +8 -8
- data/lib/qiita/markdown/filters/mention.rb +11 -9
- data/lib/qiita/markdown/filters/qiita_marker.rb +55 -0
- data/lib/qiita/markdown/filters/simplify.rb +1 -0
- data/lib/qiita/markdown/filters/syntax_highlight.rb +4 -4
- data/lib/qiita/markdown/filters/truncate.rb +1 -3
- data/lib/qiita/markdown/filters/user_input_sanitizer.rb +34 -29
- data/lib/qiita/markdown/processor.rb +2 -1
- data/lib/qiita/markdown/summary_processor.rb +1 -1
- data/lib/qiita/markdown/transformers/filter_attributes.rb +1 -0
- data/lib/qiita/markdown/transformers/filter_iframe.rb +1 -2
- data/lib/qiita/markdown/transformers/filter_script.rb +1 -1
- data/lib/qiita/markdown/transformers/strip_invalid_node.rb +1 -3
- data/lib/qiita/markdown/version.rb +1 -1
- data/lib/qiita/markdown.rb +4 -5
- data/qiita-markdown.gemspec +7 -8
- data/spec/qiita/markdown/filters/checkbox_spec.rb +28 -0
- data/spec/qiita/markdown/filters/heading_anchor_spec.rb +73 -0
- data/spec/qiita/markdown/filters/html_toc_spec.rb +223 -0
- data/spec/qiita/markdown/filters/qiita_marker_spec.rb +60 -0
- data/spec/qiita/markdown/processor_spec.rb +64 -70
- data/spec/qiita/markdown/summary_processor_spec.rb +4 -4
- metadata +80 -102
- data/benchmark/heading_anchor_rendering.rb +0 -248
- data/benchmark/sample.md +0 -317
- data/lib/qiita/markdown/filters/greenmat.rb +0 -38
- data/lib/qiita/markdown/greenmat/heading_rendering.rb +0 -61
- data/lib/qiita/markdown/greenmat/html_renderer.rb +0 -60
- data/lib/qiita/markdown/greenmat/html_toc_renderer.rb +0 -78
- data/spec/qiita/markdown/filters/greenmat_spec.rb +0 -15
- data/spec/qiita/markdown/greenmat/html_toc_renderer_spec.rb +0 -156
@@ -1,156 +0,0 @@
|
|
1
|
-
require "active_support/core_ext/string/strip"
|
2
|
-
|
3
|
-
describe Qiita::Markdown::Greenmat::HTMLToCRenderer do
|
4
|
-
let(:renderer) { described_class.new(extension) }
|
5
|
-
let(:extension) { {} }
|
6
|
-
let(:greenmat) { ::Greenmat::Markdown.new(renderer) }
|
7
|
-
subject(:rendered_html) { greenmat.render(markdown) }
|
8
|
-
|
9
|
-
context "with duplicated heading names" do
|
10
|
-
let(:markdown) do
|
11
|
-
<<-EOS.strip_heredoc
|
12
|
-
# a
|
13
|
-
## a
|
14
|
-
### a
|
15
|
-
### a
|
16
|
-
EOS
|
17
|
-
end
|
18
|
-
|
19
|
-
it "renders ToC anchors with unique ids" do
|
20
|
-
should eq <<-EOS.strip_heredoc
|
21
|
-
<ul>
|
22
|
-
<li>
|
23
|
-
<a href="#a">a</a>
|
24
|
-
<ul>
|
25
|
-
<li>
|
26
|
-
<a href="#a-1">a</a>
|
27
|
-
<ul>
|
28
|
-
<li>
|
29
|
-
<a href="#a-2">a</a>
|
30
|
-
</li>
|
31
|
-
<li>
|
32
|
-
<a href="#a-3">a</a>
|
33
|
-
</li>
|
34
|
-
</ul>
|
35
|
-
</li>
|
36
|
-
</ul>
|
37
|
-
</li>
|
38
|
-
</ul>
|
39
|
-
EOS
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context "with a document starting with level 2 heading" do
|
44
|
-
let(:markdown) do
|
45
|
-
<<-EOS.strip_heredoc
|
46
|
-
## a
|
47
|
-
### a
|
48
|
-
## a
|
49
|
-
EOS
|
50
|
-
end
|
51
|
-
|
52
|
-
it "offsets the heading levels" do
|
53
|
-
should eq <<-EOS.strip_heredoc
|
54
|
-
<ul>
|
55
|
-
<li>
|
56
|
-
<a href="#a">a</a>
|
57
|
-
<ul>
|
58
|
-
<li>
|
59
|
-
<a href="#a-1">a</a>
|
60
|
-
</li>
|
61
|
-
</ul>
|
62
|
-
</li>
|
63
|
-
<li>
|
64
|
-
<a href="#a-2">a</a>
|
65
|
-
</li>
|
66
|
-
</ul>
|
67
|
-
EOS
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
context "with a document starting with level 2 heading but includes level 1 heading at the end" do
|
72
|
-
let(:markdown) do
|
73
|
-
<<-EOS.strip_heredoc
|
74
|
-
## a
|
75
|
-
### a
|
76
|
-
# a
|
77
|
-
EOS
|
78
|
-
end
|
79
|
-
|
80
|
-
it "does not generate invalid list structure" do
|
81
|
-
should eq <<-EOS.strip_heredoc
|
82
|
-
<ul>
|
83
|
-
<li>
|
84
|
-
<a href="#a">a</a>
|
85
|
-
<ul>
|
86
|
-
<li>
|
87
|
-
<a href="#a-1">a</a>
|
88
|
-
</li>
|
89
|
-
</ul>
|
90
|
-
</li>
|
91
|
-
<li>
|
92
|
-
<a href="#a-2">a</a>
|
93
|
-
</li>
|
94
|
-
</ul>
|
95
|
-
EOS
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
context "with heading title including special HTML characters" do
|
100
|
-
let(:markdown) do
|
101
|
-
<<-EOS.strip_heredoc
|
102
|
-
# <b>R&B</b>
|
103
|
-
EOS
|
104
|
-
end
|
105
|
-
|
106
|
-
it "generates fragment identifier by sanitizing the characters in the title" do
|
107
|
-
should eq <<-EOS.strip_heredoc
|
108
|
-
<ul>
|
109
|
-
<li>
|
110
|
-
<a href="#rb"><b>R&B</b></a>
|
111
|
-
</li>
|
112
|
-
</ul>
|
113
|
-
EOS
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
context "with :escape_html extension" do
|
118
|
-
let(:extension) { { escape_html: true } }
|
119
|
-
|
120
|
-
context "with heading title including HTML tags" do
|
121
|
-
let(:markdown) do
|
122
|
-
<<-EOS.strip_heredoc
|
123
|
-
# <b>R&B</b>
|
124
|
-
EOS
|
125
|
-
end
|
126
|
-
|
127
|
-
it "strips HTML characters in heading title" do
|
128
|
-
should eq <<-EOS.strip_heredoc
|
129
|
-
<ul>
|
130
|
-
<li>
|
131
|
-
<a href="#rb">R&B</a>
|
132
|
-
</li>
|
133
|
-
</ul>
|
134
|
-
EOS
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
context "with heading title including HTML tags inside of code" do
|
139
|
-
let(:markdown) do
|
140
|
-
<<-EOS.strip_heredoc
|
141
|
-
# `<div>`
|
142
|
-
EOS
|
143
|
-
end
|
144
|
-
|
145
|
-
it "escapes HTML tags inside of code" do
|
146
|
-
should eq <<-EOS.strip_heredoc
|
147
|
-
<ul>
|
148
|
-
<li>
|
149
|
-
<a href="#div"><div></a>
|
150
|
-
</li>
|
151
|
-
</ul>
|
152
|
-
EOS
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|