reverse_markdown 1.0.4 → 1.0.5

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
  SHA1:
3
- metadata.gz: 0b06289903207da3e585d5b1c09e438dfcbdcbdf
4
- data.tar.gz: aef0c5b8f5fbbe30991641a3c70a877080d873dc
3
+ metadata.gz: 11ce7d306707ed1f0e5a3ac81ad987aacb324923
4
+ data.tar.gz: 4b922a19fc5f0074ec8b2025fdb9cd731215b469
5
5
  SHA512:
6
- metadata.gz: b7e209ff266f3e0bf3fe80246106b9b1ca2219eaf19514fd7a523ecccd58996a576cd1e1a5d1145c471aa1fc9d0dbfc9ee34a607772b238bb931f9dd2a132ba9
7
- data.tar.gz: cc24189f772e4cb9fa240fa8901912729b33a81c727179bc0cc05cc5f6ea06f9512421967c9e01341b4a74f9d8aabed91d4156abbfff20cb4d7e4e7e96e82c67
6
+ metadata.gz: 3081f4ae63f7b19a6564fe67f84fcfa1294e0d6cc3b3f336bbc2a913d59d0acaf155e7261610b8dca3bb00cbbb6aaec27fda964deb23b3122941fd6010b45eda
7
+ data.tar.gz: 40ada4d795985e420fec12c9f5ce164897e87717276b66f155a163eeae679f7619d3f1e35512cf8753472b7a188d893ea044e744d305722773ed2b8fc311acf7
data/.travis.yml CHANGED
@@ -11,6 +11,7 @@ rvm:
11
11
  - 2.2.5
12
12
  - 2.3.0
13
13
  - 2.3.1
14
+ - 2.4.2
14
15
 
15
16
  script: "bundle exec rake spec"
16
17
 
data/CHANGELOG.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## 1.0.5 - February 2018
5
+ - Fix newline handling within pre tags, thanks @niallcolfer (#69)
6
+
4
7
  ## 1.0.4 - November 2017
5
8
  - Make blockquote behave as true block, thanks for reporting @kanedo (#67)
6
9
 
@@ -2,15 +2,28 @@ module ReverseMarkdown
2
2
  module Converters
3
3
  class Pre < Base
4
4
  def convert(node, state = {})
5
+ content = treat_children(node, state)
5
6
  if ReverseMarkdown.config.github_flavored
6
- "\n```#{language(node)}\n" << node.text.strip << "\n```\n"
7
+ "\n```#{language(node)}\n" << content.strip << "\n```\n"
7
8
  else
8
- "\n\n " << node.text.strip.lines.to_a.join(" ") << "\n\n"
9
+ "\n\n " << content.lines.to_a.join(" ") << "\n\n"
9
10
  end
10
11
  end
11
12
 
12
13
  private
13
14
 
15
+ # Override #treat as proposed in https://github.com/xijo/reverse_markdown/pull/69
16
+ def treat(node, state)
17
+ case node.name
18
+ when 'code'
19
+ node.text
20
+ when 'br'
21
+ "\n"
22
+ else
23
+ super
24
+ end
25
+ end
26
+
14
27
  def language(node)
15
28
  lang = language_from_highlight_class(node)
16
29
  lang || language_from_confluence_class(node)
@@ -1,3 +1,3 @@
1
1
  module ReverseMarkdown
2
- VERSION = '1.0.4'
2
+ VERSION = '1.0.5'
3
3
  end
@@ -11,6 +11,16 @@ describe ReverseMarkdown::Converters::Pre do
11
11
  node = node_for("<pre>puts foo</pre>")
12
12
  expect(converter.convert(node)).to include " puts foo\n"
13
13
  end
14
+
15
+ it 'preserves new lines' do
16
+ node = node_for("<pre>one<br>two<br>three</pre>")
17
+ expect(converter.convert(node)).to include "\n\n one\n two\n three\n\n"
18
+ end
19
+
20
+ it 'handles code tags correctly' do
21
+ node = node_for("<pre><code>foobar</code></pre>")
22
+ expect(converter.convert(node)).to eq "\n\n foobar\n\n"
23
+ end
14
24
  end
15
25
 
16
26
  context 'for github_flavored markdown' do
@@ -21,6 +31,16 @@ describe ReverseMarkdown::Converters::Pre do
21
31
  expect(converter.convert(node)).to include "```\nputs foo\n```"
22
32
  end
23
33
 
34
+ it 'preserves new lines' do
35
+ node = node_for("<pre>foo<br>bar</pre>")
36
+ expect(converter.convert(node)).to include "```\nfoo\nbar\n```"
37
+ end
38
+
39
+ it 'handles code tags correctly' do
40
+ node = node_for("<pre><code>foobar</code></pre>")
41
+ expect(converter.convert(node)).to include "```\nfoobar\n```"
42
+ end
43
+
24
44
  context 'syntax highlighting' do
25
45
  it 'works for "highlight-lang" mechanism' do
26
46
  div = node_for("<div class='highlight highlight-ruby'><pre>puts foo</pre></div>")
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,3 @@
1
- require 'codeclimate-test-reporter'
2
- CodeClimate::TestReporter.start
3
-
4
1
  require 'simplecov'
5
2
  # require 'byebug'
6
3
 
@@ -20,5 +17,5 @@ RSpec.configure do |config|
20
17
  end
21
18
 
22
19
  def node_for(html)
23
- Nokogiri::XML.parse(html).root
20
+ Nokogiri::HTML.parse(html).root.child.child
24
21
  end
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: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johannes Opper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-19 00:00:00.000000000 Z
11
+ date: 2018-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri