isodoc 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b691b554f0a49dc8569ee3e146ebfd0f3c89ea90137fceecb13c4074b81a394
4
- data.tar.gz: e8763e26527bbefb11b9f4faa53803b34a0c2b3d4aeaac37aa44d644623ba213
3
+ metadata.gz: 93ba96559e2759a596b63d1a785bfb669b3e0b1b400a091af8a6c54c4c6f1470
4
+ data.tar.gz: 0c48f7c99b83091ab02ad792a6d5dd555fcc0777da4d3931dac7ed824884e0c3
5
5
  SHA512:
6
- metadata.gz: f6dfd36655433ae916f325b73a4578db4526223872afbc6efb01b73eea33a15f248051b58fa56cca7f96addc1044fde56f5105d9bb82e0038e1475046684847a
7
- data.tar.gz: 29750797a89547268c68c62ca9617a5e4705053f03941c173b83233a064e426fa92996be584a2b11da68ec5e42015667ff4e8673f49f6a5e44026f584938584e
6
+ metadata.gz: b89709b81819fe0b5ed8b48fcb33f7f25f998659f74d97fa65d4642acf762d8c96aca75f525d8941596cea8ba60ad1fd6c3687ae1a178e95d49ce48a7d93e2cc
7
+ data.tar.gz: c0c0b053b432bafed3e2c926f33cf39b926bfc4e4b0467f4e5c66223d5d9df7e8d4a77fe0b188de319af2f5113a75f5b2c38a111f51e6b690e2b85dacd6819ba
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- isodoc (0.9.6)
4
+ isodoc (0.9.7)
5
5
  asciimath
6
- html2doc (~> 0.8.1)
6
+ html2doc (~> 0.8.6)
7
7
  htmlentities (~> 4.3.4)
8
8
  liquid
9
9
  metanorma (~> 0.3.0)
@@ -42,7 +42,7 @@ GEM
42
42
  guard (~> 2.1)
43
43
  guard-compat (~> 1.1)
44
44
  rspec (>= 2.99.0, < 4.0)
45
- html2doc (0.8.5)
45
+ html2doc (0.8.6)
46
46
  asciimath
47
47
  htmlentities (~> 4.3.4)
48
48
  image_size
@@ -74,7 +74,7 @@ GEM
74
74
  nenv (~> 0.1)
75
75
  shellany (~> 0.0)
76
76
  parallel (1.12.1)
77
- parser (2.5.1.2)
77
+ parser (2.5.3.0)
78
78
  ast (~> 2.4.0)
79
79
  powerpack (0.1.2)
80
80
  pry (0.11.3)
@@ -146,4 +146,4 @@ DEPENDENCIES
146
146
  timecop (~> 0.9)
147
147
 
148
148
  BUNDLED WITH
149
- 1.16.6
149
+ 1.17.1
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency "ruby-xslt"
35
35
  spec.add_dependency "thread_safe"
36
36
  spec.add_dependency "uuidtools"
37
- spec.add_dependency "html2doc", "~> 0.8.1"
37
+ spec.add_dependency "html2doc", "~> 0.8.6"
38
38
  spec.add_dependency "liquid"
39
39
  spec.add_dependency "roman-numerals"
40
40
  spec.add_dependency "sassc", "~> 1.12.1"
@@ -23,11 +23,13 @@ module IsoDoc::Function
23
23
  FileUtils.rm_rf "#{dir}/*"
24
24
  end
25
25
  @filename = filename
26
+ @localdir = %r{/}.match(filename) ? filename.sub(%r{/[^/]+$}, "/") : "./"
26
27
  [filename, dir]
27
28
  end
28
29
 
30
+ # tmp image dir is same directory as @filename
29
31
  def tmpimagedir
30
- @filename + @tmpimagedir
32
+ @filename.sub(%r{^.*/([^/]+)$}, "\\1") + @tmpimagedir
31
33
  end
32
34
 
33
35
 
@@ -39,7 +41,7 @@ module IsoDoc::Function
39
41
  if @standardstylesheet
40
42
  head.style do |style|
41
43
  stylesheet = File.read(@standardstylesheet, encoding: "utf-8").
42
- gsub("FILENAME", filename)
44
+ gsub("FILENAME", File.basename(filename))
43
45
  style.comment "\n#{stylesheet}\n"
44
46
  end
45
47
  end
@@ -205,8 +205,7 @@ module IsoDoc::HtmlFunction
205
205
 
206
206
  def datauri(i)
207
207
  type = i["src"].split(".")[-1]
208
- #bin = open(i["src"]).read(encoding: "utf-8")
209
- bin = File.read(i["src"], encoding: "utf-8")
208
+ bin = File.read(@localdir + i["src"], encoding: "utf-8")
210
209
  data = Base64.strict_encode64(bin)
211
210
  i["src"] = "data:image/#{type};base64,#{data}"
212
211
  end
@@ -215,9 +214,10 @@ module IsoDoc::HtmlFunction
215
214
  matched = /\.(?<suffix>\S+)$/.match i["src"]
216
215
  uuid = UUIDTools::UUID.random_create.to_s
217
216
  new_full_filename = File.join(tmpimagedir, "#{uuid}.#{matched[:suffix]}")
218
- FileUtils.cp i["src"], new_full_filename
217
+ local_filename = File.join(@localdir, i["src"])
218
+ FileUtils.cp local_filename, new_full_filename
219
219
  i["src"] = new_full_filename
220
- i["width"], i["height"] = Html2Doc.image_resize(i, @maxheight, @maxwidth)
220
+ i["width"], i["height"] = Html2Doc.image_resize(i, local_filename, @maxheight, @maxwidth)
221
221
  end
222
222
 
223
223
  def html_toc(docxml)
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "0.9.6".freeze
2
+ VERSION = "0.9.7".freeze
3
3
  end
@@ -29,7 +29,8 @@ module IsoDoc::WordFunction
29
29
 
30
30
  def word_admonition_images(docxml)
31
31
  docxml.xpath("//div[@class = 'Admonition']//img").each do |i|
32
- i["width"], i["height"] = Html2Doc.image_resize(i, @maxheight, 300)
32
+ i["width"], i["height"] =
33
+ Html2Doc.image_resize(i, File.join(@localdir, i["src"]), @maxheight, 300)
33
34
  end
34
35
  end
35
36
 
@@ -85,16 +86,14 @@ module IsoDoc::WordFunction
85
86
 
86
87
  def generate_header(filename, _dir)
87
88
  return nil unless @header
88
- #template = Liquid::Template.parse(File.read(@header, encoding: "UTF-8"))
89
89
  template = IsoDoc::Common.liquid(File.read(@header, encoding: "UTF-8"))
90
90
  meta = @meta.get
91
91
  meta[:filename] = filename
92
92
  params = meta.map { |k, v| [k.to_s, v] }.to_h
93
- File.open("header.html", "w:UTF-8") do |f|
94
- f.write(template.render(params))
95
- end
96
- @files_to_delete << "header.html"
97
- "header.html"
93
+ headerfile = File.join(@localdir, "header.html")
94
+ File.open(headerfile, "w:UTF-8") { |f| f.write(template.render(params)) }
95
+ @files_to_delete << headerfile
96
+ headerfile
98
97
  end
99
98
 
100
99
  def word_toc_entry(toclevel, heading)
@@ -544,6 +544,41 @@ CkZJTEVOQU1FOiB0ZXN0Cgo=
544
544
 
545
545
  end
546
546
 
547
+ it "moves images in HTML, using relative file location" do
548
+ FileUtils.rm_f "spec/test.html"
549
+ FileUtils.rm_rf "spec/test_images"
550
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("spec/test", <<~"INPUT", false)
551
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
552
+ <preface><foreword>
553
+ <figure id="_">
554
+ <name>Split-it-right sample divider</name>
555
+ <image src="assets/rice_image1.png" id="_" imagetype="PNG"/>
556
+ <image src="assets/rice_image1.png" id="_" width="20000" height="300000" imagetype="PNG"/>
557
+ <image src="assets/rice_image1.png" id="_" width="99" height="auto" imagetype="PNG"/>
558
+ </figure>
559
+ </foreword></preface>
560
+ </iso-standard>
561
+ INPUT
562
+ html = File.read("spec/test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
563
+ sub(%r{</main>.*$}m, "</main>")
564
+ expect(`ls test_images`).to match(/\.png$/)
565
+ expect(html.gsub(/\/[0-9a-f-]+\.png/, "/_.png")).to be_equivalent_to <<~"OUTPUT"
566
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
567
+ <br />
568
+ <div>
569
+ <h1 class="ForewordTitle">Foreword</h1>
570
+ <div id="_" class="figure">
571
+ <img src="test_images/_.png" height="776" width="922" />
572
+ <img src="test_images/_.png" height="800" width="53" />
573
+ <img src="test_images/_.png" height="83" width="99" />
574
+ <p class="FigureTitle" align="center">Figure 1&#xA0;&#x2014; Split-it-right sample divider</p></div>
575
+ </div>
576
+ <p class="zzSTDTitle1"></p>
577
+ </main>
578
+ OUTPUT
579
+ end
580
+
581
+
547
582
  it "encodes images in HTML as data URIs" do
548
583
  FileUtils.rm_f "test.html"
549
584
  FileUtils.rm_rf "test_images"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
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-10-26 00:00:00.000000000 Z
11
+ date: 2018-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciimath
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.8.1
103
+ version: 0.8.6
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.8.1
110
+ version: 0.8.6
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: liquid
113
113
  requirement: !ruby/object:Gem::Requirement