metanorma-iho 0.7.7 → 0.7.8

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: 48f4dfd3bb336cc6d6438a84febaf7383912e793bcacd70b88a261e183928263
4
- data.tar.gz: af832e04cc7fde3ff2ff492c873bed6256e81414850c4ddc1ae1e5ed206f044f
3
+ metadata.gz: 0e7cc94d7e8f9683e2b6188ea75dc4f404e762cab848878e511369a3aa741fd9
4
+ data.tar.gz: baf518a1ee8054dd032220bd45425a80619c594bb50d0b79db6d043de7aad0c3
5
5
  SHA512:
6
- metadata.gz: b04b76d74f713fc591ff8c19b816666763675dc1c974861b4c6ff952b4c0c23b7390fe8c334702cb9d4842275e7e803236bfd14ee61dd819e285ff57dffea740
7
- data.tar.gz: aca9d9fae397f42da6687b36a182f0a13714da6a8285ae9d4c8ee318389ca354dd3019f8d1fef8ed055a62a9f00c68b58469d6079607d43e7b0452c1af286096
6
+ metadata.gz: 5f0bbf1cb754794a8782e1963ef20ff1eaf435389692ff453138c48403d9947bfb21e031ea5908f0bdf19b11bebd81bb980d49406e6d8e2ed3efde627b0ae36c
7
+ data.tar.gz: 58c891f65f1d4299c81c7806c80a214d24976eed99d65450e9f462effe62aca48f46468b31f6f760797cda5133a94ae71f6a06116624dce24e102b1bf7edcf70
@@ -1520,11 +1520,17 @@
1520
1520
  <!-- ========================== -->
1521
1521
  <!-- Definition's list styles -->
1522
1522
  <!-- ========================== -->
1523
+
1524
+ <xsl:attribute-set name="dl-block-style">
1525
+
1526
+ </xsl:attribute-set>
1527
+
1523
1528
  <xsl:attribute-set name="dt-row-style">
1524
1529
 
1525
1530
  </xsl:attribute-set>
1526
1531
 
1527
1532
  <xsl:attribute-set name="dt-cell-style">
1533
+
1528
1534
  </xsl:attribute-set>
1529
1535
 
1530
1536
  <xsl:attribute-set name="dt-block-style">
@@ -1544,6 +1550,7 @@
1544
1550
 
1545
1551
  <xsl:attribute-set name="dd-cell-style">
1546
1552
  <xsl:attribute name="padding-left">2mm</xsl:attribute>
1553
+
1547
1554
  </xsl:attribute-set>
1548
1555
 
1549
1556
  <!-- ========================== -->
@@ -1684,6 +1691,10 @@
1684
1691
 
1685
1692
  </xsl:attribute-set>
1686
1693
 
1694
+ <xsl:attribute-set name="figure-source-style">
1695
+
1696
+ </xsl:attribute-set>
1697
+
1687
1698
  <!-- Formula's styles -->
1688
1699
  <xsl:attribute-set name="formula-style">
1689
1700
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -2223,7 +2234,7 @@
2223
2234
 
2224
2235
  <xsl:template name="processTables_Contents">
2225
2236
  <tables>
2226
- <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
2237
+ <xsl:for-each select="//*[local-name() = 'table'][not(ancestor::*[local-name() = 'metanorma-extension'])][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
2227
2238
  <table id="{@id}" alt-text="{*[local-name() = 'name']}">
2228
2239
  <xsl:copy-of select="*[local-name() = 'name']"/>
2229
2240
  </table>
@@ -2567,7 +2578,7 @@
2567
2578
  </xsl:attribute>
2568
2579
  </xsl:for-each>
2569
2580
 
2570
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2581
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2571
2582
  <xsl:if test="$isNoteOrFnExist = 'true'">
2572
2583
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2573
2584
  </xsl:if>
@@ -2611,7 +2622,7 @@
2611
2622
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2612
2623
  </xsl:when>
2613
2624
  <xsl:otherwise>
2614
- <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 -->
2625
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'dl') and not(local-name() = 'source') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note, source and dl which render separaterely -->
2615
2626
  </xsl:otherwise>
2616
2627
  </xsl:choose>
2617
2628
 
@@ -2715,6 +2726,11 @@
2715
2726
  </xsl:if>
2716
2727
  </xsl:template> <!-- table/name -->
2717
2728
 
2729
+ <!-- SOURCE: ... -->
2730
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
2731
+ <xsl:call-template name="termsource"/>
2732
+ </xsl:template>
2733
+
2718
2734
  <xsl:template name="calculate-columns-numbers">
2719
2735
  <xsl:param name="table-row"/>
2720
2736
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
@@ -3071,7 +3087,7 @@
3071
3087
  </fo:table-header>
3072
3088
  </xsl:template> <!-- thead -->
3073
3089
 
3074
- <!-- template is using for iso, jcgm, bsi only -->
3090
+ <!-- template is using for iec, iso, jcgm, bsi only -->
3075
3091
  <xsl:template name="table-header-title">
3076
3092
  <xsl:param name="cols-count"/>
3077
3093
  <!-- row for title -->
@@ -3114,7 +3130,7 @@
3114
3130
  <xsl:param name="colwidths"/>
3115
3131
  <xsl:param name="colgroup"/>
3116
3132
 
3117
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3133
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source']"/>
3118
3134
 
3119
3135
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
3120
3136
 
@@ -3184,6 +3200,7 @@
3184
3200
 
3185
3201
  <xsl:apply-templates select="../*[local-name()='dl']"/>
3186
3202
  <xsl:apply-templates select="../*[local-name()='note']"/>
3203
+ <xsl:apply-templates select="../*[local-name()='source']"/>
3187
3204
 
3188
3205
  <xsl:variable name="isDisplayRowSeparator">
3189
3206
 
@@ -3816,7 +3833,7 @@
3816
3833
  <xsl:variable name="isAdded" select="@added"/>
3817
3834
  <xsl:variable name="isDeleted" select="@deleted"/>
3818
3835
  <!-- <dl><xsl:copy-of select="."/></dl> -->
3819
- <fo:block-container>
3836
+ <fo:block-container xsl:use-attribute-sets="dl-block-style">
3820
3837
 
3821
3838
  <xsl:call-template name="setBlockSpanAll"/>
3822
3839
 
@@ -3824,6 +3841,18 @@
3824
3841
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
3825
3842
  </xsl:if>
3826
3843
 
3844
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode']">
3845
+ <!-- set font-size as sourcecode font-size -->
3846
+ <xsl:variable name="sourcecode_attributes">
3847
+ <xsl:call-template name="get_sourcecode_attributes"/>
3848
+ </xsl:variable>
3849
+ <xsl:for-each select="xalan:nodeset($sourcecode_attributes)/sourcecode_attributes/@font-size">
3850
+ <xsl:attribute name="{local-name()}">
3851
+ <xsl:value-of select="."/>
3852
+ </xsl:attribute>
3853
+ </xsl:for-each>
3854
+ </xsl:if>
3855
+
3827
3856
  <xsl:if test="parent::*[local-name() = 'note']">
3828
3857
  <xsl:attribute name="margin-left">
3829
3858
  <xsl:choose>
@@ -4263,6 +4292,7 @@
4263
4292
  <xsl:param name="split_keep-within-line"/>
4264
4293
 
4265
4294
  <fo:table-row xsl:use-attribute-sets="dt-row-style">
4295
+
4266
4296
  <xsl:call-template name="insert_dt_cell">
4267
4297
  <xsl:with-param name="key_iso" select="$key_iso"/>
4268
4298
  <xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
@@ -4284,6 +4314,7 @@
4284
4314
  <!-- border is mandatory, to calculate real width -->
4285
4315
  <xsl:attribute name="border">0.1pt solid black</xsl:attribute>
4286
4316
  <xsl:attribute name="text-align">left</xsl:attribute>
4317
+
4287
4318
  </xsl:if>
4288
4319
 
4289
4320
  <fo:block xsl:use-attribute-sets="dt-block-style">
