Skip to content

Commit 98d0db6

Browse files
committed
move admonition delimiter to Presentation XML, admonition name/paragraph split to HTML: metanorma/isodoc#613
1 parent bf67e9f commit 98d0db6

File tree

4 files changed

+29
-55
lines changed

4 files changed

+29
-55
lines changed

Gemfile.devel

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

lib/isodoc/iso/base_convert.rb

+4-29
Original file line numberDiff line numberDiff line change
@@ -78,43 +78,18 @@ def table_th_center(docxml)
7878
end
7979
end
8080

81-
def admonition_parse(node, out)
82-
type = node["type"]
83-
name = admonition_name(node, type)
84-
out.div id: node["id"], class: admonition_class(node) do |div|
85-
if node.first_element_child.name == "p"
86-
admonition_p_parse(node, div, name)
87-
else
88-
admonition_parse1(node, div, name)
89-
end
90-
end
91-
end
92-
9381
def admonition_class(node)
9482
if node["type"] == "editorial" then "zzHelp"
9583
else super
9684
end
9785
end
9886

99-
def admonition_parse1(node, div, name)
100-
div.p do |p|
101-
admonition_name_parse(node, p, name) if name
102-
end
103-
node.children.each { |n| parse(n, div) unless n.name == "name" }
104-
end
105-
106-
def admonition_p_parse(node, div, name)
107-
div.p do |p|
108-
admonition_name_parse(node, p, name) if name
109-
node.first_element_child.children.each { |n| parse(n, p) }
110-
end
111-
node.element_children[1..].each { |n| parse(n, div) }
87+
def admonition_p_parse(node, div)
88+
admonition_name_in_first_para(node, div)
11289
end
11390

114-
# TODO to presentation XML
115-
def admonition_name_parse(_node, div, name)
116-
name.children.each { |n| parse(n, div) }
117-
div << " &#x2014; "
91+
def admonition_name_para_delim(para)
92+
para << " "
11893
end
11994

12095
def figure_name_parse(_node, div, name)

lib/isodoc/iso/presentation_xml_convert.rb

+9-13
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ def clause(docxml)
102102

103103
def admonition1(elem)
104104
super
105-
admonition_inline_name(elem)
106105
admonition_outside_clauses(elem)
107106
end
108107

@@ -118,18 +117,6 @@ def wrap_in_bold(cell)
118117
cell.children.each { |p| wrap_in_bold(p) }
119118
end
120119

121-
# TODO keep name, and append em-dash within it
122-
def admonition_inline_name(elem)
123-
n = elem.at(ns("./name")) or return
124-
if (p = n.next_element) && p&.name == "p"
125-
p.add_first_child admonition_name(to_xml(n.remove.children))
126-
end
127-
end
128-
129-
def admonition_name(xml)
130-
"#{xml} &#x2014; "
131-
end
132-
133120
def bibrender_formattedref(formattedref, xml)
134121
%w(techreport standard).include? xml["type"] and return
135122
super
@@ -238,6 +225,15 @@ def render_identifier(ident)
238225
ret
239226
end
240227

228+
def admonition_delim(elem)
229+
require "debug"; binding.b
230+
if elem.at("./*[not(self::xmlns:name)]")&.name == "p"
231+
" &#x2014; "
232+
else
233+
""
234+
end
235+
end
236+
241237
include Init
242238
end
243239
end

spec/isodoc/blocks_spec.rb

+12-11
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,11 @@
185185
OUTPUT
186186
expect(Xml::C14n.format(strip_guid(IsoDoc::Iso::PresentationXMLConvert
187187
.new(presxml_options)
188-
.convert("test", input, true)))).to be_equivalent_to Xml::C14n.format(presxml)
188+
.convert("test", input, true))))
189+
.to be_equivalent_to Xml::C14n.format(presxml)
189190
expect(Xml::C14n.format(IsoDoc::Iso::HtmlConvert.new({})
190-
.convert("test", presxml, true))).to be_equivalent_to Xml::C14n.format(html)
191+
.convert("test", presxml, true)))
192+
.to be_equivalent_to Xml::C14n.format(html)
191193
output = IsoDoc::Iso::WordConvert.new({}).convert("test", presxml, true)
192194
expect(Xml::C14n.format(output
193195
.sub(/^.*<body/m, "<body").sub(%r{</body>.*$}m, "</body>")))
@@ -214,8 +216,8 @@
214216
</clause>
215217
<foreword displayorder="2"><title>Foreword</title>
216218
<admonition id="_" type="caution">
217-
<p id='_'>
218-
CAUTION — Only use paddy or parboiled rice for the
219+
<name>CAUTION — </name>
220+
<p id='_'>Only use paddy or parboiled rice for the
219221
determination of husked rice yield.
220222
</p>
221223
<p id="_">Para 2.</p>
@@ -264,7 +266,7 @@
264266
</clause>
265267
<foreword displayorder="2"><title>Foreword</title>
266268
<admonition id="_" type="caution">
267-
<name>CAUTION</name>
269+
<name>CAUTION<</name>
268270
</admonition>
269271
</foreword>
270272
</preface>
@@ -311,7 +313,7 @@
311313
<div>
312314
<h1 class='ForewordTitle'>Foreword</h1>
313315
<div id='_' class='Admonition'>
314-
<p>Title — </p>
316+
<p class="AdmonitionTitle" style="text-align:center;">Title</p>
315317
<div class="ul_wrap">
316318
<ul>
317319
<li>List</li>
@@ -352,8 +354,8 @@
352354
<sections>
353355
<title>A</title>
354356
<admonition id="_" type="important" displayorder="2">
357+
<name><strong>IMPORTANT —</strong></name>
355358
<p id="_">
356-
<strong>IMPORTANT — </strong>
357359
<strong>The electronic file of this document contains colours which are considered to be useful for the correct understanding of the &lt;document&gt;.</strong>
358360
</p>
359361
</admonition>
@@ -388,8 +390,8 @@
388390
</clause>
389391
<foreword displayorder="2"><title>Foreword</title>
390392
<admonition id="_" type="editorial">
391-
<p id='_'>EDITORIAL NOTE —
392-
Only use paddy or parboiled rice for the
393+
<name>EDITORIAL NOTE —</name>
394+
<p id="_">Only use paddy or parboiled rice for the
393395
determination of husked rice yield.
394396
</p>
395397
<p id="_">Para 2.</p>
@@ -403,8 +405,7 @@
403405
<div>
404406
<h1 class='ForewordTitle'>Foreword</h1>
405407
<div id='_' class='zzHelp'>
406-
<p>EDITORIAL NOTE —
407-
Only use paddy or parboiled rice for the
408+
<p>EDITORIAL NOTE — Only use paddy or parboiled rice for the
408409
determination of husked rice yield.
409410
</p>
410411
<p id='_'>Para 2.</p>

0 commit comments

Comments
 (0)