metanorma-nist 1.2.0 → 1.2.1

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: 0def1e8573338383bf4e456fc4fc092a232c08ef46b676facc570908ad9fd9aa
4
- data.tar.gz: 820cf042c13235a0519ee6818573d9fb445bb6e0d368265a7e72753ea7e40c94
3
+ metadata.gz: 1495072b5486784814d43bda0e9352fbc4945952571260b0226025aa69025ccd
4
+ data.tar.gz: e90d93ae0853e166cd1b36f954e8ab13b56b3ec87d3a78e347eefa063e05267f
5
5
  SHA512:
6
- metadata.gz: 0c5a2abc6a91c220a19917f5b314a18fa06067263c391fbe4d97897d16461b11af49c61feaf8a737264c355627aa42a202981a1b8c40ed7fb37bb8c39791b2e0
7
- data.tar.gz: 0fc41aabba065a26cef8e432bf32b2c5c2927e9a3826cf89c578905e9154b51085ca447463e8feddff9ed7f21ae32ed5f79b65981dee54921f86d976c0b4b40d
6
+ metadata.gz: 99c3f28c3399dff97c470d7f88207abd2631c023177068b1b6e5076d31500ded0e748a51c0d29bc5bbb73eec2771676b7860af368994125a00737e7474aba744
7
+ data.tar.gz: 99d118cfd090a5a479f3e496874207ddd6530ac93b83f015fcfa1411b6723373ccc6dd6cb80a633e279a237f655f20af957f9c8250031447f6be72f9972baeb7
@@ -5,9 +5,6 @@ require_relative "./front_id.rb"
5
5
 
6
6
  module Asciidoctor
7
7
  module NIST
8
- # A {Converter} implementation that generates RSD output, and a document
9
- # schema encapsulation of the document for validation
10
-
11
8
  class Converter < Standoc::Converter
12
9
  def doctype(node)
13
10
  node.attr("doctype") || "sp-800"
@@ -72,13 +69,21 @@ module Asciidoctor
72
69
  personal_author(node, xml)
73
70
  end
74
71
 
72
+ def default_publisher
73
+ "National Institute of Standards and Technology"
74
+ end
75
+
75
76
  def metadata_publisher(node, xml)
76
- xml.contributor do |c|
77
- c.role **{ type: "publisher" }
78
- c.organization do |a|
79
- a.name "National Institute of Standards and Technology"
80
- a.abbreviation "NIST"
81
- d = node.attr("nist-division") and a.subdivision d
77
+ publishers = node.attr("publisher") || default_publisher
78
+ csv_split(publishers)&.each do |p|
79
+ xml.contributor do |c|
80
+ c.role **{ type: "publisher" }
81
+ c.organization do |a|
82
+ a.name p
83
+ if p == default_publisher
84
+ d = node.attr("nist-division") and a.subdivision d
85
+ end
86
+ end
82
87
  end
83
88
  end
84
89
  end
@@ -111,20 +116,6 @@ module Asciidoctor
111
116
  end
112
117
  end
113
118
 
114
- def metadata_copyright(node, xml)
115
- from = node.attr("copyright-year") || node.attr("copyrightyear") ||
116
- Date.today.year
117
- xml.copyright do |c|
118
- c.from from
119
- c.owner do |owner|
120
- owner.organization do |o|
121
- o.name "National Institute of Standards and Technology"
122
- o.abbreviation "NIST"
123
- end
124
- end
125
- end
126
- end
127
-
128
119
  def metadata_source(node, xml)
129
120
  super
130
121
  node.attr("doc-email") && xml.uri(node.attr("doc-email"), type: "email")
@@ -157,7 +148,7 @@ module Asciidoctor
157
148
 
158
149
  def relaton_relation_descriptions
159
150
  super.merge({ "supersedes" => "obsoletes",
160
- "superseded-by" => "obsoleted-by", })
151
+ "superseded-by" => "obsoleted-by", })
161
152
  end
162
153
 
163
154
  def metadata_getrelation(node, xml, type, desc = nil)
@@ -1221,6 +1221,7 @@
1221
1221
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1222
1222
 
1223
1223
 
1224
+
1224
1225
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1225
1226
 
1226
1227
 
@@ -1240,6 +1241,8 @@
1240
1241
 
1241
1242
 
1242
1243
 
1244
+
1245
+
1243
1246
 
1244
1247
 
1245
1248
  </xsl:attribute-set><xsl:attribute-set name="example-p-style">
@@ -1256,6 +1259,8 @@
1256
1259
 
1257
1260
 
1258
1261
 
1262
+
1263
+
1259
1264
  </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
1260
1265
 
1261
1266
 
@@ -1279,6 +1284,7 @@
1279
1284
 
1280
1285
 
1281
1286
 
1287
+
1282
1288
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1283
1289
 
1284
1290
 
@@ -1396,7 +1402,7 @@
1396
1402
 
1397
1403
 
1398
1404
 
1399
-
1405
+
1400
1406
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1401
1407
 
1402
1408
  </xsl:attribute-set><xsl:attribute-set name="image-style">
@@ -1437,7 +1443,43 @@
1437
1443
  </xsl:attribute-set><xsl:attribute-set name="definition-style">
1438
1444
 
1439
1445
 
1440
- </xsl:attribute-set><xsl:template match="text()">
1446
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
1447
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1448
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1449
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1450
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1451
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1452
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1453
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1454
+
1455
+ <!-- Normative references -->
1456
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
1457
+ <!-- Terms and definitions -->
1458
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
1459
+ <!-- Another main sections -->
1460
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
1461
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1462
+ <!-- Bibliography -->
1463
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
1464
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1465
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1466
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1467
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1468
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1469
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1470
+ </xsl:template><xsl:template name="processMainSectionsDefault">
1471
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1472
+
1473
+ <!-- Normative references -->
1474
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1475
+ <!-- Terms and definitions -->
1476
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
1477
+ <!-- Another main sections -->
1478
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
1479
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1480
+ <!-- Bibliography -->
1481
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1482
+ </xsl:template><xsl:template match="text()">
1441
1483
  <xsl:value-of select="."/>
1442
1484
  </xsl:template><xsl:template match="*[local-name()='br']">
1443
1485
  <xsl:value-of select="$linebreak"/>
@@ -1516,6 +1558,7 @@
1516
1558
 
1517
1559
 
1518
1560
 
1561
+
1519
1562
  <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">
1520
1563
 
1521
1564
 
@@ -1538,6 +1581,7 @@
1538
1581
 
1539
1582
 
1540
1583
 
1584
+
1541
1585
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1542
1586
  <xsl:choose>
1543
1587
  <xsl:when test=". = 1 or . = 0">
@@ -1791,6 +1835,14 @@
1791
1835
  </fo:table-row>
1792
1836
  </xsl:template><xsl:template match="*[local-name()='th']">
1793
1837
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
1838
+ <xsl:attribute name="text-align">
1839
+ <xsl:choose>
1840
+ <xsl:when test="@align">
1841
+ <xsl:value-of select="@align"/>
1842
+ </xsl:when>
1843
+ <xsl:otherwise>center</xsl:otherwise>
1844
+ </xsl:choose>
1845
+ </xsl:attribute>
1794
1846
 
1795
1847
 
1796
1848
 
@@ -1803,6 +1855,7 @@
1803
1855
 
1804
1856
 
1805
1857
 
1858
+
1806
1859
  <xsl:if test="@colspan">
1807
1860
  <xsl:attribute name="number-columns-spanned">
1808
1861
  <xsl:value-of select="@colspan"/>
@@ -1819,6 +1872,14 @@
1819
1872
  </fo:table-cell>
1820
1873
  </xsl:template><xsl:template match="*[local-name()='td']">
1821
1874
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
1875
+ <xsl:attribute name="text-align">
1876
+ <xsl:choose>
1877
+ <xsl:when test="@align">
1878
+ <xsl:value-of select="@align"/>
1879
+ </xsl:when>
1880
+ <xsl:otherwise>left</xsl:otherwise>
1881
+ </xsl:choose>
1882
+ </xsl:attribute>
1822
1883
 
1823
1884
 
1824
1885
 
@@ -3074,6 +3135,117 @@
3074
3135
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
3075
3136
  <xsl:apply-templates/>
3076
3137
  </fo:block>
3138
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3139
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
3140
+ <fo:block-container margin-left="0mm" margin-right="0mm">
3141
+ <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
3142
+ <xsl:variable name="simple-table">
3143
+ <xsl:call-template name="getSimpleTable"/>
3144
+ </xsl:variable>
3145
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
3146
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
3147
+ <fo:table-column column-width="35mm"/>
3148
+ <fo:table-column column-width="115mm"/>
3149
+ </xsl:if>
3150
+ <xsl:apply-templates mode="requirement"/>
3151
+ </fo:table>
3152
+ <!-- fn processing -->
3153
+ <xsl:if test=".//*[local-name() = 'fn']">
3154
+ <xsl:for-each select="*[local-name() = 'tbody']">
3155
+ <fo:block font-size="90%" border-bottom="1.pt solid black">
3156
+ <xsl:call-template name="fn_display"/>
3157
+ </fo:block>
3158
+ </xsl:for-each>
3159
+ </xsl:if>
3160
+ </fo:block-container>
3161
+ </fo:block-container>
3162
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
3163
+ <fo:table-header>
3164
+ <xsl:apply-templates mode="requirement"/>
3165
+ </fo:table-header>
3166
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
3167
+ <fo:table-body>
3168
+ <xsl:apply-templates mode="requirement"/>
3169
+ </fo:table-body>
3170
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
3171
+ <fo:table-row>
3172
+ <xsl:apply-templates mode="requirement"/>
3173
+ </fo:table-row>
3174
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
3175
+ <fo:table-cell text-align="{@align}">
3176
+ <xsl:attribute name="text-align">
3177
+ <xsl:choose>
3178
+ <xsl:when test="@align">
3179
+ <xsl:value-of select="@align"/>
3180
+ </xsl:when>
3181
+ <xsl:otherwise>center</xsl:otherwise>
3182
+ </xsl:choose>
3183
+ </xsl:attribute>
3184
+ <xsl:if test="@colspan">
3185
+ <xsl:attribute name="number-columns-spanned">
3186
+ <xsl:value-of select="@colspan"/>
3187
+ </xsl:attribute>
3188
+ </xsl:if>
3189
+ <xsl:if test="@rowspan">
3190
+ <xsl:attribute name="number-rows-spanned">
3191
+ <xsl:value-of select="@rowspan"/>
3192
+ </xsl:attribute>
3193
+ </xsl:if>
3194
+
3195
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3196
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3197
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
3198
+ </xsl:if>
3199
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
3200
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3201
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3202
+ </xsl:if>
3203
+
3204
+ <fo:block>
3205
+ <xsl:apply-templates/>
3206
+ </fo:block>
3207
+ </fo:table-cell>
3208
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
3209
+ <fo:table-cell text-align="{@align}">
3210
+ <xsl:attribute name="text-align">
3211
+ <xsl:choose>
3212
+ <xsl:when test="@align">
3213
+ <xsl:value-of select="@align"/>
3214
+ </xsl:when>
3215
+ <xsl:otherwise>left</xsl:otherwise>
3216
+ </xsl:choose>
3217
+ </xsl:attribute>
3218
+ <xsl:if test="@colspan">
3219
+ <xsl:attribute name="number-columns-spanned">
3220
+ <xsl:value-of select="@colspan"/>
3221
+ </xsl:attribute>
3222
+ </xsl:if>
3223
+ <xsl:if test="@rowspan">
3224
+ <xsl:attribute name="number-rows-spanned">
3225
+ <xsl:value-of select="@rowspan"/>
3226
+ </xsl:attribute>
3227
+ </xsl:if>
3228
+
3229
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3230
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
3231
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3232
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
3233
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3234
+ </xsl:if>
3235
+ </xsl:if>
3236
+
3237
+ <fo:block>
3238
+ <xsl:apply-templates/>
3239
+ </fo:block>
3240
+ </fo:table-cell>
3241
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
3242
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
3243
+ <xsl:apply-templates/>
3244
+ </fo:block>
3245
+ </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3246
+ <fo:block margin-bottom="10pt">
3247
+ <xsl:apply-templates/>
3248
+ </fo:block>
3077
3249
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
3078
3250
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
3079
3251
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -3357,7 +3529,7 @@
3357
3529
  <fo:block id="{@id}">
3358
3530
  <xsl:apply-templates/>
3359
3531
  </fo:block>
3360
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
3532
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
3361
3533
 
3362
3534
  <fo:block break-after="page"/>
3363
3535
 
@@ -3616,7 +3788,8 @@
3616
3788
 
3617
3789
 
3618
3790
 
3619
-
3791
+
3792
+
3620
3793
  </xsl:variable>
3621
3794
  <xsl:if test="$documentNS != $XSLNS">
3622
3795
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -2308,6 +2308,7 @@
2308
2308
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
2309
2309
 
2310
2310
 
2311
+
2311
2312
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2312
2313
 
2313
2314
 
@@ -2328,6 +2329,8 @@
2328
2329
 
2329
2330
 
2330
2331
 
2332
+
2333
+
2331
2334
 
2332
2335
 
2333
2336
  </xsl:attribute-set><xsl:attribute-set name="example-p-style">
@@ -2342,6 +2345,8 @@
2342
2345
 
2343
2346
 
2344
2347
 
2348
+
2349
+
2345
2350
  </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
2346
2351
 
2347
2352
 
@@ -2365,6 +2370,7 @@
2365
2370
 
2366
2371
 
2367
2372
 
2373
+
2368
2374
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2369
2375
 
2370
2376
 
@@ -2481,7 +2487,7 @@
2481
2487
 
2482
2488
 
2483
2489
 
2484
-
2490
+
2485
2491
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
2486
2492
 
2487
2493
  </xsl:attribute-set><xsl:attribute-set name="image-style">
@@ -2522,7 +2528,43 @@
2522
2528
  </xsl:attribute-set><xsl:attribute-set name="definition-style">
2523
2529
 
2524
2530
 
2525
- </xsl:attribute-set><xsl:template match="text()">
2531
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
2532
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2533
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2534
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2535
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2536
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2537
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2538
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2539
+
2540
+ <!-- Normative references -->
2541
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
2542
+ <!-- Terms and definitions -->
2543
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
2544
+ <!-- Another main sections -->
2545
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
2546
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
2547
+ <!-- Bibliography -->
2548
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
2549
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2550
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2551
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2552
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2553
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2554
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2555
+ </xsl:template><xsl:template name="processMainSectionsDefault">
2556
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2557
+
2558
+ <!-- Normative references -->
2559
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
2560
+ <!-- Terms and definitions -->
2561
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
2562
+ <!-- Another main sections -->
2563
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
2564
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2565
+ <!-- Bibliography -->
2566
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2567
+ </xsl:template><xsl:template match="text()">
2526
2568
  <xsl:value-of select="."/>
2527
2569
  </xsl:template><xsl:template match="*[local-name()='br']">
2528
2570
  <xsl:value-of select="$linebreak"/>
@@ -2601,6 +2643,7 @@
2601
2643
 
2602
2644
 
2603
2645
 
2646
+
2604
2647
  <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">
2605
2648
 
2606
2649
 
@@ -2623,6 +2666,7 @@
2623
2666
 
2624
2667
 
2625
2668
 
2669
+
2626
2670
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2627
2671
  <xsl:choose>
2628
2672
  <xsl:when test=". = 1 or . = 0">
@@ -2876,6 +2920,14 @@
2876
2920
  </fo:table-row>
2877
2921
  </xsl:template><xsl:template match="*[local-name()='th']">
2878
2922
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2923
+ <xsl:attribute name="text-align">
2924
+ <xsl:choose>
2925
+ <xsl:when test="@align">
2926
+ <xsl:value-of select="@align"/>
2927
+ </xsl:when>
2928
+ <xsl:otherwise>center</xsl:otherwise>
2929
+ </xsl:choose>
2930
+ </xsl:attribute>
2879
2931
 
2880
2932
 
2881
2933
 
@@ -2888,6 +2940,7 @@
2888
2940
 
2889
2941
 
2890
2942
 
2943
+
2891
2944
  <xsl:if test="@colspan">
2892
2945
  <xsl:attribute name="number-columns-spanned">
2893
2946
  <xsl:value-of select="@colspan"/>
@@ -2904,6 +2957,14 @@
2904
2957
  </fo:table-cell>
2905
2958
  </xsl:template><xsl:template match="*[local-name()='td']">
2906
2959
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2960
+ <xsl:attribute name="text-align">
2961
+ <xsl:choose>
2962
+ <xsl:when test="@align">
2963
+ <xsl:value-of select="@align"/>
2964
+ </xsl:when>
2965
+ <xsl:otherwise>left</xsl:otherwise>
2966
+ </xsl:choose>
2967
+ </xsl:attribute>
2907
2968
 
2908
2969
 
2909
2970
 
@@ -4161,6 +4222,117 @@
4161
4222
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4162
4223
  <xsl:apply-templates/>
4163
4224
  </fo:block>