@@ -4798,6 +4829,7 @@
4798
4829
  <fo:inline>
4799
4830
  <xsl:for-each select="$styles/style">
4800
4831
  <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
4832
+
4801
4833
  </xsl:for-each>
4802
4834
  <xsl:apply-templates/>
4803
4835
  </fo:inline>
@@ -6297,6 +6329,13 @@
6297
6329
  </fo:block>
6298
6330
  </xsl:template>
6299
6331
 
6332
+ <!-- SOURCE: ... -->
6333
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'source']" priority="2">
6334
+
6335
+ <xsl:call-template name="termsource"/>
6336
+
6337
+ </xsl:template>
6338
+
6300
6339
  <xsl:template match="*[local-name() = 'image']">
6301
6340
  <xsl:variable name="isAdded" select="../@added"/>
6302
6341
  <xsl:variable name="isDeleted" select="../@deleted"/>
@@ -7427,9 +7466,11 @@
7427
7466
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
7428
7467
  </xsl:if>
7429
7468
 
7430
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7469
+ <xsl:apply-templates select="node()[not(local-name() = 'name' or local-name() = 'dl')]"/>
7431
7470
  </fo:block>
7432
7471
 
7472
+ <xsl:apply-templates select="*[local-name() = 'dl']"/> <!-- Key table -->
7473
+
7433
7474
  <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
7434
7475
 
7435
7476
  </fo:block-container>
@@ -7461,11 +7502,22 @@
7461
7502
  <!-- add sourcecode highlighting -->
7462
7503
  <xsl:template match="*[local-name()='sourcecode']//*[local-name()='span'][@class]" priority="2">
7463
7504
  <xsl:variable name="class" select="@class"/>
7505
+
7506
+ <!-- Example: <1> -->
7507
+ <xsl:variable name="is_callout">
7508
+ <xsl:if test="parent::*[local-name() = 'dt']">
7509
+ <xsl:variable name="dt_id" select="../@id"/>
7510
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode']//*[local-name() = 'callout'][@target = $dt_id]">true</xsl:if>
7511
+ </xsl:if>
7512
+ </xsl:variable>
7513
+
7464
7514
  <xsl:choose>
7465
7515
  <xsl:when test="$sourcecode_css//class[@name = $class]">
7466
7516
  <fo:inline>
7467
7517
  <xsl:apply-templates select="$sourcecode_css//class[@name = $class]" mode="css"/>
7518
+ <xsl:if test="$is_callout = 'true'">&lt;</xsl:if>
7468
7519
  <xsl:apply-templates/>
7520
+ <xsl:if test="$is_callout = 'true'">&gt;</xsl:if>
7469
7521
  </fo:inline>
7470
7522
  </xsl:when>
7471
7523
  <xsl:otherwise>
@@ -7889,6 +7941,10 @@
7889
7941
  </fo:block>
7890
7942
  </xsl:template>
7891
7943
 
7944
+ <xsl:template match="*[local-name() = 'div']">
7945
+ <fo:block><xsl:apply-templates/></fo:block>
7946
+ </xsl:template>
7947
+
7892
7948
  <xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit'] | *[local-name() = 'div'][@type = 'requirement-inherit'] | *[local-name() = 'div'][@type = 'recommendation-inherit'] | *[local-name() = 'div'][@type = 'permission-inherit']">
7893
7949
  <fo:block xsl:use-attribute-sets="inherit-style">
7894
7950
  <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
@@ -8584,13 +8640,8 @@
8584
8640
  </xsl:template>
8585
8641
 
8586
8642
  <xsl:template match="*[local-name() = 'deprecates']">
8587
- <xsl:variable name="title-deprecated">
8588
- <xsl:call-template name="getLocalizedString">
8589
- <xsl:with-param name="key">deprecated</xsl:with-param>
8590
- </xsl:call-template>
8591
- </xsl:variable>
8592
8643
  <fo:block xsl:use-attribute-sets="deprecates-style">
8593
- <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
8644
+ <xsl:apply-templates/>
8594
8645
  </fo:block>
