metanorma-taste 1.0.8 → 1.0.10

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: 240f08306925627c4cdc5c0de6057fde9ef236b12e0bfec46f376f3353928fd7
4
- data.tar.gz: 1858c0ae0d5ae4e817459d54332f0626705d4e3c755aec7709c52e2eec5aff2b
3
+ metadata.gz: 66c6fca3398a09bd581387f5a36fccc1a04151b8f616ac8bce1a301c687a2447
4
+ data.tar.gz: 7d1147c97d3e40c7e9b26367216822877c509911b281e70cdf907972e7fe2586
5
5
  SHA512:
6
- metadata.gz: 67d1ea5a1771bf2cd23183b63c8e617fa6ab11a335e86f0463a63744862e4df40408ea5ecd145da907d99716c0f19f271b185ea1a33926629822ccfd5db4e515
7
- data.tar.gz: 0b4014d1cde35af01834234539c4691668706d74a054f52a4d2bf82eef047467dfdb475dde59ae8a06b05f4e7bd82946b2576f90824dcc0ac1127913dea43df4
6
+ metadata.gz: '086f36349333fceefdb181e8095fb0f8f658dc6c54717f04e9ae80c1fd770045177fffd090a72769e69e42984da69cf477a5d2a2c0476d48a412c4024a87ffad'
7
+ data.tar.gz: 7156be9b7217c51494e65fc3e7607a6b043a78b345187879d61cf361ac4b44693bd550759f5c47596bb42a6eaac3f57122b381fb643d9092d3dbb037c4520c35
data/.rubocop.yml CHANGED
@@ -1,14 +1,22 @@
1
1
  # Auto-generated by Cimas: Do not edit it manually!
2
2
  # See https://github.com/metanorma/cimas
3
3
  inherit_from:
4
- - .rubocop_todo.yml
5
- - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
4
+ - https://raw.githubusercontent.com/riboseinc/oss-guides/main/ci/rubocop.yml
5
+
6
+ # Rubocop plugins enabled centrally so every metanorma-org gem picks them up
7
+ # on cimas sync — best practice belongs at the shared-template layer, not
8
+ # per-repo. Per ronaldtse feedback on metanorma/ci#332.
9
+ plugins:
10
+ - rubocop-rspec
11
+ - rubocop-performance
12
+ - rubocop-rake
6
13
 
7
14
  # local repo-specific modifications
8
15
  # ...
9
16
 
10
17
  AllCops:
11
- TargetRubyVersion: 3.1
12
-
13
- Lint/MissingSuper:
14
- AllowedParentClasses: [Liquid::Drop]
18
+ # 3.3 matches the org-wide minimum being pushed via #274 (Raise minimum
19
+ # Ruby version to 3.3 due to EOL of 3.2 on 2026-03-31). Was 3.4 before
20
+ # this commit — 3.4 was above the org's stated minimum and would have
21
+ # applied Rubocop rules that fail-close on gems still targeting 3.3.
22
+ TargetRubyVersion: 3.3
data/Create-Taste.adoc CHANGED
@@ -172,27 +172,34 @@ doctypes:
172
172
 
173
173
  ===== 5.2 Stage
174
174
 
175
- A limited number of tastes (CSA, PDFA) also provide a dictionary of stage values. Unlike the doctype, this does not map to the base flavor,
176
- but gives the listing of stages applicable to the taste. The dictionary is formatted as for `metanorma-generic`: it gives a hash
177
- of stage names, mapping optionally to standard stage abbreviations. Each stage may optionally have a boolean value given for whether it
178
- is the `default` stage applied to documents (legal for only one stage), and whether it constitutes a `published` stage (may apply to more
179
- than one stage). So CSA has the following stage dictionary:
175
+ A limited number of tastes (for example, PDFA) also provide a list of stage values. Like the doctype, each stage is a struct: a `taste` value,
176
+ for the taste's label of the stage, and a `base` value, for the corresponding stage in the base flavor to be used in processing. A stage may
177
+ optionally give an `abbrev` (its abbreviation), and the boolean values `default` (whether it is the default stage applied to documents, legal
178
+ for only one stage) and `published` (whether it constitutes a published stage, which may apply to more than one stage). So a taste might
179
+ declare the following stages:
180
180
 
181
181
  [source,asciidoc]
182
182
  ----
183
183
  stages:
