metanorma-ogc 2.3.13 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isodoc/ogc/base_convert.rb +9 -18
  3. data/lib/isodoc/ogc/html/htmlstyle.css +9 -5
  4. data/lib/isodoc/ogc/html/htmlstyle.scss +2 -2
  5. data/lib/isodoc/ogc/html_convert.rb +2 -11
  6. data/lib/isodoc/ogc/i18n-en.yaml +11 -0
  7. data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +121 -61
  8. data/lib/isodoc/ogc/ogc.best-practice.xsl +121 -61
  9. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +121 -61
  10. data/lib/isodoc/ogc/ogc.community-practice.xsl +121 -61
  11. data/lib/isodoc/ogc/ogc.community-standard.xsl +121 -61
  12. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +121 -61
  13. data/lib/isodoc/ogc/ogc.draft-standard.xsl +121 -61
  14. data/lib/isodoc/ogc/ogc.engineering-report.xsl +121 -61
  15. data/lib/isodoc/ogc/ogc.other.xsl +121 -61
  16. data/lib/isodoc/ogc/ogc.policy.xsl +121 -61
  17. data/lib/isodoc/ogc/ogc.reference-model.xsl +121 -61
  18. data/lib/isodoc/ogc/ogc.release-notes.xsl +121 -61
  19. data/lib/isodoc/ogc/ogc.standard.xsl +121 -61
  20. data/lib/isodoc/ogc/ogc.test-suite.xsl +121 -61
  21. data/lib/isodoc/ogc/ogc.user-guide.xsl +121 -61
  22. data/lib/isodoc/ogc/ogc.white-paper.xsl +84 -57
  23. data/lib/isodoc/ogc/presentation_xml_convert.rb +25 -18
  24. data/lib/isodoc/ogc/sections.rb +4 -27
  25. data/lib/isodoc/ogc/word_convert.rb +3 -22
  26. data/lib/isodoc/ogc/xref.rb +17 -6
  27. data/lib/metanorma/ogc/boilerplate.adoc +2 -2
  28. data/lib/metanorma/ogc/converter.rb +6 -2
  29. data/lib/metanorma/ogc/isodoc.rng +26 -4
  30. data/lib/metanorma/ogc/version.rb +1 -1
  31. data/metanorma-ogc.gemspec +1 -1
  32. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4b80ca34778ebb3aa6ef73b99e9cc8bd8141274463b72b2a5c7621b4bc0130f
4
- data.tar.gz: f3aae9ea2c71624c583a9d0d2a51c20d4f6eba0930ce069edb07c04960cdc62f
3
+ metadata.gz: 5d4cd8698433670cb8dcbc3401345b4db09b559215d80264d5f87268b845051d
4
+ data.tar.gz: '09a1f9c9bb600fb387481388aaf366c70362bc64628056c71d827c5cf583b8cf'
5
5
  SHA512:
6
- metadata.gz: 4547583ca656d5b2e8ee63d68767b9cbaf4a2b8e0961712931002e31b20e31f816160f93299ba6f06ba1253f18c07683fa520d5dd4eef2b430cf2cecf9d56eed
7
- data.tar.gz: 146111072207a5e94d97e75e3bb7e701f03f9bf590fdaf0f345f0018857430a025bc3198ed2cd17514948d153a9b0dadf5cc980bb2f3e169010a450981e52e6b
6
+ metadata.gz: 7fc662db0f4187b8a889d742fc5218dfb5632258cb120249f308752d2fa623e6ad629cacaae52e43321ddeebb8253aa2f1ee0f8818b609dcb064f4e54a76a326
7
+ data.tar.gz: 4ba019984a2ca6514c0a75eba2f2f8bd52b21dd19af9e5af7172f9654ae787e74804566b8c914dc87472d796e5b06bc1bef205811365581e24ff299edb438099
@@ -65,7 +65,8 @@ module IsoDoc
65
65
 
66
66
  def middle_clause(_docxml)
