markdown2confluence 0.0.1e → 0.0.1f

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,7 @@ exit -1
10
10
 
11
11
  begin
12
12
  text=File.read(filename)
13
+
13
14
  s=Kramdown::Document.new(text).to_confluence
14
15
  puts s
15
16
  rescue Exception => ex
@@ -82,7 +82,7 @@ module Kramdown
82
82
  end
83
83
 
84
84
  def convert_p(el, indent)
85
- "#{' '*indent}#{inner(el, indent)}\n\n"
85
+ "#{' '*indent}#{inner(el, indent)}\n\n"
86
86
  end
87
87
 
88
88
 
@@ -115,10 +115,10 @@ module Kramdown
115
115
 
116
116
  def convert_html_element(el, indent)
117
117
  markup=case el.value
118
- when "iframe" then "{iframe:src=#{el.attr["src"]}}"
119
- when "pre" then "{code}#{inner(el,indent)}{code}"
120
- else inner(el, indent)
121
- end
118
+ when "iframe" then "{iframe:src=#{el.attr["src"]}}"
119
+ when "pre" then "{code}#{inner(el,indent)}{code}"
120
+ else inner(el, indent)
121
+ end
122
122
  end
123
123
 
124
124
  def convert_xml_comment(el, indent)
@@ -168,11 +168,11 @@ module Kramdown
168
168
  end
169
169
 
170
170
  def convert_codeblock(el, indent)
171
- "{code}#{el.value}{code}\n"
171
+ "{code}#{el.value}{code}\n"
172
172
  end
173
173
 
174
174
  def convert_codespan(el, indent)
175
- "{code}#{el.value}{code}\n"
175
+ "{code}#{el.value}{code}\n"
176
176
  end
177
177
 
178
178
  def convert_footnote(el, indent)
@@ -192,27 +192,37 @@ module Kramdown
192
192
  end
193
193
 
194
194
  def convert_entity(el, indent)
195
- inner(el,indent)
195
+ inner(el,indent)
196
196
  end
197
197
 
198
198
  def convert_typographic_sym(el, indent)
199
- inner(el,indent)
199
+ inner(el,indent)
200
200
  end
201
201
 
202
202
  def convert_smart_quote(el, indent)
203
- "'"
203
+ "'"
204
204
  end
205
205
 
206
206
  def convert_math(el, indent)
207
- inner(el,indent)
207
+ inner(el,indent)
208
208
  end
209
209
 
210
210
  def convert_abbreviation(el, indent)
211
- inner(el,indent)
211
+ inner(el,indent)
212
212
  end
213
213
 
214
214
  def convert_root(el, indent)
215
- inner(el, indent)
215
+ handle_iframes(inner(el, indent))
216
+ end
217
+
218
+ def handle_iframes(text)
219
+ markup=text.gsub(/<iframe.*iframe>/) { |match|
220
+ doc =Nokogiri::HTML::DocumentFragment.parse(match)
221
+ element=doc.search('iframe').first
222
+ attributes=element.attributes.map{ |at| "#{at[1].name}=#{at[1].value}"}
223
+ "{iframe:#{attributes.join('|')}}#{element.text}{iframe}"
224
+ }
225
+ return markup
216
226
  end
217
227
 
218
228
  end
@@ -2,5 +2,5 @@ module Markdown2Confluence
2
2
  end
3
3
 
4
4
  unless defined?(Markdown2Confluence::VERSION)
5
- ::Markdown2Confluence::VERSION = "0.0.1e"
5
+ ::Markdown2Confluence::VERSION = "0.0.1f"
6
6
  end
@@ -1,2 +1,3 @@
1
1
  require 'kramdown'
2
+ require 'nokogiri'
2
3
  require 'markdown2confluence/convertor/confluence'
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "markdown2confluence"
16
16
 
17
17
  s.add_dependency "kramdown"
18
+ s.add_dependency "nokogiri"
18
19
 
19
20
  s.files = `git ls-files`.split("\n")
20
21
  s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown2confluence
3
3
  version: !ruby/object:Gem::Version
4
- hash: 34
4
+ hash: 35
5
5
  prerelease: 5
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
9
  - 1
10
- - e
11
- version: 0.0.1e
10
+ - f
11
+ version: 0.0.1f
12
12
  platform: ruby
13
13
  authors:
14
14
  - Patrick Debois
@@ -32,6 +32,20 @@ dependencies:
32
32
  prerelease: false
33
33
  name: kramdown
34
34
  version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ type: :runtime
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ prerelease: false
47
+ name: nokogiri
48
+ version_requirements: *id002
35
49
  description: Based on Kramdown, a convert object .to_confluence
36
50
  email:
37
51
  - patrick.debois@jedi.be