isodoc 1.1.0 → 1.1.1
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/.github/workflows/macos.yml +6 -12
- data/.github/workflows/ubuntu.yml +18 -20
- data/.github/workflows/windows.yml +6 -12
- data/lib/isodoc/function/references.rb +28 -17
- data/lib/isodoc/function/to_word_html.rb +2 -2
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/xref/xref_sect_gen.rb +3 -7
- data/spec/isodoc/ref_spec.rb +1 -1
- data/spec/isodoc/section_spec.rb +52 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fe7dc7a4c361573ce166000c4b747853185889ed1385f6219da5ecd9bf33b73
|
4
|
+
data.tar.gz: 2da4bf7a5c8a282bdfee95b96b99322c246712405b429404d5accf3385f9b360
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62e7510c6f20ac7d8773d112bc25957c543097164e3b794dcc05d9b241be70317ea37295e9da8d3fcf61aec5597471091af2912277977db1fa266dd3f5351cae
|
7
|
+
data.tar.gz: 6c09ae0a60b767cd4d3dd4ce22a6df2609ea8d1a21f29863a5c5ca27283ebe5897f0d530bf89212dc7b8cd4788641f66d04d646a04189f9c3c379e058d3c50c7
|
data/.github/workflows/macos.yml
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
1
3
|
name: macos
|
2
4
|
|
3
5
|
on:
|
@@ -27,22 +29,14 @@ jobs:
|
|
27
29
|
uses: actions/setup-ruby@v1
|
28
30
|
with:
|
29
31
|
ruby-version: ${{ matrix.ruby }}
|
30
|
-
architecture: 'x64'
|
31
|
-
- name: Update gems
|
32
|
-
run: |
|
33
|
-
sudo gem install bundler --force
|
34
|
-
bundle install --jobs 4 --retry 3
|
35
|
-
- name: Use Node
|
36
|
-
uses: actions/setup-node@v1
|
37
|
-
with:
|
38
|
-
node-version: '12'
|
39
|
-
- name: Install Puppeteer
|
40
|
-
run: |
|
41
|
-
npm install -g puppeteer@3.0.1
|
42
32
|
- name: Install Inkscape
|
43
33
|
run: |
|
44
34
|
brew cask install inkscape
|
45
35
|
inkscape --version
|
36
|
+
- name: Update gems
|
37
|
+
run: |
|
38
|
+
sudo gem install bundler --force
|
39
|
+
bundle install --jobs 4 --retry 3
|
46
40
|
- name: Run specs
|
47
41
|
run: |
|
48
42
|
bundle exec rake
|
@@ -1,8 +1,12 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
1
3
|
name: ubuntu
|
2
4
|
|
3
5
|
on:
|
4
6
|
push:
|
5
7
|
branches: [ master ]
|
8
|
+
tags:
|
9
|
+
- '*'
|
6
10
|
pull_request:
|
7
11
|
paths-ignore:
|
8
12
|
- .github/workflows/macos.yml
|
@@ -27,38 +31,32 @@ jobs:
|
|
27
31
|
uses: actions/setup-ruby@v1
|
28
32
|
with:
|
29
33
|
ruby-version: ${{ matrix.ruby }}
|
30
|
-
architecture: 'x64'
|
31
|
-
- name: Update gems
|
32
|
-
run: |
|
33
|
-
gem install bundler
|
34
|
-
bundle install --jobs 4 --retry 3
|
35
|
-
- name: Use Node
|
36
|
-
uses: actions/setup-node@v1
|
37
|
-
with:
|
38
|
-
node-version: '12'
|
39
|
-
- name: Install Puppeteer
|
40
|
-
run: |
|
41
|
-
sudo apt-get update
|
42
|
-
sudo apt-get install libgbm1
|
43
|
-
npm install -g puppeteer@3.0.1
|
44
34
|
- name: Install Inkscape
|
45
35
|
run: |
|
46
36
|
sudo add-apt-repository ppa:inkscape.dev/stable
|
47
37
|
sudo apt update
|
48
38
|
sudo apt install inkscape
|
49
39
|
inkscape --version
|
40
|
+
- name: Update gems
|
41
|
+
run: |
|
42
|
+
gem install bundler
|
43
|
+
bundle install --jobs 4 --retry 3
|
50
44
|
- name: Run specs
|
51
45
|
run: |
|
52
46
|
bundle exec rake
|
53
|
-
- name: Trigger
|
54
|
-
if:
|
47
|
+
- name: Trigger repositories
|
48
|
+
if: matrix.ruby == '2.6'
|
55
49
|
env:
|
56
|
-
GH_USERNAME:
|
57
|
-
GH_ACCESS_TOKEN: ${{ secrets.
|
50
|
+
GH_USERNAME: metanorma-ci
|
51
|
+
GH_ACCESS_TOKEN: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
|
58
52
|
run: |
|
59
53
|
curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
|
60
54
|
[[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
|
61
|
-
|
55
|
+
CLIENT_PAYLOAD=$(cat <<EOF
|
56
|
+
"{ "ref": "${GITHUB_REF}", "repo": "${GITHUB_REPOSITORY}" }"
|
57
|
+
EOF
|
58
|
+
)
|
59
|
+
for repo in $REPOS
|
62
60
|
do
|
63
|
-
sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY
|
61
|
+
sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "$CLIENT_PAYLOAD"
|
64
62
|
done
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
1
3
|
name: windows
|
2
4
|
|
3
5
|
on:
|
@@ -27,24 +29,16 @@ jobs:
|
|
27
29
|
uses: actions/setup-ruby@v1
|
28
30
|
with:
|
29
31
|
ruby-version: ${{ matrix.ruby }}
|
30
|
-
|
32
|
+
- name: Install Inkscape
|
33
|
+
run: |
|
34
|
+
choco install --no-progress -y inkscape
|
35
|
+
inkscape --version
|
31
36
|
- name: Update gems
|
32
37
|
shell: pwsh
|
33
38
|
run: |
|
34
39
|
gem install bundler
|
35
40
|
bundle config --local path vendor/bundle
|
36
41
|
bundle install --jobs 4 --retry 3
|
37
|
-
- name: Use Node
|
38
|
-
uses: actions/setup-node@v1
|
39
|
-
with:
|
40
|
-
node-version: '12'
|
41
|
-
- name: Install Puppeteer
|
42
|
-
run: |
|
43
|
-
npm install -g puppeteer@3.0.1
|
44
|
-
- name: Install Inkscape
|
45
|
-
run: |
|
46
|
-
choco install --no-progress -y inkscape
|
47
|
-
inkscape --version
|
48
42
|
- name: Run specs
|
49
43
|
run: |
|
50
44
|
bundle exec rake
|
@@ -16,22 +16,24 @@ module IsoDoc::Function
|
|
16
16
|
identifiers = render_identifier(ids)
|
17
17
|
if biblio then ref_entry_code(ref, ordinal, identifiers, ids)
|
18
18
|
else
|
19
|
-
ref << "#{identifiers[0] || identifiers[1]}
|
20
|
-
ref << "#{identifiers[1]}
|
19
|
+
ref << "#{identifiers[0] || identifiers[1]}"
|
20
|
+
ref << ", #{identifiers[1]}" if identifiers[0] && identifiers[1]
|
21
21
|
end
|
22
|
+
ref << ", " unless biblio && !identifiers[1]
|
22
23
|
reference_format(b, ref)
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
27
|
def std_bibitem_entry(list, b, ordinal, biblio)
|
27
28
|
list.p **attr_code(iso_bibitem_entry_attrs(b, biblio)) do |ref|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
identifiers = render_identifier(bibitem_ref_code(b))
|
30
|
+
if biblio then ref_entry_code(ref, ordinal, identifiers, nil)
|
31
|
+
else
|
32
|
+
ref << "#{identifiers[0] || identifiers[1]}"
|
33
|
+
ref << ", #{identifiers[1]}" if identifiers[0] && identifiers[1]
|
34
|
+
end
|
33
35
|
date_note_process(b, ref)
|
34
|
-
ref << ", "
|
36
|
+
ref << ", " unless biblio && !identifiers[1]
|
35
37
|
reference_format(b, ref)
|
36
38
|
end
|
37
39
|
end
|
@@ -40,9 +42,7 @@ module IsoDoc::Function
|
|
40
42
|
# else, use both ordinal, as prefix, and t
|
41
43
|
def ref_entry_code(r, ordinal, t, id)
|
42
44
|
prefix_bracketed_ref(r, t[0] || "[#{ordinal}]")
|
43
|
-
|
44
|
-
r << "#{t[1]}, "
|
45
|
-
end
|
45
|
+
t[1] and r << "#{t[1]}"
|
46
46
|
end
|
47
47
|
|
48
48
|
def pref_ref_code(b)
|
@@ -153,22 +153,33 @@ module IsoDoc::Function
|
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
156
|
+
def norm_ref_xpath
|
157
|
+
"//bibliography/references[@normative = 'true'] | "\
|
158
|
+
"//bibliography/clause[.//references[@normative = 'true']]"
|
159
|
+
end
|
160
|
+
|
156
161
|
def norm_ref(isoxml, out, num)
|
157
|
-
|
158
|
-
f = isoxml.at(ns(q)) or return num
|
162
|
+
f = isoxml.at(ns(norm_ref_xpath)) or return num
|
159
163
|
out.div do |div|
|
160
164
|
num = num + 1
|
161
165
|
clause_name(num, @normref_lbl, div, nil)
|
162
|
-
|
166
|
+
if f.name == "clause"
|
167
|
+
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
168
|
+
else
|
169
|
+
biblio_list(f, div, false)
|
170
|
+
end
|
163
171
|
end
|
164
172
|
num
|
165
173
|
end
|
166
174
|
|
167
|
-
|
168
|
-
"//bibliography/references
|
175
|
+
def bibliography_xpath
|
176
|
+
"//bibliography/clause[.//references]"\
|
177
|
+
"[not(.//references[@normative = 'true'])] | "\
|
178
|
+
"//bibliography/references[@normative = 'false']"
|
179
|
+
end
|
169
180
|
|
170
181
|
def bibliography(isoxml, out)
|
171
|
-
f = isoxml.at(ns(
|
182
|
+
f = isoxml.at(ns(bibliography_xpath)) || return
|
172
183
|
page_break(out)
|
173
184
|
out.div do |div|
|
174
185
|
div.h1 @bibliography_lbl, **{ class: "Section3" }
|
@@ -18,7 +18,7 @@ module IsoDoc::Function
|
|
18
18
|
|
19
19
|
def init_file(filename, debug)
|
20
20
|
filepath = Pathname.new(filename)
|
21
|
-
filename = filepath.sub_ext('').to_s
|
21
|
+
filename = filepath.sub_ext('').sub(/\.presentation$/, "").to_s
|
22
22
|
dir = "#{filename}_files"
|
23
23
|
unless debug
|
24
24
|
Dir.mkdir(dir, 0777) unless File.exists?(dir)
|
@@ -45,7 +45,7 @@ module IsoDoc::Function
|
|
45
45
|
head.style do |style|
|
46
46
|
@standardstylesheet.open
|
47
47
|
stylesheet = @standardstylesheet.read.
|
48
|
-
gsub("FILENAME", File.basename(filename))
|
48
|
+
gsub("FILENAME", File.basename(filename).sub(/\.presentation$/, ""))
|
49
49
|
style.comment "\n#{stylesheet}\n"
|
50
50
|
end
|
51
51
|
end
|
data/lib/isodoc/version.rb
CHANGED
@@ -5,9 +5,7 @@ module IsoDoc::XrefGen
|
|
5
5
|
annex_names(c, (65 + i).chr.to_s)
|
6
6
|
end
|
7
7
|
docxml.xpath(
|
8
|
-
|
9
|
-
"//bibliography/references[@normative = 'false']"
|
10
|
-
)).each do |b|
|
8
|
+
ns(@klass.bibliography_xpath)).each do |b|
|
11
9
|
preface_names(b)
|
12
10
|
end
|
13
11
|
docxml.xpath(ns("//bibitem[not(ancestor::bibitem)]")).each do |ref|
|
@@ -20,9 +18,7 @@ module IsoDoc::XrefGen
|
|
20
18
|
# potentially overridden in middle_section_asset_names()
|
21
19
|
sequential_asset_names(d.xpath(ns("//preface/*")))
|
22
20
|
n = section_names(d.at(ns("//clause[title = 'Scope']")), 0, 1)
|
23
|
-
n = section_names(d.at(ns(
|
24
|
-
"//bibliography/clause[.//references[@normative = 'true']] | "\
|
25
|
-
"//bibliography/references[@normative = 'true']")), n, 1)
|
21
|
+
n = section_names(d.at(ns(@klass.norm_ref_xpath)), n, 1)
|
26
22
|
n = section_names(d.at(ns("//sections/terms | "\
|
27
23
|
"//sections/clause[descendant::terms]")), n, 1)
|
28
24
|
n = section_names(d.at(ns("//sections/definitions")), n, 1)
|
@@ -65,7 +61,7 @@ module IsoDoc::XrefGen
|
|
65
61
|
|
66
62
|
def middle_section_asset_names(d)
|
67
63
|
middle_sections = "//clause[title = 'Scope'] | "\
|
68
|
-
"
|
64
|
+
"#{@klass.norm_ref_xpath} | "\
|
69
65
|
"//sections/terms | //preface/* | "\
|
70
66
|
"//sections/definitions | //clause[parent::sections]"
|
71
67
|
sequential_asset_names(d.xpath(ns(middle_sections)))
|
data/spec/isodoc/ref_spec.rb
CHANGED
@@ -231,7 +231,7 @@ RSpec.describe IsoDoc do
|
|
231
231
|
<i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i>
|
232
232
|
</p>
|
233
233
|
<p id='ref12' class='Biblio'>
|
234
|
-
|
234
|
+
Citn  IETF RFC 20, CitationWorks. 2019.
|
235
235
|
<i>How to cite a reference</i>
|
236
236
|
.
|
237
237
|
</p>
|
data/spec/isodoc/section_spec.rb
CHANGED
@@ -1109,5 +1109,57 @@ OUTPUT
|
|
1109
1109
|
OUTPUT
|
1110
1110
|
end
|
1111
1111
|
|
1112
|
+
it "processes clauses containing normative references" do
|
1113
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1114
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1115
|
+
<bibliography>
|
1116
|
+
<clause id="D" obligation="informative">
|
1117
|
+
<title>Bibliography</title>
|
1118
|
+
<references id="E" obligation="informative" normative="false">
|
1119
|
+
<title>Bibliography Subsection 1</title>
|
1120
|
+
</references>
|
1121
|
+
<references id="F" obligation="informative" normative="false">
|
1122
|
+
<title>Bibliography Subsection 2</title>
|
1123
|
+
</references>
|
1124
|
+
</clause>
|
1125
|
+
<clause id="A" obligation="informative"><title>First References</title>
|
1126
|
+
<references id="B" obligation="informative" normative="true">
|
1127
|
+
<title>Normative References 1</title>
|
1128
|
+
</references>
|
1129
|
+
<references id="C" obligation="informative" normative="false">
|
1130
|
+
<title>Normative References 2</title>
|
1131
|
+
</references>
|
1132
|
+
</clause>
|
1133
|
+
|
1134
|
+
</bibliography>
|
1135
|
+
INPUT
|
1136
|
+
#{HTML_HDR}
|
1137
|
+
<p class='zzSTDTitle1'/>
|
1138
|
+
<div>
|
1139
|
+
<h1>1.  Normative references</h1>
|
1140
|
+
<div>
|
1141
|
+
<h2>1.1.  Normative References 1</h2>
|
1142
|
+
</div>
|
1143
|
+
<div>
|
1144
|
+
<h2>1.2.  Normative References 2</h2>
|
1145
|
+
</div>
|
1146
|
+
</div>
|
1147
|
+
<br/>
|
1148
|
+
<div>
|
1149
|
+
<h1 class='Section3'>Bibliography</h1>
|
1150
|
+
<div>
|
1151
|
+
<h2 class='Section3'>Bibliography Subsection 1</h2>
|
1152
|
+
</div>
|
1153
|
+
<div>
|
1154
|
+
<h2 class='Section3'>Bibliography Subsection 2</h2>
|
1155
|
+
</div>
|
1156
|
+
</div>
|
1157
|
+
</div>
|
1158
|
+
</body>
|
1159
|
+
</html>
|
1160
|
+
|
1161
|
+
OUTPUT
|
1162
|
+
end
|
1163
|
+
|
1112
1164
|
|
1113
1165
|
end
|
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: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciimath
|