67
67
  "//clause[parent::sections][not(@type = 'scope' or " \
68
- "@type = 'conformance')][not(descendant::terms)]"
68
+ "@type = 'conformance')][not(descendant::terms)]" \
69
+ "[not(descendant::references)]"
69
70
  end
70
71
 
71
72
  def is_clause?(name)
@@ -74,19 +75,6 @@ module IsoDoc
74
75
  super
75
76
  end
76
77
 
77
- def middle(isoxml, out)
78
- middle_title(isoxml, out)
79
- middle_admonitions(isoxml, out)
80
- i = scope isoxml, out, 0
81
- i = conformance isoxml, out, i
82
- i = norm_ref isoxml, out, i
83
- i = terms_defs isoxml, out, i
84
- i = symbols_abbrevs isoxml, out, i
85
- clause isoxml, out
86
- annex isoxml, out
87
- bibliography isoxml, out
88
- end
89
-
90
78
  def table_attrs(node)
91
79
  ret = super
92
80
  %w(recommendation requirement permission).include?(node["class"]) and
@@ -108,10 +96,13 @@ module IsoDoc
108
96
  end
109
97
 
110
98
  def para_class(node)
111
- return node["class"] if node["class"] &&
112
- node["class"] != "RecommendationLabel"
113
-
114
- super
99
+ if node["class"] == "RecommendationLabel"
100
+ node["class"] = nil
101
+ ret = super
102
+ node["class"] = "RecommendationLabel"
103
+ ret
104
+ else super
105
+ end
115
106
  end
116
107
 
117
108
  def ol_depth(node)
