reverse_markdown 2.0.0 → 2.1.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 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