html2doc 0.6.5 → 0.6.6
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 +4 -4
- data/html2doc.gemspec +1 -1
- data/lib/html2doc/lists.rb +11 -11
- data/lib/html2doc/version.rb +1 -1
- data/spec/html2doc_spec.rb +20 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12bd3e1d492aa03c842f52352b18c0145650bb84
|
4
|
+
data.tar.gz: c45c11401392dcdc05f03d4ca4c1ff71326e329c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 522afed658b3d1cc6c853f6efad77874400778bce23b68f186721bc7660bab3041ceaa96291ef3af7d4c49bf297c4a26b5080fcd80e1d58e2f513e42ffb13fd0
|
7
|
+
data.tar.gz: 12e5759f2558959ca6abd89f8c7329bcba74151b7849dc698cc0af8094d2d76e38c60d1f557f0b1dae60d8bf159b53eabfbf0c9f5630f796524e3c9d57c08b9f
|
data/html2doc.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
29
29
|
spec.add_dependency "image_size"
|
30
30
|
spec.add_dependency "mime-types"
|
31
|
-
spec.add_dependency "nokogiri"
|
31
|
+
spec.add_dependency "nokogiri"
|
32
32
|
spec.add_dependency "thread_safe"
|
33
33
|
spec.add_dependency "uuidtools"
|
34
34
|
spec.add_dependency "ruby-xslt"
|
data/lib/html2doc/lists.rb
CHANGED
@@ -6,23 +6,23 @@ require "xml/xslt"
|
|
6
6
|
require "pp"
|
7
7
|
|
8
8
|
module Html2Doc
|
9
|
-
def self.style_list(li, level,
|
10
|
-
return unless
|
9
|
+
def self.style_list(li, level, liststyle, listnumber)
|
10
|
+
return unless liststyle
|
11
11
|
if li["style"]
|
12
12
|
li["style"] += ";"
|
13
13
|
else
|
14
14
|
li["style"] = ""
|
15
15
|
end
|
16
|
-
|
17
|
-
li["style"] += "mso-list:#{listno} level#{level} lfo1;"
|
16
|
+
li["style"] += "mso-list:#{liststyle} level#{level} lfo#{listnumber};"
|
18
17
|
end
|
19
18
|
|
20
|
-
def self.list_add(xpath, liststyles, listtype, level)
|
21
|
-
xpath.
|
19
|
+
def self.list_add(xpath, liststyles, listtype, level, listnumber)
|
20
|
+
xpath.each_with_index do |list, i|
|
21
|
+
listnumber = i + 1 if level == 1
|
22
22
|
(list.xpath(".//li") - list.xpath(".//ol//li | .//ul//li")).each do |li|
|
23
|
-
style_list(li, level, liststyles[listtype])
|
24
|
-
list_add(li.xpath(".//ul") - li.xpath(".//ul//ul | .//ol//ul"), liststyles, :ul, level + 1)
|
25
|
-
list_add(li.xpath(".//ol") - li.xpath(".//ul//ol | .//ol//ol"), liststyles, :ol, level + 1)
|
23
|
+
style_list(li, level, liststyles[listtype], listnumber)
|
24
|
+
list_add(li.xpath(".//ul") - li.xpath(".//ul//ul | .//ol//ul"), liststyles, :ul, level + 1, listnumber)
|
25
|
+
list_add(li.xpath(".//ol") - li.xpath(".//ul//ol | .//ol//ol"), liststyles, :ol, level + 1, listnumber)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -30,10 +30,10 @@ module Html2Doc
|
|
30
30
|
def self.lists(docxml, liststyles)
|
31
31
|
return if liststyles.nil?
|
32
32
|
if liststyles.has_key?(:ul)
|
33
|
-
list_add(docxml.xpath("//ul[not(ancestor::ul) and not(ancestor::ol)]"), liststyles, :ul, 1)
|
33
|
+
list_add(docxml.xpath("//ul[not(ancestor::ul) and not(ancestor::ol)]"), liststyles, :ul, 1, nil)
|
34
34
|
end
|
35
35
|
if liststyles.has_key?(:ol)
|
36
|
-
list_add(docxml.xpath("//ol[not(ancestor::ul) and not(ancestor::ol)]"), liststyles, :ol, 1)
|
36
|
+
list_add(docxml.xpath("//ol[not(ancestor::ul) and not(ancestor::ol)]"), liststyles, :ol, 1, nil)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
data/lib/html2doc/version.rb
CHANGED
data/spec/html2doc_spec.rb
CHANGED
@@ -551,4 +551,24 @@ RSpec.describe Html2Doc do
|
|
551
551
|
OUTPUT
|
552
552
|
end
|
553
553
|
|
554
|
+
|
555
|
+
it "restarts numbering of lists with list styles" do
|
556
|
+
simple_body = <<~BODY
|
557
|
+
<div>
|
558
|
+
<ol><li><div><p><ol><li><ul><li><p><ol><li><ol><li>A</li></ol></li></ol></p></li></ul></li></ol></p></div></li></ol>
|
559
|
+
<ol><li><div><p><ol><li><ul><li><p><ol><li><ol><li>A</li></ol></li></ol></p></li></ul></li></ol></p></div></li></ol></div>
|
560
|
+
BODY
|
561
|
+
Html2Doc.process(html_input(simple_body), filename: "test", liststyles: {ul: "l1", ol: "l2"})
|
562
|
+
expect(guid_clean(File.read("test.doc", encoding: "utf-8"))).
|
563
|
+
to match_fuzzy(<<~OUTPUT)
|
564
|
+
#{WORD_HDR} #{DEFAULT_STYLESHEET} #{WORD_HDR_END}
|
565
|
+
#{word_body('<div>
|
566
|
+
<ol><li style="mso-list:l2 level1 lfo1;" class="MsoNormal"><div><p class="MsoNormal"><ol><li style="mso-list:l2 level2 lfo1;" class="MsoNormal"><ul><li style="mso-list:l1 level3 lfo1;" class="MsoNormal"><p class="MsoNormal"><ol><li style="mso-list:l2 level4 lfo1;" class="MsoNormal"><ol><li style="mso-list:l2 level5 lfo1;" class="MsoNormal">A</li></ol></li></ol></p></li></ul></li></ol></p></div></li></ol>
|
567
|
+
<ol><li style="mso-list:l2 level1 lfo2;" class="MsoNormal"><div><p class="MsoNormal"><ol><li style="mso-list:l2 level2 lfo2;" class="MsoNormal"><ul><li style="mso-list:l1 level3 lfo2;" class="MsoNormal"><p class="MsoNormal"><ol><li style="mso-list:l2 level4 lfo2;" class="MsoNormal"><ol><li style="mso-list:l2 level5 lfo2;" class="MsoNormal">A</li></ol></li></ol></p></li></ul></li></ol></p></div></li></ol></div>',
|
568
|
+
'<div style="mso-element:footnote-list"/>')}
|
569
|
+
#{WORD_FTR1}
|
570
|
+
OUTPUT
|
571
|
+
end
|
572
|
+
|
573
|
+
|
554
574
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html2doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: nokogiri
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thread_safe
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|