metanorma-csa 1.8.9 → 1.8.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7aefe79c1f9cb7bfad232959f298be205d970ac1502093b58af0aaf9436478d
4
- data.tar.gz: 8c4e27f9ca23412d6add815c971b0051ab280bd93d1f1418ae1743d7c3ef65af
3
+ metadata.gz: 535e26923fac74da1e84685f312a1fb35b1a3fedd763f26cb2297b0c37a834ec
4
+ data.tar.gz: fdf62f0bf68fd064ba5b71fc13765c6bc7e49a3c3c6298771c85554c7f39eab0
5
5
  SHA512:
6
- metadata.gz: 321c6a9aca508161b1aba80939fd09a63bc81b4073eacd597b2ed3ad3edb7381d4848778c114224fe81efd2bb7051cfc52791658ab5fa386797f3a8ce833d3a5
7
- data.tar.gz: 48bdcfb288a3697149f7031e38c26c2f80d5353927b6e3f2c2a9c8deedcbfceedafac68db4f0b281dac26294e99fdf7b3bf4ff05eaa23e74d469f0bd1f86c6de
6
+ metadata.gz: '075165019c0f2e2a7b76c81b219058c92a16d4f2b225982d2c5eccf74d2f27881e6cacef7e69ede64ec3c51584ae12e658e7e81b3f54b11aadb5081367d04fa4'
7
+ data.tar.gz: e280c5fd4fc6a77fc1e4210d4e0670a3736ee6aecea82d3cc44cc828aef2902bcf9f516735779e524afb27db052fc396b5e278cf3aae83633322a85568022e65
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'asciidoctor'
4
- require 'metanorma-generic'
5
- require 'isodoc/csa/html_convert'
6
- require 'isodoc/csa/pdf_convert'
7
- require 'isodoc/csa/word_convert'
8
- require 'isodoc/csa/presentation_xml_convert'
9
- require 'metanorma/csa'
10
- require 'fileutils'
3
+ require "asciidoctor"
4
+ require "metanorma-generic"
5
+ require "isodoc/csa/html_convert"
6
+ require "isodoc/csa/pdf_convert"
7
+ require "isodoc/csa/word_convert"
8
+ require "isodoc/csa/presentation_xml_convert"
9
+ require "metanorma/csa"
10
+ require "fileutils"
11
11
 
12
12
  module Asciidoctor
13
13
  module Csa
14
14
  class Converter < ::Asciidoctor::Generic::Converter
15
- XML_ROOT_TAG = "csa-standard".freeze
16
- XML_NAMESPACE = "https://www.metanorma.org/ns/csa".freeze
15
+ XML_ROOT_TAG = "csa-standard"
16
+ XML_NAMESPACE = "https://www.metanorma.org/ns/csa"
17
17
 
18
18
  register_for "csa"
19
19
 
@@ -21,46 +21,47 @@ module Asciidoctor
21
21
  Metanorma::Csa.configuration
22
22
  end
23
23
 
24
- def personal_role(node, c, suffix)
24
+ def personal_role(node, contrib, suffix)
25
25
  role = node.attr("role#{suffix}")&.downcase || "full author"
26
- c.role **{ type: role == "editor" ? "editor" : "author" } do |r|
26
+ contrib.role **{ type: role == "editor" ? "editor" : "author" } do |r|
27
27
  r.description role.strip.gsub(/\s/, "-")
28
28
  end
29
29
  end
30
30
 
31
31
  def metadata_committee(node, xml)
32
32
  return unless node.attr("technical-committee")
33
+
33
34
  xml.editorialgroup do |a|
34
35
  a.committee node.attr("technical-committee"),
35
- **attr_code(type: node.attr("technical-committee-type"))
36
+ **attr_code(type: node.attr("technical-committee-type"))
36
37
  i = 2
37
- while node.attr("technical-committee_#{i}") do
38
+ while node.attr("technical-committee_#{i}")
38
39
  a.committee node.attr("technical-committee_#{i}"),
39
- **attr_code(type: node.attr("technical-committee-type_#{i}"))
40
+ **attr_code(type: node.attr("technical-committee-type_#{i}"))
40
41
  i += 1
41
42
  end
42
43
  end
43
44
  end
44
45
 
45
- def title_validate(root)
46
+ def title_validate(_root)
46
47
  nil
47
48
  end
48
49
 
49
50
  def outputs(node, ret)
