metanorma-iec 1.2.5 → 1.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: bbe7886647419d3d25efb24813d1686dee3bf8cd675b36be86cfb0450859bf06
4
- data.tar.gz: 7a5ac01abe1bf59690b0be12d6e2a9d7a8a923ce9169e5549179a0f35747315c
3
+ metadata.gz: bc326d356e558e21523ffcc8690c5170fcfdf0fa18814ab0fb9164321f6fcea9
4
+ data.tar.gz: 46ead1e820327d2c8470bf0128e910003e19b6089dc78d3788e91f8721138afc
5
5
  SHA512:
6
- metadata.gz: 73a29fac4f7691d1b20bb82e1a29108abdff82c26d980244fd2d84bd97e32cde6c234a3f0c46a175e6fa688df1702589ef911a7d6bfe4e11ae054da1bdc22520
7
- data.tar.gz: 2392e4fe3f0efb9cb7a0dd419111263016b82a8df659e139571b70e88268afe5ea41db4f19ec710270265204ba1b3c895c3b544909b56ce7ce77d35607eb642b
6
+ metadata.gz: 160e78ca27fc0e649fc0e60a1932fe5fd18ea10e3f812c6bee16646032b8fd40f046d244466b3a8ba143cec6716ee88a2eae695ffc46d9816f92bc0b99072138
7
+ data.tar.gz: ef5fa5a588ff0593f32830103c897f98173cdcb07b1ca1913c7b4e084f561439292983512ac7d00f6475af12d0c5c8b001161caf510ed87a1f6d316c0ebc2738
@@ -6,7 +6,7 @@ module Asciidoctor
6
6
  csv_split(publishers)&.each do |p|
7
7
  xml.contributor do |c|
8
8
  c.role **{ type: "author" }
9
- c.organization { |a| organization(a, p) }
9
+ c.organization { |a| organization(a, p, node, !node.attr("publisher")) }
10
10
  end
11
11
  end
12
12
  end
@@ -16,7 +16,7 @@ module Asciidoctor
16
16
  csv_split(publishers)&.each do |p|
17
17
  xml.contributor do |c|
18
18
  c.role **{ type: "publisher" }
19
- c.organization { |a| organization(a, p) }
19
+ c.organization { |a| organization(a, p, node, !node.attr("publisher")) }
20
20
  end
21
21
  end
22
22
  end
@@ -27,7 +27,9 @@ module Asciidoctor
27
27
  xml.copyright do |c|
28
28
  c.from (node.attr("copyright-year") || Date.today.year)
29
29
  c.owner do |owner|
30
- owner.organization { |o| organization(o, p) }
30
+ owner.organization do |o|
31
+ organization(o, p, node, !node.attr("copyright-holder") || node.attr("publisher"))
32
+ end
31
33
  end
32
34
  end
33
35
  end
@@ -42,7 +42,6 @@
42
42
  </define>
43
43
  <define name="xref">
44
44
  <element name="xref">
45
- <!-- attribute target { xsd:IDREF }, -->
46
45
  <attribute name="target">
47
46
  <data type="string">
48
47
  <param name="pattern">\i\c*|\c+#\c+</param>
@@ -16,7 +16,7 @@ fieldset, form, label, legend,
16
16
  table, caption, tbody, tfoot, thead, tr, th, td,
17
17
  article, aside, canvas, details, embed,
18
18
  figure, figcaption, footer, header, hgroup,
19
- menu, nav, output, ruby, section, summary,
19
+ menu, output, ruby, section, summary,
20
20
  time, mark, audio, video {
21
21
  margin: 0;
22
22
  padding: 0; }
@@ -136,7 +136,7 @@
136
136
  <xsl:call-template name="namespaceCheck"/>
137
137
  <!-- https://stackoverflow.com/questions/25261949/xsl-fo-letter-spacing-with-text-align -->
138
138
  <!-- https://xmlgraphics.apache.org/fop/knownissues.html -->
