Skip to content

Commit 4a67c8f

Browse files
authored
Merge pull request #242 from metanorma/fix/presxml-20241106
remove special processing of admonitions, it duplicates ISO: https://…
2 parents 703b6c3 + 43c15c5 commit 4a67c8f

7 files changed

+233
-290
lines changed

Gemfile.devel

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
gem "metanorma-standoc", git: "https://github.com/metanorma/metanorma-standoc", branch: "main"
2-
gem "isodoc", git: "https://github.com/metanorma/isodoc", branch: "main"
3-
gem "metanorma-iso", git: "https://github.com/metanorma/metanorma-iso", branch: "main"
2+
gem "isodoc", git: "https://github.com/metanorma/isodoc", branch: "fix/presxml-20241106"
3+
gem "metanorma-iso", git: "https://github.com/metanorma/metanorma-iso", branch: "fix/presxml-20241106"

lib/isodoc/jis/base_convert.rb

-8
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,6 @@ def termnote_parse(node, out)
1919
end
2020
end
2121

22-
# TODO to Presentation XML
23-
def admonition_name_parse(_node, div, name)
24-
div.span class: "note_label" do |s|
25-
name.children.each { |n| parse(n, s) }
26-
s << " &#x2014; "
27-
end
28-
end
29-
3022
def make_tr_attr(cell, row, totalrows, header, bordered)
3123
cell["border"] == "0" and bordered = false
3224
super

lib/isodoc/jis/html_convert.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,10 @@ def default_file_locations(_options)
3939
def make_table_footnote_target(out, fnid, fnref)
4040
attrs = { id: fnid, class: "TableFootnoteRef" }
4141
out.span do |s|
42+
# TODO to Presentation XML
4243
s << @i18n.table_footnote
4344
out.span **attrs do |a|
44-
a << "#{fnref})"
45+
a << fnref
4546
end
4647
insert_tab(s, 1)
4748
end

lib/isodoc/jis/presentation_xml_convert.rb

+10-1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ def tablesource(elem)
131131
elem.children = l10n("#{@i18n.source}: #{to_xml(elem.children).strip}")
132132
end
133133

134+
def table_fn1(_table, fnote, _idx)
135+
fnote["reference"] += ")"
136+
end
137+
134138
def bibdata_i18n(bibdata)
135139
super
136140
@lang == "ja" and date_translate(bibdata)
@@ -178,7 +182,12 @@ def localized_strings(docxml)
178182
a << ret
179183
end
180184

181-
def figure_fn(elem); end
185+
def figure_fn(elem)
186+
(elem.xpath(ns(".//fn")) - elem.xpath(ns("./name//fn")))
187+
.each do |f|
188+
table_fn1(elem, f, nil)
189+
end
190+
end
182191

183192
def omit_docid_prefix(prefix)
184193
prefix.nil? || prefix.empty? and return true

spec/isodoc/blocks_spec.rb

