qiita-markdown 0.2.2 → 0.3.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.

Potentially problematic release.


This version of qiita-markdown might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a2246b9c7de465987d8096f8f06dff05874c31b1
4
- data.tar.gz: 7f980024c9522ba903c7ffaa6da2964b4b78d907
3
+ metadata.gz: 180a959e88bbb1c45168ff83dcf6c3df486f12d7
4
+ data.tar.gz: b7e6dff4bf6b4810ccdc14fabb1ebb8c4c081053
5
5
  SHA512:
6
- metadata.gz: c83fa85dced0ec7c9dc7f4962073b5576b9dc6ef6b6c2616cb3fd6bcb033ae56e1f85a77553b9f8d350c030f5f711b57fd0d0a337bfa0eaf6671cd142675b2e3
7
- data.tar.gz: ae5a0ccaf8a142815d3fefc1030f24bda3cfab000abc75af67c698df4771b7cae64348908e0e53a419e637bbdba153a952aae34a42b7bdbdf2a1e43cb4b1e467
6
+ metadata.gz: c13f02a0d3b10205576e12233a80f880ac6b540897bcc5bc7ab8eefde14a1090055dd8c452ac09bad53e5b6b85e49bef74b1aabe03e2b3df7b87bca5f4babc0e
7
+ data.tar.gz: 1154d125bf9c9844e61242810b3610ace6b59b197edbd925228435246f0b3a49980686d51270d50ad9966b1449aadb1bb289f81623829f7c43de60b1f6f8b66c
data/.rubocop.yml ADDED
@@ -0,0 +1,7 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ Style/StringLiterals:
4
+ EnforcedStyle: double_quotes
5
+
6
+ Style/TrailingComma:
7
+ EnforcedStyleForMultiline: comma
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,103 @@
1
+ # This configuration was generated by `rubocop --auto-gen-config`
2
+ # on 2015-03-12 12:56:25 +0900 using RuboCop version 0.29.1.
3
+ # The point is for the user to remove these configuration records
4
+ # one by one as the offenses are removed from the code base.
5
+ # Note that changes in the inspected code, or installation of new
6
+ # versions of RuboCop, may require this file to be generated again.
7
+
8
+ # Offense count: 1
9
+ Metrics/AbcSize:
10
+ Max: 21
11
+
12
+ # Offense count: 1
13
+ # Configuration parameters: CountComments.
14
+ Metrics/ClassLength:
15
+ Max: 169
16
+
17
+ # Offense count: 27
18
+ # Configuration parameters: AllowURI, URISchemes.
19
+ Metrics/LineLength:
20
+ Max: 122
21
+
22
+ # Offense count: 3
23
+ # Configuration parameters: CountComments.
24
+ Metrics/MethodLength:
25
+ Max: 17
26
+
27
+ # Offense count: 1
28
+ # Cop supports --auto-correct.
29
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
30
+ Style/AndOr:
31
+ Enabled: false
32
+
33
+ # Offense count: 3
34
+ # Cop supports --auto-correct.
35
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
36
+ Style/BarePercentLiterals:
37
+ Enabled: false
38
+
39
+ # Offense count: 1
40
+ Style/ConstantName:
41
+ Enabled: false
42
+
43
+ # Offense count: 10
44
+ Style/Documentation:
45
+ Enabled: false
46
+
47
+ # Offense count: 3
48
+ Style/DoubleNegation:
49
+ Enabled: false
50
+
51
+ # Offense count: 1
52
+ # Configuration parameters: Exclude.
53
+ Style/FileName:
54
+ Enabled: false
55
+
56
+ # Offense count: 1
57
+ # Configuration parameters: MinBodyLength.
58
+ Style/GuardClause:
59
+ Enabled: false
60
+
61
+ # Offense count: 1
62
+ # Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
63
+ Style/Next:
64
+ Enabled: false
65
+
66
+ # Offense count: 9
67
+ # Cop supports --auto-correct.
68
+ # Configuration parameters: PreferredDelimiters.
69
+ Style/PercentLiteralDelimiters:
70
+ Enabled: false
71
+
72
+ # Offense count: 1
73
+ # Cop supports --auto-correct.
74
+ Style/PerlBackrefs:
75
+ Enabled: false
76
+
77
+ # Offense count: 10
78
+ # Configuration parameters: NamePrefix, NamePrefixBlacklist.
79
+ Style/PredicateName:
80
+ Enabled: false
81
+
82
+ # Offense count: 2
83
+ # Configuration parameters: MaxSlashes.
84
+ Style/RegexpLiteral:
85
+ Enabled: false
86
+
87
+ # Offense count: 2
88
+ # Cop supports --auto-correct.
89
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
90
+ Style/SignalException:
91
+ Enabled: false
92
+
93
+ # Offense count: 2
94
+ # Cop supports --auto-correct.
95
+ # Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
96
+ Style/TrailingComma:
97
+ Enabled: false
98
+
99
+ # Offense count: 6
100
+ # Cop supports --auto-correct.
101
+ # Configuration parameters: WordRegex.
102
+ Style/WordArray:
103
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## Unreleased
2
+
3
+ ## 0.3.0
4
+ - Introduce another processor Qiita::Markdown::SummaryProcessor, which is for rendering a summary of markdown document.
5
+
1
6
  ## 0.2.2
2
7
  - Fix a bug that raised error on rendering `<a>` tag with href for unknown fragment inside of `<sup>` tag (e.g. `<sup><a href="#foo.1">Link</a></sup>`)
3
8
 
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in qiita-markdown.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -12,7 +12,7 @@ Qiita-specified markdown processor.
12
12
  * Task list
13
13
  * Footnotes
14
14
 
15
- ## Usage
15
+ ## Basic Usage
16
16
  Qiita::Markdown::Processor provides markdown rendering logic.
17
17
 
18
18
  ```ruby
@@ -62,3 +62,29 @@ processor.call(text)
62
62
  processor = Qiita::Markdown::Processor.new(asset_root: "http://example.com/assets")
63
63
  processor.call(text)
64
64
  ```
65
+
66
+ ## Rendering Summary
67
+ There's another processor Qiita::Markdown::SummaryProcessor,
68
+ which is for rendering a summary of markdown document.
69
+ It simplifies a document by removing complex markups
70
+ and also truncates it to a specific length without breaking the document structure.
71
+
72
+ Note that this processor does not produce the `:codes` output in contrast to the Processor.
73
+
74
+ ### Context
75
+
76
+ SummaryProcessor accepts the following context in addition to the Processor's context:
77
+
78
+ ```ruby
79
+ {
80
+ truncate: {
81
+ length: 100, # Documents will be truncated if it exceeds this character count. (Integer)
82
+ omission: '…' # A string added to the end of document when it's truncated. (String, nil)
83
+ }
84
+ }
85
+ ```
86
+
87
+ ```ruby
88
+ processor = Qiita::Markdown::SummaryProcessor.new(truncate: { length: 80 })
89
+ processor.call(text)
90
+ ```
data/Rakefile CHANGED
@@ -1,5 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
+ require "rubocop/rake_task"
3
4
 
4
5
  RSpec::Core::RakeTask.new(:spec)
5
- task default: :spec
6
+ RuboCop::RakeTask.new(:style)
7
+ task default: [:spec, :style]
@@ -13,7 +13,10 @@ require "qiita/markdown/filters/footnote"
13
13
  require "qiita/markdown/filters/mention"
14
14
  require "qiita/markdown/filters/redcarpet"
15
15
  require "qiita/markdown/filters/sanitize"
16
+ require "qiita/markdown/filters/simplify"
16
17
  require "qiita/markdown/filters/syntax_highlight"
17
18
  require "qiita/markdown/filters/toc"
19
+ require "qiita/markdown/filters/truncate"
18
20
  require "qiita/markdown/processor"
21
+ require "qiita/markdown/summary_processor"
19
22
  require "qiita/markdown/version"
@@ -15,7 +15,7 @@ module Qiita
15
15
  def call
16
16
  result[:codes] ||= []
17
17
  doc.search("pre").each do |pre|
18
- if code = pre.at("code")
18
+ if (code = pre.at("code"))
19
19
  label = Label.new(code["class"])
20
20
  filename = label.filename
21
21
  language = label.language