139
- <fo:root font-family="Arial, Times New Roman, STIX2Math, HanSans" font-size="10pt" xml:lang="{$lang}">
139
+ <fo:root font-family="Arial, Times New Roman, STIX Two Math, HanSans" font-size="10pt" xml:lang="{$lang}">
140
140
  <fo:layout-master-set>
141
141
  <!-- cover pages -->
142
142
  <fo:simple-page-master master-name="cover" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -2163,7 +2163,12 @@
2163
2163
 
2164
2164
 
2165
2165
  </title-toc>
2166
- <title-toc lang="fr">Sommaire</title-toc>
2166
+ <title-toc lang="fr">
2167
+
2168
+ <xsl:text>Sommaire</xsl:text>
2169
+
2170
+
2171
+ </title-toc>
2167
2172
 
2168
2173
  <title-toc lang="zh">Contents</title-toc>
2169
2174
 
@@ -2255,10 +2260,19 @@
2255
2260
 
2256
2261
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
2257
2262
  <xsl:param name="name"/>
2258
- <xsl:variable name="lang">
2259
- <xsl:call-template name="getLang"/>
2263
+ <xsl:param name="lang"/>
2264
+ <xsl:variable name="lang_">
2265
+ <xsl:choose>
2266
+ <xsl:when test="$lang != ''">
2267
+ <xsl:value-of select="$lang"/>
2268
+ </xsl:when>
2269
+ <xsl:otherwise>
2270
+ <xsl:call-template name="getLang"/>
2271
+ </xsl:otherwise>
2272
+ </xsl:choose>
2260
2273
  </xsl:variable>
2261
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
2274
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
2275
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
2262
2276
  <xsl:choose>
2263
2277
  <xsl:when test="normalize-space($title_) != ''">
2264
2278
  <xsl:value-of select="$title_"/>
@@ -2398,6 +2412,7 @@
2398
2412
 
2399
2413
 
2400
2414
 
2415
+
2401
2416
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2402
2417
 
2403
2418
 
@@ -2646,6 +2661,8 @@
2646
2661
 
2647
2662
 
2648
2663
 
2664
+
2665
+
2649
2666
  <!-- $namespace = 'iso' or -->
2650
2667
 
2651
2668
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -2683,6 +2700,7 @@
2683
2700
  <xsl:with-param name="table" select="$simple-table"/>
2684
2701
  </xsl:call-template>
2685
2702
  </xsl:variable>
2703
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2686
2704
 
2687
2705
  <!-- <xsl:variable name="colwidths2">
2688
2706
  <xsl:call-template name="calculate-column-widths">
@@ -2704,37 +2722,57 @@
2704
2722
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2705
2723
 
2706
2724
 
2725
+
2726
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2707
2727
  <xsl:attribute name="space-after">12pt</xsl:attribute>
2708
2728
  <xsl:if test="ancestor::*[local-name() = 'preface']">
2709
2729
  <xsl:attribute name="space-after">16pt</xsl:attribute>
2710
2730
  </xsl:if>
2731
+
2732
+
2733
+
2711
2734
 
2712
2735
 
2736
+
2713
2737
 
2714
2738
 
2715
-
2716
2739
 
2717
2740
 
2718
2741
 
2719
- <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
2720
-
2721
-
2722
- <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
2723
-
2724
-
2725
-
2726
-
2742
+
2743
+
2744
+ <xsl:variable name="table_attributes">
2745
+ <attribute name="table-layout">fixed</attribute>
2746
+ <attribute name="width">100%</attribute>
2747
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2748
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2727
2749
 
2728
2750
 
2751
+ <attribute name="border">0.5pt solid black</attribute>
2729
2752
 
2730
2753
 
2731
2754
 
2755
+
2756
+
2757
+
2732
2758
 
2733
- <!-- <xsl:if test="ancestor::*[local-name()='preface']"> -->
2734
- <xsl:attribute name="font-size">8pt</xsl:attribute>
2759
+
2735
2760
 
2761
+ </xsl:variable>
2762
+
2763
+
2764
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2736
2765
 