+80-145
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
<image src="rice_images/rice_image1.png" height="20" width="auto" id="_" mimetype="image/png"/>
7777
<image src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" height="20" width="auto" id="_" mimetype="image/png"/>
7878
<image src="data:application/xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9Ii4uLy4uLy4uL3hzbC9yZXNfZG9jL2ltZ2ZpbGUueHNsIj8+CjwhRE9DVFlQRSBpbWdmaWxlLmNvbnRlbnQgU1lTVEVNICIuLi8uLi8uLi9kdGQvdGV4dC5lbnQiPgo8aW1nZmlsZS5jb250ZW50IG1vZHVsZT0iZnVuZGFtZW50YWxzX29mX3Byb2R1Y3RfZGVzY3JpcHRpb25fYW5kX3N1cHBvcnQiIGZpbGU9ImFjdGlvbl9zY2hlbWFleHBnMS54bWwiPgo8aW1nIHNyYz0iYWN0aW9uX3NjaGVtYWV4cGcxLmdpZiI+CjxpbWcuYXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIyMTAsMTg2LDM0MywyMjciIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9iYXNpY19hdHRyaWJ1dGVfc2NoZW1hL2Jhc2ljX2F0dHJpYnV0ZV9zY2hlbWEueG1sIiAvPgo8aW1nLmFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMTAsMTAsOTYsNTEiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9hY3Rpb25fc2NoZW1hL2FjdGlvbl9zY2hlbWEueG1sIiAvPgo8aW1nLmFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMjEwLDI2NCwzNTgsMzA1IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvc3VwcG9ydF9yZXNvdXJjZV9zY2hlbWEvc3VwcG9ydF9yZXNvdXJjZV9zY2hlbWEueG1sIiAvPgo8L2ltZz4KPC9pbWdmaWxlLmNvbnRlbnQ+Cg==" height="20" width="auto" id="_" mimetype="application/xml"/>
79-
<fn reference="a">
79+
<fn reference="a)">
8080
<p id="_">
8181
The time
8282
<stem type="AsciiMath">t_90</stem>
@@ -146,85 +146,83 @@
146146
</iso-standard>
147147
OUTPUT
148148
html = <<~OUTPUT
149-
<html lang="en">
150-
<head/>
151-
<body lang="en">
152-
<div class="title-section">
153-
<p> </p>
154-
</div>
155-
<br/>
156-
<div class="prefatory-section">
157-
<p> </p>
158-
</div>
159-
<br/>
160-
<div class="main-section">
149+
<html lang="en">
150+
<head/>
151+
<body lang="en">
152+
<div class="title-section">
153+
<p> </p>
154+
</div>
161155
<br/>
162-
<div>
163-
<h1 class="ForewordTitle">Foreword</h1>
164-
<div align="right">
165-
<b>Units in mm</b>
166-
</div>
167-
<div id="figureA-1" class="figure" style="page-break-after: avoid;page-break-inside: avoid;">
168-
<img src="rice_images/rice_image1.png" height="20" width="30" title="titletxt" alt="alttext"/>
169-
<img src="rice_images/rice_image1.png" height="20" width="auto"/>
170-
<img src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" height="20" width="auto"/>
171-
<img src="data:application/xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9Ii4uLy4uLy4uL3hzbC9yZXNfZG9jL2ltZ2ZpbGUueHNsIj8+CjwhRE9DVFlQRSBpbWdmaWxlLmNvbnRlbnQgU1lTVEVNICIuLi8uLi8uLi9kdGQvdGV4dC5lbnQiPgo8aW1nZmlsZS5jb250ZW50IG1vZHVsZT0iZnVuZGFtZW50YWxzX29mX3Byb2R1Y3RfZGVzY3JpcHRpb25fYW5kX3N1cHBvcnQiIGZpbGU9ImFjdGlvbl9zY2hlbWFleHBnMS54bWwiPgo8aW1nIHNyYz0iYWN0aW9uX3NjaGVtYWV4cGcxLmdpZiI+CjxpbWcuYXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIyMTAsMTg2LDM0MywyMjciIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9iYXNpY19hdHRyaWJ1dGVfc2NoZW1hL2Jhc2ljX2F0dHJpYnV0ZV9zY2hlbWEueG1sIiAvPgo8aW1nLmFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMTAsMTAsOTYsNTEiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9hY3Rpb25fc2NoZW1hL2FjdGlvbl9zY2hlbWEueG1sIiAvPgo8aW1nLmFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMjEwLDI2NCwzNTgsMzA1IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvc3VwcG9ydF9yZXNvdXJjZV9zY2hlbWEvc3VwcG9ydF9yZXNvdXJjZV9zY2hlbWEueG1sIiAvPgo8L2ltZz4KPC9pbWdmaWxlLmNvbnRlbnQ+Cg==" height="20" width="auto"/>
172-
<a href="#_" class="TableFootnoteRef">a</a>
173-
<aside class="footnote">
174-
<div id="fn:_">
175-
<span>
176-
Footnote
177-
<span id="_" class="TableFootnoteRef">a)</span>
178-
 