8595
8646
  </xsl:template>
8596
8647
 
@@ -9814,6 +9865,23 @@
9814
9865
  <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_step1">
9815
9866
  <xsl:copy-of select="."/>
9816
9867
  </xsl:template>
9868
+
9869
+ <!-- add @id, redundant for table auto-layout algorithm -->
9870
+ <xsl:template match="*[local-name() = 'dl' or local-name() = 'table'][not(@id)]" mode="update_xml_step1">
9871
+ <xsl:copy>
9872
+ <xsl:copy-of select="@*"/>
9873
+ <xsl:call-template name="add_id"/>
9874
+ <xsl:apply-templates mode="update_xml_step1"/>
9875
+ </xsl:copy>
9876
+ </xsl:template>
9877
+
9878
+ <xsl:template name="add_id">
9879
+ <xsl:if test="not(@id)">
9880
+ <!-- add @id - first element with @id plus '_element_name' -->
9881
+ <xsl:attribute name="id"><xsl:value-of select="(.//*[@id])[1]/@id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
9882
+ </xsl:if>
9883
+ </xsl:template>
9884
+
9817
9885
  <!-- =========================================================================== -->
9818
9886
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
9819
9887
  <!-- =========================================================================== -->
@@ -1520,11 +1520,17 @@
1520
1520
  <!-- ========================== -->
1521
1521
  <!-- Definition's list styles -->
1522
1522
  <!-- ========================== -->
1523
+
1524
+ <xsl:attribute-set name="dl-block-style">
1525
+
1526
+ </xsl:attribute-set>
1527
+
1523
1528
  <xsl:attribute-set name="dt-row-style">
1524
1529
 
1525
1530
  </xsl:attribute-set>
1526
1531
 
1527
1532
  <xsl:attribute-set name="dt-cell-style">
1533
+
1528
1534
  </xsl:attribute-set>
1529
1535
 
1530
1536
  <xsl:attribute-set name="dt-block-style">
@@ -1544,6 +1550,7 @@
1544
1550
 
1545
1551
  <xsl:attribute-set name="dd-cell-style">
1546
1552
  <xsl:attribute name="padding-left">2mm</xsl:attribute>
1553
+
1547
1554
  </xsl:attribute-set>
1548
1555
 
1549
1556
  <!-- ========================== -->
@@ -1684,6 +1691,10 @@
1684
1691
 
1685
1692
  </xsl:attribute-set>
1686
1693
 
1694
+ <xsl:attribute-set name="figure-source-style">
1695
+
1696
+ </xsl:attribute-set>
1697
+
1687
1698
  <!-- Formula's styles -->
1688
1699
  <xsl:attribute-set name="formula-style">
1689
1700
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -2223,7 +2234,7 @@
2223
2234
 
2224
2235
  <xsl:template name="processTables_Contents">
2225
2236
  <tables>
2226
- <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
2237
+ <xsl:for-each select="//*[local-name() = 'table'][not(ancestor::*[local-name() = 'metanorma-extension'])][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
2227
2238
  <table id="{@id}" alt-text="{*[local-name() = 'name']}">
2228
2239
  <xsl:copy-of select="*[local-name() = 'name']"/>
2229
2240
  </table>
@@ -2567,7 +2578,7 @@
2567
2578
  </xsl:attribute>
2568
2579
  </xsl:for-each>
2569
2580
 
2570
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2581
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2571
2582
  <xsl:if test="$isNoteOrFnExist = 'true'">
2572
2583
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2573
2584
  </xsl:if>
@@ -2611,7 +2622,7 @@
2611
2622
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2612
2623
  </xsl:when>
2613
2624
  <xsl:otherwise>
2614
- <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 -->
2625
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'dl') and not(local-name() = 'source') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note, source and dl which render separaterely -->
2615
2626
  </xsl:otherwise>
2616
2627
  </xsl:choose>
2617
2628
 
@@ -2715,6 +2726,11 @@
2715
2726
  </xsl:if>
2716
2727
  </xsl:template> <!-- table/name -->