50
- File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
51
- presentation_xml_converter(node).convert(@filename + ".xml")
52
- html_converter(node).convert(@filename + ".presentation.xml",
53
- nil, false, "#{@filename}.html")
54
- doc_converter(node).convert(@filename + ".presentation.xml",
55
- nil, false, "#{@filename}.doc")
56
- pdf_converter(node)&.convert(@filename + ".presentation.xml",
57
- nil, false, "#{@filename}.pdf")
51
+ File.open("#{@filename}.xml", "w:UTF-8") { |f| f.write(ret) }
52
+ presentation_xml_converter(node).convert("#{@filename}.xml")
53
+ html_converter(node).convert("#{@filename}.presentation.xml",
54
+ nil, false, "#{@filename}.html")
55
+ doc_converter(node).convert("#{@filename}.presentation.xml",
56
+ nil, false, "#{@filename}.doc")
57
+ pdf_converter(node)&.convert("#{@filename}.presentation.xml",
58
+ nil, false, "#{@filename}.pdf")
58
59
  end
59
60
 
60
- def sections_cleanup(x)
61
+ def sections_cleanup(xml)
61
62
  super
62
- x.xpath("//*[@inline-header]").each do |h|
63
- h.delete('inline-header')
63
+ xml.xpath("//*[@inline-header]").each do |h|
64
+ h.delete("inline-header")
64
65
  end
65
66
  end
66
67
 
@@ -74,13 +75,13 @@ module Asciidoctor
74
75
  r["type"] == "author" or next
75
76
  role = r.at("./description").text
76
77
  %w{full-author contributor staff reviewer}.include?(role) or
77
- @log.add("Document Attributes", nil,
78
- "#{role} is not a recognised role")
78
+ @log.add("Document Attributes", nil,
79
+ "#{role} is not a recognised role")
79
80
  end
80
81
  end
81
82
 
82
- def style(n, t)
83
- return
83
+ def style(_node, _text)
84
+ nil
84
85
  end
85
86
 
86
87
  def html_converter(node)
@@ -89,6 +90,7 @@ module Asciidoctor
89
90
 
90
91
  def pdf_converter(node)
91
92
  return if node.attr("no-pdf")
93
+
92
94
  IsoDoc::Csa::PdfConvert.new(html_extract_attributes(node))
93
95
  end
94
96
 
@@ -32,6 +32,18 @@
32
32
  <ref name="DocumentType"/>
33
33
  </element>
34
34
  </define>
35
+ <define name="section-title">
36
+ <element name="title">
37
+ <zeroOrMore>
38
+ <ref name="TextElement"/>
39
+ </zeroOrMore>
40
+ </element>
41
+ <zeroOrMore>
42
+ <element name="variant-title">
43
+ <ref name="TypedTitleString"/>
44
+ </element>
45
+ </zeroOrMore>
46
+ </define>
35
47
  <define name="hyperlink">
36
48
  <element name="link">
37
49
  <attribute name="target">
@@ -158,15 +170,17 @@
158
170
  <data type="boolean"/>
159
171
  </attribute>
160
172
  </optional>
161
- <attribute name="type">
162
- <choice>
163
- <value>roman</value>
164
- <value>alphabet</value>
165
- <value>arabic</value>
166
- <value>roman_upper</value>
167
- <value>alphabet_upper</value>
168
- </choice>
169
- </attribute>
173
+ <optional>
174
+ <attribute name="type">
175
+ <choice>
176
+ <value>roman</value>
177
+ <value>alphabet</value>
178
+ <value>arabic</value>
179
+ <value>roman_upper</value>
180
+ <value>alphabet_upper</value>
181
+ </choice>
182
+ </attribute>
183
+ </optional>
170
184
  <oneOrMore>
171
185
  <ref name="li"/>
172
186
  </oneOrMore>
@@ -86,12 +86,12 @@
86
86
  <fo:flow flow-name="xsl-region-body">
87
87
 
88
88
  <fo:block-container width="136mm" margin-bottom="12pt">
89
- <fo:block font-size="36pt" font-weight="bold" color="rgb(54, 59, 74)">
89
+ <fo:block font-size="36pt" font-weight="bold" color="rgb(54, 59, 74)" role="H1">
90
90
  <xsl:value-of select="/csa:csa-standard/csa:bibdata/csa:title[@language = 'en']"/>
91
91
  </fo:block>
92
92
  </fo:block-container>
93
93
 
94
- <fo:block font-size="26pt" color="rgb(55, 60, 75)">
94
+ <fo:block font-size="26pt" color="rgb(55, 60, 75)" role="H2">
95
95
  <xsl:value-of select="/csa:csa-standard/csa:bibdata/csa:title[@language = 'en' and @type = 'subtitle']"/>
96
96
  </fo:block>
97
97
 
@@ -145,7 +145,7 @@
145
145
  <xsl:with-param name="name" select="'title-acknowledgements'"/>
146
146
  </xsl:call-template>
147
147
  </xsl:variable>
148
- <fo:block font-size="26pt" margin-bottom="18pt"><xsl:value-of select="$title-acknowledgements"/></fo:block>
148
+ <fo:block font-size="26pt" margin-bottom="18pt" role="H1"><xsl:value-of select="$title-acknowledgements"/></fo:block>
149
149
 
150
150
  <xsl:variable name="persons">
151
151
  <xsl:for-each select="/csa:csa-standard/csa:bibdata/csa:contributor[csa:person]">
@@ -206,11 +206,11 @@
206
206
  <xsl:with-param name="name" select="'title-toc'"/>
207
207
  </xsl:call-template>
208
208
  </xsl:variable>
209
- <fo:block font-size="26pt" color="black" margin-top="2pt" margin-bottom="30pt"><xsl:value-of select="$title-toc"/></fo:block>
209
+ <fo:block font-size="26pt" color="black" margin-top="2pt" margin-bottom="30pt" role="H1"><xsl:value-of select="$title-toc"/></fo:block>
210
210
 
211
- <fo:block margin-left="-3mm">
211
+ <fo:block margin-left="-3mm" role="TOC">
212
212
  <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
213
- <fo:block>
213
+ <fo:block role="TOCI">
214
214
  <fo:list-block>
215
215
  <xsl:attribute name="provisional-distance-between-starts">
216
216
  <xsl:choose>
@@ -315,7 +315,10 @@
315
315
 
316
316
 
317
317
  <xsl:template match="csa:license-statement//csa:title">
318
- <fo:block text-align="center" font-weight="bold" margin-top="4pt">
318
+ <xsl:variable name="level">
319
+ <xsl:call-template name="getLevel"/>
320
+ </xsl:variable>
321
+ <fo:block text-align="center" font-weight="bold" margin-top="4pt" role="H{$level}">
319
322
  <xsl:apply-templates/>
320
323
  </fo:block>
321
324
  </xsl:template>
@@ -336,7 +339,10 @@
336
339
  </xsl:template>
337
340
 
338
341
  <xsl:template match="csa:copyright-statement//csa:title">
339
- <fo:block font-weight="bold" text-align="center">
342
+ <xsl:variable name="level">
343
+ <xsl:call-template name="getLevel"/>
344
+ </xsl:variable>
345
+ <fo:block font-weight="bold" text-align="center" role="H{$level}">
340
346
  <xsl:apply-templates/>
341
347
  </fo:block>
342
348
  </xsl:template>
@@ -366,7 +372,10 @@
366
372
  </xsl:template>
367
373
 
368
374
  <xsl:template match="csa:legal-statement//csa:title">
369
- <fo:block text-align="center" font-weight="bold" padding-top="2mm" margin-bottom="6pt">
375
+ <xsl:variable name="level">
376
+ <xsl:call-template name="getLevel"/>
377
+ </xsl:variable>
378
+ <fo:block text-align="center" font-weight="bold" padding-top="2mm" margin-bottom="6pt" role="H{$level}">
370
379
  <xsl:apply-templates/>
371
380
  </fo:block>
372
381
  </xsl:template>
@@ -402,8 +411,9 @@
402
411
  <xsl:otherwise>black</xsl:otherwise>
403
412
  </xsl:choose>
404
413
  </xsl:variable>
405
- <fo:block font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always" color="{$color}">
414
+ <fo:block font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always" color="{$color}" role="H{$level}">
406
415
  <xsl:apply-templates/>
416
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
407
417
  </fo:block>
408
418
  </xsl:template>
409
419
 
@@ -454,6 +464,7 @@
454
464
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
455
465
  <xsl:attribute name="color"><xsl:value-of select="$color"/></xsl:attribute>
456
466
  <xsl:attribute name="line-height">120%</xsl:attribute>
467
+ <xsl:attribute name="role">H<xsl:value-of select="$level"/></xsl:attribute>
457
468
 
458
469
  <xsl:if test="$level = 2">
459
470
  <fo:inline padding-right="1mm">
@@ -462,7 +473,8 @@
462
473
  </xsl:if>
463
474
 
464
475
  <xsl:apply-templates/>
465
-
476
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
477
+
466
478
  </xsl:element>
467
479
 
468
480
  </xsl:template>
@@ -718,7 +730,10 @@
718
730
  <xsl:otherwise>12pt</xsl:otherwise>
719
731
  </xsl:choose>
720
732
  </xsl:variable>
721
- <fo:block font-size="{$font-size}">
733
+ <xsl:variable name="levelTerm">
734
+ <xsl:call-template name="getLevelTermName"/>
735
+ </xsl:variable>
736
+ <fo:block font-size="{$font-size}" role="H{$levelTerm}">
722
737
  <fo:block font-weight="bold" keep-with-next="always">
723
738
  <xsl:apply-templates select="ancestor::csa:term/csa:name" mode="presentation"/>
724
739
  </fo:block>
@@ -860,12 +875,12 @@
860
875
  </xsl:template>
861
876
 
862
877
  <xsl:template name="insertHeaderFooter">
863
- <fo:static-content flow-name="header">
878
+ <fo:static-content flow-name="header" role="artifact">
864
879
  <fo:block-container height="2.5mm" background-color="{$color-header-document}">
865
880
  <fo:block font-size="1pt"> </fo:block>
866
881
  </fo:block-container>
867
882
  </fo:static-content>
868
- <fo:static-content flow-name="footer">
883
+ <fo:static-content flow-name="footer" role="artifact">
869
884
  <fo:block-container font-family="Azo Sans Lt" font-size="10.1pt" height="100%" display-align="after"> <!-- 11.5pt -->
870
885
  <fo:block padding-bottom="13mm" text-align="right" color="rgb(144, 144, 144)">
871
886
  <fo:inline padding-right="7mm"><xsl:value-of select="$copyright"/></fo:inline>
@@ -1054,6 +1069,7 @@
1054
1069
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1055
1070
  <xsl:attribute name="white-space">pre</xsl:attribute>
1056
1071
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
1072
+ <xsl:attribute name="role">Code</xsl:attribute>
1057
1073
 
1058
1074
 
1059
1075
  <xsl:attribute name="font-family">Source Code Pro</xsl:attribute>
@@ -1080,8 +1096,13 @@
1080
1096
 
1081
1097
  </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
1082
1098
 
1083
- </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
1084
- </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
1099
+ </xsl:attribute-set><xsl:attribute-set name="subject-style">
1100
+ </xsl:attribute-set><xsl:attribute-set name="inherit-style">
1101
+ </xsl:attribute-set><xsl:attribute-set name="description-style">
1102
+ </xsl:attribute-set><xsl:attribute-set name="specification-style">
1103
+ </xsl:attribute-set><xsl:attribute-set name="measurement-target-style">
1104
+ </xsl:attribute-set><xsl:attribute-set name="verification-style">
1105
+ </xsl:attribute-set><xsl:attribute-set name="import-style">
1085
1106
  </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
1086
1107
 
1087
1108
 
@@ -1288,7 +1309,8 @@
1288
1309
 
1289
1310
 
1290
1311
 
1291
- </xsl:attribute-set><xsl:attribute-set name="quote-style">
1312
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1313
+ <xsl:attribute name="role">BlockQuote</xsl:attribute>
1292
1314
 
1293
1315
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1294
1316
  <xsl:attribute name="margin-left">13mm</xsl:attribute>
@@ -1494,7 +1516,9 @@
1494
1516
 
1495
1517
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1496
1518
 
1497
-
1519
+
1520
+
1521
+
1498
1522
 
1499
1523
 
1500
1524
 
@@ -3338,16 +3362,68 @@
3338
3362
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
3339
3363
  </xsl:call-template>
3340
3364
 
3365
+
3366
+
3341
3367
  <xsl:variable name="mathml">
3342
3368
  <xsl:apply-templates select="." mode="mathml"/>
3343
3369
  </xsl:variable>
3344
3370
  <fo:instream-foreign-object fox:alt-text="Math">
3345
3371
 
3346
3372
 