179-
</span>
180-
<p id="_">
181-
The time
182-
<span class="stem">(#(t_90)#)</span>
183-
was estimated to be 18,2 min for this example.
184-
</p>
185-
</div>
186-
</aside>
187-
<p class="ListTitle">
188-
Key
189-
<a id="DL1"/>
190-
</p>
191-
<p class="dl">A: B</p>
192-
<div class="BlockSource">
193-
<p>
194-
[SOURCE:
195-
<a href="#ISO712">
196-
ISO 712, Section 1
197-
</a>
198-
&#x2014; with adjustments]
199-
</p>
200-
</div>
201-
<div id="note1" class="Note">
202-
<p>
203-
<span class="note_label">NOTE</span>
204-
 
205-
</p>
206-
This is a note
207-
</div>
208-
<p class="FigureTitle" style="text-align:center;">
209-
Figure 1 — Split-it-right
210-
<i>sample</i>
211-
divider
212-
<a class="FootnoteRef" href="#fn:1">
213-
<sup>1</sup>
214-
</a>
215-
</p>
216-
</div>
217-
<div id="figure-B" class="figure">
218-
<pre>A &lt;
219-
B</pre>
220-
<p class="FigureTitle" style="text-align:center;">Figure 2</p>
221-
</div>
222-
<div id="figure-C" class="figure">
223-
<pre>A &lt;
224-
B</pre>
225-
</div>
156+
<div class="prefatory-section">
157+
<p> </p>
226158
</div>
227-
<br/>
159+
<br/>
160+
<div class="main-section">
161+
<br/>
162+
<div>
163+
<h1 class="ForewordTitle">Foreword</h1>
164+
<div align="right">
165+
<b>Units in mm</b>
166+
</div>
167+
<div id="figureA-1" class="figure" style="page-break-after: avoid;page-break-inside: avoid;">
168+
<img src="rice_images/rice_image1.png" height="20" width="30" title="titletxt" alt="alttext"/>
169+
<img src="rice_images/rice_image1.png" height="20" width="auto"/>
170+
<img src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" height="20" width="auto"/>
171+
<img src="data:application/xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9Ii4uLy4uLy4uL3hzbC9yZXNfZG9jL2ltZ2ZpbGUueHNsIj8+CjwhRE9DVFlQRSBpbWdmaWxlLmNvbnRlbnQgU1lTVEVNICIuLi8uLi8uLi9kdGQvdGV4dC5lbnQiPgo8aW1nZmlsZS5jb250ZW50IG1vZHVsZT0iZnVuZGFtZW50YWxzX29mX3Byb2R1Y3RfZGVzY3JpcHRpb25fYW5kX3N1cHBvcnQiIGZpbGU9ImFjdGlvbl9zY2hlbWFleHBnMS54bWwiPgo8aW1nIHNyYz0iYWN0aW9uX3NjaGVtYWV4cGcxLmdpZiI+CjxpbWcuYXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIyMTAsMTg2LDM0MywyMjciIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9iYXNpY19hdHRyaWJ1dGVfc2NoZW1hL2Jhc2ljX2F0dHJpYnV0ZV9zY2hlbWEueG1sIiAvPgo8aW1nLmFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMTAsMTAsOTYsNTEiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9hY3Rpb25fc2NoZW1hL2FjdGlvbl9zY2hlbWEueG1sIiAvPgo8aW1nLmFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMjEwLDI2NCwzNTgsMzA1IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvc3VwcG9ydF9yZXNvdXJjZV9zY2hlbWEvc3VwcG9ydF9yZXNvdXJjZV9zY2hlbWEueG1sIiAvPgo8L2ltZz4KPC9pbWdmaWxlLmNvbnRlbnQ+Cg==" height="20" width="auto"/>
172+
<a href="#_" class="TableFootnoteRef">a)</a>
173+
<aside class="footnote">
174+
<div id="fn:_">
175+
<span>
176+
Footnote
177+
<span id="_" class="TableFootnoteRef">a)</span>
178+
 