2717
2728
 
2729
+ <!-- SOURCE: ... -->
2730
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
2731
+ <xsl:call-template name="termsource"/>
2732
+ </xsl:template>
2733
+
2718
2734
  <xsl:template name="calculate-columns-numbers">
2719
2735
  <xsl:param name="table-row"/>
2720
2736
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
@@ -3071,7 +3087,7 @@
3071
3087
  </fo:table-header>
3072
3088
  </xsl:template> <!-- thead -->
3073
3089
 
3074
- <!-- template is using for iso, jcgm, bsi only -->
3090
+ <!-- template is using for iec, iso, jcgm, bsi only -->
3075
3091
  <xsl:template name="table-header-title">
3076
3092
  <xsl:param name="cols-count"/>
3077
3093
  <!-- row for title -->
@@ -3114,7 +3130,7 @@
3114
3130
  <xsl:param name="colwidths"/>
3115
3131
  <xsl:param name="colgroup"/>
3116
3132
 
3117
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3133
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source']"/>
3118
3134
 
3119
3135
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
3120
3136
 
@@ -3184,6 +3200,7 @@
3184
3200
 
3185
3201
  <xsl:apply-templates select="../*[local-name()='dl']"/>
3186
3202
  <xsl:apply-templates select="../*[local-name()='note']"/>
3203
+ <xsl:apply-templates select="../*[local-name()='source']"/>
3187
3204
 
3188
3205
  <xsl:variable name="isDisplayRowSeparator">
3189
3206
 
@@ -3816,7 +3833,7 @@
3816
3833
  <xsl:variable name="isAdded" select="@added"/>
3817
3834
  <xsl:variable name="isDeleted" select="@deleted"/>
3818
3835
  <!-- <dl><xsl:copy-of select="."/></dl> -->
3819
- <fo:block-container>
3836
+ <fo:block-container xsl:use-attribute-sets="dl-block-style">
3820
3837
 
3821
3838
  <xsl:call-template name="setBlockSpanAll"/>
3822
3839
 
@@ -3824,6 +3841,18 @@
3824
3841
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
3825
3842
  </xsl:if>
3826
3843
 
3844
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode']">
3845
+ <!-- set font-size as sourcecode font-size -->
3846
+ <xsl:variable name="sourcecode_attributes">
3847
+ <xsl:call-template name="get_sourcecode_attributes"/>
3848
+ </xsl:variable>
3849
+ <xsl:for-each select="xalan:nodeset($sourcecode_attributes)/sourcecode_attributes/@font-size">
3850
+ <xsl:attribute name="{local-name()}">
3851
+ <xsl:value-of select="."/>
3852
+ </xsl:attribute>
3853
+ </xsl:for-each>
3854
+ </xsl:if>
3855
+
3827
3856
  <xsl:if test="parent::*[local-name() = 'note']">
3828
3857
  <xsl:attribute name="margin-left">
3829
3858
  <xsl:choose>
@@ -4263,6 +4292,7 @@
4263
4292
  <xsl:param name="split_keep-within-line"/>
4264
4293
 
4265
4294
  <fo:table-row xsl:use-attribute-sets="dt-row-style">
4295
+
4266
4296
  <xsl:call-template name="insert_dt_cell">
4267
4297
  <xsl:with-param name="key_iso" select="$key_iso"/>
4268
4298
  <xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
@@ -4284,6 +4314,7 @@
4284
4314
  <!-- border is mandatory, to calculate real width -->
4285
4315
  <xsl:attribute name="border">0.1pt solid black</xsl:attribute>
4286
4316
  <xsl:attribute name="text-align">left</xsl:attribute>
4317
+
4287
4318
  </xsl:if>
4288
4319
 
4289
4320
  <fo:block xsl:use-attribute-sets="dt-block-style">
@@ -4798,6 +4829,7 @@
4798
4829
  <fo:inline>
4799
4830
  <xsl:for-each select="$styles/style">
4800
4831
  <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
4832
+
4801
4833
  </xsl:for-each>
