upmark 0.9.0 → 0.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebfa7a03ebe86bf8d70709fe99002518ee9f7237
4
- data.tar.gz: be21325fe8ab8cd94d9ba4a4df1fcb0025bfb64b
3
+ metadata.gz: 1e6c728e71452e9983f7fe6ef59948cca6fd691b
4
+ data.tar.gz: 87daa0b2e4e6105b43e88502b6f645a2e84e423a
5
5
  SHA512:
6
- metadata.gz: d4eab42d3640a2f9011daf71244c97036f9e92bce80cf351fe9eeda00b1535f0ef5a0471440ec1c4dd9d5c0ac8c76d9c0263661f9c2c6f9d1425a3845296c901
7
- data.tar.gz: 3ed9e855887dbab065c586517669657e7c4cb56311b1e5237161111e64853043c2e44097f2bff95b5841ecd5fe3424cd29811940fc07fe8e860472a4ad77b92c
6
+ metadata.gz: 25919f578df35140965011b7c2cb2ce57308f52adf0a05373ba26f4aff5973d3c810c6fb53b473efc9ce50744325b12a9331ee0a1934b715e61be6a8df830cf5
7
+ data.tar.gz: 018f24f9bf5db7e63e79c5301c3ee6035d7028ff9521951a4c03de346358b32a14fc716ead14ac8da41ad146d2e24edd0543a2ee26f42f5610fd0c3734102f01
@@ -79,14 +79,15 @@ module Upmark
79
79
  end
80
80
 
81
81
  rule(:double_quoted_attribute_value) do
82
- (str('"').absent? >> (match(/[^<&]/) | entity_ref)).repeat
82
+ (str('"').absent? >> (match(/[^<]/) | string_entity | numeric_entity)).repeat
83
83
  end
84
84
 
85
85
  rule(:single_quoted_attribute_value) do
86
- (str("'").absent? >> (match(/[^<&]/) | entity_ref)).repeat
86
+ (str("'").absent? >> (match(/[^<]/) | string_entity | numeric_entity)).repeat
87
87
  end
88
88
 
89
- rule(:entity_ref) { match("&") >> name >> match(";") }
89
+ rule(:string_entity) { match("&") >> name >> match(";") }
90
+ rule(:numeric_entity) { match(/&#\d+;/) }
90
91
 
91
92
  rule(:space) { match(/\s/).repeat(1) }
92
93
  rule(:space?) { space.maybe }
@@ -41,8 +41,10 @@ module Upmark
41
41
  .select { |c| Array === c }
42
42
  .map do |children|
43
43
  children.map do |child|
44
- if child[:text]
45
- child[:text].to_s.gsub!(/^\n */,'')
44
+ if child.is_a?(Hash) # if the td doesn't contain nested elements
45
+ if child[:text]
46
+ child[:text].to_s.gsub!(/^\n */,'')
47
+ end
46
48
  end
47
49
  child
48
50
  end + ["\n"]
@@ -33,6 +33,28 @@ RSpec.describe Upmark, ".convert" do
33
33
  end
34
34
  end
35
35
 
36
+ context "<a> with numeric entity" do
37
+ specify 'converts as []()' do
38
+ expect(<<-HTML.strip
39
+ <p><a href=\"http://www.abc.net.au/news/2016-02-18/haylen-we-need-a-drug-summit-because-we&#39;re-losing-the-war/7177152\">blah</a></p>
40
+ HTML
41
+ ).to convert_to <<-MD.strip
42
+ [blah](http://www.abc.net.au/news/2016-02-18/haylen-we-need-a-drug-summit-because-we&#39;re-losing-the-war/7177152 "")
43
+ MD
44
+ end
45
+ end
46
+
47
+ context "<a> with query string" do
48
+ specify 'converts as []()' do
49
+ expect(<<-HTML.strip
50
+ <p><a href=\"http://www.abc.net.au/news/2016-02-18/blah?blah=lol&lol=rofl\">blah</a></p>
51
+ HTML
52
+ ).to convert_to <<-MD.strip
53
+ [blah](http://www.abc.net.au/news/2016-02-18/blah?blah=lol&lol=rofl "")
54
+ MD
55
+ end
56
+ end
57
+
36
58
  context "<img>" do
37
59
  specify 'converts as ![]()' do
38
60
  expect(<<-HTML.strip
@@ -289,4 +311,12 @@ messenger **bag** skateboard
289
311
  }.to raise_error(Upmark::ParseFailed)
290
312
  end
291
313
  end
314
+
315
+ context "nested table" do
316
+ let(:html) { "<table><tr><td><table><tr><td><p>Hi <br />there</p></td></tr></table></td></tr></table>"}
317
+
318
+ it "should strip both tables" do
319
+ expect(html).to convert_to("Hi\nthere")
320
+ end
321
+ end
292
322
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Bassett
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-11-08 00:00:00.000000000 Z
13
+ date: 2016-06-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -111,12 +111,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  requirements: []
113
113
  rubyforge_project: upmark
114
- rubygems_version: 2.4.5.1
114
+ rubygems_version: 2.5.1
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: A HTML to Markdown converter.
118
118
  test_files:
119
- - spec/unit/lib/upmark/transform/markdown_spec.rb
120
119
  - spec/unit/lib/upmark/parser/xml_spec.rb
120
+ - spec/unit/lib/upmark/transform/markdown_spec.rb
121
121
  - spec/spec_helper.rb
122
122
  - spec/acceptance/upmark_spec.rb