@@ -0,0 +1,47 @@
1
+ module Qiita
2
+ module Markdown
3
+ module Filters
4
+ # A filter for simplifying document structure by removing complex markups
5
+ # (mainly block elements) and complex contents.
6
+ #
7
+ # The logic of this filter is similar to the `Sanitize` filter, but this
8
+ # does not use the `sanitize` gem internally for the following reasons:
9
+ #
10
+ # * Each filter should do only its own responsibility, and this filter is
11
+ # _not_ for sanitization.
12
+ #
13
+ # * The `sanitize` gem automatically adds extra transformers even if we
14
+ # want to clean up only some elements, and they would be run in the
15
+ # `Sanitize` filter later.
16
+ # https://github.com/rgrove/sanitize/blob/v3.1.2/lib/sanitize.rb#L77-L100
17
+ class Simplify < HTML::Pipeline::Filter
18
+ SIMPLE_ELEMENTS = %w(a b code em i ins q s samp span strike strong sub sup var)
19
+
20
+ COMPLEX_CONTENT_ELEMENTS = %w(table)
21
+
22
+ def call
23
+ remove_complex_contents
24
+ clean_complex_markups
25
+ doc
26
+ end
27
+
28
+ private
29
+
30
+ # Remove complex elements along with their contents entirely.
31
+ def remove_complex_contents
32
+ selector = COMPLEX_CONTENT_ELEMENTS.join(",")
33
+ doc.search(selector).each(&:remove)
34
+ end
35
+
36
+ # Remove complex markups while keeping their contents.
37
+ def clean_complex_markups
38
+ doc.traverse do |node|
39
+ next unless node.element?
40
+ next if SIMPLE_ELEMENTS.include?(node.name)
41
+ node.replace(node.children)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -32,7 +32,7 @@ module Qiita
32
32
 
33
33
  def call
34
34
  outer = Nokogiri::HTML.fragment(%Q[<div class="code-frame" data-lang="#{language}">])
35
- frame = outer.at('div')
35
+ frame = outer.at("div")
36
36
  frame.add_child(filename_node) if filename
37
37
  frame.add_child(highlighted_node)
38
38
  @node.replace(outer)
@@ -47,7 +47,7 @@ module Qiita
47
47
  end
48
48
 
49
49
  def id
50
- @node.text.downcase.gsub(/[^\p{Word}\- ]/u, '').gsub(' ', '-')
50
+ @node.text.downcase.gsub(/[^\p{Word}\- ]/u, "").gsub(" ", "-")
51
51
  end
52
52
 
53
53
  def increment
@@ -0,0 +1,81 @@
1
+ module Qiita
2
+ module Markdown
3
+ module Filters
4
+ # A filter for truncating a document without breaking the document
5
+ # structure.
6
+ #
7
+ # You can pass `:length` and `:omission` option to :truncate context.
8
+ #
9
+ # @example
10
+ # Truncate.new(doc, truncate: { length: 50, omission: '... (continued)' })
11
+ class Truncate < HTML::Pipeline::Filter
12
+ DEFAULT_OPTIONS = {
13
+ length: 100,
14
+ omission: "…".freeze
15
+ }.freeze
16
+
17
+ def call
18
+ @current_length = 0
19
+ @previous_char_was_blank = false
20
+
21
+ traverse(doc) do |node|
22
+ if exceeded?
23
+ node.remove
24
+ elsif node.text?
25
+ process_text_node(node)
26
+ end
27
+ end
28
+
29
+ doc
30
+ end
31
+
32
+ private
33
+
34
+ # Traverse the given node recursively in the depth-first order.
35
+ # Note that we cannot use Nokogiri::XML::Node#traverse
36
+ # since it traverses the node's descendants _before_ the node itself.
37
+ # https://github.com/sparklemotion/nokogiri/blob/v1.6.6.2/lib/nokogiri/xml/node.rb#L571-L574
38
+ def traverse(node, &block)
39
+ block.call(node)
40
+
41
+ node.children.each do |child_node|
42
+ traverse(child_node, &block)
43
+ end
44
+ end
45
+
46
+ def exceeded?
47
+ @current_length > max_length
48
+ end
49
+
50
+ def process_text_node(node)
51
+ node.content.each_char.with_index do |char, index|
52
+ current_char_is_blank = char.strip.empty?
53
+
54
+ if !@previous_char_was_blank || !current_char_is_blank
55
+ @current_length += 1
56
+ end
57
+
58
+ @previous_char_was_blank = current_char_is_blank
59
+
60
+ if exceeded?
61
+ node.content = node.content.slice(0...(index - omission.size)) + omission
62
+ break
63
+ end
64
+ end
65
+ end
66
+
67
+ def max_length
68
+ options[:length]
69
+ end
70
+
71
+ def omission
72
+ options[:omission] || "".freeze
73
+ end
74
+
75
+ def options
76
+ @options ||= DEFAULT_OPTIONS.merge(context[:truncate] || {})
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,23 @@
1
+ module Qiita
2
+ module Markdown
3
+ # A processor for rendering a summary of markdown document. This simplifies
4
+ # a document by removing complex markups and also truncates it to a
5
+ # specific length without breaking the document structure.
6
+ class SummaryProcessor < Processor
7
+ DEFAULT_FILTERS = [
8
+ Filters::Redcarpet,
9
+ Filters::Simplify,
10
+ HTML::Pipeline::EmojiFilter,
11
+ Filters::Mention,
12
+ Filters::Sanitize,
13
+ Filters::Truncate
14
+ ]
15
+
16
+ # @note Modify filters if you want.
17
+ # @return [Array<HTML::Pipeline::Filter>]
18
+ def filters
19
+ @filters ||= DEFAULT_FILTERS
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  module Qiita
2
2
  module Markdown
