qiita-markdown 0.43.0 → 0.44.1
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/.rubocop_todo.yml +14 -200
- data/CHANGELOG.md +10 -0
- data/README.md +2 -2
- data/benchmark/heading_anchor_rendering.rb +1 -1
- data/lib/qiita/markdown/embed/figma.rb +11 -0
- data/lib/qiita/markdown/filters/checkbox.rb +1 -1
- data/lib/qiita/markdown/filters/code_block.rb +13 -13
- data/lib/qiita/markdown/filters/custom_block.rb +1 -0
- data/lib/qiita/markdown/filters/external_link.rb +2 -0
- data/lib/qiita/markdown/filters/final_sanitizer.rb +118 -117
- data/lib/qiita/markdown/filters/footnote.rb +2 -0
- data/lib/qiita/markdown/filters/group_mention.rb +2 -2
- 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/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 +26 -23
- data/lib/qiita/markdown/greenmat/heading_rendering.rb +2 -2
- data/lib/qiita/markdown/greenmat/html_toc_renderer.rb +1 -1
- data/lib/qiita/markdown/transformers/filter_attributes.rb +1 -0
- data/lib/qiita/markdown/transformers/filter_iframe.rb +2 -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 +1 -0
- data/qiita-markdown.gemspec +6 -6
- data/spec/qiita/markdown/filters/checkbox_spec.rb +42 -0
- data/spec/qiita/markdown/processor_spec.rb +54 -16
- data/spec/qiita/markdown/summary_processor_spec.rb +2 -2
- metadata +96 -99
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15a4f04515ad1a13dca22d1cdb61272ddb7fca2066dbc5bc82b7ccfa3db06b74
|
4
|
+
data.tar.gz: 4fd57bd43763ee38486898592e63ddd2c945f54450557c08a4d66ea95b2a00ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e648c8b60f7457028a3aaa89c891815fa5b283f553a02c1f6e516d658de480b2626508039fc41247a86b3d8ea931366a108f6bd8a119983906622596a5cb129b
|
7
|
+
data.tar.gz: 9f291ae053a36028df40a665d83a7e3acf1a82d5496c2cb1ead5a54e9369b71d2a43276d7ac5ccd6449e5e52bd9b29df13e3da1371d9531da53ba042c2d66ad4
|
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-
|
3
|
+
# on 2022-11-14 07:37:46 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
16
|
# Offense count: 5
|
75
|
-
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
17
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
|
76
18
|
Metrics/AbcSize:
|
77
19
|
Max: 22
|
78
20
|
|
79
|
-
# Offense count:
|
80
|
-
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
21
|
+
# Offense count: 9
|
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:
|
@@ -121,27 +55,13 @@ Naming/MemoizedInstanceVariableName:
|
|
121
55
|
|
122
56
|
# Offense count: 1
|
123
57
|
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
124
|
-
# AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
|
58
|
+
# AllowedNames: as, at, by, db, id, if, in, io, ip, of, on, os, pp, to
|
125
59
|
Naming/MethodParameterName:
|
126
60
|
Exclude:
|
127
61
|
- 'lib/qiita/markdown/filters/footnote.rb'
|
128
62
|
|
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
63
|
# Offense count: 47
|
144
|
-
# This cop supports
|
64
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
145
65
|
# Configuration parameters: EnforcedStyle.
|
146
66
|
# SupportedStyles: always, always_true, never
|
147
67
|
Style/FrozenStringLiteralComment:
|
@@ -194,51 +114,26 @@ Style/FrozenStringLiteralComment:
|
|
194
114
|
- 'spec/qiita/markdown/summary_processor_spec.rb'
|
195
115
|
- 'spec/spec_helper.rb'
|
196
116
|
|
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
117
|
# Offense count: 17
|
214
|
-
# This cop supports
|
118
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
215
119
|
# Configuration parameters: EnforcedStyle.
|
216
120
|
# SupportedStyles: literals, strict
|
217
121
|
Style/MutableConstant:
|
218
122
|
Exclude:
|
219
123
|
- '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
124
|
- 'lib/qiita/markdown/embed/tweet.rb'
|
224
125
|
- 'lib/qiita/markdown/filters/checkbox.rb'
|
225
126
|
- 'lib/qiita/markdown/filters/code_block.rb'
|
127
|
+
- 'lib/qiita/markdown/filters/group_mention.rb'
|
128
|
+
- 'lib/qiita/markdown/filters/inline_code_color.rb'
|
129
|
+
- 'lib/qiita/markdown/filters/mention.rb'
|
226
130
|
- 'lib/qiita/markdown/filters/simplify.rb'
|
227
131
|
- 'lib/qiita/markdown/filters/syntax_highlight.rb'
|
228
132
|
- 'lib/qiita/markdown/version.rb'
|
229
133
|
|
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
134
|
# Offense count: 5
|
240
|
-
# This cop supports unsafe
|
241
|
-
# Configuration parameters: EnforcedStyle, IgnoredMethods.
|
135
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
136
|
+
# Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns, IgnoredMethods.
|
242
137
|
# SupportedStyles: predicate, comparison
|
243
138
|
Style/NumericPredicate:
|
244
139
|
Exclude:
|
@@ -255,98 +150,17 @@ Style/OptionalBooleanParameter:
|
|
255
150
|
- 'lib/qiita/markdown/greenmat/heading_rendering.rb'
|
256
151
|
|
257
152
|
# Offense count: 1
|
258
|
-
# This cop supports
|
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
|
-
# 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).
|
153
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
282
154
|
# Configuration parameters: Methods.
|
283
155
|
Style/RedundantArgument:
|
284
156
|
Exclude:
|
285
157
|
- 'lib/qiita/markdown/filters/custom_block.rb'
|
286
158
|
|
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
159
|
# Offense count: 2
|
318
|
-
# This cop supports
|
160
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
319
161
|
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
|
320
162
|
# AllowedMethods: present?, blank?, presence, try, try!
|
321
163
|
Style/SafeNavigation:
|
322
164
|
Exclude:
|
323
165
|
- 'lib/qiita/markdown/filters/custom_block.rb'
|
324
166
|
- '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,15 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.44.1
|
4
|
+
|
5
|
+
- Rename package name from `Qiita::Markdown` to `Qiita Markdown` in README
|
6
|
+
- Bump rubocop from 1.27.0 to 1.39.0 and apply rubocop auto correct
|
7
|
+
|
8
|
+
## 0.44.0
|
9
|
+
|
10
|
+
- Support Figma embedding scripts
|
11
|
+
- Fix bug of checkbox filter
|
12
|
+
|
3
13
|
## 0.43.0
|
4
14
|
|
5
15
|
- Fix GitHub Actions can't be executed when public fork
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Qiita
|
1
|
+
# Qiita Markdown
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/qiita-markdown)
|
4
4
|
[](https://travis-ci.org/increments/qiita-markdown)
|
@@ -42,7 +42,7 @@ processor.call(markdown)
|
|
42
42
|
|
43
43
|
### Filters
|
44
44
|
|
45
|
-
Qiita
|
45
|
+
Qiita Markdown is built on [jch/html-pipeline](https://github.com/jch/html-pipeline).
|
46
46
|
Add your favorite html-pipeline-compatible filters.
|
47
47
|
|
48
48
|
```ruby
|
@@ -61,7 +61,7 @@ module PostProcess
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def anchor_element
|
64
|
-
%
|
64
|
+
%(<span id="#{suffixed_id}" class="fragment"></span><a href="##{suffixed_id}"><i class="fa fa-link"></i></a>)
|
65
65
|
end
|
66
66
|
|
67
67
|
def content
|
@@ -31,7 +31,7 @@ module Qiita
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def convert
|
34
|
-
first_text_node.content = first_text_node.content.sub(checkbox_mark, "")
|
34
|
+
first_text_node.content = first_text_node.content.sub(checkbox_mark, "").lstrip
|
35
35
|
first_text_node.add_previous_sibling(checkbox_node)
|
36
36
|
@node["class"] = "task-list-item"
|
37
37
|
end
|
@@ -16,19 +16,19 @@ module Qiita
|
|
16
16
|
def call
|
17
17
|
result[:codes] ||= []
|
18
18
|
doc.search("pre").each do |pre|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
@@ -8,6 +8,7 @@ module Qiita
|
|
8
8
|
doc.search('div[data-type="customblock"]').each do |div|
|
9
9
|
metadata = Metadata.new(div["data-metadata"])
|
10
10
|
next unless ALLOWED_TYPES.include?(metadata.type)
|
11
|
+
|
11
12
|
klass = Object.const_get("#{self.class}::#{metadata.type.capitalize}")
|
12
13
|
klass.new(div, metadata.subtype).convert
|
13
14
|
end
|
@@ -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"
|