remark 0.3.1 → 0.3.2

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.
@@ -3,6 +3,8 @@ Remark — HTML→Markdown tool
3
3
 
4
4
  <i>Remark</i> parses HTML and delivers proper Markdown.
5
5
 
6
+ $ [sudo] gem install remark
7
+
6
8
  Usage
7
9
  -----
8
10
 
data/Rakefile CHANGED
@@ -2,30 +2,3 @@ desc "renders the spec/sample.html to Markdown"
2
2
  task :sample do
3
3
  system %(ruby -Ilib -rubygems bin/remark spec/sample.html)
4
4
  end
5
-
6
- desc "generates .gemspec file"
7
- task :gemspec do
8
- spec = Gem::Specification.new do |gem|
9
- gem.name = "remark"
10
- gem.version = '0.3.0'
11
-
12
- gem.summary = "HTML to Markdown converter"
13
- gem.email = "mislav.marohnic@gmail.com"
14
- gem.homepage = "http://github.com/mislav/remark"
15
- gem.authors = ["Mislav Marohnić"]
16
- gem.has_rdoc = false
17
-
18
- gem.files = FileList['Rakefile', '{bin,lib,rails,spec}/**/*', 'README*', 'LICENSE*'] & `git ls-files`.split("\n")
19
- gem.executables = Dir['bin/*'].map { |f| File.basename(f) }
20
- end
21
-
22
- spec_string = spec.to_ruby
23
-
24
- begin
25
- Thread.new { eval("$SAFE = 3\n#{spec_string}", binding) }.join
26
- rescue
27
- abort "unsafe gemspec: #{$!}"
28
- else
29
- File.open("#{spec.name}.gemspec", 'w') { |file| file.write spec_string }
30
- end
31
- end
@@ -51,9 +51,9 @@ Hpricot::Container.module_eval do
51
51
  end
52
52
 
53
53
  all << child_content
54
+ previous_was_block = current_is_block
54
55
  end
55
56
 
56
- previous_was_block = current_is_block
57
57
  all
58
58
  end
59
59
 
@@ -83,7 +83,7 @@ Hpricot::Elem.module_eval do
83
83
  return to_s unless markdown_supported_attributes?
84
84
 
85
85
  case name
86
- when 'div', 'noscript'
86
+ when 'div', 'noscript', 'body'
87
87
  super
88
88
  when 'p'
89
89
  super
@@ -105,13 +105,21 @@ Hpricot::Elem.module_eval do
105
105
  code = inner_text
106
106
  code.index('`') ? "`` #{code} ``" : "`#{code}`"
107
107
  when 'a'