4225
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4226
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
4227
+ <fo:block-container margin-left="0mm" margin-right="0mm">
4228
+ <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
4229
+ <xsl:variable name="simple-table">
4230
+ <xsl:call-template name="getSimpleTable"/>
4231
+ </xsl:variable>
4232
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4233
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
4234
+ <fo:table-column column-width="35mm"/>
4235
+ <fo:table-column column-width="115mm"/>
4236
+ </xsl:if>
4237
+ <xsl:apply-templates mode="requirement"/>
4238
+ </fo:table>
4239
+ <!-- fn processing -->
4240
+ <xsl:if test=".//*[local-name() = 'fn']">
4241
+ <xsl:for-each select="*[local-name() = 'tbody']">
4242
+ <fo:block font-size="90%" border-bottom="1.pt solid black">
4243
+ <xsl:call-template name="fn_display"/>
4244
+ </fo:block>
4245
+ </xsl:for-each>
4246
+ </xsl:if>
4247
+ </fo:block-container>
4248
+ </fo:block-container>
4249
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
4250
+ <fo:table-header>
4251
+ <xsl:apply-templates mode="requirement"/>
4252
+ </fo:table-header>
4253
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
4254
+ <fo:table-body>
4255
+ <xsl:apply-templates mode="requirement"/>
4256
+ </fo:table-body>
4257
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
4258
+ <fo:table-row>
4259
+ <xsl:apply-templates mode="requirement"/>
4260
+ </fo:table-row>
4261
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
4262
+ <fo:table-cell text-align="{@align}">
4263
+ <xsl:attribute name="text-align">
4264
+ <xsl:choose>
4265
+ <xsl:when test="@align">
4266
+ <xsl:value-of select="@align"/>
4267
+ </xsl:when>
4268
+ <xsl:otherwise>center</xsl:otherwise>
4269
+ </xsl:choose>
4270
+ </xsl:attribute>
4271
+ <xsl:if test="@colspan">
4272
+ <xsl:attribute name="number-columns-spanned">
4273
+ <xsl:value-of select="@colspan"/>
4274
+ </xsl:attribute>
4275
+ </xsl:if>
4276
+ <xsl:if test="@rowspan">
4277
+ <xsl:attribute name="number-rows-spanned">
4278
+ <xsl:value-of select="@rowspan"/>
4279
+ </xsl:attribute>
4280
+ </xsl:if>
4281
+
4282
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4283
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4284
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
4285
+ </xsl:if>
4286
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
4287
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4288
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4289
+ </xsl:if>
4290
+
4291
+ <fo:block>
4292
+ <xsl:apply-templates/>
4293
+ </fo:block>
4294
+ </fo:table-cell>
4295
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
4296
+ <fo:table-cell text-align="{@align}">
4297
+ <xsl:attribute name="text-align">
4298
+ <xsl:choose>
4299
+ <xsl:when test="@align">
4300
+ <xsl:value-of select="@align"/>
4301
+ </xsl:when>
4302
+ <xsl:otherwise>left</xsl:otherwise>
4303
+ </xsl:choose>
4304
+ </xsl:attribute>
4305
+ <xsl:if test="@colspan">
4306
+ <xsl:attribute name="number-columns-spanned">
4307
+ <xsl:value-of select="@colspan"/>
4308
+ </xsl:attribute>
4309
+ </xsl:if>
4310
+ <xsl:if test="@rowspan">
4311
+ <xsl:attribute name="number-rows-spanned">
4312
+ <xsl:value-of select="@rowspan"/>
4313
+ </xsl:attribute>
4314
+ </xsl:if>
4315
+
4316
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4317
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
4318
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4319
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
4320
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4321
+ </xsl:if>
4322
+ </xsl:if>
4323
+
4324
+ <fo:block>
4325
+ <xsl:apply-templates/>
4326
+ </fo:block>
4327
+ </fo:table-cell>
4328
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
4329
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
4330
+ <xsl:apply-templates/>
4331
+ </fo:block>
4332
+ </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
4333
+ <fo:block margin-bottom="10pt">
4334
+ <xsl:apply-templates/>
4335
+ </fo:block>
4164
4336
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
4165
4337
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
4166
4338
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -4440,7 +4612,7 @@
4440
4612
  <fo:block id="{@id}">
4441
4613
  <xsl:apply-templates/>
4442
4614
  </fo:block>
4443
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
4615
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4444
4616
 
4445
4617
  <fo:block id="{@id}">
4446
4618
  <xsl:apply-templates/>
@@ -4697,7 +4869,8 @@
4697
4869
 
4698
4870
 
4699
4871
 
4700
-
4872
+
4873
+
4701
4874
  </xsl:variable>
4702
4875
  <xsl:if test="$documentNS != $XSLNS">
4703
4876
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module NIST
3
- VERSION = "1.2.0"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-nist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-29 00:00:00.000000000 Z
11
+ date: 2020-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities