html2doc 1.8.9 → 1.9.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
  SHA256:
3
- metadata.gz: dd0f1be48de070c84ac6a59fb206218df94e8a73a6a1148d3b65ec7bb498fa70
4
- data.tar.gz: 7478925f96c8a85c52ca9a4b9e48417425877f08afbbf2b847a09a72e061dd5d
3
+ metadata.gz: bd9aa0c3f133e294fecba1a04b8b3fb817029f5caef8449e00544e6b5f1e78f9
4
+ data.tar.gz: 7cca11025865ec7ed9e4cfd40223df969e2edbeae16809559ed10a9fae678056
5
5
  SHA512:
6
- metadata.gz: 5b2f0e8ed50629189f149bbd4a06b0f2f72973e68280d1e895eb16e0a638bcd99d608d5b6572e3487e1d9f7264936afc711065fb8d6c2e7dee63c88009914724
7
- data.tar.gz: c3f980b31ed8e10654a7a7c3326bb25ccebb00e58f30cc63d1a83244a0dd699bfe05d7527b2c7746b235edf075bcb1f84ce69db0a6ec5d4a861cabb4a5415a8f
6
+ metadata.gz: a1d1308b98007926b078afb54e43906f613366236997f563141a56b9a7852d6d98a682fe920e5d9855c46233a04e71123cee8e7e5a6b46820cc22de5d2cd9859
7
+ data.tar.gz: e494f012eb58a10268227e3a445bc0ae2d592f023f2eb0d9fb57133d444bb507b8b5ec428018a8f7e01020e06b547593b1f41b208e8146ba136963e7fee99b03
data/html2doc.gemspec CHANGED
@@ -28,9 +28,10 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency "base64"
30
30
  spec.add_dependency "htmlentities", "~> 4.3.4"
31
+ spec.add_dependency "lutaml-model", "~> 0.7.0"
31
32
  spec.add_dependency "metanorma-utils", ">= 1.9.0"
32
33
  spec.add_dependency "mime-types"
33
- spec.add_dependency "nokogiri", "~> 1.16.8"
34
+ spec.add_dependency "nokogiri", "~> 1.18.3"
34
35
  spec.add_dependency "plane1converter", "~> 0.0.1"
35
36
  spec.add_dependency "plurimath", "~> 0.9.0"
36
37
  spec.add_dependency "thread_safe"
@@ -2,22 +2,27 @@ require "uuidtools"
2
2
 
3
3
  class Html2Doc
4
4
  def footnotes(docxml)
5
- i = 1
5
+ #i = 1
6
+ indexes = {}
7
+ @footnote_idx = 1
6
8
  fn = []
7
9
  docxml.xpath("//a").each do |a|
8
- next unless process_footnote_link(docxml, a, i, fn)
9
-
10
- i += 1
10
+ process_footnote_link(docxml, a, indexes, fn) or next
11
+ #i += 1
11
12
  end
12
- process_footnote_texts(docxml, fn)
13
+ process_footnote_texts(docxml, fn, indexes)
13
14
  end
14
15
 
15
- def process_footnote_texts(docxml, footnotes)
16
+ # Currently cannot deal with separate footnote containers in each chapter
17
+ # We may eventually need to support that
18
+ def process_footnote_texts(docxml, footnotes, indexes)
16
19
  body = docxml.at("//body")
17
20
  list = body.add_child("<div style='mso-element:footnote-list'/>")
18
- footnotes.each_with_index do |f, i|
19
- fn = list.first.add_child(footnote_container(docxml, i + 1))
21
+ footnotes.each do |f|
22
+ #require 'debug'; binding.b
23
+ fn = list.first.add_child(footnote_container(docxml, indexes[f["id"]]))
20
24
  f.parent = fn.first
25
+ f["id"] = ""
21
26
  footnote_div_to_p(f)
22
27
  end
23
28
  footnote_cleanup(docxml)
@@ -47,14 +52,17 @@ class Html2Doc
47
52
  DIV
48
53
  end
49
54
 
50
- def process_footnote_link(docxml, elem, idx, footnote)
51
- return false unless footnote?(elem)
52
-
55
+ def process_footnote_link(docxml, elem, indexes, footnote)
56
+ footnote?(elem) or return false
53
57
  href = elem["href"].gsub(/^#/, "")
58
+ #require "debug"; binding.b
54
59
  note = docxml.at("//*[@name = '#{href}' or @id = '#{href}']")
55
- return false if note.nil?
56
-
57
- set_footnote_link_attrs(elem, idx)
60
+ note.nil? and return false
61
+ unless indexes[href]
62
+ indexes[href] = @footnote_idx
63
+ @footnote_idx += 1
64
+ end
65
+ set_footnote_link_attrs(elem, indexes[href])
58
66
  if elem.at("./span[@class = 'MsoFootnoteReference']")
59
67
  process_footnote_link1(elem)
60
68
  else elem.children = FN
@@ -73,7 +81,7 @@ class Html2Doc
73
81
  end
74
82
 
75
83
  def transform_footnote_text(note)
76
- note["id"] = ""
84
+ #note["id"] = ""
77
85
  note.xpath(".//div").each { |div| div.replace(div.children) }
78
86
  note.xpath(".//aside | .//p").each do |p|
79
87
  p.name = "p"
@@ -1,3 +1,3 @@
1
1
  class Html2Doc
2
- VERSION = "1.8.9".freeze
2
+ VERSION = "1.9.0".freeze
3
3
  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: 1.8.9
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-17 00:00:00.000000000 Z
11
+ date: 2025-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.3.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: lutaml-model
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.7.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.7.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: metanorma-utils
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +86,14 @@ dependencies:
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 1.16.8
89
+ version: 1.18.3
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 1.16.8
96
+ version: 1.18.3
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: plane1converter
85
99
  requirement: !ruby/object:Gem::Requirement