184
- proposal:
185
- working-draft:
186
- abbreviation: wd
187
- committee-draft:
188
- abbreviation: cd
189
- draft-standard:
190
- abbreviation: d
191
- final-draft:
192
- published:
184
+ - taste: proposal
185
+ base: proposal
186
+ - taste: working-draft
187
+ base: working-draft
188
+ abbrev: wd
189
+ - taste: committee-draft
190
+ base: committee-draft
191
+ abbrev: cd
192
+ - taste: draft-standard
193
+ base: draft
194
+ abbrev: d
195
+ - taste: final-draft
196
+ base: final-draft
197
+ - taste: published
198
+ base: published
193
199
  default: true
194
200
  published: true
195
- withdrawn:
201
+ - taste: withdrawn
202
+ base: withdrawn
196
203
  published: true
197
204
  ----
198
205
 
data/README.adoc CHANGED
@@ -189,6 +189,11 @@ currently available:
189
189
  |`iso`
190
190
  |International Organization of Legal Metrology specifications and standards with OIML branding and copyright
191
191
 
192
+ |`wmo`
193
+ |World Meteorological Organization
194
+ |`iho`
195
+ |World Meteorological Organization specifications (e.g. S-411) with WMO branding and copyright, built on the IHO document structure
196
+
192
197
 
193
198
  |===
194
199
 
@@ -286,7 +291,7 @@ doctypes: # Array of doctypes built over base flavour doctypes
286
291
  stages: # Array of stages built over base flavour stages
287
292
  - taste: string # Taste-specific machine-readable stage name
288
293
  base: string # Base Metanorma flavor machine-readable stage name
289
- abbreviation: string # Abbreviation of stage
294
+ abbrev: string # Abbreviation of stage
290
295
  default: boolean # Whether the stage is the default stage to be applied to a document
291
296
  published: boolean # Whether the stage is to be considered published
292
297
  committees: # Hash of predefined editorial groups for the SDO
@@ -445,6 +445,19 @@
445
445
  </xsl:for-each>
446
446
  </fo:block>
447
447
  </xsl:if>
448
+
449
+ <!-- List of Examples -->
450
+ <xsl:if test="$contents/mnx:doc[@num = $num]//mnx:examples/mnx:example">
451
+ <xsl:call-template name="insertListOf_Title">
452
+ <xsl:with-param name="title" select="$title-list-examples"/>
453
+ </xsl:call-template>
454
+ <fo:block role="TOC">
455
+ <xsl:for-each select="$contents/mnx:doc[@num = $num]//mnx:examples/mnx:example">
456
+ <xsl:call-template name="insertListOf_Item"/>
457
+ </xsl:for-each>
458
+ </fo:block>
459
+ </xsl:if>
460
+
448
461
  </fo:block>
449
462
  </xsl:if>
450
463
  </fo:block-container>
@@ -455,6 +468,7 @@
455
468
 
456
469
  <xsl:template match="mn:preface//mn:clause[@type = 'toc']/mn:fmt-title" priority="3">
457
470
  <fo:block xsl:use-attribute-sets="toc-title-style">
471
+ <xsl:call-template name="refine_toc-title-style"/>
458
472
  <xsl:apply-templates/>
459
473
  </fo:block>
460
474
  </xsl:template>
@@ -893,6 +907,16 @@
893
907
  </xsl:if>
894
908
  </xsl:variable>
895
909
 
910
+ <xsl:variable name="title-list-examples">
911
+ <xsl:variable name="toc_example_title" select="//mn:metanorma/mn:metanorma-extension/mn:toc[@type='example']/mn:title"/>
912
+ <xsl:value-of select="$toc_example_title"/>
913
+ <xsl:if test="normalize-space($toc_example_title) = ''">
914
+ <xsl:call-template name="getLocalizedString">
915
+ <xsl:with-param name="key">toc_examples</xsl:with-param>
916
+ </xsl:call-template>
917
+ </xsl:if>
918
+ </xsl:variable>
919
+
896
920
  <xsl:variable name="title-list-recommendations">
897
921
  <xsl:variable name="toc_requirement_title" select="//mn:metanorma/mn:metanorma-extension/mn:toc[@type='requirement']/mn:title"/>
898
922
  <xsl:value-of select="$toc_requirement_title"/>
@@ -6261,6 +6285,12 @@
6261
6285
  <style name="{$key}-left"><xsl:value-of select="$value"/></style>
6262
6286
  <style name="{$key}-bottom"><xsl:value-of select="$value"/></style>
6263
6287
  </xsl:if>
6288
+ <xsl:if test="$key = 'page-break-inside' and $value = 'avoid'">
6289
+ <style name="keep-together.within-page">always</style>
6290
+ </xsl:if>
6291
+ <xsl:if test="$key = 'page-break-after' and $value = 'always'">
6292
+ <style name="break-after">page</style>
6293
+ </xsl:if>
6264
6294
  </xsl:for-each>
6265
6295
  </xsl:variable>
6266
6296
  <xsl:variable name="styles" select="xalan:nodeset($styles_)"/>
@@ -6304,6 +6334,11 @@
6304
6334
 
6305
6335
  <fo:block role="SKIP">
6306
6336
 
6337
+ <xsl:variable name="styles">
6338
+ <styles><xsl:call-template name="setTableStyles"/></styles>
6339
+ </xsl:variable>
6340
+ <xsl:copy-of select="xalan:nodeset($styles)/styles/@break-after"/>
6341
+
6307
6342
  <xsl:if test="$isGenerateTableIF = 'true'">
6308
6343
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
6309
6344
  </xsl:if>
@@ -8453,11 +8488,27 @@
8453
8488
  <!-- ====== -->
8454
8489
  <!-- ====== -->
8455
8490
 
8456
- <xsl:attribute-set name="quote-style">
8491
+ <xsl:attribute-set name="quote-container-style">
8457
8492
  <xsl:attribute name="margin-left">12mm</xsl:attribute>
8458
8493
  <xsl:attribute name="margin-right">12mm</xsl:attribute>
8459
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
8494
+ <xsl:attribute name="role">SKIP</xsl:attribute>
8495
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
8460
8496
  <xsl:attribute name="margin-left">13mm</xsl:attribute>
8497
+ </xsl:attribute-set>
8498
+
8499
+ <xsl:template name="refine_quote-container-style">
8500
+ <xsl:if test="parent::mn:note">
8501
+ <xsl:if test="not(ancestor::mn:table)">
8502
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
8503
+ </xsl:if>
8504
+ </xsl:if>
8505
+ </xsl:template>
8506
+
8507
+ <xsl:attribute-set name="quote-style">
8508
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
8509
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
8510
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
8511
+
8461
8512
  </xsl:attribute-set> <!-- quote-style -->
8462
8513
 
8463
8514
  <xsl:template name="refine_quote-style">
@@ -8465,7 +8516,8 @@
8465
8516
 
8466
8517
  <xsl:attribute-set name="quote-source-style">
8467
8518
  <xsl:attribute name="text-align">right</xsl:attribute>
8468
- <xsl:attribute name="margin-right">25mm</xsl:attribute>
8519
+ <xsl:attribute name="margin-right">-12mm</xsl:attribute>
8520
+ <xsl:attribute name="margin-right">13mm</xsl:attribute>
8469
8521
  </xsl:attribute-set> <!-- quote-source-style -->
8470
8522
 
8471
8523
  <xsl:template name="refine_quote-source-style">
@@ -8488,12 +8540,9 @@
8488
8540
 
8489
8541
  <xsl:call-template name="setBlockSpanAll"/>
8490
8542
 
8491
- <xsl:if test="parent::mn:note">
8492
- <xsl:if test="not(ancestor::mn:table)">
8493
- <xsl:attribute name="margin-left">5mm</xsl:attribute>
8494
- </xsl:if>
8495
- </xsl:if>
8496
- <fo:block-container margin-left="0mm" role="SKIP">
8543
+ <fo:block-container xsl:use-attribute-sets="quote-container-style">
8544
+ <xsl:call-template name="refine_quote-container-style"/>
8545
+
8497
8546
  <fo:block-container xsl:use-attribute-sets="quote-style" role="SKIP">
8498
8547
 
8499
8548
  <xsl:call-template name="refine_quote-style"/>
@@ -8505,14 +8554,16 @@
8505
8554
  </fo:block-container>
8506
8555
  </fo:block-container>
8507
8556
  <xsl:if test="mn:author or mn:fmt-source or mn:attribution">
8508
- <fo:block xsl:use-attribute-sets="quote-source-style">
8509
- <xsl:call-template name="refine_quote-source-style"/>
8510
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
8511
- <xsl:apply-templates select="mn:author"/>
8512
- <xsl:apply-templates select="mn:fmt-source"/>
8513
- <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
8514
- <xsl:apply-templates select="mn:attribution/mn:p/node()"/>
8515
- </fo:block>
8557
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
8558
+ <fo:block xsl:use-attribute-sets="quote-source-style">
8559
+ <xsl:call-template name="refine_quote-source-style"/>
8560
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
8561
+ <xsl:apply-templates select="mn:author"/>
8562
+ <xsl:apply-templates select="mn:fmt-source"/>
8563
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
8564
+ <xsl:apply-templates select="mn:attribution/mn:p/node()"/>
8565
+ </fo:block>
8566
+ </fo:block-container>
8516
8567
  </xsl:if>