179+
</span>
180+
<p id="_">
181+
The time
182+
<span class="stem">(#(t_90)#)</span>
183+
was estimated to be 18,2 min for this example.
184+
</p>
185+
</div>
186+
</aside>
187+
<p class="ListTitle">
188+
Key
189+
<a id="DL1"/>
190+
</p>
191+
<p class="dl">A: B</p>
192+
<div class="BlockSource">
193+
<p>
194+
[SOURCE:
195+
<a href="#ISO712">ISO 712, Section 1</a>
196+
— with adjustments]
197+
</p>
198+
</div>
199+
<div id="note1" class="Note">
200+
<p>
201+
<span class="note_label">NOTE</span>
202+
 
203+
</p>
204+
This is a note
205+
</div>
206+
<p class="FigureTitle" style="text-align:center;">
207+
Figure 1 — Split-it-right
208+
<i>sample</i>
209+
divider
210+
<a class="FootnoteRef" href="#fn:1">
211+
<sup>1</sup>
212+
</a>
213+
</p>
214+
</div>
215+
<div id="figure-B" class="figure">
216+
<pre>A &lt;
217+
B</pre>
218+
<p class="FigureTitle" style="text-align:center;">Figure 2</p>
219+
</div>
220+
<div id="figure-C" class="figure">
221+
<pre>A &lt;
222+
B</pre>
223+
</div>
224+
</div>
225+
<br/>
228226
<div id="_" class="TOC">
229227
<h1 class="IntroTitle">Contents</h1>
230228
</div>
@@ -371,7 +369,8 @@
371369
.convert("test", input, true).gsub("&lt;", "&#x3c;"))))
372370
.to be_equivalent_to Xml::C14n.format(presxml)
373371
expect(Xml::C14n.format(strip_guid(IsoDoc::Jis::HtmlConvert.new({})
374-
.convert("test", presxml, true)))).to be_equivalent_to Xml::C14n.format(html)
372+
.convert("test", presxml, true))))
373+
.to be_equivalent_to Xml::C14n.format(html)
375374
FileUtils.rm_rf "spec/assets/odf1.emf"
376375
expect(Xml::C14n.format(strip_guid(IsoDoc::Jis::WordConvert.new({})
377376
.convert("test", presxml, true)
@@ -519,7 +518,8 @@
519518
.convert("test", input, true).gsub("&lt;", "&#x3c;"))))
520519
.to be_equivalent_to Xml::C14n.format(presxml)
521520
expect(Xml::C14n.format(strip_guid(IsoDoc::Jis::HtmlConvert.new({})
522-
.convert("test", presxml, true)))).to be_equivalent_to Xml::C14n.format(html)
521+
.convert("test", presxml, true))))
522+
.to be_equivalent_to Xml::C14n.format(html)
523523
FileUtils.rm_rf "spec/assets/odf1.emf"
524524
expect(Xml::C14n.format(strip_guid(IsoDoc::Jis::WordConvert.new({})
525525
.convert("test", presxml, true)
@@ -528,71 +528,6 @@
528528
.to be_equivalent_to Xml::C14n.format(word)
529529
end
530530

531-
it "processes admonitions with titles" do
532-
input = <<~INPUT
533-
<iso-standard xmlns="http://riboseinc.com/isoxml">
534-
<preface><foreword>
535-
<admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution">
536-
<name>Title</name>
537-
<ul>
538-
<li>List</li>
539-
</ul>
540-
<p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
541-
</admonition>
542-
</foreword></preface>
543-
</iso-standard>
544-
INPUT
545-
presxml = <<~INPUT
546-
<iso-standard xmlns="http://riboseinc.com/isoxml" type='presentation'>
547-
<preface><foreword displayorder="1"><title>Foreword</title>
548-
<admonition id="_" type="caution">
549-
<name>Title</name>
550-
<ul>
551-
<li>List</li>
552-
</ul>
553-
<p id="_">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
554-
</admonition>
555-
</foreword>
556-
<clause type="toc" id="_" displayorder="2">
557-
<title depth="1">Contents</title>
558-
</clause>
559-
</preface>
560-
</iso-standard>
561-
INPUT
562-
output = <<~OUTPUT
563-
#{HTML_HDR}
564-
<br/>
565-
<div>
566-
<h1 class="ForewordTitle">Foreword</h1>
567-
<div id="_" class="Admonition">
568-
<p>
569-
<span class="note_label">Title — </span>
570-
</p>
571-
<div class="ul_wrap">
572-
<ul>
573-
<li>List</li>
574-
</ul>
575-
</div>
576-
<p id="_">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
577-
</div>
578-
</div>
579-
<br/>
580-
<div id="_" class="TOC">
581-
<h1 class="IntroTitle">Contents</h1>
582-
</div>
583-
</div>
584-
</body>
585-
</html>
586-
OUTPUT
587-
expect(Xml::C14n.format(strip_guid(IsoDoc::Jis::PresentationXMLConvert
588-
.new(presxml_options)
589-
.convert("test", input, true))))
590-
.to be_equivalent_to Xml::C14n.format(presxml)
591-
expect(Xml::C14n.format(IsoDoc::Jis::HtmlConvert.new({})
592-
.convert("test", presxml, true)))
593-
.to be_equivalent_to Xml::C14n.format(output)
594-
end
595-
596531
it "processes ordered lists" do
597532
input = <<~INPUT
598533
<iso-standard xmlns="http://riboseinc.com/isoxml">

0 commit comments

Comments
 (0)