3373
+ <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
3374
+ <xsl:variable name="comment_text_">
3375
+ <xsl:choose>
3376
+ <xsl:when test="normalize-space($comment_text_following) != ''">
3377
+ <xsl:value-of select="$comment_text_following"/>
3378
+ </xsl:when>
3379
+ <xsl:otherwise>
3380
+ <xsl:value-of select="normalize-space(translate(.,' ⁢',' '))"/>
3381
+ </xsl:otherwise>
3382
+ </xsl:choose>
3383
+ </xsl:variable>
3384
+ <xsl:variable name="comment_text" select="java:org.metanorma.fop.Util.unescape($comment_text_)"/>
3385
+
3386
+ <xsl:if test="normalize-space($comment_text) != ''">
3387
+ <!-- put Mathin Alternate Text -->
3388
+ <xsl:attribute name="fox:alt-text">
3389
+ <xsl:value-of select="java:org.metanorma.fop.Util.unescape($comment_text)"/>
3390
+ </xsl:attribute>
3391
+ </xsl:if>
3392
+
3393
+ <xsl:variable name="mathml_content">
3394
+ <xsl:apply-templates select="." mode="mathml_actual_text"/>
3395
+ </xsl:variable>
3396
+ <!-- put MathML in Actual Text -->
3397
+ <xsl:attribute name="fox:actual-text">
3398
+ <xsl:value-of select="$mathml_content"/>
3399
+ </xsl:attribute>
3400
+
3401
+
3347
3402
  <!-- <xsl:copy-of select="."/> -->
3348
3403
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3349
3404
  </fo:instream-foreign-object>
3350
3405
  </fo:inline>
3406
+ </xsl:template><xsl:template match="mathml:*" mode="mathml_actual_text">
3407
+ <!-- <xsl:text>a+b</xsl:text> -->
3408
+ <xsl:text>&lt;</xsl:text>
3409
+ <xsl:value-of select="local-name()"/>
3410
+ <xsl:if test="local-name() = 'math'">
3411
+ <xsl:text> xmlns="http://www.w3.org/1998/Math/MathML"</xsl:text>
3412
+ </xsl:if>
3413
+ <xsl:for-each select="@*">
3414
+ <xsl:text> </xsl:text>
3415
+ <xsl:value-of select="local-name()"/>
3416
+ <xsl:text>="</xsl:text>
3417
+ <xsl:value-of select="."/>
3418
+ <xsl:text>"</xsl:text>
3419
+ </xsl:for-each>
3420
+ <xsl:text>&gt;</xsl:text>
3421
+ <xsl:apply-templates mode="mathml_actual_text"/>
3422
+ <xsl:text>&lt;/</xsl:text>
3423
+ <xsl:value-of select="local-name()"/>
3424
+ <xsl:text>&gt;</xsl:text>
3425
+ </xsl:template><xsl:template match="text()" mode="mathml_actual_text">
3426
+ <xsl:value-of select="normalize-space()"/>
3351
3427
  </xsl:template><xsl:template match="@*|node()" mode="mathml">
3352
3428
  <xsl:copy>
3353
3429
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
@@ -3409,7 +3485,10 @@
3409
3485
  </fo:block>
3410
3486
  <xsl:apply-templates/>
3411
3487
  </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3412
- <fo:inline><xsl:apply-templates/></fo:inline>
3488
+ <xsl:variable name="level">
3489
+ <xsl:call-template name="getLevel"/>
3490
+ </xsl:variable>
3491
+ <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
3413
3492
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
3414
3493
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
3415
3494
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -3444,9 +3523,10 @@
3444
3523
 
3445
3524
  </xsl:variable>
3446
3525
 
3526
+ <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
3447
3527
  <xsl:choose>
3448
- <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3449
- <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
3528
+ <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text>—</xsl:text></xsl:if></xsl:when>
3529
+ <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text> — </xsl:text></xsl:if></xsl:otherwise>
3450
3530
  </xsl:choose>
3451
3531
  <xsl:apply-templates/>
3452
3532
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
@@ -3594,7 +3674,10 @@
3594
3674
  </fo:block>
3595
3675
  </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
3596
3676
  <xsl:if test="normalize-space() != ''">
3597
- <fo:inline>
3677
+ <xsl:variable name="level">
3678
+ <xsl:call-template name="getLevelTermName"/>
3679
+ </xsl:variable>
3680
+ <fo:inline role="H{$level}">
3598
3681
  <xsl:apply-templates/>
3599
3682
  <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
3600
3683
  <xsl:text>.</xsl:text>
@@ -4225,6 +4308,7 @@
4225
4308
  </xsl:when>
4226
4309
  <xsl:otherwise>
4227
4310
  <xsl:apply-templates/>
4311
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
4228
4312
  </xsl:otherwise>
4229
4313
  </xsl:choose>
4230
4314
  </fo:block>
@@ -4365,14 +4449,6 @@
4365
4449
  <fo:block>
4366
4450
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4367
4451
  </fo:block>
4368
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4369
- <fo:block xsl:use-attribute-sets="requirement-subject-style">
4370
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4371
- </fo:block>
4372
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
4373
- <fo:block xsl:use-attribute-sets="requirement-inherit-style">
4374
- <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4375
- </fo:block>
4376
4452
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4377
4453
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4378
4454
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -4389,6 +4465,38 @@
4389
4465
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4390
4466
  <xsl:apply-templates/>
4391
4467
  </fo:block>
4468
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4469
+ <fo:block xsl:use-attribute-sets="subject-style">
4470
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4471
+ </fo:block>
4472
+ </xsl:template><xsl:template match="*[local-name() = 'subject']">
4473
+ <fo:block xsl:use-attribute-sets="subject-style">
4474
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4475
+ </fo:block>
4476
+ </xsl:template><xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit']">
4477
+ <fo:block xsl:use-attribute-sets="inherit-style">
4478
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4479
+ </fo:block>
4480
+ </xsl:template><xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description']">
4481
+ <fo:block xsl:use-attribute-sets="description-style">
4482
+ <xsl:apply-templates/>
4483
+ </fo:block>
4484
+ </xsl:template><xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification']">
4485
+ <fo:block xsl:use-attribute-sets="specification-style">
4486
+ <xsl:apply-templates/>
4487
+ </fo:block>
4488
+ </xsl:template><xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target']">
4489
+ <fo:block xsl:use-attribute-sets="measurement-target-style">
4490
+ <xsl:apply-templates/>
4491
+ </fo:block>
4492
+ </xsl:template><xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification']">
4493
+ <fo:block xsl:use-attribute-sets="verification-style">
4494
+ <xsl:apply-templates/>
4495
+ </fo:block>
4496
+ </xsl:template><xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import']">
4497
+ <fo:block xsl:use-attribute-sets="import-style">
4498
+ <xsl:apply-templates/>
4499
+ </fo:block>
4392
4500
  </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4393
4501
  <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
4394
4502
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
@@ -5259,6 +5367,9 @@
5259
5367
  <fo:block-container border="1pt solid black" width="50%">
5260
5368
  <fo:block> </fo:block>
5261
5369
  </fo:block-container>
5370
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
5371
+ <fo:inline padding-right="5mm"> </fo:inline>
5372
+ <fo:inline><xsl:apply-templates/></fo:inline>
5262
5373
  </xsl:template><xsl:template name="convertDate">
5263
5374
  <xsl:param name="date"/>
5264
5375
  <xsl:param name="format" select="'short'"/>
@@ -5497,6 +5608,26 @@
5497
5608
  <xsl:value-of select="$level"/>
5498
5609
  </xsl:otherwise>
5499
5610
  </xsl:choose>
5611
+ </xsl:template><xsl:template name="getLevelTermName">
5612
+ <xsl:choose>
5613
+ <xsl:when test="normalize-space(../@depth) != ''">
5614
+ <xsl:value-of select="../@depth"/>
5615
+ </xsl:when>
5616
+ <xsl:otherwise>
5617
+ <xsl:variable name="title_level_">
5618
+ <xsl:for-each select="../preceding-sibling::*[local-name() = 'title'][1]">
5619
+ <xsl:call-template name="getLevel"/>
5620
+ </xsl:for-each>
5621
+ </xsl:variable>
5622
+ <xsl:variable name="title_level" select="normalize-space($title_level_)"/>
5623
+ <xsl:choose>
5624
+ <xsl:when test="$title_level != ''"><xsl:value-of select="$title_level + 1"/></xsl:when>
5625
+ <xsl:otherwise>
5626
+ <xsl:call-template name="getLevel"/>
5627
+ </xsl:otherwise>
5628
+ </xsl:choose>
5629
+ </xsl:otherwise>
5630
+ </xsl:choose>
5500
5631
  </xsl:template><xsl:template name="split">
5501
5632
  <xsl:param name="pText" select="."/>
5502
5633
  <xsl:param name="sep" select="','"/>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Csa
3
- VERSION = "1.8.9".freeze
3
+ VERSION = "1.8.10".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-csa
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.9
4
+ version: 1.8.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2021-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-generic