@@ -90,7 +90,7 @@ h1, h2, h3, h4, h5, h6 {
90
90
 
91
91
  blockquote, q {
92
92
  quotes: none; }
93
- blockquote:before, blockquote:after, q:before, q:after {
93
+ blockquote::before, blockquote::after, q::before, q::after {
94
94
  content: '';
95
95
  content: none; }
96
96
 
@@ -113,14 +113,18 @@ b, strong {
113
113
  div.document-stage-band, div.document-type-band {
114
114
  background-color: #333333; }
115
115
 
116
- a.FootnoteRef + a.FootnoteRef:before {
116
+ a.FootnoteRef + a.FootnoteRef::before {
117
117
  content: ", ";
118
118
  vertical-align: super; }
119
119
 
120
- a.TableFootnoteRef + a.TableFootnoteRef:before {
120
+ a.TableFootnoteRef + a.TableFootnoteRef::before {
121
121
  content: ", ";
122
122
  vertical-align: super; }
123
123
 
124
+ a.TableFootnoteRef, span.TableFootnoteRef,
125
+ a.FootnoteRef, span.FootnoteRef {
126
+ vertical-align: super; }
127
+
124
128
  .addition {
125
129
  color: blue; }
126
130
 
@@ -600,7 +604,7 @@ dl {
600
604
  #toc li a, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) li a {
601
605
  font-size: 14px; }
602
606
 
603
- #toc li:before, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) li:before {
607
+ #toc li::before, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) li::before {
604
608
  content: " ";
605
609
  display: none; }
606
610
 
@@ -851,7 +855,7 @@ ul, ol {
851
855
 
852
856
  ul > li {
853
857
  list-style: none; }
854
- ul > li:before {
858
+ ul > li::before {
855
859
  content: "\2014";
856
860
  display: inline-block;
857
861
  width: 1em;
@@ -72,7 +72,7 @@ dl {
72
72
  font-size: 14px;
73
73
  }
74
74
 
75
- li:before {
75
+ li::before {
76
76
  content: " ";
77
77
  display: none;
78
78
  }
@@ -271,7 +271,7 @@ ul {
271
271
  > li {
272
272
  list-style: none;
273
273
 
274
- &:before {
274
+ &::before {
275
275
  content: "\2014";
276
276
  display: inline-block;
277
277
  width: 1em;
@@ -6,9 +6,6 @@ require_relative "metadata"
6
6
 
7
7
  module IsoDoc
8
8
  module Ogc
9
- # A {Converter} implementation that generates HTML output, and a document
10
- # schema encapsulation of the document for validation
11
- #
12
9
  class HtmlConvert < IsoDoc::HtmlConvert
13
10
  def initialize(options)
14
11
  @libdir = File.dirname(__FILE__)
@@ -61,14 +58,8 @@ module IsoDoc
61
58
  end
62
59
 
63
60
  def make_body3(body, docxml)
64
- body.div class: "main-section" do |div3|
65
- @prefacenum = 0
66
- boilerplate docxml, div3
67
- front docxml, div3
68
- middle docxml, div3
69
- footnotes div3
70
- comments div3
71
- end
61
+ @prefacenum = 0
62
+ super
72
63
  end
73
64
 
74
65
  def authority_cleanup(docxml)
@@ -1,6 +1,7 @@
1
1
  admitted: ADMITTED
2
2
  foreword: Preface
3
3
  submitters: Submitters
4
+ contributors_clause: Contributors
4
5
  recommendationtest: Recommendation test
5
6
  requirementtest: Requirement test
6
7
  permissiontest: Permission test
@@ -11,6 +12,10 @@ abstracttest: Abstract test
11
12
  conformanceclass: Conformance class
12
13
  example: Example
13
14
  table_of_contents: Contents
15
+ toc_figures: List of Figures
16
+ toc_tables: List of Tables
17
+ toc_recommendations: List of Recommendations
18
+ table_of_figures: Table of Figures
14
19
  security_empty: No security considerations have been made for this document.
15
20
  internal_terms_boilerplate: |
16
21
  <p>This document uses the terms defined in <link target="https://portal.ogc.org/public_ogc/directives/directives.php">OGC Policy Directive 49</link>, which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this document and OGC documents do not use the equivalent phrases in the ISO/IEC Directives, Part 2.</p>
@@ -25,6 +30,12 @@ internal_external_terms_boilerplate: |
25
30
  <p>This document also uses terms defined in the OGC Standard for Modular specifications (<link target="https://portal.opengeospatial.org/files/?artifact_id=34762">OGC 08-131r3</link>), also known as the 'ModSpec'. The definitions of terms such as standard, specification, requirement, and conformance test are provided in the ModSpec.</p>
26
31
  <p>For the purposes of this document, the terms and definitions given in % and the following additionally apply.</p>
27
32
  term_defined_in: "(%)"
33
+ submission_date: Submission Date
34
+ approval_date: Approval Date
35
+ publication_date: Publication Date
36
+ author: Author
37
+ editor: Editor
38
+ contributor: Contributor
28
39
  stage_dict:
29
40
  draft: Draft
30
41
  work-item-draft: Work Item Draft
@@ -306,7 +306,12 @@
306
306
  <fo:block line-height="140%">
307
307
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:edition[normalize-space(@language) = '']"/>
308
308
  <fo:block>
309
- <fo:inline font-weight="bold">Submission Date: </fo:inline>
309
+ <fo:inline font-weight="bold">
310
+ <!-- Submission Date: -->
311
+ <xsl:call-template name="getLocalizedString">
312
+ <xsl:with-param name="key">submission_date</xsl:with-param>
313
+ </xsl:call-template><xsl:text>: </xsl:text>
314
+ </fo:inline>
310
315
  <xsl:choose>
311
316
  <xsl:when test="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'received']/ogc:on">
312
317
  <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'received']/ogc:on"/>
@@ -315,7 +320,12 @@
315
320
  </xsl:choose>
316
321
  </fo:block>
317
322
  <fo:block>
318
- <fo:inline font-weight="bold">Approval Date: </fo:inline>
323
+ <fo:inline font-weight="bold">
324
+ <!-- Approval Date: -->
325
+ <xsl:call-template name="getLocalizedString">
326
+ <xsl:with-param name="key">approval_date</xsl:with-param>
327
+ </xsl:call-template><xsl:text>: </xsl:text>
328
+ </fo:inline>
319
329
  <xsl:choose>
320
330
  <xsl:when test="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'issued']/ogc:on">
321
331
  <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'issued']/ogc:on"/>
@@ -324,14 +334,24 @@
324
334
  </xsl:choose>
325
335
  </fo:block>
326
336
  <fo:block>
327
- <fo:inline font-weight="bold">Publication Date: </fo:inline>
337
+ <fo:inline font-weight="bold">
338
+ <!-- Publication Date: -->
339
+ <xsl:call-template name="getLocalizedString">
340
+ <xsl:with-param name="key">publication_date</xsl:with-param>
341
+ </xsl:call-template><xsl:text>: </xsl:text>
342
+ </fo:inline>
328
343
  <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'published']/ogc:on"/>
329
344
  </fo:block>
330
345
 
331
346
  <fo:block margin-bottom="12pt">
332
347
  <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:person/ogc:name/ogc:completename">
333
348
  <fo:block>
334
- <fo:inline font-weight="bold">Author: </fo:inline>
349
+ <fo:inline font-weight="bold">
350
+ <!-- Author: -->
351
+ <xsl:call-template name="getLocalizedString">
352
+ <xsl:with-param name="key">author</xsl:with-param>
353
+ </xsl:call-template><xsl:text>: </xsl:text>
354
+ </fo:inline>
335
355
  <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:person/ogc:name/ogc:completename">
336
356
  <xsl:value-of select="."/>
337
357
  <xsl:if test="position() != last()">, </xsl:if>
@@ -340,7 +360,12 @@
340
360
  </xsl:if>
341
361
  <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='editor']/ogc:person/ogc:name/ogc:completename">
342
362
  <fo:block>
343
- <fo:inline font-weight="bold">Editor: </fo:inline>
363
+ <fo:inline font-weight="bold">
364
+ <!-- Editor: -->
365
+ <xsl:call-template name="getLocalizedString">
366
+ <xsl:with-param name="key">editor</xsl:with-param>
367
+ </xsl:call-template><xsl:text>: </xsl:text>
368
+ </fo:inline>
344
369
  <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='editor']/ogc:person/ogc:name/ogc:completename">
345
370
  <xsl:value-of select="."/>
346
371
  <xsl:if test="position() != last()">, </xsl:if>
@@ -349,7 +374,12 @@
349
374
  </xsl:if>
350
375
  <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='contributor']/ogc:person/ogc:name/ogc:completename">
351
376
  <fo:block>
352
- <fo:inline font-weight="bold">Contributor: </fo:inline>
377
+ <fo:inline font-weight="bold">
378
+ <!-- Contributor: -->
379
+ <xsl:call-template name="getLocalizedString">
380
+ <xsl:with-param name="key">contributor</xsl:with-param>
381
+ </xsl:call-template><xsl:text>: </xsl:text>
382
+ </fo:inline>
353
383
  <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='contributor']/ogc:person/ogc:name/ogc:completename">
354
384
  <xsl:value-of select="."/>
355
385
  <xsl:if test="position() != last()">, </xsl:if>
@@ -689,7 +719,10 @@
689
719
  <!-- add zero-width space (#x200B) before character '(' if preceding and following are word chars -->
690
720
  <xsl:variable name="content3" select="java:replaceAll(java:java.lang.String.new($content2), '(\w)(\()(\w)', '$1​$2$3')"/>
691
721
 
692
- <xsl:value-of select="translate($content3, $thin_space, ' ')"/>
722
+ <!-- replace sequence #x200B to one &#x200B -->
723
+ <xsl:variable name="content4" select="java:replaceAll(java:java.lang.String.new($content3), '\u200b{2,}', '​')"/>
724
+
725
+ <xsl:value-of select="translate($content4, $thin_space, ' ')"/>
693
726
  </xsl:template>
694
727
 
695
728
  <xsl:template match="node()" mode="sections">
@@ -1151,7 +1184,7 @@
1151
1184
  </xsl:if>
1152
1185
  </xsl:template>
1153
1186
 
1154
- <xsl:template match="*[local-name()='th']//text()" priority="2">
1187
+ <xsl:template match="*[local-name()='th']//text()[not(ancestor::ogc:fn)]" priority="2">
1155
1188
  <xsl:variable name="text">
1156
1189
  <xsl:call-template name="add-zero-spaces-java"/>
1157
1190
  </xsl:variable>
@@ -1613,21 +1646,32 @@
1613
1646
  <xsl:variable name="titles_">
1614
1647
 
1615
1648
  <!-- These titles of Table of contents renders different than determined in localized-strings -->
1616
- <title-toc lang="en">
1617
-
1649
+ <!-- <title-toc lang="en">
1650
+ <xsl:if test="$namespace = 'csd' or $namespace = 'ieee' or $namespace = 'iho' or $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'unece-rec'">
1618
1651
  <xsl:text>Contents</xsl:text>
1619
-
1620
- </title-toc>
1621
- <title-toc lang="fr">
1652
+ </xsl:if>
1653
+ <xsl:if test="$namespace = 'csa' or $namespace = 'm3d' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper'">
1654
+ <xsl:text>Table of Contents</xsl:text>
1655
+ </xsl:if>
1656
+ <xsl:if test="$namespace = 'gb'">
1657
+ <xsl:text>Table of contents</xsl:text>
1658
+ </xsl:if>
1659
+ </title-toc> -->
1660
+ <title-toc lang="en">Table of contents</title-toc>
1661
+ <!-- <title-toc lang="fr">
1622
1662
  <xsl:text>Sommaire</xsl:text>
1623
- </title-toc>
1624
- <title-toc lang="zh">
1625
-
1663
+ </title-toc> -->
1664
+ <!-- <title-toc lang="zh">
1665
+ <xsl:choose>
1666
+ <xsl:when test="$namespace = 'gb'">
1667
+ <xsl:text>目次</xsl:text>
1668
+ </xsl:when>
1669
+ <xsl:otherwise>
1626
1670
  <xsl:text>Contents</xsl:text>
1627
-
1628
- </title-toc>
1629
-
1630
- <title-descriptors lang="en">Descriptors</title-descriptors>
1671
+ </xsl:otherwise>
1672
+ </xsl:choose>
1673
+ </title-toc> -->
1674
+ <title-toc lang="zh">目次</title-toc>
1631
1675
 
1632
1676
  <title-part lang="en">
1633
1677
 
@@ -1643,20 +1687,6 @@
1643
1687
  <title-subpart lang="en">Sub-part #</title-subpart>
1644
1688
  <title-subpart lang="fr">Partie de sub #</title-subpart>
1645
1689
 
1646
- <title-list-tables lang="en">List of Tables</title-list-tables>
1647
-
1648
- <title-list-figures lang="en">List of Figures</title-list-figures>
1649
-
1650
- <title-table-figures lang="en">Table of Figures</title-table-figures>
1651
-
1652
- <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
1653
-
1654
- <title-summary lang="en">Summary</title-summary>
1655
-
1656
- <title-continued lang="ru">(продолжение)</title-continued>
1657
- <title-continued lang="en">(continued)</title-continued>
1658
- <title-continued lang="fr">(continué)</title-continued>
1659
-
1660
1690
  </xsl:variable>
1661
1691
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/>
1662
1692
 
@@ -1664,8 +1694,8 @@
1664
1694
  <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
1665
1695
  <xsl:value-of select="$toc_table_title"/>
1666
1696
  <xsl:if test="normalize-space($toc_table_title) = ''">
1667
- <xsl:call-template name="getTitle">
1668
- <xsl:with-param name="name" select="'title-list-tables'"/>
1697
+ <xsl:call-template name="getLocalizedString">
1698
+ <xsl:with-param name="key">toc_tables</xsl:with-param>
1669
1699
  </xsl:call-template>
1670
1700
  </xsl:if>
1671
1701
  </xsl:variable>
@@ -1674,8 +1704,8 @@
1674
1704
  <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
1675
1705
  <xsl:value-of select="$toc_figure_title"/>
1676
1706
  <xsl:if test="normalize-space($toc_figure_title) = ''">
1677
- <xsl:call-template name="getTitle">
1678
- <xsl:with-param name="name" select="'title-list-figures'"/>
1707
+ <xsl:call-template name="getLocalizedString">
1708
+ <xsl:with-param name="key">toc_figures</xsl:with-param>
1679
1709
  </xsl:call-template>
1680
1710
  </xsl:if>
1681
1711
  </xsl:variable>
@@ -1684,8 +1714,8 @@
1684
1714
  <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
1685
1715
  <xsl:value-of select="$toc_requirement_title"/>
1686
1716
  <xsl:if test="normalize-space($toc_requirement_title) = ''">
1687
- <xsl:call-template name="getTitle">
1688
- <xsl:with-param name="name" select="'title-list-recommendations'"/>
1717
+ <xsl:call-template name="getLocalizedString">
1718
+ <xsl:with-param name="key">toc_recommendations</xsl:with-param>
1689
1719
  </xsl:call-template>
1690
1720
  </xsl:if>
1691
1721
  </xsl:variable>
@@ -5547,6 +5577,9 @@
5547
5577
  <!-- END Definition List -->
5548
5578
  <!-- ===================== -->
5549
5579
 
5580
+ <!-- default: ignore title in sections/p -->
5581
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]" priority="3"/>
5582
+
5550
5583
  <!-- ========================= -->
5551
5584
  <!-- Rich text formatting -->
5552
5585
  <!-- ========================= -->
@@ -5627,7 +5660,7 @@
5627
5660
  <xsl:variable name="regex_url_start">^(http://|https://|www\.)?(.*)</xsl:variable>
5628
5661
  <xsl:template match="*[local-name()='tt']/text()" priority="2">
5629
5662
  <xsl:choose>
5630
- <xsl:when test="java:replaceAll(java:java.lang.String.new(.), '$2', '') != ''">
5663
+ <xsl:when test="java:replaceAll(java:java.lang.String.new(.), $regex_url_start, '$2') != ''">
5631
5664
  <!-- url -->
5632
5665
  <xsl:call-template name="add-zero-spaces-link-java"/>
5633
5666
  </xsl:when>
@@ -6089,10 +6122,13 @@
6089
6122
  </xsl:choose>
6090
6123
  </xsl:variable>
6091
6124
 
6125
+ <!-- replace sequence #x200B to one &#x200B -->
6126
+ <xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b{2,}', '​')"/>
6127
+
6092
6128
  <!-- replace sequence #x200B and space TO space -->
6093
- <xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b ', ' ')"/>
6129
+ <xsl:variable name="text11" select="java:replaceAll(java:java.lang.String.new($text10), '\u200b ', ' ')"/>
6094
6130
 
6095
- <xsl:value-of select="$text10"/>
6131
+ <xsl:value-of select="$text11"/>
6096
6132
  </xsl:template>
6097
6133
 
6098
6134
  <xsl:template name="add-zero-spaces-link-java">
@@ -6102,8 +6138,12 @@
6102
6138
  <xsl:variable name="url_continue" select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$2')"/>
6103
6139
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, comma, slash, @ -->
6104
6140
  <xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/|@)','$1​')"/>
6141
+
6142
+ <!-- replace sequence #x200B to one &#x200B -->
6143
+ <xsl:variable name="url2" select="java:replaceAll(java:java.lang.String.new($url), '\u200b{2,}', '​')"/>
6144
+
6105
6145
  <!-- remove zero-width space at the end -->
6106
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($url), '​$', '')"/>
6146
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($url2), '​$', '')"/>
6107
6147
  </xsl:template>
6108
6148
 
6109
6149
  <!-- add zero space after dash character (for table's entries) -->
@@ -7370,7 +7410,7 @@
7370
7410
 
7371
7411
  <xsl:call-template name="refine_note_block_style"/>
7372
7412
 
7373
- <fo:inline xsl:use-attribute-sets="note-name-style">
7413
+ <fo:inline xsl:use-attribute-sets="note-name-style" role="SKIP">
7374
7414
 
7375
7415
  <xsl:call-template name="refine_note-name-style"/>
7376
7416
 
@@ -7407,12 +7447,12 @@
7407
7447
  <xsl:variable name="num"><xsl:number/></xsl:variable>
7408
7448
  <xsl:choose>
7409
7449
  <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
7410
- <fo:inline xsl:use-attribute-sets="note-p-style">
7450
+ <fo:inline xsl:use-attribute-sets="note-p-style" role="SKIP">
7411
7451
  <xsl:apply-templates/>
7412
7452
  </fo:inline>
7413
7453
  </xsl:when>
7414
7454
  <xsl:otherwise>
7415
- <fo:block xsl:use-attribute-sets="note-p-style">
7455
+ <fo:block xsl:use-attribute-sets="note-p-style" role="SKIP">
7416
7456
  <xsl:apply-templates/>
7417
7457
  </fo:block>
7418
7458
  </xsl:otherwise>
@@ -7631,25 +7671,45 @@
7631
7671
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7632
7672
  <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7633
7673
 
7634
- <xsl:variable name="img_src">
7635
- <xsl:choose>
7636
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7637
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7638
- </xsl:choose>
7639
- </xsl:variable>
7674
+ <xsl:if test="@width != '' and @width != 'auto'">
7675
+ <xsl:attribute name="width">
7676
+ <xsl:value-of select="@width"/>
7677
+ </xsl:attribute>
7678
+ </xsl:if>
7679
+
7680
+ <xsl:if test="@height != '' and @height != 'auto'">
7681
+ <xsl:attribute name="height">
7682
+ <xsl:value-of select="@height"/>
7683
+ </xsl:attribute>
7684
+ </xsl:if>
7640
7685
 
7641
- <xsl:variable name="image_width_effective">
7686
+ <xsl:choose>
7687
+ <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
7688
+ <xsl:attribute name="scaling">non-uniform</xsl:attribute>
7689
+ </xsl:when>
7690
+ <xsl:otherwise>
7642
7691
 
7643
- <xsl:value-of select="$width_effective"/>
7692
+ <xsl:variable name="img_src">
7693
+ <xsl:choose>
7694
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7695
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7696
+ </xsl:choose>
7697
+ </xsl:variable>
7644
7698
 
7645
- </xsl:variable>
7699
+ <xsl:variable name="image_width_effective">
7646
7700
 
7647
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7648
- <xsl:if test="number($scale) &lt; 100">
7701
+ <xsl:value-of select="$width_effective"/>
7649
7702
 
7650
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7703
+ </xsl:variable>
7651
7704
 
7652
- </xsl:if>
7705
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7706
+ <xsl:if test="number($scale) &lt; 100">
7707
+
7708
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7709
+
7710
+ </xsl:if>
7711
+ </xsl:otherwise>
7712
+ </xsl:choose>
7653
7713
 
7654
7714
  </xsl:if>
7655
7715
 
@@ -11350,7 +11410,7 @@
11350
11410
  <xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
11351
11411
  <xsl:apply-templates mode="update_xml_step1"/>
11352
11412
  </xsl:template>
11353
- <xsl:template match="*[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11413
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]/*[local-name() = 'span'][@class] | *[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11354
11414
  <xsl:copy>
11355
11415
  <xsl:copy-of select="@*"/>
11356
11416
  <xsl:apply-templates mode="update_xml_step1"/>