2766
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2767
+ <xsl:attribute name="{@name}">
2768
+ <xsl:value-of select="."/>
2769
+ </xsl:attribute>
2770
+ </xsl:for-each>
2737
2771
 
2772
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2773
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2774
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2775
+ </xsl:if>
2738
2776
 
2739
2777
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2740
2778
  <xsl:choose>
@@ -2758,6 +2796,33 @@
2758
2796
 
2759
2797
  </fo:table>
2760
2798
 
2799
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2800
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2801
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2802
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2803
+ </xsl:call-template>
2804
+ </xsl:for-each>
2805
+
2806
+ <!-- insert footer as table -->
2807
+ <!-- <fo:table>
2808
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2809
+ <xsl:attribute name="{@name}">
2810
+ <xsl:value-of select="."/>
2811
+ </xsl:attribute>
2812
+ </xsl:for-each>
2813
+
2814
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2815
+ <xsl:choose>
2816
+ <xsl:when test=". = 1 or . = 0">
2817
+ <fo:table-column column-width="proportional-column-width(2)"/>
2818
+ </xsl:when>
2819
+ <xsl:otherwise>
2820
+ <fo:table-column column-width="proportional-column-width({.})"/>
2821
+ </xsl:otherwise>
2822
+ </xsl:choose>
2823
+ </xsl:for-each>
2824
+ </fo:table>-->
2825
+
2761
2826
 
2762
2827
 
2763
2828
 
@@ -2822,6 +2887,13 @@
2822
2887
  <xsl:for-each select="xalan:nodeset($table)//tr">
2823
2888
  <xsl:variable name="td_text">
2824
2889
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2890
+
2891
+ <!-- <xsl:if test="$namespace = 'bipm'">
2892
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
2893
+ <word><xsl:value-of select="normalize-space(.)"/></word>
2894
+ </xsl:for-each>
2895
+ </xsl:if> -->
2896
+
2825
2897
  </xsl:variable>
2826
2898
  <xsl:variable name="words">
2827
2899
  <xsl:variable name="string_with_added_zerospaces">
@@ -2881,11 +2953,14 @@
2881
2953
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2882
2954
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2883
2955
  <xsl:value-of select="@target"/>
2956
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2957
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
2958
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2884
2959
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2885
2960
  <xsl:param name="cols-count"/>
2886
2961
  <!-- font-weight="bold" -->
2887
2962
  <fo:table-header>
2888
-
2963
+
2889
2964
  <xsl:apply-templates/>
2890
2965
  </fo:table-header>
2891
2966
  </xsl:template><xsl:template name="table-header-title">
@@ -2910,6 +2985,13 @@
2910
2985
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2911
2986
  <xsl:apply-templates/>
2912
2987
  </xsl:template><xsl:template name="insertTableFooter">
2988
+ <xsl:param name="cols-count"/>
2989
+ <xsl:if test="../*[local-name()='tfoot']">
2990
+ <fo:table-footer>
2991
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2992
+ </fo:table-footer>
2993
+ </xsl:if>
2994
+ </xsl:template><xsl:template name="insertTableFooter2">
2913
2995
  <xsl:param name="cols-count"/>
2914
2996
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2915
2997
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -2937,11 +3019,15 @@
2937
3019
  </xsl:if>
2938
3020
 
2939
3021
 
2940
- <!-- except gb -->
3022
+
3023
+ <!-- except gb and bipm -->
2941
3024
 
2942
3025
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2943
3026
 
2944
3027
 
3028
+
3029
+
3030
+
2945
3031
  <!-- horizontal row separator -->
2946
3032
 
2947
3033
  <xsl:if test="../*[local-name()='note']">
@@ -2961,6 +3047,96 @@
2961
3047
  </fo:table-footer>
2962
3048
 
2963
3049
  </xsl:if>
3050
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3051
+ <xsl:param name="table_attributes"/>
3052
+ <xsl:param name="colwidths"/>
3053
+
3054
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3055
+
3056
+ <xsl:if test="$isNoteOrFnExist = 'true'">
3057
+
3058
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
3059
+
3060
+ <fo:table keep-with-previous="always">
3061
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3062
+ <xsl:choose>
3063
+ <xsl:when test="@name = 'border-top'">
3064
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
3065
+ </xsl:when>
3066
+ <xsl:when test="@name = 'border'">
3067
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3068
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3069
+ </xsl:when>
3070
+ <xsl:otherwise>
3071
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3072
+ </xsl:otherwise>
3073
+ </xsl:choose>
3074
+ </xsl:for-each>
3075
+
3076
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3077
+ <xsl:choose>
3078
+ <xsl:when test=". = 1 or . = 0">
3079
+ <fo:table-column column-width="proportional-column-width(2)"/>
3080
+ </xsl:when>
3081
+ <xsl:otherwise>
3082
+ <fo:table-column column-width="proportional-column-width({.})"/>
3083
+ </xsl:otherwise>
3084
+ </xsl:choose>
3085
+ </xsl:for-each>
3086
+
3087
+ <fo:table-body>
3088
+ <fo:table-row>
3089
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3090
+
3091
+
3092
+ <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3093
+
3094
+
3095
+ <!-- fn will be processed inside 'note' processing -->
3096
+
3097
+ <xsl:if test="../*[local-name()='note']">
3098
+ <fo:block margin-bottom="6pt"> </fo:block>
3099
+ </xsl:if>
3100
+
3101
+
3102
+
3103
+ <!-- except gb and bipm -->
3104
+
3105
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3106
+
3107
+
3108
+ <!-- <xsl:if test="$namespace = 'bipm'">
3109
+ <xsl:choose>
3110
+ <xsl:when test="ancestor::*[local-name()='preface']">
3111
+ show Note under table in preface (ex. abstract) sections
3112
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3113
+ </xsl:when>
3114
+ <xsl:otherwise>
3115
+ empty, because notes show at page side in main sections
3116
+ <fo:block/>
3117
+ </xsl:otherwise>
3118
+ </xsl:choose>
3119
+ </xsl:if> -->
3120
+
3121
+
3122
+ <!-- horizontal row separator -->
3123
+
3124
+ <xsl:if test="../*[local-name()='note']">
3125
+ <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3126
+ <fo:block font-size="1pt"> </fo:block>
3127
+ </fo:block-container>
3128
+ </xsl:if>
3129
+
3130
+
3131
+ <!-- fn processing -->
3132
+ <xsl:call-template name="fn_display"/>
3133
+
3134
+ </fo:table-cell>
3135
+ </fo:table-row>
3136
+ </fo:table-body>
3137
+
3138
+ </fo:table>
3139
+ </xsl:if>
2964
3140
  </xsl:template><xsl:template match="*[local-name()='tbody']">
2965
3141
 
2966
3142
  <xsl:variable name="cols-count">
@@ -3019,8 +3195,8 @@
3019
3195
 
3020
3196
  </xsl:if>
3021
3197
 
3022
-
3023
-
3198
+
3199
+
3024
3200
 
3025
3201
  <xsl:apply-templates/>
3026
3202
  </fo:table-row>
@@ -3052,6 +3228,7 @@
3052
3228
 
3053
3229
 
3054
3230
 
3231
+
3055
3232
  <xsl:if test="@colspan">
3056
3233
  <xsl:attribute name="number-columns-spanned">
3057
3234
  <xsl:value-of select="@colspan"/>
@@ -3097,7 +3274,7 @@
3097
3274
  <xsl:attribute name="border">solid black 0</xsl:attribute>
3098
3275
  </xsl:if>
3099
3276
 
3100
-
3277
+
3101
3278
 
3102
3279
  <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3103
3280
  <xsl:if test="ancestor::*[local-name()='preface']">
@@ -3109,6 +3286,7 @@
3109
3286
 
3110
3287
 
3111
3288
 
3289
+
3112
3290
  <xsl:if test="@colspan">
3113
3291
  <xsl:attribute name="number-columns-spanned">
3114
3292
  <xsl:value-of select="@colspan"/>
