qiita-markdown 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of qiita-markdown might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +15 -2
- data/lib/qiita/markdown.rb +1 -0
- data/lib/qiita/markdown/filters/checkbox.rb +14 -14
- data/lib/qiita/markdown/version.rb +1 -1
- data/qiita-markdown.gemspec +1 -0
- data/spec/qiita/markdown/processor_spec.rb +23 -4
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bea900399e3f98f773a66f64b0f513b7df75a9ef
|
4
|
+
data.tar.gz: 9e662b826ce1e8bb783a93ef1b4dd20c12c3e16d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43d04fc9ed20153039185cc685e8b2b8ca4fcd89373a89bdcc553a0819232e2f5010ba567d207a749b9805375f060303655a227951b880ac89e3ba36d965d7d3
|
7
|
+
data.tar.gz: 99cc9042b28fe2f2972c184b95af6f2f044251ab835565a4617779b70c06526509809f154bf2e8cfd213e13c68ed104a2436f491578221b9e562b7802f7e690e
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -9,6 +9,7 @@ Qiita-specified markdown processor.
|
|
9
9
|
* Emoji
|
10
10
|
* Syntax highlighting
|
11
11
|
* Mention
|
12
|
+
* Task list
|
12
13
|
|
13
14
|
## Usage
|
14
15
|
Qiita::Markdown::Processor provides markdown rendering logic.
|
@@ -43,9 +44,21 @@ processor.call(text)
|
|
43
44
|
```
|
44
45
|
|
45
46
|
### Context
|
46
|
-
|
47
|
+
`.new` and `#call` can take optional context as a Hash with following keys:
|
48
|
+
|
49
|
+
```
|
50
|
+
:allowed_usernames - A list of usernames allowed to be username. (Array<String>)
|
51
|
+
:asset_path - URL path to link to emoji sprite. (String)
|
52
|
+
:asset_root - Base URL to link to emoji sprite. (String)
|
53
|
+
:base_url - Used to construct links to user profile pages for each. (String)
|
54
|
+
:checkbox_disabled - Pass true to add `disabled` attribute to input element/ (Boolean)
|
55
|
+
:default_language - Default language used if no language detected from code. (String)
|
56
|
+
:language_aliases - Alias table for some language names. (Hash)
|
57
|
+
:rule - Sanitization rule table. (Hash)
|
58
|
+
:script - A flag to allow to embed script element. (Boolean)
|
59
|
+
```
|
47
60
|
|
48
61
|
```ruby
|
49
62
|
processor = Qiita::Markdown::Processor.new(asset_root: "http://example.com/assets")
|
50
|
-
processor.call(text
|
63
|
+
processor.call(text)
|
51
64
|
```
|
data/lib/qiita/markdown.rb
CHANGED
@@ -21,6 +21,8 @@ module Qiita
|
|
21
21
|
end
|
22
22
|
|
23
23
|
class List
|
24
|
+
include Mem
|
25
|
+
|
24
26
|
CHECKBOX_CLOSE_MARK = "[x] "
|
25
27
|
CHECKBOX_OPEN_MARK = "[ ] "
|
26
28
|
|
@@ -36,7 +38,7 @@ module Qiita
|
|
36
38
|
|
37
39
|
def convert
|
38
40
|
first_text_node.content = first_text_node.content.sub(checkbox_mark, "")
|
39
|
-
|
41
|
+
first_text_node.add_previous_sibling(checkbox_node)
|
40
42
|
@node["class"] = "task-list-item"
|
41
43
|
end
|
42
44
|
|
@@ -60,25 +62,23 @@ module Qiita
|
|
60
62
|
end
|
61
63
|
|
62
64
|
def first_text_node
|
63
|
-
@first_text_node ||=
|
65
|
+
@first_text_node ||= begin
|
66
|
+
if @node.children.first.name == "p"
|
67
|
+
@node.children.first.children.first
|
68
|
+
else
|
69
|
+
@node.children.first
|
70
|
+
end
|
71
|
+
end
|
64
72
|
end
|
65
73
|
|
74
|
+
memoize\
|
66
75
|
def has_close_checkbox?
|
67
|
-
|
68
|
-
@has_close_checkbox
|
69
|
-
else
|
70
|
-
inner = @node.children.first
|
71
|
-
@has_close_checkbox = inner.text? && inner.content.start_with?(CHECKBOX_CLOSE_MARK)
|
72
|
-
end
|
76
|
+
@has_close_checkbox = first_text_node.text? && first_text_node.content.start_with?(CHECKBOX_CLOSE_MARK)
|
73
77
|
end
|
74
78
|
|
79
|
+
memoize\
|
75
80
|
def has_open_checkbox?
|
76
|
-
|
77
|
-
@has_open_checkbox
|
78
|
-
else
|
79
|
-
inner = @node.children.first
|
80
|
-
@has_open_checkbox = inner.text? && inner.content.start_with?(CHECKBOX_OPEN_MARK)
|
81
|
-
end
|
81
|
+
@has_open_checkbox = first_text_node.text? && first_text_node.content.start_with?(CHECKBOX_OPEN_MARK)
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
data/qiita-markdown.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_dependency "gemoji"
|
21
21
|
spec.add_dependency "github-linguist"
|
22
22
|
spec.add_dependency "html-pipeline"
|
23
|
+
spec.add_dependency "mem"
|
23
24
|
spec.add_dependency "redcarpet"
|
24
25
|
spec.add_dependency "rugged", ">= 0.21.1b2"
|
25
26
|
spec.add_dependency "sanitize"
|
@@ -376,7 +376,7 @@ describe Qiita::Markdown::Processor do
|
|
376
376
|
end
|
377
377
|
end
|
378
378
|
|
379
|
-
context "with
|
379
|
+
context "with task list" do
|
380
380
|
let(:markdown) do
|
381
381
|
<<-EOS.strip_heredoc
|
382
382
|
- [ ] a
|
@@ -396,7 +396,7 @@ describe Qiita::Markdown::Processor do
|
|
396
396
|
end
|
397
397
|
end
|
398
398
|
|
399
|
-
context "with nested
|
399
|
+
context "with nested task list" do
|
400
400
|
let(:markdown) do
|
401
401
|
<<-EOS.strip_heredoc
|
402
402
|
- [ ] a
|
@@ -420,7 +420,7 @@ describe Qiita::Markdown::Processor do
|
|
420
420
|
end
|
421
421
|
end
|
422
422
|
|
423
|
-
context 'with
|
423
|
+
context 'with task list in code block' do
|
424
424
|
let(:markdown) do
|
425
425
|
<<-EOS.strip_heredoc
|
426
426
|
```
|
@@ -439,7 +439,7 @@ describe Qiita::Markdown::Processor do
|
|
439
439
|
end
|
440
440
|
end
|
441
441
|
|
442
|
-
context "with
|
442
|
+
context "with task list and :checkbox_disabled context" do
|
443
443
|
before do
|
444
444
|
context[:checkbox_disabled] = true
|
445
445
|
end
|
@@ -462,5 +462,24 @@ describe Qiita::Markdown::Processor do
|
|
462
462
|
EOS
|
463
463
|
end
|
464
464
|
end
|
465
|
+
|
466
|
+
context 'with empty line between task list' do
|
467
|
+
let(:markdown) do
|
468
|
+
<<-EOS.strip_heredoc
|
469
|
+
- [ ] a
|
470
|
+
|
471
|
+
- [x] b
|
472
|
+
EOS
|
473
|
+
end
|
474
|
+
|
475
|
+
it "inserts checkbox with disabled attribute" do
|
476
|
+
should eq <<-EOS.strip_heredoc
|
477
|
+
<ul>
|
478
|
+
<li class="task-list-item"><p><input type="checkbox" class="task-list-item-checkbox" data-checkbox-index="0">a</p></li>
|
479
|
+
<li class="task-list-item"><p><input type="checkbox" class="task-list-item-checkbox" data-checkbox-index="1" checked>b</p></li>
|
480
|
+
</ul>
|
481
|
+
EOS
|
482
|
+
end
|
483
|
+
end
|
465
484
|
end
|
466
485
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qiita-markdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mem
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: redcarpet
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|