metanorma-ogc 2.3.13 → 2.4.0

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.
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"/>