@@ -3135,14 +3313,17 @@
3135
3313
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3136
3314
 
3137
3315
 
3316
+
3317
+
3138
3318
  <fo:inline padding-right="2mm">
3139
3319
 
3140
3320
 
3141
3321
 
3142
-
3322
+
3143
3323
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3144
3324
 
3145
3325
  </fo:inline>
3326
+
3146
3327
  <xsl:apply-templates mode="process"/>
3147
3328
  </fo:block>
3148
3329
 
@@ -3171,6 +3352,7 @@
3171
3352
  <xsl:attribute name="margin-left">6mm</xsl:attribute>
3172
3353
 
3173
3354
 
3355
+
3174
3356
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3175
3357
 
3176
3358
 
@@ -3181,12 +3363,15 @@
3181
3363
 
3182
3364
 
3183
3365
 
3366
+
3184
3367
  <xsl:value-of select="@reference"/>
3185
3368
 
3369
+
3186
3370
  </fo:inline>
3187
3371
  <fo:inline>
3188
3372
 
3189
- <xsl:apply-templates/>
3373
+ <!-- <xsl:apply-templates /> -->
3374
+ <xsl:copy-of select="./node()"/>
3190
3375
  </fo:inline>
3191
3376
  </fo:block>
3192
3377
  </xsl:if>
@@ -3223,7 +3408,20 @@
3223
3408
  <xsl:variable name="following_dl_colwidths">
3224
3409
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
3225
3410
  <xsl:variable name="html-table">
3226
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3411
+ <xsl:variable name="doc_ns">
3412
+
3413
+ </xsl:variable>
3414
+ <xsl:variable name="ns">
3415
+ <xsl:choose>
3416
+ <xsl:when test="normalize-space($doc_ns) != ''">
3417
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3418
+ </xsl:when>
3419
+ <xsl:otherwise>
3420
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3421
+ </xsl:otherwise>
3422
+ </xsl:choose>
3423
+ </xsl:variable>
3424
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3227
3425
  <xsl:element name="{$ns}:table">
3228
3426
  <xsl:for-each select="*[local-name() = 'dl'][1]">
3229
3427
  <tbody>
@@ -3297,7 +3495,8 @@
3297
3495
 
3298
3496
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
3299
3497
 
3300
- <xsl:apply-templates/>
3498
+ <!-- <xsl:apply-templates /> -->
3499
+ <xsl:copy-of select="./node()"/>
3301
3500
  </fo:block>
3302
3501
  </fo:table-cell>
3303
3502
  </fo:table-row>
@@ -3322,9 +3521,12 @@
3322
3521
 
3323
3522
 
3324
3523
 
3524
+
3325
3525
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3326
3526
 
3527
+
3327
3528
  <xsl:value-of select="@reference"/>
3529
+
3328
3530
  </fo:basic-link>
3329
3531
  </fo:inline>
3330
3532
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -3438,7 +3640,20 @@
3438
3640
  </xsl:choose>
3439
3641
  <!-- create virtual html table for dl/[dt and dd] -->
3440
3642
  <xsl:variable name="html-table">
3441
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3643
+ <xsl:variable name="doc_ns">
3644
+
3645
+ </xsl:variable>
3646
+ <xsl:variable name="ns">
3647
+ <xsl:choose>
3648
+ <xsl:when test="normalize-space($doc_ns) != ''">
3649
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3650
+ </xsl:when>
3651
+ <xsl:otherwise>
3652
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3653
+ </xsl:otherwise>
3654
+ </xsl:choose>
3655
+ </xsl:variable>
3656
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3442
3657
  <xsl:element name="{$ns}:table">
3443
3658
  <tbody>
3444
3659
  <xsl:apply-templates mode="dl"/>
@@ -3586,6 +3801,7 @@
3586
3801
 
3587
3802
 
3588
3803
 
3804
+
3589
3805
  <xsl:apply-templates/>
3590
3806
  <!-- <xsl:if test="$namespace = 'gb'">
3591
3807
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -3652,18 +3868,18 @@
3652
3868
  </xsl:template><xsl:template match="*[local-name()='tt']">