4802
4834
  <xsl:apply-templates/>
4803
4835
  </fo:inline>
@@ -6297,6 +6329,13 @@
6297
6329
  </fo:block>
6298
6330
  </xsl:template>
6299
6331
 
6332
+ <!-- SOURCE: ... -->
6333
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'source']" priority="2">
6334
+
6335
+ <xsl:call-template name="termsource"/>
6336
+
6337
+ </xsl:template>
6338
+
6300
6339
  <xsl:template match="*[local-name() = 'image']">
6301
6340
  <xsl:variable name="isAdded" select="../@added"/>
6302
6341
  <xsl:variable name="isDeleted" select="../@deleted"/>
@@ -7427,9 +7466,11 @@
7427
7466
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
7428
7467
  </xsl:if>
7429
7468
 
7430
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7469
+ <xsl:apply-templates select="node()[not(local-name() = 'name' or local-name() = 'dl')]"/>
7431
7470
  </fo:block>
7432
7471
 
7472
+ <xsl:apply-templates select="*[local-name() = 'dl']"/> <!-- Key table -->
7473
+
7433
7474
  <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
7434
7475
 
7435
7476
  </fo:block-container>
@@ -7461,11 +7502,22 @@
7461
7502
  <!-- add sourcecode highlighting -->
7462
7503
  <xsl:template match="*[local-name()='sourcecode']//*[local-name()='span'][@class]" priority="2">
7463
7504
  <xsl:variable name="class" select="@class"/>
7505
+
7506
+ <!-- Example: <1> -->
7507
+ <xsl:variable name="is_callout">
7508
+ <xsl:if test="parent::*[local-name() = 'dt']">
7509
+ <xsl:variable name="dt_id" select="../@id"/>
7510
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode']//*[local-name() = 'callout'][@target = $dt_id]">true</xsl:if>
7511
+ </xsl:if>
7512
+ </xsl:variable>
7513
+
7464
7514
  <xsl:choose>
7465
7515
  <xsl:when test="$sourcecode_css//class[@name = $class]">
7466
7516
  <fo:inline>
7467
7517
  <xsl:apply-templates select="$sourcecode_css//class[@name = $class]" mode="css"/>
7518
+ <xsl:if test="$is_callout = 'true'">&lt;</xsl:if>
7468
7519
  <xsl:apply-templates/>
7520
+ <xsl:if test="$is_callout = 'true'">&gt;</xsl:if>
7469
7521
  </fo:inline>
7470
7522
  </xsl:when>
7471
7523
  <xsl:otherwise>
@@ -7889,6 +7941,10 @@
7889
7941
  </fo:block>
7890
7942
  </xsl:template>
7891
7943
 
7944
+ <xsl:template match="*[local-name() = 'div']">
7945
+ <fo:block><xsl:apply-templates/></fo:block>
7946
+ </xsl:template>
7947
+
7892
7948
  <xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit'] | *[local-name() = 'div'][@type = 'requirement-inherit'] | *[local-name() = 'div'][@type = 'recommendation-inherit'] | *[local-name() = 'div'][@type = 'permission-inherit']">
7893
7949
  <fo:block xsl:use-attribute-sets="inherit-style">
7894
7950
  <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
@@ -8584,13 +8640,8 @@
8584
8640
  </xsl:template>
8585
8641
 
8586
8642
  <xsl:template match="*[local-name() = 'deprecates']">
8587
- <xsl:variable name="title-deprecated">
8588
- <xsl:call-template name="getLocalizedString">
8589
- <xsl:with-param name="key">deprecated</xsl:with-param>
8590
- </xsl:call-template>
8591
- </xsl:variable>
8592
8643
  <fo:block xsl:use-attribute-sets="deprecates-style">
8593
- <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
8644
+ <xsl:apply-templates/>
8594
8645
  </fo:block>
8595
8646
  </xsl:template>
8596
8647
 
@@ -9814,6 +9865,23 @@
9814
9865
  <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_step1">
9815
9866
  <xsl:copy-of select="."/>
9816
9867
  </xsl:template>