108
- remark_link(super, self['href'], self['title'], options)
108
+ if self['name']
109
+ text = super
110
+ text = '' if text.blank?
111
+ %(<a name="#{self['name']}">#{text}</a>)
112
+ else
113
+ remark_link(super, self['href'], self['title'], options)
114
+ end
109
115
  when 'img'
110
116
  '!' + remark_link(self['alt'], self['src'], self['title'], :reference_links => false)
111
117
  when 'blockquote'
112
118
  super.indent('> ')
113
119
  when 'br'
114
120
  " \n" + inner_html
121
+ when 'hr'
122
+ '* * *'
115
123
  else
116
124
  to_s
117
125
  end
@@ -158,12 +166,13 @@ Hpricot::Elem.module_eval do
158
166
 
159
167
  def markdown_supported_attributes?
160
168
  case name
161
- when 'div'
169
+ when 'div', 'body'
162
170
  true
163
171
  when 'a'
164
- attribute_names_match?('href', 'title')
172
+ attribute_names_match?('href', 'title') or
173
+ attribute_names_match?('name')
165
174
  when 'img'
166
- attribute_names_match?(%w(alt src), 'title')
175
+ attribute_names_match?('src', %w(alt title))
167
176
  when 'ol', 'ul'
168
177
  attributes.empty? and children.all? do |item|
169
178
  not item.elem? or (item.name == 'li' and item.attributes.empty?)
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+ require 'rspec'
1
3
  require 'remark/hpricot_ext'
2
4
 
3
5
  describe Hpricot, "remark extensions" do
@@ -39,6 +41,7 @@ describe Hpricot, "remark extensions" do
39
41
  end
40
42
  </pre>
41
43
  </div>
44
+ <img src='moo.jpg'>
42
45
  <img src='moo.jpg' alt='cow'>
43
46
  <img src='moo.jpg' alt='cow' width='16'>
44
47
 
@@ -50,7 +53,9 @@ end
50
53
  bar <code>baz</code></p>
51
54
  <p>Foo</p><br><br><p>Bar</p><br>
52
55
  </div>
53
-
56
+
57
+ <hr>
58
+
54
59
  <ul>
55
60
  <li>First</li>
56
61
  <li>Second</li>
@@ -113,6 +118,7 @@ end
113
118
  end
114
119
 
115
120
  it "should support image tags" do
121
+ remark('img').should == '![](moo.jpg)'
116
122
  remark('img[@alt]').should == '![cow](moo.jpg)'
117
123
  remark('img[@width]').should == '<img src="moo.jpg" alt="cow" width="16" />'
118
124
  end
@@ -134,5 +140,9 @@ end
134
140
  it "should support ordered list" do
135
141
  remark('ol').should == "1. First\n2. Second"
136
142
  end
143
+
144
+ it "renders horizontal rule" do
145
+ remark('hr').should == "* * *"
146
+ end
137
147
  end
138
148
 
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+ require 'rspec'
1
3
  require 'remark'
2
4
 
3
5
  describe Remark do
@@ -154,4 +156,23 @@ describe Remark do
154
156
  remark(@html, :scope => '#div2').should == "Only 2 paragraphs\n\nHow disappointing"
155
157
  end
156
158
  end
159
+
160
+ it "handles direct children of BODY and anchors" do
161
+ html = <<-HTML
162
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
163
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
164
+ <head>
165
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
166
+ <title>Sectioned</title>
167
+ </head>
168
+ <body class="chapter">
169
+ <p>Just my luck.</p>
170
+
171
+ <a name="section3" />
172
+ <h2>3. The Red Sun Rises</h2>
173
+ </body>
174
+ </html>
175
+ HTML
176
+ remark(html).should == "Just my luck.\n\n<a name=\"section3\"></a>\n\n## 3. The Red Sun Rises"
177
+ end
157
178
  end
metadata CHANGED
@@ -1,46 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: remark
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
- - "Mislav Marohni\xC4\x87"
7
+ authors:
8
+ - Mislav Marohnić
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2009-11-25 00:00:00 +01:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-11-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: hpricot
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.8.2
17
22
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
21
27
  - - ~>
22
- - !ruby/object:Gem::Version
28
+ - !ruby/object:Gem::Version
23
29
  version: 0.8.2
24
- version:
25
- - !ruby/object:Gem::Dependency
30
+ - !ruby/object:Gem::Dependency
26
31
  name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '2.9'
27
38
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
31
43
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 1.2.9
34
- version:
35
- description: Remark turns simple HTML documents or content in web pages to Markdown source.
44
+ - !ruby/object:Gem::Version
45
+ version: '2.9'
46
+ description: Remark turns simple HTML documents or content in web pages to Markdown
47
+ source.
36
48
  email: mislav.marohnic@gmail.com
37
49
  executables: []
38
-
39
50
  extensions: []
40
-
41
51
  extra_rdoc_files: []
42
-
43
- files:
52
+ files:
44
53
  - Rakefile
45
54
  - bin/remark
46
55
  - lib/remark/core_ext.rb
@@ -51,33 +60,29 @@ files:
51
60
  - spec/sample.html
52
61
  - README.markdown
53
62
  - LICENSE
54
- has_rdoc: false
55
- homepage: http://github.com/mislav/remark
63
+ homepage: https://github.com/mislav/remark
56
64
  licenses: []
57
-
58
65
  post_install_message:
59
66
  rdoc_options: []
60
-
61
- require_paths:
67
+ require_paths:
62
68
  - lib
63
- required_ruby_version: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
68
- version:
69
- required_rubygems_version: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: "0"
74
- version:
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
75
81
  requirements: []
76
-
77
82
  rubyforge_project:
78
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.8.23
79
84
  signing_key:
80
85
  specification_version: 3
81
86
  summary: HTML to Markdown converter
82
87
  test_files: []
83
-
88
+ has_rdoc: