metanorma-csa 2.2.5 → 2.2.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7dfce83c3b89acac0ccebac4fa674de69935512279e96342e089d7eb8765e83
4
- data.tar.gz: f2207a0524acd460bb56833ac2e5d3b18f56ea215d6b8d5af17c9384831dce45
3
+ metadata.gz: 2184d97c9a8c1557149239d93b3f6494a55f36d96ced20809e050bd86a735eaa
4
+ data.tar.gz: d0125b0fbb112f4912a4e4cb6e88d23a78dfc31c6a9185f88445a5064948b664
5
5
  SHA512:
6
- metadata.gz: 7ed87e25311faf2aae6d46a0b1e6e7e7436b6f34c29f4fdeb4fa877352b781b8073561f5a4cb86c12aeff6ed9f8b7dde323144f1ca19e892db0f95f509db517a
7
- data.tar.gz: 3674ecdd8c03bd2714427c3c128c6be8525933c78c9b952cd092a8faddca4ef40f194288985ab85020b3e8ca1a23e39cb6070f773c5a4f3b5e132fd2086093a9
6
+ metadata.gz: bf66ecb04c727773f03abab6381fe68d5fd95f632acc8d61e418c50fe53449e02dc4feea1a733b37433499d9bdd9d2fa52d39e0c3babbc211a5ebd8f22818935
7
+ data.tar.gz: 7efa80a1016c8491366ce957533b188ed3aa8677b3d716d66a5622a8f9dc0656eb97e1f3532a1312452d62266add79c6ba36a9f8e67c710a0794e260e0632f43
@@ -1342,6 +1342,7 @@
1342
1342
  <xsl:attribute-set name="term-name-style">
1343
1343
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1344
1344
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1345
+
1345
1346
  </xsl:attribute-set>
1346
1347
 
1347
1348
  <xsl:attribute-set name="figure-block-style">
@@ -2305,7 +2306,7 @@
2305
2306
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2306
2307
  </xsl:when>
2307
2308
  <xsl:otherwise>
2308
- <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer and note that renders separaterely -->
2309
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'dl') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note and dl which render separaterely -->
2309
2310
  </xsl:otherwise>
2310
2311
  </xsl:choose>
2311
2312
 
@@ -2808,7 +2809,7 @@
2808
2809
  <xsl:param name="colwidths"/>
2809
2810
  <xsl:param name="colgroup"/>
2810
2811
 
2811
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2812
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2812
2813
 
2813
2814
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
2814
2815
 
@@ -2876,6 +2877,7 @@
2876
2877
 
2877
2878
  <!-- except gb and bsi -->
2878
2879
 
2880
+ <xsl:apply-templates select="../*[local-name()='dl']"/>
2879
2881
  <xsl:apply-templates select="../*[local-name()='note']"/>
2880
2882
 
2881
2883
  <xsl:variable name="isDisplayRowSeparator">
@@ -3001,7 +3003,7 @@
3001
3003
  <!-- ===================== -->
3002
3004
  <!-- Table's row processing -->
3003
3005
  <!-- ===================== -->
3004
- <!-- row in table header (thead) -->
3006
+ <!-- row in table header (thead) thead/tr -->
3005
3007
  <xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
3006
3008
  <fo:table-row xsl:use-attribute-sets="table-header-row-style">
3007
3009
 
@@ -3035,7 +3037,7 @@
3035
3037
  </xsl:choose>
3036
3038
  </xsl:template>
3037
3039
 
3038
- <!-- row in table footer (tfoot) -->
3040
+ <!-- row in table footer (tfoot), tfoot/tr -->
3039
3041
  <xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
3040
3042
  <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
3041
3043
 
@@ -3511,6 +3513,8 @@
3511
3513
  <!-- <dl><xsl:copy-of select="."/></dl> -->
3512
3514
  <fo:block-container>
3513
3515
 
3516
+ <xsl:call-template name="setBlockSpanAll"/>
3517
+
3514
3518
  <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
3515
3519
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
3516
3520
  </xsl:if>
@@ -5575,13 +5579,17 @@
5575
5579
  </xsl:template>
5576
5580
 
5577
5581
  <xsl:template match="*[local-name() = 'callout']">
5578
- <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
5582
+ <xsl:choose>
5583
+ <xsl:when test="normalize-space(@target) = ''">&lt;<xsl:apply-templates/>&gt;</xsl:when>
5584
+ <xsl:otherwise><fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link></xsl:otherwise>
5585
+ </xsl:choose>
5579
5586
  </xsl:template>
5580
5587
 
5581
5588
  <xsl:template match="*[local-name() = 'annotation']">
5582
5589
  <xsl:variable name="annotation-id" select="@id"/>
5583
5590
  <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
5584
5591
  <fo:block id="{$annotation-id}" white-space="nowrap">
5592
+
5585
5593
  <fo:inline>
5586
5594
  <xsl:apply-templates>
5587
5595
  <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
@@ -5686,6 +5694,10 @@
5686
5694
  <!-- ====== -->
5687
5695
  <!-- ====== -->
5688
5696
 
5697
+ <xsl:template name="setBlockSpanAll">
5698
+ <xsl:if test="@columns = 1 or (local-name() = 'p' and *[@columns = 1])"><xsl:attribute name="span">all</xsl:attribute></xsl:if>
5699
+ </xsl:template>
5700
+
5689
5701
  <!-- ====== -->
5690
5702
  <!-- note -->
5691
5703
  <!-- termnote -->
@@ -5695,6 +5707,8 @@
5695
5707
 
5696
5708
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
5697
5709
 
5710
+ <xsl:call-template name="setBlockSpanAll"/>
5711
+
5698
5712
  <fo:block-container margin-left="0mm" margin-right="0mm">
5699
5713
 
5700
5714
  <xsl:if test="ancestor::csa:ul or ancestor::csa:ol and not(ancestor::csa:note[1]/following-sibling::*)">
@@ -5749,6 +5763,8 @@
5749
5763
  <xsl:template match="*[local-name() = 'termnote']">
5750
5764
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
5751
5765
 
5766
+ <xsl:call-template name="setBlockSpanAll"/>
5767
+
5752
5768
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
5753
5769
 
5754
5770
  <xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
@@ -7658,6 +7674,9 @@
7658
7674
  <!-- ====== -->
7659
7675
  <xsl:template match="*[local-name() = 'termexample']">
7660
7676
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
7677
+
7678
+ <xsl:call-template name="setBlockSpanAll"/>
7679
+
7661
7680
  <xsl:apply-templates select="*[local-name()='name']"/>
7662
7681
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7663
7682
  </fo:block>
@@ -7709,6 +7728,8 @@
7709
7728
 
7710
7729
  <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
7711
7730
 
7731
+ <xsl:call-template name="setBlockSpanAll"/>
7732
+
7712
7733
  <xsl:variable name="fo_element">
7713
7734
  <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
7714
7735
  block
@@ -7736,6 +7757,35 @@
7736
7757
  </fo:block-container>
7737
7758
  </xsl:when> <!-- end block -->
7738
7759
 
7760
+ <xsl:when test="contains(normalize-space($fo_element), 'list')">
7761
+
7762
+ <xsl:variable name="provisional_distance_between_starts">
7763
+ 7
7764
+ </xsl:variable>
7765
+ <xsl:variable name="indent">
7766
+ 0
7767
+ </xsl:variable>
7768
+
7769
+ <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
7770
+ <fo:list-item>
7771
+ <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
7772
+ <fo:block>
7773
+ <xsl:apply-templates select="*[local-name()='name']">
7774
+ <xsl:with-param name="fo_element">block</xsl:with-param>
7775
+ </xsl:apply-templates>
7776
+ </fo:block>
7777
+ </fo:list-item-label>
7778
+ <fo:list-item-body start-indent="body-start()">
7779
+ <fo:block>
7780
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
7781
+ <xsl:with-param name="fo_element" select="$fo_element"/>
7782
+ </xsl:apply-templates>
7783
+ </fo:block>
7784
+ </fo:list-item-body>
7785
+ </fo:list-item>
7786
+ </fo:list-block>
7787
+ </xsl:when> <!-- end list -->
7788
+
7739
7789
  <xsl:otherwise> <!-- inline -->
7740
7790
 
7741
7791
  <!-- display 'EXAMPLE' and first element in the same line -->
@@ -7811,6 +7861,11 @@
7811
7861
  </fo:block>
7812
7862
  </fo:block-container>
7813
7863
  </xsl:when>
7864
+ <xsl:when test="starts-with(normalize-space($element), 'list')">
7865
+ <fo:block xsl:use-attribute-sets="example-p-style">
7866
+ <xsl:apply-templates/>
7867
+ </fo:block>
7868
+ </xsl:when>
7814
7869
  <xsl:otherwise>
7815
7870
  <fo:inline xsl:use-attribute-sets="example-p-style">
7816
7871
  <xsl:apply-templates/>
@@ -7928,6 +7983,9 @@
7928
7983
  <!-- ====== -->
7929
7984
  <xsl:template match="*[local-name() = 'quote']">
7930
7985
  <fo:block-container margin-left="0mm">
7986
+
7987
+ <xsl:call-template name="setBlockSpanAll"/>
7988
+
7931
7989
  <xsl:if test="parent::*[local-name() = 'note']">
7932
7990
  <xsl:if test="not(ancestor::*[local-name() = 'table'])">
7933
7991
  <xsl:attribute name="margin-left">5mm</xsl:attribute>
@@ -8217,6 +8275,8 @@
8217
8275
  <fo:block>
8218
8276
  <xsl:call-template name="setId"/>
8219
8277
 
8278
+ <xsl:call-template name="setBlockSpanAll"/>
8279
+
8220
8280
  <xsl:apply-templates/>
8221
8281
  </fo:block>
8222
8282
  </xsl:template>
@@ -8231,6 +8291,8 @@
8231
8291
  <fo:block break-after="page"/>
8232
8292
  <fo:block id="{@id}">
8233
8293
 
8294
+ <xsl:call-template name="setBlockSpanAll"/>
8295
+
8234
8296
  </fo:block>
8235
8297
  <xsl:apply-templates/>
8236
8298
  </xsl:template>
@@ -9165,6 +9227,8 @@
9165
9227
  <!-- text in the box -->
9166
9228
  <fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
9167
9229
 
9230
+ <xsl:call-template name="setBlockSpanAll"/>
9231
+
9168
9232
  <fo:block-container xsl:use-attribute-sets="admonition-container-style">
9169
9233
 
9170
9234
  <fo:block-container margin-left="0mm" margin-right="0mm">
@@ -9339,6 +9403,16 @@
9339
9403
  <xsl:apply-templates mode="update_xml_step1"/>
9340
9404
  </xsl:copy>
9341
9405
  </xsl:template>
9406
+
9407
+ <!-- remove semantic xml -->
9408
+ <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_step1"/>
9409
+
9410
+ <!-- remove image/emf -->
9411
+ <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_step1"/>
9412
+
9413
+ <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_step1">
9414
+ <xsl:copy-of select="."/>
9415
+ </xsl:template>
9342
9416
  <!-- =========================================================================== -->
9343
9417
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
9344
9418
  <!-- =========================================================================== -->
@@ -9360,7 +9434,7 @@
9360
9434
 
9361
9435
  <xsl:variable name="element_name_keep-together_within-line">keep-together_within-line</xsl:variable>
9362
9436
 
9363
- <xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
9437
+ <xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or ancestor::*[local-name() = 'svg'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
9364
9438
 
9365
9439
  <!-- enclose standard's number into tag 'keep-together_within-line' -->
9366
9440
  <xsl:variable name="tag_keep-together_within-line_open">###<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
@@ -9434,6 +9508,10 @@
9434
9508
 
9435
9509
  </xsl:template>
9436
9510
 
9511
+ <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_enclose_keep-together_within-line">
9512
+ <xsl:copy-of select="."/>
9513
+ </xsl:template>
9514
+
9437
9515
  <xsl:template name="replace_text_tags">
9438
9516
  <xsl:param name="tag_open"/>
9439
9517
  <xsl:param name="tag_close"/>
@@ -9460,6 +9538,194 @@
9460
9538
  <!-- END XML UPDATE STEP: enclose standard's name into tag 'keep-together_within-line' -->
9461
9539
  <!-- ===================================== -->
9462
9540
 
9541
+ <!-- ===================================== -->
9542
+ <!-- ===================================== -->
9543
+ <!-- Make linear XML (need for landscape orientation) -->
9544
+ <!-- ===================================== -->
9545
+ <!-- ===================================== -->
9546
+ <xsl:template match="@*|node()" mode="linear_xml">
9547
+ <xsl:copy>
9548
+ <xsl:apply-templates select="@*|node()" mode="linear_xml"/>
9549
+ </xsl:copy>
9550
+ </xsl:template>
9551
+
9552
+ <xsl:template match="processing-instruction()" mode="linear_xml">
9553
+ <xsl:copy-of select="."/>
9554
+ </xsl:template>
9555
+
9556
+ <!-- From:
9557
+ <clause>
9558
+ <title>...</title>
9559
+ <p>...</p>
9560
+ </clause>
9561
+ To:
9562
+ <clause/>
9563
+ <title>...</title>
9564
+ <p>...</p>
9565
+ -->
9566
+ <xsl:template match="*[local-name() = 'foreword'] | *[local-name() = 'foreword']//*[local-name() = 'clause'] | *[local-name() = 'preface']//*[local-name() = 'clause'][not(@type = 'corrigenda') and not(@type = 'policy') and not(@type = 'related-refs')] | *[local-name() = 'introduction'] | *[local-name() = 'introduction']//*[local-name() = 'clause'] | *[local-name() = 'sections']//*[local-name() = 'clause'] | *[local-name() = 'annex'] | *[local-name() = 'annex']//*[local-name() = 'clause'] | *[local-name() = 'references'][not(@hidden = 'true')] | *[local-name() = 'bibliography']/*[local-name() = 'clause'] | *[local-name() = 'colophon'] | *[local-name() = 'colophon']//*[local-name() = 'clause'] | *[local-name()='sections']//*[local-name()='terms'] | *[local-name()='sections']//*[local-name()='definitions'] | *[local-name()='annex']//*[local-name()='definitions']" mode="linear_xml" name="clause_linear">
9567
+
9568
+ <xsl:copy>
9569
+ <xsl:apply-templates select="@*" mode="linear_xml"/>
9570
+
9571
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
9572
+
9573
+ <xsl:if test="local-name() = 'foreword' or local-name() = 'introduction' or local-name(..) = 'preface' or local-name(..) = 'sections' or (local-name() = 'references' and parent::*[local-name() = 'bibliography']) or (local-name() = 'clause' and parent::*[local-name() = 'bibliography']) or local-name() = 'annex' or local-name(..) = 'annex' or local-name(..) = 'colophon'">
9574
+ <xsl:attribute name="mainsection">true</xsl:attribute>
9575
+ </xsl:if>
9576
+ </xsl:copy>
9577
+
9578
+ <xsl:apply-templates mode="linear_xml"/>
9579
+ </xsl:template>
9580
+
9581
+ <xsl:template match="*[local-name() = 'term']" mode="linear_xml" priority="2">
9582
+ <xsl:copy>
9583
+ <xsl:apply-templates select="@*" mode="linear_xml"/>
9584
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
9585
+ <xsl:variable name="level">
9586
+ <xsl:call-template name="getLevel"/>
9587
+ </xsl:variable>
9588
+ <xsl:attribute name="depth"><xsl:value-of select="$level"/></xsl:attribute>
9589
+ <xsl:attribute name="ancestor">sections</xsl:attribute>
9590
+ <xsl:apply-templates select="node()[not(local-name() = 'term')]" mode="linear_xml"/>
9591
+ </xsl:copy>
9592
+ <xsl:apply-templates select="*[local-name() = 'term']" mode="linear_xml"/>
9593
+ </xsl:template>
9594
+
9595
+ <xsl:template match="*[local-name() = 'introduction']//*[local-name() = 'title'] | *[local-name() = 'foreword']//*[local-name() = 'title'] | *[local-name() = 'sections']//*[local-name() = 'title'] | *[local-name() = 'annex']//*[local-name() = 'title'] | *[local-name() = 'bibliography']/*[local-name() = 'clause']/*[local-name() = 'title'] | *[local-name() = 'references']/*[local-name() = 'title'] | *[local-name() = 'colophon']//*[local-name() = 'title']" mode="linear_xml" priority="2">
9596
+ <xsl:copy>
9597
+ <xsl:apply-templates select="@*" mode="linear_xml"/>
9598
+
9599
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
9600
+
9601
+ <xsl:variable name="level">
9602
+ <xsl:call-template name="getLevel"/>
9603
+ </xsl:variable>
9604
+ <xsl:attribute name="depth"><xsl:value-of select="$level"/></xsl:attribute>
9605
+
9606
+ <xsl:if test="parent::*[local-name() = 'annex']">
9607
+ <xsl:attribute name="depth">1</xsl:attribute>
9608
+ </xsl:if>
9609
+
9610
+ <xsl:if test="../@inline-header = 'true' and following-sibling::*[1][local-name() = 'p']">
9611
+ <xsl:copy-of select="../@inline-header"/>
9612
+ </xsl:if>
9613
+
9614
+ <xsl:attribute name="ancestor">
9615
+ <xsl:choose>
9616
+ <xsl:when test="ancestor::*[local-name() = 'foreword']">foreword</xsl:when>
9617
+ <xsl:when test="ancestor::*[local-name() = 'introduction']">introduction</xsl:when>
9618
+ <xsl:when test="ancestor::*[local-name() = 'sections']">sections</xsl:when>
9619
+ <xsl:when test="ancestor::*[local-name() = 'annex']">annex</xsl:when>
9620
+ <xsl:when test="ancestor::*[local-name() = 'bibliography']">bibliography</xsl:when>
9621
+ </xsl:choose>
9622
+ </xsl:attribute>
9623
+
9624
+ <xsl:apply-templates mode="linear_xml"/>
9625
+ </xsl:copy>
9626
+ </xsl:template>
9627
+
9628
+ <!-- add @to = figure, table, clause -->
9629
+ <!-- add @depth = from -->
9630
+ <xsl:template match="*[local-name() = 'xref']" mode="linear_xml">
9631
+ <xsl:copy>
9632
+ <xsl:apply-templates select="@*" mode="linear_xml"/>
9633
+ <xsl:variable name="target" select="@target"/>
9634
+ <xsl:attribute name="to">
9635
+ <xsl:value-of select="local-name(//*[@id = current()/@target][1])"/>
9636
+ </xsl:attribute>
9637
+ <xsl:attribute name="depth">
9638
+ <xsl:value-of select="//*[@id = current()/@target][1]/*[local-name() = 'title']/@depth"/>
9639
+ </xsl:attribute>
9640
+ <xsl:apply-templates select="node()" mode="linear_xml"/>
9641
+ </xsl:copy>
9642
+ </xsl:template>
9643
+
9644
+ <xsl:template match="*[not(ancestor::*[local-name() = 'sourcecode'])]/*[local-name() = 'p' or local-name() = 'strong' or local-name() = 'em']/text()" mode="linear_xml">
9645
+ <xsl:choose>
9646
+ <xsl:when test="contains(., $non_breaking_hyphen)">
9647
+ <xsl:call-template name="replaceChar">
9648
+ <xsl:with-param name="text" select="."/>
9649
+ <xsl:with-param name="replace" select="$non_breaking_hyphen"/>
9650
+ <xsl:with-param name="by" select="'-'"/>
9651
+ </xsl:call-template>
9652
+ </xsl:when>
9653
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
9654
+ </xsl:choose>
9655
+ </xsl:template>
9656
+
9657
+ <xsl:template name="replaceChar">
9658
+ <xsl:param name="text"/>
9659
+ <xsl:param name="replace"/>
9660
+ <xsl:param name="by"/>
9661
+ <xsl:choose>
9662
+ <xsl:when test="$text = '' or $replace = '' or not($replace)">
9663
+ <xsl:value-of select="$text"/>
9664
+ </xsl:when>
9665
+ <xsl:when test="contains($text, $replace)">
9666
+ <xsl:value-of select="substring-before($text,$replace)"/>
9667
+ <xsl:element name="inlineChar" namespace="https://www.metanorma.org/ns/jis"><xsl:value-of select="$by"/></xsl:element>
9668
+ <xsl:call-template name="replaceChar">
9669
+ <xsl:with-param name="text" select="substring-after($text,$replace)"/>
9670
+ <xsl:with-param name="replace" select="$replace"/>
9671
+ <xsl:with-param name="by" select="$by"/>
9672
+ </xsl:call-template>
9673
+ </xsl:when>
9674
+ <xsl:otherwise>
9675
+ <xsl:value-of select="$text"/>
9676
+ </xsl:otherwise>
9677
+ </xsl:choose>
9678
+ </xsl:template>
9679
+
9680
+ <xsl:template match="*[local-name() = 'inlineChar']">
9681
+ <fo:inline><xsl:value-of select="."/></fo:inline>
9682
+ </xsl:template>
9683
+
9684
+ <!-- change @reference to actual value, and add skip_footnote_body="true" for repeatable (2nd, 3rd, ...) -->
9685
+ <!--
9686
+ <fn reference="1">
9687
+ <p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
9688
+ </fn>
9689
+ -->
9690
+ <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" mode="linear_xml" name="linear_xml_fn">
9691
+ <xsl:variable name="p_fn_">
9692
+ <xsl:call-template name="get_fn_list"/>
9693
+ </xsl:variable>
9694
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
9695
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
9696
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
9697
+ <xsl:variable name="reference" select="@reference"/>
9698
+ <!-- fn sequence number in document -->
9699
+ <xsl:variable name="current_fn_number" select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
9700
+
9701
+ <xsl:copy>
9702
+ <xsl:apply-templates select="@*" mode="linear_xml"/>
9703
+ <!-- put actual reference number -->
9704
+ <xsl:attribute name="current_fn_number">
9705
+ <xsl:value-of select="$current_fn_number"/>
9706
+ </xsl:attribute>
9707
+ <xsl:attribute name="skip_footnote_body"> <!-- false for repeatable footnote -->
9708
+ <xsl:value-of select="not($p_fn//fn[@gen_id = $gen_id] and (1 = 1))"/>
9709
+ </xsl:attribute>
9710
+ <xsl:apply-templates select="node()" mode="linear_xml"/>
9711
+ </xsl:copy>
9712
+ </xsl:template>
9713
+
9714
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title']" priority="3" mode="linear_xml">
9715
+ <xsl:copy>
9716
+ <xsl:apply-templates select="@*" mode="linear_xml"/>
9717
+ <xsl:if test="@depth = '1'">
9718
+ <xsl:attribute name="mainsection">true</xsl:attribute>
9719
+ </xsl:if>
9720
+ <xsl:apply-templates select="node()" mode="linear_xml"/>
9721
+ </xsl:copy>
9722
+ </xsl:template>
9723
+ <!-- ===================================== -->
9724
+ <!-- ===================================== -->
9725
+ <!-- END: Make linear XML (need for landscape orientation) -->
9726
+ <!-- ===================================== -->
9727
+ <!-- ===================================== -->
9728
+
9463
9729
  <!-- for correct rendering combining chars -->
9464
9730
  <xsl:template match="*[local-name() = 'lang_none']">
9465
9731
  <fo:inline xml:lang="none"><xsl:value-of select="."/></fo:inline>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Csa
3
- VERSION = "2.2.5".freeze
3
+ VERSION = "2.2.6".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: 2.2.5
4
+ version: 2.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-13 00:00:00.000000000 Z
11
+ date: 2023-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-generic