9868
+
9869
+ <!-- add @id, redundant for table auto-layout algorithm -->
9870
+ <xsl:template match="*[local-name() = 'dl' or local-name() = 'table'][not(@id)]" mode="update_xml_step1">
9871
+ <xsl:copy>
9872
+ <xsl:copy-of select="@*"/>
9873
+ <xsl:call-template name="add_id"/>
9874
+ <xsl:apply-templates mode="update_xml_step1"/>
9875
+ </xsl:copy>
9876
+ </xsl:template>
9877
+
9878
+ <xsl:template name="add_id">
9879
+ <xsl:if test="not(@id)">
9880
+ <!-- add @id - first element with @id plus '_element_name' -->
9881
+ <xsl:attribute name="id"><xsl:value-of select="(.//*[@id])[1]/@id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
9882
+ </xsl:if>
9883
+ </xsl:template>
9884
+
9817
9885
  <!-- =========================================================================== -->
9818
9886
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
9819
9887
  <!-- =========================================================================== -->
@@ -382,6 +382,9 @@
382
382
  <optional>
383
383
  <ref name="dl"/>
384
384
  </optional>
385
+ <optional>
386
+ <ref name="source"/>
387
+ </optional>
385
388
  </element>
386
389
  </define>
387
390
  <define name="figure">
@@ -404,9 +407,6 @@
404
407
  <attribute name="class"/>
405
408
  </optional>
406
409
  <ref name="BlockAttributes"/>
407
- <optional>
408
- <ref name="source"/>
409
- </optional>
410
410
  <optional>
411
411
  <ref name="tname"/>
412
412
  </optional>
@@ -431,6 +431,20 @@
431
431
  <zeroOrMore>
432
432
  <ref name="note"/>
433
433
  </zeroOrMore>
434
+ <optional>
435
+ <ref name="source"/>
436
+ </optional>
437
+ </element>
438
+ </define>
439
+ <define name="source">
440
+ <element name="source">
441
+ <attribute name="status">
442
+ <ref name="SourceStatusType"/>
443
+ </attribute>
444
+ <ref name="origin"/>
445
+ <optional>
446
+ <ref name="modification"/>
447
+ </optional>
434
448
  </element>
435
449
  </define>
436
450
  <define name="sourcecode">
@@ -2099,10 +2113,7 @@
2099
2113
  <define name="termsource">
2100
2114
  <element name="termsource">
2101
2115
  <attribute name="status">
2102
- <choice>
2103
- <value>identical</value>
2104
- <value>modified</value>
2105
- </choice>
2116
+ <ref name="SourceStatusType"/>
2106
2117
  </attribute>
2107
2118
  <attribute name="type">
2108
2119
  <choice>
@@ -2116,6 +2127,17 @@
2116
2127
  </optional>
2117
2128
  </element>
2118
2129
  </define>
2130
+ <define name="SourceStatusType">
2131
+ <choice>
2132
+ <value>identical</value>
2133
+ <value>modified</value>
2134
+ <value>restyled</value>
2135
+ <value>context-added</value>
2136
+ <value>generalisation</value>
2137
+ <value>specialisation</value>
2138
+ <value>unspecified</value>
2139
+ </choice>
2140
+ </define>
2119
2141
  <define name="origin">
2120
2142
  <element name="origin">
2121
2143
  <choice>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module IHO
3
- VERSION = "0.7.7".freeze
3
+ VERSION = "0.7.8".freeze
4
4
  end
5
5
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.require_paths = ["lib"]
28
28
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
29
29
 
30
- spec.add_dependency "metanorma-generic", "~> 2.4.0"
30
+ spec.add_dependency "metanorma-generic", "~> 2.4.1"
31
31
 
32
32
  spec.add_development_dependency "debug"
33
33
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iho
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.7
4
+ version: 0.7.8
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-27 00:00:00.000000000 Z
11
+ date: 2023-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-generic
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.4.0
19
+ version: 2.4.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.4.0
26
+ version: 2.4.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debug
29
29
  requirement: !ruby/object:Gem::Requirement