3653
3869
  <fo:inline xsl:use-attribute-sets="tt-style">
3654
3870
  <xsl:variable name="_font-size">
3655
-
3656
-
3657
-
3871
+
3872
+
3873
+
3658
3874
  10
3659
3875
 
3660
3876
 
3661
3877
 
3662
3878
 
3663
3879
 
3664
-
3665
3880
 
3666
-
3881
+
3882
+
3667
3883
 
3668
3884
 
3669
3885
  </xsl:variable>
@@ -4001,7 +4217,7 @@
4001
4217
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
4002
4218
  <xsl:value-of select="substring($str, 2)"/>
4003
4219
  </xsl:template><xsl:template match="mathml:math">
4004
- <fo:inline font-family="STIX2Math">
4220
+ <fo:inline font-family="STIX Two Math"> <!-- -->
4005
4221
  <xsl:variable name="mathml">
4006
4222
  <xsl:apply-templates select="." mode="mathml"/>
4007
4223
  </xsl:variable>
@@ -4095,7 +4311,7 @@
4095
4311
  <xsl:apply-templates/>
4096
4312
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
4097
4313
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
4098
-
4314
+
4099
4315
  <xsl:apply-templates/>
4100
4316
  </fo:basic-link>
4101
4317
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -4303,18 +4519,9 @@
4303
4519
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4304
4520
  <fo:bookmark-title>
4305
4521
  <xsl:variable name="bookmark-title_">
4306
- <xsl:choose>
4307
- <xsl:when test="@lang = 'en'">
4308
- English
4309
-
4310
- </xsl:when>
4311
- <xsl:when test="@lang = 'fr'">
4312
- Français
4313
-
4314
- </xsl:when>
4315
- <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
4316
- <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
4317
- </xsl:choose>
4522
+ <xsl:call-template name="getLangVersion">
4523
+ <xsl:with-param name="lang" select="@lang"/>
4524
+ </xsl:call-template>
4318
4525
  </xsl:variable>
4319
4526
  <xsl:choose>
4320
4527
  <xsl:when test="normalize-space($bookmark-title_) != ''">
@@ -4376,13 +4583,27 @@
4376
4583
  </fo:bookmark>
4377
4584
  </xsl:for-each>
4378
4585
  </fo:bookmark>
4379
- </xsl:if>
4586
+ </xsl:if>
4380
4587
 
4381
4588
 
4382
4589
 
4383
4590
 
4384
4591
  </fo:bookmark-tree>
4385
4592
  </xsl:if>
4593
+ </xsl:template><xsl:template name="getLangVersion">
4594
+ <xsl:param name="lang"/>
4595
+ <xsl:choose>
4596
+ <xsl:when test="$lang = 'en'">
4597
+ English
4598
+
4599
+ </xsl:when>
4600
+ <xsl:when test="$lang = 'fr'">
4601
+ Français
4602
+
4603
+ </xsl:when>
4604
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
4605
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
4606
+ </xsl:choose>
4386
4607
  </xsl:template><xsl:template match="item" mode="bookmark">
4387
4608
  <fo:bookmark internal-destination="{@id}" starting-state="hide">
4388
4609
  <fo:bookmark-title>
@@ -4397,7 +4618,7 @@
4397
4618
  </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4398
4619
  <xsl:if test="normalize-space() != ''">
4399
4620
  <fo:block xsl:use-attribute-sets="figure-name-style">
4400
-
4621
+
4401
4622
  <xsl:apply-templates/>
4402
4623
  </fo:block>
4403
4624
  </xsl:if>
@@ -5031,6 +5252,7 @@
5031
5252
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
5032
5253
  <fo:block>
5033
5254
  <xsl:call-template name="setId"/>
5255
+
5034
5256
  <xsl:apply-templates/>
5035
5257
  </fo:block>
5036
5258
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
@@ -5066,6 +5288,7 @@
5066
5288
  </xsl:choose>
5067
5289
  </xsl:attribute>
5068
5290
 