3
- VERSION = "0.2.2"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency "pry"
30
30
  spec.add_development_dependency "rake", "~> 10.0"
31
31
  spec.add_development_dependency "rspec", "3.1.0"
32
+ spec.add_development_dependency "rubocop", "~> 0.29"
32
33
  end
@@ -256,13 +256,13 @@ describe Qiita::Markdown::Processor do
256
256
  @justin
257
257
  @justin
258
258
  @mallory@github
259
- @#{?o * 33}
259
+ @#{'o' * 33}
260
260
  @oo
261
261
  EOS
262
262
  end
263
263
 
264
264
  it "extracts mentions correctly" do
265
- expect(result[:mentioned_usernames]).to eq %W[
265
+ expect(result[:mentioned_usernames]).to eq %w[
266
266
  alice
267
267
  dave
268
268
  ell_en
@@ -522,7 +522,7 @@ describe Qiita::Markdown::Processor do
522
522
  end
523
523
  end
524
524
 
525
- context 'with footenotes syntax' do
525
+ context "with footenotes syntax" do
526
526
  let(:markdown) do
527
527
  <<-EOS.strip_heredoc
528
528
  [^1]
@@ -548,7 +548,7 @@ describe Qiita::Markdown::Processor do
548
548
  end
549
549
  end
550
550
 
551
- context 'with manually written link inside of <sup> tag' do
551
+ context "with manually written link inside of <sup> tag" do
552
552
  let(:markdown) do
553
553
  <<-EOS.strip_heredoc
554
554
  <sup>[Qiita](http://qiita.com/)</sup>
@@ -562,7 +562,7 @@ describe Qiita::Markdown::Processor do
562
562
  end
563
563
  end
564
564
 
565
- context 'with manually written <a> tag with strange href inside of <sup> tag' do
565
+ context "with manually written <a> tag with strange href inside of <sup> tag" do
566
566
  let(:markdown) do
567
567
  <<-EOS.strip_heredoc
568
568
  <sup><a href="#foo.1">Link</a></sup>
@@ -0,0 +1,235 @@
1
+ require "active_support/core_ext/string/strip"
2
+
3
+ describe Qiita::Markdown::SummaryProcessor do
4
+ describe "#call" do
5
+ subject(:html) do
6
+ result[:output].to_s
7
+ end
8
+
9
+ let(:context) do
10
+ {}
11
+ end
12
+
13
+ let(:markdown) do
14
+ fail NotImplementedError
15
+ end
16
+
17
+ let(:result) do
18
+ described_class.new(context).call(markdown)
19
+ end
20
+
21
+ context "with valid condition" do
22
+ let(:markdown) do
23
+ <<-EOS.strip_heredoc
24
+ example
25
+ EOS
26
+ end
27
+
28
+ it "returns a Hash with HTML output and other metadata but no codes" do
29
+ expect(result[:mentioned_usernames]).to be_an Array
30
+ expect(result[:output]).to be_a Nokogiri::HTML::DocumentFragment
31
+ expect(result).not_to have_key(:codes)
32
+ end
33
+ end
34
+
35
+ context "with HTML-characters" do
36
+ let(:markdown) do
37
+ "<>&"
38
+ end
39
+
40
+ it "sanitizes them" do
41
+ should eq <<-EOS.strip_heredoc
42
+ &lt;&gt;&amp;
43
+ EOS
44
+ end
45
+ end
46
+
47
+ context "with code" do
48
+ let(:markdown) do
49
+ <<-EOS.strip_heredoc
50
+ ```ruby
51
+ puts 'hello world'
52
+ ```
53
+ EOS
54
+ end
55
+
56
+ it "returns simple code element" do
57
+ should eq <<-EOS.strip_heredoc
58
+ <code class="ruby">puts 'hello world'
59
+ </code>
60
+ EOS
61
+ end
62
+ end
63
+
64
+ context "with emoji" do
65
+ let(:markdown) do
66
+ ":+1:"
67
+ end
68
+
69
+ it "replaces it with img element" do
70
+ should include("img")
71
+ end
72
+ end
73
+
74
+ context "with image" do
75
+ let(:markdown) do
76
+ <<-EOS.strip_heredoc
77
+ ![Qiita](http://qiita.com/icons/favicons/public/apple-touch-icon.png)
78
+ EOS
79
+ end
80
+
81
+ it "removes it" do
82
+ expect(html.strip).to be_empty
83
+ end
84
+ end
85
+
86
+ context "with line breaks" do
87
+ let(:markdown) do
88
+ <<-EOS.strip_heredoc
89
+ foo
90
+ bar
91
+ EOS
92
+ end
93
+
94
+ it "removes them" do
95
+ should eq <<-EOS.strip_heredoc
96
+ foo
97
+ bar
98
+ EOS
99
+ end
100
+ end
101
+
102
+ context "with paragraphs" do
103
+ let(:markdown) do
104
+ <<-EOS.strip_heredoc
105
+ Lorem ipsum dolor sit amet.
106
+
107
+ Consectetur adipisicing elit.
108
+ EOS
109
+ end
110
+
111
+ it "flattens them" do
112
+ should eq <<-EOS.strip_heredoc
113
+ Lorem ipsum dolor sit amet.
114
+
115
+ Consectetur adipisicing elit.
116
+ EOS
117
+ end
118
+ end
119
+
120
+ context "with normal list items" do
121
+ let(:markdown) do
122
+ <<-EOS.strip_heredoc
123
+ - foo
124
+ - bar
125
+ EOS
126
+ end
127
+
128
+ it "flattens them" do
129
+ should eq <<-EOS.strip_heredoc
130
+
131
+ foo
132
+ bar
133
+
134
+ EOS
135
+ end
136
+ end
137
+
138
+ context "with task list items" do
139
+ let(:markdown) do
140
+ <<-EOS.strip_heredoc
141
+ - [ ] foo
142
+ - [x] bar
143
+ EOS
144
+ end
145
+
146
+ it "flattens them without converting to checkboxes" do
147
+ should eq <<-EOS.strip_heredoc
148
+
149
+ [ ] foo
150
+ [x] bar
151
+
152
+ EOS
153
+ end
154
+ end
155
+
156
+ context "with table" do
157
+ let(:markdown) do
158
+ <<-EOS.strip_heredoc
159
+ | a | b | c |
160
+ |---|---|---|
161
+ | a | b | c |
162
+ EOS
163
+ end
164
+
165
+ it "removes it entirely" do
166
+ expect(html.strip).to be_empty
167
+ end
168
+ end
169
+
170
+ context "with a simple long document" do
171
+ before do
172
+ context[:truncate] = { length: 10 }
173
+ end
174
+
175
+ let(:markdown) do
176
+ <<-EOS.strip_heredoc
177
+ Lorem ipsum dolor sit amet.
178
+ EOS
179
+ end
180
+
181
+ it "truncates it to the specified length" do
182
+ should eq "Lorem ips…"
183
+ end
184
+ end
185
+
186
+ context "with a long document consisting of nested elements" do
187
+ before do
188
+ context[:truncate] = { length: 10 }
189
+ end
190
+
191
+ let(:markdown) do
192
+ <<-EOS.strip_heredoc
193
+ _[Qiita](http://qiita.com/) is **a technical knowledge sharing and collaboration platform for programmers**._
194
+ EOS
195
+ end
196
+
197
+ it "truncates it while honoring the document structure" do
198
+ should eq '<em><a href="http://qiita.com/">Qiita</a> is <strong>…</strong></em>'
199
+ end
200
+ end
201
+
202
+ context "with a long document including consecutive whitespaces" do
203
+ before do
204
+ context[:truncate] = { length: 10 }
205
+ end
206
+
207
+ let(:markdown) do
208
+ <<-EOS.strip_heredoc
209
+ **12** 4 [ 6](http://qiita.com/)_7
210
+ 9_ 123
211
+ EOS
212
+ end
213
+
214
+ it "truncates it while counting the consecutive whilespaces as one" do
215
+ should eq "<strong>12</strong> 4 <a href=\"http://qiita.com/\"> 6</a><em>7\n9</em>…"
216
+ end
217
+ end
218
+
219
+ context "with truncate: { omission: nil } context" do
220
+ before do
221
+ context[:truncate] = { length: 10, omission: nil }
222
+ end
223
+
224
+ let(:markdown) do
225
+ <<-EOS.strip_heredoc
226
+ Lorem ipsum dolor sit amet.
227
+ EOS
228
+ end
229
+
230
+ it "does not add extra omission text" do
231
+ should eq "Lorem ipsu"
232
+ end
233
+ end
234
+ end
235
+ end
data/spec/spec_helper.rb CHANGED
@@ -9,7 +9,7 @@ RSpec.configure do |config|
9
9
  mocks.verify_partial_doubles = true
10
10
  end
11
11
 
12
- config.default_formatter = 'doc'
12
+ config.default_formatter = "doc"
13
13
  config.filter_run :focus
14
14
  config.run_all_when_everything_filtered = true
15
15
  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.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-10 00:00:00.000000000 Z
11
+ date: 2015-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -192,6 +192,20 @@ dependencies:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
194
  version: 3.1.0
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '0.29'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '0.29'
195
209
  description:
196
210
  email:
197
211
  - r7kamura@gmail.com
@@ -201,6 +215,8 @@ extra_rdoc_files: []
201
215
  files:
202
216
  - ".gitignore"
203
217
  - ".rspec"
218
+ - ".rubocop.yml"
219
+ - ".rubocop_todo.yml"
204
220
  - ".travis.yml"
205
221
  - CHANGELOG.md
206
222
  - Gemfile
@@ -215,12 +231,16 @@ files:
215
231
  - lib/qiita/markdown/filters/mention.rb
216
232
  - lib/qiita/markdown/filters/redcarpet.rb
217
233
  - lib/qiita/markdown/filters/sanitize.rb
234
+ - lib/qiita/markdown/filters/simplify.rb
218
235
  - lib/qiita/markdown/filters/syntax_highlight.rb
219
236
  - lib/qiita/markdown/filters/toc.rb
237
+ - lib/qiita/markdown/filters/truncate.rb
220
238
  - lib/qiita/markdown/processor.rb
239
+ - lib/qiita/markdown/summary_processor.rb
221
240
  - lib/qiita/markdown/version.rb
222
241
  - qiita-markdown.gemspec
223
242
  - spec/qiita/markdown/processor_spec.rb
243
+ - spec/qiita/markdown/summary_processor_spec.rb
224
244
  - spec/spec_helper.rb
225
245
  homepage: https://github.com/increments/qiita-markdown
226
246
  licenses:
@@ -248,5 +268,6 @@ specification_version: 4
248
268
  summary: Qiita-specified markdown processor.
249
269
  test_files:
250
270
  - spec/qiita/markdown/processor_spec.rb
271
+ - spec/qiita/markdown/summary_processor_spec.rb
251
272
  - spec/spec_helper.rb
252
273
  has_rdoc: