qiita-markdown 0.44.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +2 -2
  3. data/.rubocop.yml +0 -4
  4. data/.rubocop_todo.yml +15 -239
  5. data/CHANGELOG.md +15 -0
  6. data/README.md +5 -3
  7. data/lib/qiita/markdown/filters/checkbox.rb +5 -1
  8. data/lib/qiita/markdown/filters/code_block.rb +13 -13
  9. data/lib/qiita/markdown/filters/custom_block.rb +8 -6
  10. data/lib/qiita/markdown/filters/external_link.rb +2 -0
  11. data/lib/qiita/markdown/filters/final_sanitizer.rb +126 -120
  12. data/lib/qiita/markdown/filters/footnote.rb +2 -0
  13. data/lib/qiita/markdown/filters/group_mention.rb +2 -2
  14. data/lib/qiita/markdown/filters/heading_anchor.rb +44 -0
  15. data/lib/qiita/markdown/filters/html_toc.rb +67 -0
  16. data/lib/qiita/markdown/filters/image_link.rb +6 -6
  17. data/lib/qiita/markdown/filters/inline_code_color.rb +8 -8
  18. data/lib/qiita/markdown/filters/mention.rb +11 -9
  19. data/lib/qiita/markdown/filters/qiita_marker.rb +55 -0
  20. data/lib/qiita/markdown/filters/simplify.rb +1 -0
  21. data/lib/qiita/markdown/filters/syntax_highlight.rb +4 -4
  22. data/lib/qiita/markdown/filters/truncate.rb +1 -3
  23. data/lib/qiita/markdown/filters/user_input_sanitizer.rb +34 -29
  24. data/lib/qiita/markdown/processor.rb +2 -1
  25. data/lib/qiita/markdown/summary_processor.rb +1 -1
  26. data/lib/qiita/markdown/transformers/filter_attributes.rb +1 -0
  27. data/lib/qiita/markdown/transformers/filter_iframe.rb +1 -2
  28. data/lib/qiita/markdown/transformers/filter_script.rb +1 -1
  29. data/lib/qiita/markdown/transformers/strip_invalid_node.rb +1 -3
  30. data/lib/qiita/markdown/version.rb +1 -1
  31. data/lib/qiita/markdown.rb +4 -5
  32. data/qiita-markdown.gemspec +7 -8
  33. data/spec/qiita/markdown/filters/checkbox_spec.rb +28 -0
  34. data/spec/qiita/markdown/filters/heading_anchor_spec.rb +73 -0
  35. data/spec/qiita/markdown/filters/html_toc_spec.rb +223 -0
  36. data/spec/qiita/markdown/filters/qiita_marker_spec.rb +60 -0
  37. data/spec/qiita/markdown/processor_spec.rb +64 -70
  38. data/spec/qiita/markdown/summary_processor_spec.rb +4 -4
  39. metadata +80 -102
  40. data/benchmark/heading_anchor_rendering.rb +0 -248
  41. data/benchmark/sample.md +0 -317
  42. data/lib/qiita/markdown/filters/greenmat.rb +0 -38
  43. data/lib/qiita/markdown/greenmat/heading_rendering.rb +0 -61
  44. data/lib/qiita/markdown/greenmat/html_renderer.rb +0 -60
  45. data/lib/qiita/markdown/greenmat/html_toc_renderer.rb +0 -78
  46. data/spec/qiita/markdown/filters/greenmat_spec.rb +0 -15
  47. data/spec/qiita/markdown/greenmat/html_toc_renderer_spec.rb +0 -156
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb18cd9f37329069980cc0322cff454cb1dcbd57ad3fe6836f40b3d8e968e304
4
- data.tar.gz: ad7d5e7d89eeb283616d04e2fbdc8a1bb2b090897bf1538f6033d061cbe8d958
3
+ metadata.gz: 196cc261921bae3253f06a912b56e96a5912ed4552ec6352415756bcca1d98ed
4
+ data.tar.gz: '018a907a21f827e68a814ce0d15ff96f3cdccb4e6e52411b7ff63399c5c55f4b'
5
5
  SHA512:
6
- metadata.gz: 4f38820e6f6eafd5135f7d6788e9b0f31ff45b42e85afc0ffb14213e263bb951250f734b1473cf1ffbcc21a5b22d823aed16235ab06bf2f218c39ff9aa59a42f
7
- data.tar.gz: 0f4b493d2cb3c06de1c2a7d68455f39a9e496d2ae95ed6ff845b8caf3367128ae0ca863a937b44ddb87147573b261178bd6573c4c6042de14a19c7c56d3e5ca1
6
+ metadata.gz: 267fcb94bfc63e83b1f42bb42d01f61744d3979be9a92b1df767fc3c7ff3beed8b6299958677835f113abed3c6990bced41618c916650f34c31d5d125e16750d
7
+ data.tar.gz: 4a072057a0d55751e5b9e52357641930b1fd0301fe779720820705d453aaaae4fe5cd20bfec3354bb47eb8981ff3742b8a200b8bc647c3b42c5b99e27930458c
@@ -20,7 +20,7 @@ jobs:
20
20
  - uses: actions/checkout@v3
21
21
  - uses: ruby/setup-ruby@v1
22
22
  with:
23
- ruby-version: '2.6'
23
+ ruby-version: '2.7'
24
24
  bundler-cache: true
25
25
  - name: Test & publish code coverage
26
26
  if: "${{ env.CC_TEST_REPORTER_ID != '' }}"
@@ -37,7 +37,7 @@ jobs:
37
37
  fail-fast: false
38
38
  matrix:
39
39
  os: ['ubuntu-18.04', 'ubuntu-latest', 'macos-latest']
40
- ruby: ['2.6', '2.7', '3.0', '3.1']
40
+ ruby: ['2.7', '3.0', '3.1']
41
41
  experimental: [false]
42
42
  include:
43
43
  - os: 'ubuntu-latest'
data/.rubocop.yml CHANGED
@@ -6,10 +6,6 @@ AllCops:
6
6
  Metrics/ClassLength:
7
7
  Enabled: false
8
8
 
9
- Style/AsciiComments:
10
- Exclude:
11
- - benchmark/**/*
12
-
13
9
  Style/Documentation:
14
10
  Enabled: false
15
11
 
data/.rubocop_todo.yml CHANGED
@@ -1,27 +1,11 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config --exclude-limit 99999`
3
- # on 2022-04-15 03:12:24 UTC using RuboCop version 1.27.0.
3
+ # on 2022-11-15 12:42:36 UTC using RuboCop version 1.39.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 3
10
- # This cop supports safe auto-correction (--auto-correct).
11
- # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
12
- # Include: **/*.gemspec
13
- Gemspec/OrderedDependencies:
14
- Exclude:
15
- - 'qiita-markdown.gemspec'
16
-
17
- # Offense count: 1
18
- # This cop supports safe auto-correction (--auto-correct).
19
- # Configuration parameters: Include.
20
- # Include: **/*.gemspec
21
- Gemspec/RequireMFA:
22
- Exclude:
23
- - 'qiita-markdown.gemspec'
24
-
25
9
  # Offense count: 1
26
10
  # Configuration parameters: Include.
27
11
  # Include: **/*.gemspec
@@ -29,66 +13,16 @@ Gemspec/RequiredRubyVersion:
29
13
  Exclude:
30
14
  - 'qiita-markdown.gemspec'
31
15
 
32
- # Offense count: 1
33
- # This cop supports safe auto-correction (--auto-correct).
34
- Layout/ClosingHeredocIndentation:
35
- Exclude:
36
- - 'spec/qiita/markdown/processor_spec.rb'
37
-
38
- # Offense count: 9
39
- # This cop supports safe auto-correction (--auto-correct).
40
- Layout/EmptyLineAfterGuardClause:
41
- Exclude:
42
- - 'lib/qiita/markdown/filters/custom_block.rb'
43
- - 'lib/qiita/markdown/filters/external_link.rb'
44
- - 'lib/qiita/markdown/filters/footnote.rb'
45
- - 'lib/qiita/markdown/filters/mention.rb'
46
- - 'lib/qiita/markdown/filters/simplify.rb'
47
- - 'lib/qiita/markdown/transformers/filter_attributes.rb'
48
-
49
- # Offense count: 22
50
- # This cop supports safe auto-correction (--auto-correct).
51
- # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
52
- # SupportedHashRocketStyles: key, separator, table
53
- # SupportedColonStyles: key, separator, table
54
- # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
55
- Layout/HashAlignment:
56
- Exclude:
57
- - 'lib/qiita/markdown/filters/user_input_sanitizer.rb'
58
-
59
- # Offense count: 1
60
- # This cop supports safe auto-correction (--auto-correct).
61
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets.
62
- # SupportedStyles: space, no_space, compact
63
- # SupportedStylesForEmptyBrackets: space, no_space
64
- Layout/SpaceInsideArrayLiteralBrackets:
65
- Exclude:
66
- - 'lib/qiita/markdown/transformers/filter_iframe.rb'
67
-
68
- # Offense count: 2
69
- # This cop supports safe auto-correction (--auto-correct).
70
- Lint/AmbiguousOperatorPrecedence:
71
- Exclude:
72
- - 'lib/qiita/markdown/filters/mention.rb'
73
-
74
- # Offense count: 5
75
- # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
16
+ # Offense count: 8
17
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
76
18
  Metrics/AbcSize:
77
- Max: 22
19
+ Max: 26
78
20
 
79
21
  # Offense count: 10
80
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
22
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
81
23
  Metrics/MethodLength:
82
24
  Max: 20
83
25
 
84
- # Offense count: 2
85
- # This cop supports safe auto-correction (--auto-correct).
86
- # Configuration parameters: EnforcedStyle, BlockForwardingName.
87
- # SupportedStyles: anonymous, explicit
88
- Naming/BlockForwarding:
89
- Exclude:
90
- - 'lib/qiita/markdown/filters/truncate.rb'
91
-
92
26
  # Offense count: 1
93
27
  Naming/ConstantName:
94
28
  Exclude:
@@ -102,53 +36,28 @@ Naming/FileName:
102
36
  Exclude:
103
37
  - 'lib/qiita-markdown.rb'
104
38
 
105
- # Offense count: 33
39
+ # Offense count: 21
106
40
  # Configuration parameters: ForbiddenDelimiters.
107
41
  # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
108
42
  Naming/HeredocDelimiterNaming:
109
43
  Exclude:
110
- - 'spec/qiita/markdown/greenmat/html_toc_renderer_spec.rb'
111
44
  - 'spec/qiita/markdown/summary_processor_spec.rb'
112
45
 
113
- # Offense count: 3
114
- # Configuration parameters: EnforcedStyleForLeadingUnderscores.
115
- # SupportedStylesForLeadingUnderscores: disallowed, required, optional
116
- Naming/MemoizedInstanceVariableName:
117
- Exclude:
118
- - 'benchmark/heading_anchor_rendering.rb'
119
- - 'lib/qiita/markdown/filters/greenmat.rb'
120
- - 'lib/qiita/markdown/greenmat/heading_rendering.rb'
121
-
122
46
  # Offense count: 1
123
47
  # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
124
- # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
48
+ # AllowedNames: as, at, by, db, id, if, in, io, ip, of, on, os, pp, to
125
49
  Naming/MethodParameterName:
126
50
  Exclude:
127
51
  - 'lib/qiita/markdown/filters/footnote.rb'
128
52
 
129
- # Offense count: 3
130
- # This cop supports safe auto-correction (--auto-correct).
131
- # Configuration parameters: EnforcedStyle.
132
- # SupportedStyles: percent_q, bare_percent
133
- Style/BarePercentLiterals:
134
- Exclude:
135
- - 'lib/qiita/markdown/filters/syntax_highlight.rb'
136
-
137
- # Offense count: 1
138
- # This cop supports safe auto-correction (--auto-correct).
139
- Style/ExpandPathArguments:
140
- Exclude:
141
- - 'qiita-markdown.gemspec'
142
-
143
- # Offense count: 47
144
- # This cop supports safe auto-correction (--auto-correct).
53
+ # Offense count: 37
54
+ # This cop supports unsafe autocorrection (--autocorrect-all).
145
55
  # Configuration parameters: EnforcedStyle.
146
56
  # SupportedStyles: always, always_true, never
147
57
  Style/FrozenStringLiteralComment:
148
58
  Exclude:
149
59
  - 'Gemfile'
150
60
  - 'Rakefile'
151
- - 'benchmark/heading_anchor_rendering.rb'
152
61
  - 'lib/qiita-markdown.rb'
153
62
  - 'lib/qiita/markdown.rb'
154
63
  - 'lib/qiita/markdown/base_processor.rb'
@@ -161,12 +70,9 @@ Style/FrozenStringLiteralComment:
161
70
  - 'lib/qiita/markdown/embed/youtube.rb'
162
71
  - 'lib/qiita/markdown/filters/checkbox.rb'
163
72
  - 'lib/qiita/markdown/filters/code_block.rb'
164
- - 'lib/qiita/markdown/filters/custom_block.rb'
165
73
  - 'lib/qiita/markdown/filters/emoji.rb'
166
74
  - 'lib/qiita/markdown/filters/external_link.rb'
167
- - 'lib/qiita/markdown/filters/final_sanitizer.rb'
168
75
  - 'lib/qiita/markdown/filters/footnote.rb'
169
- - 'lib/qiita/markdown/filters/greenmat.rb'
170
76
  - 'lib/qiita/markdown/filters/group_mention.rb'
171
77
  - 'lib/qiita/markdown/filters/image_link.rb'
172
78
  - 'lib/qiita/markdown/filters/inline_code_color.rb'
@@ -175,10 +81,6 @@ Style/FrozenStringLiteralComment:
175
81
  - 'lib/qiita/markdown/filters/syntax_highlight.rb'
176
82
  - 'lib/qiita/markdown/filters/toc.rb'
177
83
  - 'lib/qiita/markdown/filters/truncate.rb'
178
- - 'lib/qiita/markdown/filters/user_input_sanitizer.rb'
179
- - 'lib/qiita/markdown/greenmat/heading_rendering.rb'
180
- - 'lib/qiita/markdown/greenmat/html_renderer.rb'
181
- - 'lib/qiita/markdown/greenmat/html_toc_renderer.rb'
182
84
  - 'lib/qiita/markdown/processor.rb'
183
85
  - 'lib/qiita/markdown/summary_processor.rb'
184
86
  - 'lib/qiita/markdown/transformers/filter_attributes.rb'
@@ -187,166 +89,40 @@ Style/FrozenStringLiteralComment:
187
89
  - 'lib/qiita/markdown/transformers/strip_invalid_node.rb'
188
90
  - 'lib/qiita/markdown/version.rb'
189
91
  - 'qiita-markdown.gemspec'
190
- - 'spec/qiita/markdown/filters/greenmat_spec.rb'
191
92
  - 'spec/qiita/markdown/filters/inline_code_color_spec.rb'
192
- - 'spec/qiita/markdown/greenmat/html_toc_renderer_spec.rb'
193
93
  - 'spec/qiita/markdown/processor_spec.rb'
194
94
  - 'spec/qiita/markdown/summary_processor_spec.rb'
195
95
  - 'spec/spec_helper.rb'
196
96
 
197
- # Offense count: 6
198
- # This cop supports safe auto-correction (--auto-correct).
199
- # Configuration parameters: EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
200
- # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
201
- # SupportedShorthandSyntax: always, never, either
202
- Style/HashSyntax:
203
- EnforcedStyle: ruby19
204
- EnforcedShorthandSyntax: never
205
-
206
- # Offense count: 2
207
- # This cop supports safe auto-correction (--auto-correct).
208
- Style/IfUnlessModifier:
209
- Exclude:
210
- - 'lib/qiita/markdown/filters/truncate.rb'
211
- - 'lib/qiita/markdown/transformers/strip_invalid_node.rb'
212
-
213
97
  # Offense count: 17
214
- # This cop supports safe auto-correction (--auto-correct).
98
+ # This cop supports unsafe autocorrection (--autocorrect-all).
215
99
  # Configuration parameters: EnforcedStyle.
216
100
  # SupportedStyles: literals, strict
217
101
  Style/MutableConstant:
218
102
  Exclude:
219
103
  - 'lib/qiita/markdown/embed/code_pen.rb'
220
- - 'lib/qiita/markdown/filters/group_mention.rb'
221
- - 'lib/qiita/markdown/filters/inline_code_color.rb'
222
- - 'lib/qiita/markdown/filters/mention.rb'
223
104
  - 'lib/qiita/markdown/embed/tweet.rb'
224
105
  - 'lib/qiita/markdown/filters/checkbox.rb'
225
106
  - 'lib/qiita/markdown/filters/code_block.rb'
107
+ - 'lib/qiita/markdown/filters/group_mention.rb'
108
+ - 'lib/qiita/markdown/filters/inline_code_color.rb'
109
+ - 'lib/qiita/markdown/filters/mention.rb'
226
110
  - 'lib/qiita/markdown/filters/simplify.rb'
227
111
  - 'lib/qiita/markdown/filters/syntax_highlight.rb'
228
112
  - 'lib/qiita/markdown/version.rb'
229
113
 
230
- # Offense count: 2
231
- # This cop supports safe auto-correction (--auto-correct).
232
- # Configuration parameters: EnforcedStyle, MinBodyLength.
233
- # SupportedStyles: skip_modifier_ifs, always
234
- Style/Next:
235
- Exclude:
236
- - 'lib/qiita/markdown/filters/code_block.rb'
237
- - 'lib/qiita/markdown/filters/image_link.rb'
238
-
239
- # Offense count: 5
240
- # This cop supports unsafe auto-correction (--auto-correct-all).
241
- # Configuration parameters: EnforcedStyle, IgnoredMethods.
242
- # SupportedStyles: predicate, comparison
243
- Style/NumericPredicate:
244
- Exclude:
245
- - 'spec/**/*'
246
- - 'benchmark/heading_anchor_rendering.rb'
247
- - 'lib/qiita/markdown/greenmat/heading_rendering.rb'
248
- - 'lib/qiita/markdown/greenmat/html_toc_renderer.rb'
249
-
250
- # Offense count: 1
251
- # Configuration parameters: AllowedMethods.
252
- # AllowedMethods: respond_to_missing?
253
- Style/OptionalBooleanParameter:
254
- Exclude:
255
- - 'lib/qiita/markdown/greenmat/heading_rendering.rb'
256
-
257
- # Offense count: 1
258
- # This cop supports safe auto-correction (--auto-correct).
259
- Style/OrAssignment:
260
- Exclude:
261
- - 'lib/qiita/markdown/greenmat/html_toc_renderer.rb'
262
-
263
- # Offense count: 9
264
- # This cop supports safe auto-correction (--auto-correct).
265
- # Configuration parameters: PreferredDelimiters.
266
- Style/PercentLiteralDelimiters:
267
- Exclude:
268
- - 'benchmark/heading_anchor_rendering.rb'
269
- - 'lib/qiita/markdown/filters/mention.rb'
270
- - 'lib/qiita/markdown/filters/syntax_highlight.rb'
271
- - 'spec/qiita/markdown/processor_spec.rb'
272
- - 'spec/qiita/markdown/summary_processor_spec.rb'
273
-
274
114
  # Offense count: 1
275
- # This cop supports safe auto-correction (--auto-correct).
276
- Style/PerlBackrefs:
277
- Exclude:
278
- - 'lib/qiita/markdown/filters/mention.rb'
279
-
280
- # Offense count: 1
281
- # This cop supports unsafe auto-correction (--auto-correct-all).
115
+ # This cop supports unsafe autocorrection (--autocorrect-all).
282
116
  # Configuration parameters: Methods.
283
117
  Style/RedundantArgument:
284
118
  Exclude:
285
119
  - 'lib/qiita/markdown/filters/custom_block.rb'
286
120
 
287
- # Offense count: 1
288
- # This cop supports safe auto-correction (--auto-correct).
289
- Style/RedundantRegexpCharacterClass:
290
- Exclude:
291
- - 'lib/qiita/markdown/filters/mention.rb'
292
-
293
- # Offense count: 9
294
- # This cop supports safe auto-correction (--auto-correct).
295
- Style/RedundantRegexpEscape:
296
- Exclude:
297
- - 'lib/qiita/markdown/filters/group_mention.rb'
298
- - 'lib/qiita/markdown/filters/inline_code_color.rb'
299
-
300
- # Offense count: 4
301
- # This cop supports safe auto-correction (--auto-correct).
302
- # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
303
- # SupportedStyles: slashes, percent_r, mixed
304
- Style/RegexpLiteral:
305
- Exclude:
306
- - 'lib/qiita/markdown/filters/inline_code_color.rb'
307
- - 'lib/qiita/markdown/filters/mention.rb'
308
-
309
- # Offense count: 1
310
- # This cop supports safe auto-correction (--auto-correct).
311
- # Configuration parameters: EnforcedStyle.
312
- # SupportedStyles: implicit, explicit
313
- Style/RescueStandardError:
314
- Exclude:
315
- - 'lib/qiita/markdown/filters/syntax_highlight.rb'
316
-
317
121
  # Offense count: 2
318
- # This cop supports safe auto-correction (--auto-correct).
122
+ # This cop supports unsafe autocorrection (--autocorrect-all).
319
123
  # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
320
124
  # AllowedMethods: present?, blank?, presence, try, try!
321
125
  Style/SafeNavigation:
322
126
  Exclude:
323
127
  - 'lib/qiita/markdown/filters/custom_block.rb'
324
128
  - 'lib/qiita/markdown/filters/toc.rb'
325
-
326
- # Offense count: 3
327
- # This cop supports safe auto-correction (--auto-correct).
328
- # Configuration parameters: EnforcedStyle.
329
- # SupportedStyles: only_raise, only_fail, semantic
330
- Style/SignalException:
331
- Exclude:
332
- - 'lib/qiita/markdown/greenmat/heading_rendering.rb'
333
- - 'spec/qiita/markdown/summary_processor_spec.rb'
334
-
335
- # Offense count: 13
336
- # This cop supports safe auto-correction (--auto-correct).
337
- # Configuration parameters: EnforcedStyleForMultiline.
338
- # SupportedStylesForMultiline: comma, consistent_comma, no_comma
339
- Style/TrailingCommaInArguments:
340
- Exclude:
341
- - 'lib/qiita/markdown/filters/mention.rb'
342
- - 'spec/qiita/markdown/processor_spec.rb'
343
-
344
- # Offense count: 12
345
- # This cop supports safe auto-correction (--auto-correct).
346
- # Configuration parameters: EnforcedStyle, MinSize, WordRegex.
347
- # SupportedStyles: percent, brackets
348
- Style/WordArray:
349
- Exclude:
350
- - 'lib/qiita/markdown/filters/final_sanitizer.rb'
351
- - 'lib/qiita/markdown/transformers/filter_script.rb'
352
- - 'spec/qiita/markdown/processor_spec.rb'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 1.0.0
4
+
5
+ - Drop Ruby 2.6 support
6
+ - Change markdown parser from Greenmat to Qiita Marker
7
+ - Fix bug on rendering loose tasklist
8
+
9
+ ### Braking change on HTML output
10
+
11
+ Some notations will be changed between Greenmat and Qiita Marker and rendering results may change. More details, see [#130](https://github.com/increments/qiita-markdown/issues/130).
12
+
13
+ ## 0.44.1
14
+
15
+ - Rename package name from `Qiita::Markdown` to `Qiita Markdown` in README
16
+ - Bump rubocop from 1.27.0 to 1.39.0 and apply rubocop auto correct
17
+
3
18
  ## 0.44.0
4
19
 
5
20
  - Support Figma embedding scripts
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Qiita::Markdown
1
+ # Qiita Markdown
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/qiita-markdown.svg)](https://badge.fury.io/rb/qiita-markdown)
4
4
  [![Build Status](https://travis-ci.org/increments/qiita-markdown.svg)](https://travis-ci.org/increments/qiita-markdown)
@@ -16,6 +16,7 @@ Qiita-specified markdown processor.
16
16
  - Syntax highlighting
17
17
  - Mention
18
18
  - Footnotes
19
+ - Note notation's custom block
19
20
 
20
21
  ## Basic Usage
21
22
 
@@ -42,7 +43,7 @@ processor.call(markdown)
42
43
 
43
44
  ### Filters
44
45
 
45
- Qiita::Markdown is built on [jch/html-pipeline](https://github.com/jch/html-pipeline).
46
+ Qiita Markdown is built on [jch/html-pipeline](https://github.com/jch/html-pipeline).
46
47
  Add your favorite html-pipeline-compatible filters.
47
48
 
48
49
  ```ruby
@@ -68,7 +69,8 @@ processor.call(text)
68
69
  :inline_code_color_class_name - Class name for inline code color. (String)
69
70
  :language_aliases - Alias table for some language names. (Hash)
70
71
  :markdown - A hash for enabling / disabling optional Markdown syntax. (Hash)
71
- Currently only :footnotes (default: true) is supported.
72
+ Currently :footnotes (default: true) and :sourcepos (defalut: false) are supported.
73
+ For more information on these options, please see [increments/qiita_marker](https://github.com/increments/qiita_marker).
72
74
  :rule - Sanitization rule table. (Hash)
73
75
  :script - A flag to allow to embed script element. (Boolean)
74
76
  ```
@@ -55,7 +55,11 @@ module Qiita
55
55
  end
56
56
 
57
57
  def first_text_node
58
- if @node.children.first && @node.children.first.name == "p"
58
+ is_loose_list_node = @node.children.first&.text == "\n" && @node.children[1]&.name == "p"
59
+
60
+ if is_loose_list_node
61
+ @node.children[1].children.first
62
+ elsif @node.children.first && @node.children.first.name == "p"
59
63
  @node.children.first.children.first
60
64
  else
61
65
  @node.children.first
@@ -16,19 +16,19 @@ module Qiita
16
16
  def call
17
17
  result[:codes] ||= []
18
18
  doc.search("pre").each do |pre|
19
- if (code = pre.at("code"))
20
- metadata = Metadata.new(code["data-metadata"])
21
- filename = metadata.filename
22
- language = metadata.language
23
- language = language_aliases[language] || language
24
- pre["filename"] = filename if filename
25
- pre["lang"] = language if language
26
- result[:codes] << {
27
- code: pre.text,
28
- filename: filename,
29
- language: language,
30
- }
31
- end
19
+ next unless (code = pre.at("code"))
20
+
21
+ metadata = Metadata.new(code["data-metadata"])
22
+ filename = metadata.filename
23
+ language = metadata.language
24
+ language = language_aliases[language] || language
25
+ pre["filename"] = filename if filename
26
+ pre["lang"] = language if language
27
+ result[:codes] << {
28
+ code: pre.text,
29
+ filename: filename,
30
+ language: language,
31
+ }
32
32
  end
33
33
  doc
34
34
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Qiita
2
4
  module Markdown
3
5
  module Filters
@@ -8,6 +10,7 @@ module Qiita
8
10
  doc.search('div[data-type="customblock"]').each do |div|
9
11
  metadata = Metadata.new(div["data-metadata"])
10
12
  next unless ALLOWED_TYPES.include?(metadata.type)
13
+
11
14
  klass = Object.const_get("#{self.class}::#{metadata.type.capitalize}")
12
15
  klass.new(div, metadata.subtype).convert
13
16
  end
@@ -30,7 +33,7 @@ module Qiita
30
33
  attr_reader :node, :type
31
34
 
32
35
  ALLOWED_TYPES = %w[info warn alert].freeze
33
- DEFAULT_TYPE = "info".freeze
36
+ DEFAULT_TYPE = "info"
34
37
 
35
38
  # @param node [Nokogiri::XML::Node]
36
39
  # @param type [String, nil]
@@ -40,17 +43,16 @@ module Qiita
40
43
  end
41
44
 
42
45
  def convert
43
- node.inner_html = message
46
+ children = node.children
47
+ children.each(&:unlink)
48
+ node.add_child("<div></div>")
49
+ node.children.first.children = children
44
50
  node["class"] = "note #{type}"
45
51
  node.children.first.add_previous_sibling(icon) if icon
46
52
  end
47
53
 
48
54
  private
49
55
 
50
- def message
51
- "<p>#{node.text}</p>"
52
- end
53
-
54
56
  def icon
55
57
  {
56
58
  info: %(<span class="fa fa-fw fa-check-circle"></span>),
@@ -7,9 +7,11 @@ module Qiita
7
7
  def call
8
8
  doc.search("a").each do |anchor|
9
9
  next unless anchor["href"]
10
+
10
11
  href = anchor["href"].strip
11
12
  href_host = host_of(href)
12
13
  next unless href_host
14
+
13
15
  if href_host != hostname
14
16
  anchor["rel"] = "nofollow noopener"
15
17
  anchor["target"] = "_blank"