isodoc 2.1.2.1 → 2.1.3
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/lib/isodoc/class_utils.rb +16 -0
- data/lib/isodoc/function/utils.rb +4 -0
- data/lib/isodoc/presentation_function/block.rb +7 -3
- data/lib/isodoc/presentation_function/image.rb +1 -1
- data/lib/isodoc/presentation_function/inline.rb +0 -8
- data/lib/isodoc/presentation_function/section.rb +1 -1
- data/lib/isodoc/presentation_function/xrefs.rb +1 -3
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/inline.rb +7 -2
- data/lib/isodoc/xref.rb +1 -1
- data/lib/isodoc-yaml/i18n-ar.yaml +1 -0
- data/lib/isodoc-yaml/i18n-de.yaml +1 -0
- data/lib/isodoc-yaml/i18n-en.yaml +1 -0
- data/lib/isodoc-yaml/i18n-es.yaml +1 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +1 -0
- data/lib/isodoc-yaml/i18n-ru.yaml +1 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bf48bda8bc7d17d20a766f93c30bcf9f6e7e597497f8663f2c96ff292ada4f5
|
4
|
+
data.tar.gz: 7efd7f5c3aff9ee37fc631eecd1a564213ab56f92780807d1dff2b17e05c402b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 449d645dc7a4caaf2cd778dedfa4bb995344c3c83b076abbe4ea971b32d6fc9515ee7ae1140d76dfbc5f2c01220513979ea239c095fc2037b84263996a728e4f
|
7
|
+
data.tar.gz: 2031af0175ba1ba995fe3cca887180fa0e0d097dcfd6e2afb51eb7dc60ad8934bfbf4fc17dd9f91f1f2fba8e63e46efd8cee7a2fb2e9693d3f3f804ef432f662
|
data/lib/isodoc/class_utils.rb
CHANGED
@@ -62,5 +62,21 @@ module IsoDoc
|
|
62
62
|
end
|
63
63
|
xml.root.children.to_xml
|
64
64
|
end
|
65
|
+
|
66
|
+
def nearest_block_parent(node)
|
67
|
+
until %w(p title td th name formula li dt dd sourcecode pre quote
|
68
|
+
note example)
|
69
|
+
.include?(node.name)
|
70
|
+
node = node.parent
|
71
|
+
end
|
72
|
+
node
|
73
|
+
end
|
74
|
+
|
75
|
+
# node is at the start of sentence in a Metanorma XML context
|
76
|
+
def start_of_sentence(node)
|
77
|
+
prec = nearest_block_parent(node).xpath("./descendant-or-self::text()") &
|
78
|
+
node.xpath("./preceding::text()")
|
79
|
+
prec.empty? || /(?!<[^.].)\.\s+$/.match(prec.map(&:text).join)
|
80
|
+
end
|
65
81
|
end
|
66
82
|
end
|
@@ -11,6 +11,10 @@ module IsoDoc
|
|
11
11
|
self.class.ns(xpath)
|
12
12
|
end
|
13
13
|
|
14
|
+
def start_of_sentence(node)
|
15
|
+
self.class.start_of_sentence(node)
|
16
|
+
end
|
17
|
+
|
14
18
|
def insert_tab(out, count)
|
15
19
|
tab = %w(Hans Hant).include?(@script) ? " " : "  "
|
16
20
|
[1..count].each { out << tab }
|
@@ -8,6 +8,10 @@ module IsoDoc
|
|
8
8
|
text.capitalize
|
9
9
|
end
|
10
10
|
|
11
|
+
def block_delim
|
12
|
+
" — "
|
13
|
+
end
|
14
|
+
|
11
15
|
def prefix_name(node, delim, number, elem)
|
12
16
|
return if number.nil? || number.empty?
|
13
17
|
|
@@ -31,7 +35,7 @@ module IsoDoc
|
|
31
35
|
return if labelled_ancestor(elem)
|
32
36
|
|
33
37
|
lbl = @xrefs.anchor(elem["id"], :label, false) or return
|
34
|
-
prefix_name(elem,
|
38
|
+
prefix_name(elem, block_delim,
|
35
39
|
l10n("#{lower2cap @i18n.figure} #{lbl}"), "name")
|
36
40
|
end
|
37
41
|
|
@@ -60,7 +64,7 @@ module IsoDoc
|
|
60
64
|
else
|
61
65
|
l10n("#{@i18n.example} #{n[:label]}")
|
62
66
|
end
|
63
|
-
prefix_name(elem,
|
67
|
+
prefix_name(elem, block_delim, lbl, "name")
|
64
68
|
end
|
65
69
|
|
66
70
|
def note(docxml)
|
@@ -130,7 +134,7 @@ module IsoDoc
|
|
130
134
|
return if elem["unnumbered"] && !elem.at(ns("./name"))
|
131
135
|
|
132
136
|
n = @xrefs.anchor(elem["id"], :label, false)
|
133
|
-
prefix_name(elem,
|
137
|
+
prefix_name(elem, block_delim, l10n("#{lower2cap @i18n.table} #{n}"),
|
134
138
|
"name")
|
135
139
|
end
|
136
140
|
|
@@ -32,7 +32,7 @@ module IsoDoc
|
|
32
32
|
return if elem.at(ns("./figure")) && !elem.at(ns("./name"))
|
33
33
|
|
34
34
|
lbl = @xrefs.anchor(elem["id"], :label, false) or return
|
35
|
-
prefix_name(elem,
|
35
|
+
prefix_name(elem, block_delim,
|
36
36
|
l10n("#{lower2cap @i18n.figure} #{lbl}"), "name")
|
37
37
|
end
|
38
38
|
|
@@ -3,14 +3,6 @@ require_relative "xrefs"
|
|
3
3
|
|
4
4
|
module IsoDoc
|
5
5
|
class PresentationXMLConvert < ::IsoDoc::Convert
|
6
|
-
def nearest_block_parent(node)
|
7
|
-
until %w(p title td th name formula li dt dd sourcecode pre)
|
8
|
-
.include?(node.name)
|
9
|
-
node = node.parent
|
10
|
-
end
|
11
|
-
node
|
12
|
-
end
|
13
|
-
|
14
6
|
def non_locality_elems(node)
|
15
7
|
node.children.reject do |c|
|
16
8
|
%w{locality localityStack location}.include? c.name
|
@@ -177,7 +177,7 @@ module IsoDoc
|
|
177
177
|
|
178
178
|
def toc(docxml)
|
179
179
|
docxml.xpath(ns("//toc//xref[text()]")).each do |x|
|
180
|
-
lbl = @xrefs.
|
180
|
+
lbl = @xrefs.anchor(x["target"], :label) or next
|
181
181
|
x.children.first.previous = "#{lbl}<tab/>"
|
182
182
|
end
|
183
183
|
end
|
@@ -105,9 +105,7 @@ module IsoDoc
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def capitalise_xref1(node, linkend)
|
108
|
-
|
109
|
-
node.xpath("./preceding::text()")
|
110
|
-
if prec.empty? || /(?!<[^.].)\.\s+$/.match(prec.map(&:text).join)
|
108
|
+
if start_of_sentence(node)
|
111
109
|
Common::case_with_markup(linkend, "capital", @script)
|
112
110
|
else linkend
|
113
111
|
end
|
data/lib/isodoc/version.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
module WordFunction
|
3
3
|
module Body
|
4
|
-
def section_break(body)
|
4
|
+
def section_break(body, continuous: false)
|
5
5
|
body.p do |p|
|
6
|
-
|
6
|
+
if continuous
|
7
|
+
p.br **{ clear: "all", style: "page-break-before:auto;"\
|
8
|
+
"mso-break-type:section-break" }
|
9
|
+
else
|
10
|
+
p.br **{ clear: "all", class: "section" }
|
11
|
+
end
|
7
12
|
end
|
8
13
|
end
|
9
14
|
|
data/lib/isodoc/xref.rb
CHANGED
@@ -52,7 +52,7 @@ module IsoDoc
|
|
52
52
|
|
53
53
|
# extract names for all anchors, xref and label
|
54
54
|
def parse(docxml)
|
55
|
-
amend_preprocess(docxml) if
|
55
|
+
amend_preprocess(docxml) if @parse_settings.empty?
|
56
56
|
initial_anchor_names(docxml)
|
57
57
|
back_anchor_names(docxml)
|
58
58
|
# preempt clause notes with all other types of note (ISO default)
|
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: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciimath
|
@@ -504,7 +504,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
504
504
|
- !ruby/object:Gem::Version
|
505
505
|
version: '0'
|
506
506
|
requirements: []
|
507
|
-
rubygems_version: 3.3.
|
507
|
+
rubygems_version: 3.3.16
|
508
508
|
signing_key:
|
509
509
|
specification_version: 4
|
510
510
|
summary: Convert documents in IsoDoc into Word and HTML in AsciiDoc.
|