8517
8568
 
8518
8569
  </fo:block-container>
@@ -12002,7 +12053,7 @@
12002
12053
  <xsl:template name="refine_toc-pagenumber-style">
12003
12054
  </xsl:template>
12004
12055
 
12005
- <!-- List of Figures, Tables -->
12056
+ <!-- List of Figures, Tables, Examples -->
12006
12057
  <xsl:attribute-set name="toc-listof-title-style">
12007
12058
  <xsl:attribute name="provisional-distance-between-starts">3mm</xsl:attribute>
12008
12059
  </xsl:attribute-set>
@@ -12105,6 +12156,9 @@
12105
12156
  <xsl:if test="(//mn:metanorma/mn:metanorma-extension/mn:toc[@type='figure']/mn:title) or normalize-space($always) = 'true'">
12106
12157
  <xsl:call-template name="processFigures_Contents"/>
12107
12158
  </xsl:if>
12159
+ <xsl:if test="(//mn:metanorma/mn:metanorma-extension/mn:toc[@type='example']/mn:title)">
12160
+ <xsl:call-template name="processExamples_Contents"/>
12161
+ </xsl:if>
12108
12162
  </xsl:template>
12109
12163
 
12110
12164
  <xsl:template name="processTables_Contents">
@@ -12151,7 +12205,29 @@
12151
12205
  </mnx:figures>
12152
12206
  </xsl:template>
12153
12207
 
12154
- <xsl:template match="mn:figure/mn:name | mnx:figure/mn:name | mn:table/mn:name | mnx:table/mn:name | mn:permission/mn:name | mnx:permission/mn:name | mn:recommendation/mn:name | mnx:recommendation/mn:name | mn:requirement/mn:name | mnx:requirement/mn:name" mode="contents">
12208
+ <xsl:template name="processExamples_Contents">
12209
+ <mnx:examples>
12210
+ <xsl:for-each select="//mn:example[@id and mn:fmt-name and not(@unnumbered = 'true') and normalize-space(@id) != '']">
12211
+ <xsl:choose>
12212
+ <xsl:when test="mn:fmt-name">
12213
+ <xsl:variable name="fmt_name">
12214
+ <xsl:apply-templates select="mn:fmt-name" mode="update_xml_step1"/>
12215
+ </xsl:variable>
12216
+ <mnx:example id="{@id}" alt-text="{normalize-space($fmt_name)}">
12217
+ <xsl:copy-of select="$fmt_name"/>
12218
+ </mnx:example>
12219
+ </xsl:when>
12220
+ <xsl:otherwise>
12221
+ <mnx:example id="{@id}" alt-text="{mn:name}">
12222
+ <xsl:copy-of select="mn:name"/>
12223
+ </mnx:example>
12224
+ </xsl:otherwise>
12225
+ </xsl:choose>
12226
+ </xsl:for-each>
12227
+ </mnx:examples>
12228
+ </xsl:template>
12229
+
12230
+ <xsl:template match="mn:figure/mn:name | mnx:figure/mn:name | mn:table/mn:name | mnx:table/mn:name | mn:example/mn:name | mnx:example/mn:name | mn:permission/mn:name | mnx:permission/mn:name | mn:recommendation/mn:name | mnx:recommendation/mn:name | mn:requirement/mn:name | mnx:requirement/mn:name" mode="contents">
12155
12231
  <xsl:if test="not(following-sibling::*[1][self::mn:fmt-name])">
12156
12232
  <xsl:apply-templates mode="contents"/>
12157
12233
  <xsl:text> </xsl:text>
@@ -12160,40 +12236,40 @@
12160
12236
 
12161
12237
  <xsl:template match="mn:title[following-sibling::*[1][self::mn:fmt-title]]" mode="contents"/>
12162
12238
 
12163
- <xsl:template match="mn:figure/mn:fmt-name | mnx:figure/mn:fmt-name | mn:table/mn:fmt-name | mnx:table/mn:fmt-name | mn:permission/mn:fmt-name | mnx:permission/mn:fmt-name | mn:recommendation/mn:fmt-name | mnx:recommendation/mn:fmt-name | mn:requirement/mn:fmt-name | mnx:requirement/mn:fmt-name" mode="contents">
12239
+ <xsl:template match="mn:figure/mn:fmt-name | mnx:figure/mn:fmt-name | mn:table/mn:fmt-name | mnx:table/mn:fmt-name | mn:example/mn:fmt-name | mnx:example/mn:fmt-name | mn:permission/mn:fmt-name | mnx:permission/mn:fmt-name | mn:recommendation/mn:fmt-name | mnx:recommendation/mn:fmt-name | mn:requirement/mn:fmt-name | mnx:requirement/mn:fmt-name" mode="contents">
12164
12240
  <xsl:apply-templates mode="contents"/>
12165
12241
  <xsl:text> </xsl:text>
12166
12242
  </xsl:template>
12167
12243
 
12168
- <xsl:template match="mn:figure/mn:name | mnx:figure/mn:name | mn:table/mn:name | mnx:table/mn:name | mn:permission/mn:name | mnx:permission/mn:name | mn:recommendation/mn:name | mnx:recommendation/mn:name | mn:requirement/mn:name | mnx:requirement/mn:name | mn:sourcecode/mn:name" mode="bookmarks">
12244
+ <xsl:template match="mn:figure/mn:name | mnx:figure/mn:name | mn:table/mn:name | mnx:table/mn:name | mn:example/mn:name | mnx:example/mn:name | mn:permission/mn:name | mnx:permission/mn:name | mn:recommendation/mn:name | mnx:recommendation/mn:name | mn:requirement/mn:name | mnx:requirement/mn:name | mn:sourcecode/mn:name" mode="bookmarks">
12169
12245
  <xsl:if test="not(following-sibling::*[1][self::mn:fmt-name])">
12170
12246
  <xsl:apply-templates mode="bookmarks"/>
12171
12247
  <xsl:text> </xsl:text>
12172
12248
  </xsl:if>
12173
12249
  </xsl:template>
12174
12250
 
12175
- <xsl:template match="mn:figure/mn:fmt-name | mnx:figure/mn:fmt-name | mn:table/mn:fmt-name | mnx:table/mn:fmt-name | mn:permission/mn:fmt-name | mnx:permission/mn:fmt-name | mn:recommendation/mn:fmt-name | mnx:recommendation/mn:fmt-name | mn:requirement/mn:fmt-name | mnx:requirement/mn:fmt-name | mn:sourcecode/mn:fmt-name | mnx:sourcecode/mn:fmt-name" mode="bookmarks">
12251
+ <xsl:template match="mn:figure/mn:fmt-name | mnx:figure/mn:fmt-name | mn:table/mn:fmt-name | mnx:table/mn:fmt-name | mn:example/mn:fmt-name | mnx:example/mn:fmt-name | mn:permission/mn:fmt-name | mnx:permission/mn:fmt-name | mn:recommendation/mn:fmt-name | mnx:recommendation/mn:fmt-name | mn:requirement/mn:fmt-name | mnx:requirement/mn:fmt-name | mn:sourcecode/mn:fmt-name | mnx:sourcecode/mn:fmt-name" mode="bookmarks">
12176
12252
  <xsl:apply-templates mode="bookmarks"/>
12177
12253
  <xsl:text> </xsl:text>
12178
12254
  </xsl:template>
12179
12255
 
12180
- <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:permission or self::mn:recommendation or self::mn:requirement]/mn:name/text() | *[self::mnx:figure or self::mnx:table or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement]/mn:name/text()" mode="contents" priority="2">
12256
+ <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:example or self::mn:permission or self::mn:recommendation or self::mn:requirement]/mn:name/text() | *[self::mnx:figure or self::mnx:table or self::mnx:example or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement]/mn:name/text()" mode="contents" priority="2">
12181
12257
  <xsl:if test="not(../following-sibling::*[1][self::mn:fmt-name])">
12182
12258
  <xsl:value-of select="."/>
12183
12259
  </xsl:if>
12184
12260
  </xsl:template>
12185
12261
 
12186
- <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:permission or self::mn:recommendation or self::mn:requirement]/mn:fmt-name/text() | *[self::mnx:figure or self::mnx:table or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement]/mn:fmt-name/text()" mode="contents" priority="2">
12262
+ <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:example or self::mn:permission or self::mn:recommendation or self::mn:requirement]/mn:fmt-name/text() | *[self::mnx:figure or self::mnx:table or self::mnx:example or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement]/mn:fmt-name/text()" mode="contents" priority="2">
12187
12263
  <xsl:value-of select="."/>
12188
12264
  </xsl:template>
12189
12265
 
12190
- <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:permission or self::mn:recommendation or self::mn:requirement or self::mn:sourcecode]/mn:name//text() | *[self::mnx:figure or self::mnx:table or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement or self::mnx:sourcecode]/mn:name//text()" mode="bookmarks" priority="2">
12266
+ <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:example or self::mn:permission or self::mn:recommendation or self::mn:requirement or self::mn:sourcecode]/mn:name//text() | *[self::mnx:figure or self::mnx:table or self::mnx:example or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement or self::mnx:sourcecode]/mn:name//text()" mode="bookmarks" priority="2">
12191
12267
  <xsl:if test="not(../following-sibling::*[1][self::mn:fmt-name])">
12192
12268
  <xsl:value-of select="."/>
12193
12269
  </xsl:if>
12194
12270
  </xsl:template>
12195
12271
 
12196
- <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:permission or self::mn:recommendation or self::mn:requirement or self::mn:sourcecode]/mn:fmt-name//text() | *[self::mnx:figure or self::mnx:table or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement or self::mnx:sourcecode]/mn:fmt-name//text()" mode="bookmarks" priority="2">
12272
+ <xsl:template match="*[self::mn:figure or self::mn:table or self::mn:example or self::mn:permission or self::mn:recommendation or self::mn:requirement or self::mn:sourcecode]/mn:fmt-name//text() | *[self::mnx:figure or self::mnx:table or self::mnx:example or self::mnx:permission or self::mnx:recommendation or self::mnx:requirement or self::mnx:sourcecode]/mn:fmt-name//text()" mode="bookmarks" priority="2">
12197
12273
  <xsl:value-of select="."/>
12198
12274
  </xsl:template>
12199
12275
 
@@ -12426,6 +12502,11 @@
12426
12502
  <xsl:with-param name="lang" select="@lang"/>
12427
12503
  </xsl:call-template>
12428
12504
 
12505
+ <xsl:call-template name="insertExampleBookmarks">
12506
+ <xsl:with-param name="contents" select="mnx:contents"/>
12507
+ <xsl:with-param name="lang" select="@lang"/>
12508
+ </xsl:call-template>
12509
+
12429
12510
  </fo:bookmark>
12430
12511
 
12431
12512
  </xsl:for-each>
@@ -12444,6 +12525,11 @@
12444
12525
  <xsl:with-param name="lang" select="@lang"/>
12445
12526
  </xsl:call-template>
12446
12527
 
12528
+ <xsl:call-template name="insertExampleBookmarks">
12529
+ <xsl:with-param name="contents" select="mnx:contents"/>
12530
+ <xsl:with-param name="lang" select="@lang"/>
12531
+ </xsl:call-template>
12532
+
12447
12533
  </xsl:for-each>
12448
12534
  </xsl:otherwise>
12449
12535
  </xsl:choose>
@@ -12460,6 +12546,11 @@
12460
12546
  <xsl:with-param name="lang" select="@lang"/>
12461
12547
  </xsl:call-template>
12462
12548
 
12549
+ <xsl:call-template name="insertExampleBookmarks">
12550
+ <xsl:with-param name="contents" select="$contents_nodes/mnx:contents"/>
12551
+ <xsl:with-param name="lang" select="@lang"/>
12552
+ </xsl:call-template>
12553
+
12463
12554
  </xsl:otherwise>
12464
12555
  </xsl:choose>
12465
12556
 
@@ -12540,6 +12631,46 @@
12540
12631
  </fo:bookmark>
12541
12632
  </xsl:if>
12542
12633
  </xsl:template> <!-- insertTableBookmarks -->
12634
+
12635
+ <xsl:template name="insertExampleBookmarks">
12636
+ <xsl:param name="contents"/>
12637
+ <xsl:param name="lang"/>
12638
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
12639
+ <xsl:if test="$contents_nodes/mnx:example">
12640
+ <fo:bookmark internal-destination="{$contents_nodes/mnx:example[1]/@id}" starting-state="hide">
12641
+ <fo:bookmark-title>
12642
+ <xsl:choose>
12643
+ <xsl:when test="$lang = 'fr'">Exemples</xsl:when>
12644
+ <xsl:otherwise>Examples</xsl:otherwise>
12645
+ </xsl:choose>
12646
+ </fo:bookmark-title>
12647
+ <xsl:for-each select="$contents_nodes/mnx:example">
12648
+ <fo:bookmark internal-destination="{@id}">
12649
+ <fo:bookmark-title>
12650
+ <xsl:value-of select="normalize-space(mnx:title)"/>
12651
+ </fo:bookmark-title>
12652
+ </fo:bookmark>
12653
+ </xsl:for-each>
12654
+ </fo:bookmark>
12655
+ </xsl:if>
12656
+ <xsl:if test="$contents_nodes//mnx:examples/mnx:example">
12657
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
12658
+
12659
+ <xsl:variable name="bookmark-title">
12660
+ <xsl:value-of select="$title-list-examples"/>
12661
+ </xsl:variable>
12662
+
12663
+ <fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
12664
+
12665
+ <xsl:for-each select="$contents_nodes//mnx:examples/mnx:example">
12666
+ <fo:bookmark internal-destination="{@id}">
12667
+ <!-- <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title> -->
12668
+ <fo:bookmark-title><xsl:apply-templates mode="bookmark_clean"/></fo:bookmark-title>
12669
+ </fo:bookmark>
12670
+ </xsl:for-each>
12671
+ </fo:bookmark>
12672
+ </xsl:if>
12673
+ </xsl:template> <!-- insertExampleBookmarks -->
12543
12674
  <!-- End Bookmarks -->
12544
12675
 
12545
12676
  <!-- ============================ -->
@@ -13522,6 +13653,10 @@
13522
13653
  <fo:block break-after="page"/>
13523
13654
  </xsl:template>
13524
13655
 
13656
+ <xsl:template match="mn:pagebreak[ancestor::mn:table]" priority="2">
13657
+ <fo:block break-after="page"/>
13658
+ </xsl:template>
13659
+
13525
13660
  <xsl:variable name="font_main_root_style">
13526
13661
  <root-style xsl:use-attribute-sets="root-style">
13527
13662
  </root-style>
@@ -15,18 +15,20 @@ base-override:
15
15
  publisher: PDF Association
16
16
  publisher_abbr: PDF Association
17
17
  presentation-metadata-color-secondary: '#d03f4e' # PDFa logo red - good contrast for WCAG Level AA
18
- presentation-metadata-backcover-text: pdfa.org
19
- body-font: "'Source Sans Pro', 'Helvetica Neue', Helvetica, sans-serif"
20
- header-font: "'Source Sans Pro', 'Helvetica Neue', Helvetica, sans-serif"
18
+ presentation-metadata-backcover-text: https://pdfa.org
19
+ body-font: "'Source Sans 3', 'Helvetica Neue', Helvetica, sans-serif"
20
+ header-font: "'Source Sans 3', 'Helvetica Neue', Helvetica, sans-serif"
21
+ monospace-font: "'Noto Sans Mono', Courier, monospace"
21
22
  fonts: Source Sans 3;Source Sans 3 SemiBold;Source Sans Pro
22
23
  output-extensions: xml,html,pdf
23
24
  toclevels-html: 6
24
- docidentifier: '{% assign version = edition | split: "." %}{{ doctype_abbr }} {{ docnumeric }}{% if docyear %}:{{ docyear }}{% endif %} {% if edition %}({{ edition }}{% if version.size == 2 %}.0{% endif %}{% if version.size == 1 %}.0.0{% endif %}){% endif %} {% if stageabbr %}({{ stageabbr }}){% endif %}'
25
+ docidentifier: '{{ doctype_abbr }}-{{ docnumeric | prepend: "000" | slice: -3,3 }} {% if draft %}v{{ draft }}{% endif %} {% if edition %}ed. {{ edition }}{% endif %}'
25
26
  doctypes:
26
27
  - taste: specification # Specification # The name goes into i18n.yaml
27
28
  base: standard
29
+ abbrev: SPEC
28
30
  override-attributes:
29
- - presentation-metadata-color-secondary: '#d03f4e' # PDFa logo red - good contrast for WCAG Level AA
31
+ - presentation-metadata-color-secondary: '#4891af' # PDFa logo blue - insufficient contrast for WCAG Level AA
30
32
  - taste: application-note # Application Note
31
33
  base: report
32
34
  abbrev: AN
@@ -45,12 +47,11 @@ doctypes:
45
47
  stages:
46
48
  - taste: draft
47
49
  base: draft
48
- abbreviation: D
50
+ abbrev: DRAFT
49
51
  - taste: release-candidate
50
52
  base: draft
51
- abbreviation: RC
53
+ abbrev: RC
52
54
  - taste: published
53
55
  base: published
54
56
  default: true
55
57
  published: true
56
-
@@ -2,24 +2,18 @@
2
2
 
3
3
  // This is authorized by the PDF Association.
4
4
 
5
- === Copyright notice
5
+ // Avoid heading tag
6
+ === {blank}
6
7
 
7
8
  Copyright (c) {{ docyear }} PDF Association
8
9
 
9
10
  This work is licensed under the Creative Commons Attribution 4.0 International
10
- License.
11
-
12
- To view a copy of this license, visit
11
+ License. To view a copy of this license, visit
13
12
  http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative
14
13
  Commons, PO Box 1866, Mountain View, CA 94042, USA.
15
14
 
16
- PDF Association Inc. +
17
- {blank} +
18
15
  E-mail: copyright@pdfa.org +
19
- {blank} +
20
- Web: https://www.pdfa.org +
21
- {blank} +
22
- {blank}
16
+ Web: https://pdfa.org
23
17
 
24
18
  Vendors own their respective copyrights and trademarks wherever they are
25
19
  mentioned. Attention is drawn to the possibility that some of the elements of
@@ -43,7 +37,3 @@ any of the mentioned information, services, products, or providers.
43
37
  === {blank}
44
38
 
45
39
 
46
- // [align=center]
47
- // **PDF Association**:
48
-
49
- // (c) PDF Association {{ docyear }} - All rights reserved
@@ -1,19 +1,46 @@
1
1
  <div id='toggle'> <span>•</span> </div>
2
2
 
3
- <div class="coverpage-container">
3
+ <div class="coverpage-container" style="padding-left: 22px"> <!-- padding-left required to avoid submarining left edge text below "toggle" div -->
4
4
 
5
- <div class="logo">
6
- <img src="{{ copublisher_logos[0] }}" alt="PDF Association logo"/>
7
- </div>
5
+ <div class="logo">
6
+ <img src="{{ copublisher_logos[0] }}" alt="PDF Association logo"/>
7
+ </div>
8
8
 
9
- <div>
10
- <p class="doctitle-en">{{ doctitle }}</p>
11
- </div>
9
+ <div>
10
+ <p class="doctitle-en">{{ doctitle }}</p>
11
+ </div>
12
12
 
13
- <div class="docidentifier">
14
- <p><b>
15
- {{doctype_display}}: {{docnumber}}
16
- </b></p>
13
+ <div style="display: none;">
14
+ <!-- p>document.docid.id = {{ document.docid.id }}</p -->
15
+ <!-- p>document.docstatus.stage = {{ document.docstatus.stage }}</p -->
16
+ <!-- https://www.metanorma.org/develop/topics/metadata-and-boilerplate/#default-metadata -->
17
+ <p>doctype = {{ doctype }}</p>
18
+ <p>doctype_display = {{ doctype_display }}</p>
19
+ <p>doctype_abbr = {{ doctype_abbr }}</p>
20
+ <p>docidentifier = {{ docidentifier }}</p>
21
+ <p>docnumber = {{ docnumber }}</p>
22
+ <p>docnumeric = {{ docnumeric }}</p>
23
+ <p>docyear = {{ docyear }}</p>
24
+ <p>edition = {{ edition }}</p>
25
+ <p>edition_display = {{ edition_display }}</p>
26
+ <p>version = {{ version }}</p>
27
+ <p>version_display = {{ version_display }}</p>
28
+ <p>iteration = {{ iteration }}</p>
29
+ <p>draft = {{ draft }}</p>
30
+ <p>status = {{ status }}</p>
31
+ <p>stage = {{ stage }}</p>
32
+ <p>stage_display = {{ stage_display }}</p>
33
+ <p>stage_abbr = {{ stage_abbr }}</p>
34
+ <p>stageabbr = {{ stageabbr }}</p>
35
+ <p>statusabbr = {{ statusabbr }}</p>
36
+ <!-- p>doctype_abbreviated = {{ doctype_abbreviated }}</p -->
37
+ <!-- p>document.docstatus.stage.abbreviation = {{ document.docstatus.stage.abbreviation }}</p -->
17
38
  </div>
18
39
 
40
+ <div class="docidentifier">
41
+ <p><b>
42
+ {{doctype_display}} : {{ docnumber }} {%if stage_display %} - <span style="color:red">{{stage_display}}</span>{% endif %}
43
+ </b></p>
44
+ </div>
45
+ <hr/>
19
46
  </div>