5291
+
5069
5292
  <fo:block-container margin-left="0mm">
5070
5293
  <fo:block>
5071
5294
  <xsl:apply-templates select="." mode="ul_ol"/>
@@ -5251,6 +5474,7 @@
5251
5474
 
5252
5475
 
5253
5476
 
5477
+
5254
5478
 
5255
5479
  </xsl:variable>
5256
5480
  <xsl:choose>
@@ -5265,6 +5489,7 @@
5265
5489
  <dc:creator>
5266
5490
 
5267
5491
 
5492
+
5268
5493
  </dc:creator>
5269
5494
  <dc:description>
5270
5495
  <xsl:variable name="abstract">
@@ -5274,6 +5499,7 @@
5274
5499
 
5275
5500
 
5276
5501
 
5502
+
5277
5503
  </xsl:variable>
5278
5504
  <xsl:value-of select="normalize-space($abstract)"/>
5279
5505
  </dc:description>
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module Iec
3
- VERSION = "1.2.5"
3
+ VERSION = "1.2.6"
4
4
  end
5
5
  end
6
6
 
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  spec.add_dependency "ruby-jing"
31
31
  spec.add_dependency "isodoc", "~> 1.2.0"
32
- spec.add_dependency "metanorma-iso", "~> 1.5.9"
32
+ spec.add_dependency "metanorma-iso", "~> 1.5.10"
33
33
 
34
34
  spec.add_development_dependency "byebug"
35
35
  spec.add_development_dependency "sassc", "2.4.0"
@@ -2,10 +2,30 @@ require "spec_helper"
2
2
  require "fileutils"
3
3
 
4
4
  RSpec.describe Asciidoctor::Iec do
5
+ context "when xref_error.adoc compilation" do
6
+ around do |example|
7
+ FileUtils.rm_f "spec/assets/xref_error.err"
8
+ example.run
9
+ Dir["spec/assets/xref_error*"].each do |file|
10
+ next if file.match?(/adoc$/)
11
+
12
+ FileUtils.rm_f(file)
13
+ end
14
+ end
15
+
16
+ it "generates error file" do
17
+ expect do
18
+ Metanorma::Compile
19
+ .new
20
+ .compile("spec/assets/xref_error.adoc", type: "iec")
21
+ end.to(change { File.exist?("spec/assets/xref_error.err") }
22
+ .from(false).to(true))
23
+ end
24
+ end
5
25
 
6
26
  it "Warns of illegal doctype" do
7
27
  FileUtils.rm_f "test.err"
8
- Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true)
28
+ Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true)
9
29
  = Document title
10
30
  Author
11
31
  :docfile: test.adoc
@@ -0,0 +1,7 @@
1
+ = X
2
+ A
3
+
4
+ == Clause
5
+
6
+ <<a,b>>
7
+
@@ -7,7 +7,7 @@ RSpec.describe IsoDoc::Iec::Metadata do
7
7
  arr = c.convert_init(<<~"INPUT", "test", false)
8
8
  <iec-standard xmlns="http://riboseinc.com/isoxml">
9
9
  INPUT
10
- expect(Hash[c.info(Nokogiri::XML(<<~"INPUT"), nil).sort].to_s.gsub(/, :/, ",\n:")).to be_equivalent_to <<~"OUTPUT"
10
+ expect(metadata(c.info(Nokogiri::XML(<<~"INPUT"), nil)).to_s.gsub(/, :/, ",\n:")).to be_equivalent_to <<~"OUTPUT"
11
11
  <iso-standard xmlns="http://riboseinc.com/isoxml">
12
12
  <bibdata type="standard">
13
13
  <title type="title-intro" language="en" format="text/plain">Cereals and pulses</title>
@@ -76,12 +76,8 @@ INPUT
76
76
  {:accesseddate=>"2012",
77
77
  :activateddate=>"2013",
78
78
  :agency=>"ISO",
79
- :authors=>[],
80
- :authors_affiliations=>{},
81
79
  :createddate=>"2010&ndash;2011",
82
80
  :docnumber=>"ISO/PreCD3 17301-1",
83
- :docnumber_lang=>nil,
84
- :docnumber_reference=>nil,
85
81
  :docnumeric=>"1730",
86
82
  :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz",
87
83
  :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses",
@@ -99,11 +95,7 @@ INPUT
99
95
  :draftinfo=>" (draft 0.4, 2016-05-01)",
100
96
  :edition=>"2",
101
97
  :editorialgroup=>["TC 34", "SC 4", "WG 3"],
102
- :ics=>nil,
103
- :keywords=>[],
104
98
  :obsoleteddate=>"2014",
105
- :obsoletes=>nil,
106
- :obsoletes_part=>nil,
107
99
  :publisheddate=>"2011",
108
100
  :publisher=>"International Organization for Standardization",
109
101
  :revdate=>"2016-05-01",
@@ -126,7 +118,7 @@ OUTPUT
126
118
  arr = c.convert_init(<<~"INPUT", "test", false)
127
119
  <iso-standard xmlns="http://riboseinc.com/isoxml">
128
120
  INPUT
129
- expect(Hash[c.info(Nokogiri::XML(<<~"INPUT"), nil).sort].to_s.gsub(/, :/, ",\n:")).to be_equivalent_to <<~"OUTPUT"
121
+ expect(metadata(c.info(Nokogiri::XML(<<~"INPUT"), nil)).to_s.gsub(/, :/, ",\n:")).to be_equivalent_to <<~"OUTPUT"
130
122
  <iso-standard xmlns="http://riboseinc.com/isoxml">
131
123
  <bibdata type="standard">
132
124
  <title>
@@ -197,12 +189,7 @@ OUTPUT
197
189
  </iso-standard>
198
190
  INPUT
199
191
  {:agency=>"ISO/IEC",
200
- :authors=>[],
201
- :authors_affiliations=>{},
202
192
  :docnumber=>"ISO/IEC/CD 17301-1-3",
203
- :docnumber_lang=>nil,
204
- :docnumber_reference=>nil,
205
- :docnumeric=>nil,
206
193
  :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz",
207
194
  :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses",
208
195
  :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai",
@@ -215,17 +202,11 @@ INPUT
215
202
  :doctitlepartlabel=>"Part&nbsp;1&ndash;3",
216
203
  :doctype=>"Technical Report",
217
204
  :docyear=>"2016",
218
- :draft=>nil,
219
- :draftinfo=>"",
220
- :edition=>nil,
221
205
  :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"],
222
206
  :ics=>"1.2.3, 1.2.3",
223
- :keywords=>[],
224
207
  :obsoletes=>"IEC 8121",
225
208
  :obsoletes_part=>"3.1",
226
209
  :publisher=>"International Organization for Standardization and International Electrotechnical Commission",
227
- :revdate=>nil,
228
- :revdate_monthyear=>nil,
229
210
  :sc=>"DEF 4",
230
211
  :secretariat=>"XXXX",
231
212
  :stage=>"50",
@@ -25,6 +25,10 @@ RSpec.configure do |config|
25
25
  end
26
26
  end
27
27
 
28
+ def metadata(x)
29
+ Hash[x.sort].delete_if{ |k, v| v.nil? || v.respond_to?(:empty?) && v.empty? }
30
+ end
31
+
28
32
  def strip_guid(x)
29
33
  x.gsub(%r{ id="_[^"]+"}, ' id="_"').gsub(%r{ target="_[^"]+"}, ' target="_"')
30
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-26 00:00:00.000000000 Z
11
+ date: 2020-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-jing
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.5.9
47
+ version: 1.5.10
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.5.9
54
+ version: 1.5.10
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: byebug
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -282,6 +282,7 @@ files:
282
282
  - spec/assets/rice_image1.png
283
283
  - spec/assets/word.css
284
284
  - spec/assets/wordintro.html
285
+ - spec/assets/xref_error.adoc
285
286
  - spec/examples/rice.adoc
286
287
  - spec/examples/rice.doc
287
288
  - spec/examples/rice.html