reverse_markdown 2.0.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ef774cdac53cd6e678d86a0b0532bb7ab080870ade2d7a4ea924244ce2e1b2d
4
- data.tar.gz: fac03bd80d37d2a2845e7eac16416a25cb525ce6e9b91839fbcfdf3f977a1863
3
+ metadata.gz: cffa2a16f5ad4187cb23a2e6a1015121b943f1c83a688308cf0a480ec15d3c49
4
+ data.tar.gz: 6941ad7c07005ff4d5c115fd894ee2a0cf40a09367833268f4c55c018f30263a
5
5
  SHA512:
6
- metadata.gz: 479fb301112e0a7389977904e53ecd721048eed0d3b12757b34c93afd253fe3df9d2016e9ef7d77d06132bf2e3966bcdf58808318b02d04f6f22d6b7e63789d1
7
- data.tar.gz: 7ed63ff4cea1db8f534fdd4ac1c3386a1660dd614d00764461850574cef0d19372447b25ab2e342745ce3ece7fe73743609ee5d03b074092f9b24d02326af32a
6
+ metadata.gz: 620ce03beae7238accdc6836e025dc7b19fe308a7bcbcd7143dc7472d09e7d25758a3f6c2080d5d75e60fee662bc87ab200f177b5b6f41fa5958bde4b569a49e
7
+ data.tar.gz: ea69f20a1e70e4f41d6024502af362351ccaf6ec8936b4dcadc2414202e994cdf8ddf08ebbd829c0722c373bbe7e87a223c3c913bf6d845be9308ef418f3be75
data/.travis.yml CHANGED
@@ -1,22 +1,17 @@
1
- # before_install:
2
- # - gem install bundler
1
+ language: ruby
2
+ cache: bundler
3
3
 
4
4
  rvm:
5
- - 2.0.0
6
- - 2.1.0
7
- - 2.1.5
8
- - 2.2.0
9
- - 2.2.4
10
- - 2.2.5
11
- - 2.3.0
12
- - 2.3.1
13
- - 2.4.2
14
- - 2.5.3
15
- - 2.6.2
5
+ - 2.0
6
+ - 2.1
7
+ - 2.2
8
+ - 2.3
9
+ - 2.4
10
+ - 2.5
11
+ - 2.6
12
+ - 2.7
16
13
  - jruby-9.2.8.0
17
14
 
18
- script: "bundle exec rake spec"
19
-
20
15
  notifications:
21
16
  disabled: false
22
17
  recipients:
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## 2.1.1 - October 2021
5
+ - Fixes unintentional newline characters within lists with paragraphs, thanks @diogoosorio, see #93
6
+ - Lets \n to be present in <pre> tag. solves #77 #78, thanks @shivabhusal
7
+
8
+ ## 2.1.0 - May 2020
9
+ - Add support for `figure` tags, see #86, thanks @anshul78
10
+
4
11
  ## 2.0.0 - March 2020
5
12
  - BREAKING: Dropped support for ruby 1.9.3
6
13
  - Add support for `details` and `summary` tags, see #85
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Transform html into markdown. Useful for example if you want to import html into your markdown based application.
4
4
 
5
- [![Build Status](https://secure.travis-ci.org/xijo/reverse_markdown.png?branch=master)](https://travis-ci.org/xijo/reverse_markdown) [![Gem Version](https://badge.fury.io/rb/reverse_markdown.png)](http://badge.fury.io/rb/reverse_markdown) [![Code Climate](https://codeclimate.com/github/xijo/reverse_markdown.png)](https://codeclimate.com/github/xijo/reverse_markdown) [![Code Climate](https://codeclimate.com/github/xijo/reverse_markdown/coverage.png)](https://codeclimate.com/github/xijo/reverse_markdown)
5
+ [![Build Status](https://secure.travis-ci.org/xijo/reverse_markdown.svg?branch=master)](https://travis-ci.org/xijo/reverse_markdown) [![Gem Version](https://badge.fury.io/rb/reverse_markdown.svg)](http://badge.fury.io/rb/reverse_markdown) [![Code Climate](https://codeclimate.com/github/xijo/reverse_markdown.svg)](https://codeclimate.com/github/xijo/reverse_markdown) [![Code Climate](https://codeclimate.com/github/xijo/reverse_markdown/coverage.png)](https://codeclimate.com/github/xijo/reverse_markdown)
6
6
 
7
7
  ## Changelog
8
8
 
@@ -29,7 +29,7 @@ gem 'reverse_markdown'
29
29
 
30
30
  ## Features
31
31
 
32
- - Supports all the established html tags like `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `p`, `em`, `strong`, `i`, `b`, `blockquote`, `code`, `img`, `a`, `hr`, `li`, `ol`, `ul`, `table`, `tr`, `th`, `td`, `br`
32
+ - Supports all the established html tags like `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `p`, `em`, `strong`, `i`, `b`, `blockquote`, `code`, `img`, `a`, `hr`, `li`, `ol`, `ul`, `table`, `tr`, `th`, `td`, `br`, `figure`
33
33
  - Module based - if you miss a tag, just add it
34
34
  - Can deal with nested lists
35
35
  - Inline and block code is supported
@@ -0,0 +1,15 @@
1
+ module ReverseMarkdown
2
+ module Converters
3
+ class FigCaption < Base
4
+ def convert(node, state = {})
5
+ if node.text.strip.empty?
6
+ ""
7
+ else
8
+ "\n" << "_#{node.text.strip}_" << "\n"
9
+ end
10
+ end
11
+ end
12
+
13
+ register :figcaption, FigCaption.new
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module ReverseMarkdown
2
+ module Converters
3
+ class Figure < Base
4
+ def convert(node, state = {})
5
+ content = treat_children(node, state)
6
+ "\n#{content.strip}\n"
7
+ end
8
+ end
9
+
10
+ register :figure, Figure.new
11
+ end
12
+ end
@@ -2,8 +2,8 @@ module ReverseMarkdown
2
2
  module Converters
3
3
  class Li < Base
4
4
  def convert(node, state = {})
5
- contains_child_paragraph = node.children.first ? node.children.first.name == 'p' : false
6
- content_node = contains_child_paragraph ? node.children.first : node
5
+ contains_child_paragraph = node.first_element_child ? node.first_element_child.name == 'p' : false
6
+ content_node = contains_child_paragraph ? node.first_element_child : node
7
7
  content = treat_children(content_node, state)
8
8
  indentation = indentation_from(state)
9
9
  prefix = prefix_for(node)
@@ -15,8 +15,8 @@ module ReverseMarkdown
15
15
  # Override #treat as proposed in https://github.com/xijo/reverse_markdown/pull/69
16
16
  def treat(node, state)
17
17
  case node.name
18
- when 'code'
19
- node.text
18
+ when 'code', 'text'
19
+ node.text.strip
20
20
  when 'br'
21
21
  "\n"
22
22
  else
@@ -1,3 +1,3 @@
1
1
  module ReverseMarkdown
2
- VERSION = '2.0.0'
2
+ VERSION = '2.1.1'
3
3
  end
@@ -15,6 +15,8 @@ require 'reverse_markdown/converters/div'
15
15
  require 'reverse_markdown/converters/drop'
16
16
  require 'reverse_markdown/converters/details'
17
17
  require 'reverse_markdown/converters/em'
18
+ require 'reverse_markdown/converters/figcaption'
19
+ require 'reverse_markdown/converters/figure'
18
20
  require 'reverse_markdown/converters/h'
19
21
  require 'reverse_markdown/converters/hr'
20
22
  require 'reverse_markdown/converters/ignore'
@@ -23,6 +23,6 @@ Gem::Specification.new do |s|
23
23
  s.add_development_dependency 'simplecov'
24
24
  s.add_development_dependency 'rake'
25
25
  s.add_development_dependency 'kramdown'
26
- # s.add_development_dependency 'byebug'
26
+ s.add_development_dependency 'byebug'
27
27
  s.add_development_dependency 'codeclimate-test-reporter'
28
28
  end
@@ -44,6 +44,8 @@
44
44
  </li>
45
45
  </ul>
46
46
 
47
+ <ul><li> <p>I don't want to cleanup after the party!</p> </li></ul>
48
+
47
49
  <ul>
48
50
  <li>
49
51
  <p>li 1, p 1</p>
@@ -35,7 +35,8 @@ describe ReverseMarkdown do
35
35
  end
36
36
 
37
37
  context "lists containing embedded <p> tags" do
38
- xit { is_expected.to match /\n- I want to have a party at my house!\n/ }
38
+ it { is_expected.to match /\n- I want to have a party at my house!\n/ }
39
+ it { is_expected.to match /\n- I don't want to cleanup after the party!\n/ }
39
40
  end
40
41
 
41
42
  context "list item containing multiple <p> tags" do
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ReverseMarkdown do
4
-
5
4
  let(:input) { File.read('spec/assets/paragraphs.html') }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseMarkdown.convert(input) }
@@ -1,12 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ReverseMarkdown do
4
-
5
4
  let(:input) { File.read('spec/assets/quotation.html') }
6
5
  let(:document) { Nokogiri::HTML(input) }
7
6
  subject { ReverseMarkdown.convert(input) }
8
7
 
9
8
  it { is_expected.to match /^ Block of code$/ }
10
9
  it { is_expected.to include "\n> First quoted paragraph\n> \n> Second quoted paragraph" }
11
-
12
10
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe ReverseMarkdown::Converters::Figure do
4
+
5
+ let(:converter) { ReverseMarkdown::Converters::Figure.new }
6
+
7
+ it 'handles figure tags with figcaption correctly' do
8
+ node = node_for("<figure><img src='image.jpg' alt='img_alt'><figcaption>Figure Caption</figcaption></figure>")
9
+ expect(converter.convert(node)).to eq "\n![img_alt](image.jpg)\n_Figure Caption_\n"
10
+ end
11
+
12
+ it 'handles figure tags without figcaption correctly' do
13
+ node = node_for("<figure><img src='image.jpg' alt='img_alt'></figure>")
14
+ expect(converter.convert(node)).to eq "\n![img_alt](image.jpg)\n"
15
+ end
16
+
17
+ end
@@ -12,10 +12,15 @@ describe ReverseMarkdown::Converters::Pre do
12
12
  expect(converter.convert(node)).to include " puts foo\n"
13
13
  end
14
14
 
15
- it 'preserves new lines' do
15
+ it 'preserves new lines as <br>' do
16
16
  node = node_for("<pre>one<br>two<br>three</pre>")
17
17
  expect(converter.convert(node)).to include "\n\n one\n two\n three\n\n"
18
18
  end
19
+
20
+ it 'preserves new lines as <br> and \n' do
21
+ node = node_for("<pre>one\ntwo\nthree<br>four</pre>")
22
+ expect(converter.convert(node)).to include "\n\n one\n two\n three\n four\n\n"
23
+ end
19
24
 
20
25
  it 'handles code tags correctly' do
21
26
  node = node_for("<pre><code>foobar</code></pre>")
@@ -41,6 +46,11 @@ describe ReverseMarkdown::Converters::Pre do
41
46
  expect(converter.convert(node)).to include "```\nfoo\nbar\n```"
42
47
  end
43
48
 
49
+ it 'preserves new lines as <br> and \n' do
50
+ node = node_for("<pre>one\ntwo\nthree<br>four</pre>")
51
+ expect(converter.convert(node)).to include "```\none\ntwo\nthree\nfour\n```"
52
+ end
53
+
44
54
  it 'handles code tags correctly' do
45
55
  node = node_for("<pre><code>foobar</code></pre>")
46
56
  expect(converter.convert(node)).to include "```\nfoobar\n```"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reverse_markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johannes Opper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-02 00:00:00.000000000 Z
11
+ date: 2021-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: codeclimate-test-reporter
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -127,6 +141,8 @@ files:
127
141
  - lib/reverse_markdown/converters/div.rb
128
142
  - lib/reverse_markdown/converters/drop.rb
129
143
  - lib/reverse_markdown/converters/em.rb
144
+ - lib/reverse_markdown/converters/figcaption.rb
145
+ - lib/reverse_markdown/converters/figure.rb
130
146
  - lib/reverse_markdown/converters/h.rb
131
147
  - lib/reverse_markdown/converters/hr.rb
132
148
  - lib/reverse_markdown/converters/ignore.rb
@@ -175,6 +191,7 @@ files:
175
191
  - spec/lib/reverse_markdown/converters/br_spec.rb
176
192
  - spec/lib/reverse_markdown/converters/del_spec.rb
177
193
  - spec/lib/reverse_markdown/converters/details_spec.rb
194
+ - spec/lib/reverse_markdown/converters/figure_spec.rb
178
195
  - spec/lib/reverse_markdown/converters/li_spec.rb
179
196
  - spec/lib/reverse_markdown/converters/pre_spec.rb
180
197
  - spec/lib/reverse_markdown/converters/strong_spec.rb
@@ -201,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
218
  - !ruby/object:Gem::Version
202
219
  version: '0'
203
220
  requirements: []
204
- rubygems_version: 3.1.2
221
+ rubygems_version: 3.1.4
205
222
  signing_key:
206
223
  specification_version: 4
207
224
  summary: Convert html code into markdown.
@@ -237,6 +254,7 @@ test_files:
237
254
  - spec/lib/reverse_markdown/converters/br_spec.rb
238
255
  - spec/lib/reverse_markdown/converters/del_spec.rb
239
256
  - spec/lib/reverse_markdown/converters/details_spec.rb
257
+ - spec/lib/reverse_markdown/converters/figure_spec.rb
240
258
  - spec/lib/reverse_markdown/converters/li_spec.rb
241
259
  - spec/lib/reverse_markdown/converters/pre_spec.rb
242
260
  - spec/lib/reverse_markdown/converters/strong_spec.rb