metanorma-jis 0.3.1 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3c4ae85ab16813c1ea6df1c84c0f35eed81c3cfced1a6847f24c18ee4d3d15a
4
- data.tar.gz: 6cd56b9042872341a10daa7a420eeb2fc253b36316d487ee40e0b863b1cd34fc
3
+ metadata.gz: cef3f0aef7b0710dc4f98802b2fcc476ffe6a3805d11334005eb280a0480001a
4
+ data.tar.gz: 9e8979493f228f6d689d606946736551c1f7e00545e90a1c68c664aa99f0d83a
5
5
  SHA512:
6
- metadata.gz: 917d400c63d026ef24f46382369e4c0d0789060e85938bff493143045219ed36b256aa92d19f7dbfa74f06640f031a7ea231f44adfa1abf196ce9b32e8d0472a
7
- data.tar.gz: 21a50c365f2107c6dc1fde249ff28453c2fcbf3d9d2c6c9064d6881738fbfc9d8a858bd9c7cc412b59e0be7ff643a27bdcb64c5843975b7158c1b4dd664ef0de
6
+ metadata.gz: fa081288f2be1b8e984a141e577d92f6beff9c1e2e34202e2db931cdca1522341895c82f674d975aaba3102960e280f526d4b3bc5dadfc8fb1e866ef7aaa2da9
7
+ data.tar.gz: 162d57afdf668c125100e6f85376bf63803551b2ec6ef36fae2e1bf84d38d188b244d1176934add96330223fec28ccd4de6c047683078537ab6b57b58b813e10
@@ -229,6 +229,46 @@ h6:hover > a.anchor,
229
229
  .inline-header:hover > a.anchor {
230
230
  visibility: visible; }
231
231
 
232
+ /* collapsible snippets: collapsible before hidable */
233
+ .hidable {
234
+ max-height: 0;
235
+ overflow: hidden;
236
+ transition: max-height 0.2s ease-out; }
237
+
238
+ .collapsible {
239
+ background-color: #777;
240
+ color: white;
241
+ cursor: pointer;
242
+ padding: 12px 0;
243
+ margin: 0;
244
+ width: 100%;
245
+ border: none;
246
+ text-align: left;
247
+ outline: none;
248
+ font-size: 15px; }
249
+
250
+ .active, .collapsible:hover {
251
+ background-color: #555; }
252
+
253
+ .collapsible:after {
254
+ content: '\25bc';
255
+ color: white;
256
+ font-weight: bold;
257
+ float: right;
258
+ margin-left: 12px;
259
+ margin-right: 12px; }
260
+
261
+ .active:after {
262
+ content: "\25b2"; }
263
+
264
+ /* collapsible: */
265
+ .collapsible + .hidable {
266
+ margin-top: 0; }
267
+
268
+ .collapsible:not(.active) + .hidable {
269
+ overflow: hidden;
270
+ padding: 0; }
271
+
232
272
  #standard-band {
233
273
  background-color: #0AC442; }
234
274
 
@@ -229,6 +229,46 @@ h6:hover > a.anchor,
229
229
  .inline-header:hover > a.anchor {
230
230
  visibility: visible; }
231
231
 
232
+ /* collapsible snippets: collapsible before hidable */
233
+ .hidable {
234
+ max-height: 0;
235
+ overflow: hidden;
236
+ transition: max-height 0.2s ease-out; }
237
+
238
+ .collapsible {
239
+ background-color: #777;
240
+ color: white;
241
+ cursor: pointer;
242
+ padding: 12px 0;
243
+ margin: 0;
244
+ width: 100%;
245
+ border: none;
246
+ text-align: left;
247
+ outline: none;
248
+ font-size: 15px; }
249
+
250
+ .active, .collapsible:hover {
251
+ background-color: #555; }
252
+
253
+ .collapsible:after {
254
+ content: '\25bc';
255
+ color: white;
256
+ font-weight: bold;
257
+ float: right;
258
+ margin-left: 12px;
259
+ margin-right: 12px; }
260
+
261
+ .active:after {
262
+ content: "\25b2"; }
263
+
264
+ /* collapsible: */
265
+ .collapsible + .hidable {
266
+ margin-top: 0; }
267
+
268
+ .collapsible:not(.active) + .hidable {
269
+ overflow: hidden;
270
+ padding: 0; }
271
+
232
272
  #standard-band {
233
273
  background-color: #0AC442; }
234
274
 
@@ -6,6 +6,8 @@
6
6
 
7
7
  <xsl:variable name="debug">false</xsl:variable>
8
8
 
9
+ <xsl:variable name="isIgnoreComplexScripts">true</xsl:variable>
10
+
9
11
  <xsl:variable name="contents_">
10
12
  <xsl:variable name="bundle" select="count(//jis:jis-standard) &gt; 1"/>
11
13
 
@@ -251,7 +253,7 @@
251
253
  <!-- Contents and preface pages -->
252
254
  <!-- ========================== -->
253
255
 
254
- <xsl:for-each select="/*/*[local-name()='preface']/*">
256
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'clause' and @type = 'contributors')]">
255
257
  <xsl:sort select="@displayorder" data-type="number"/>
256
258
 
257
259
  <xsl:choose>
@@ -1427,12 +1429,16 @@
1427
1429
 
1428
1430
  <xsl:template match="jis:p//text()[not(ancestor::jis:strong)] | jis:dt/text()" mode="update_xml_step1">
1429
1431
  <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new(.), $regex_en, concat($tag_font_en_open,'$1',$tag_font_en_close))"/>
1430
- <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1431
- <xsl:with-param name="tag_open" select="$tag_font_en_open"/>
1432
- <xsl:with-param name="tag_close" select="$tag_font_en_close"/>
1433
- <xsl:with-param name="text" select="$text_en_"/>
1434
- </xsl:call-template></text></xsl:variable>
1435
- <xsl:copy-of select="xalan:nodeset($text_en)/text/node()"/>
1432
+ <xsl:variable name="text_en">
1433
+ <xsl:element name="text" namespace="{$namespace_full}">
1434
+ <xsl:call-template name="replace_text_tags">
1435
+ <xsl:with-param name="tag_open" select="$tag_font_en_open"/>
1436
+ <xsl:with-param name="tag_close" select="$tag_font_en_close"/>
1437
+ <xsl:with-param name="text" select="$text_en_"/>
1438
+ </xsl:call-template>
1439
+ </xsl:element>
1440
+ </xsl:variable>
1441
+ <xsl:copy-of select="xalan:nodeset($text_en)/*[local-name() = 'text']/node()"/>
1436
1442
  </xsl:template>
1437
1443
 
1438
1444
  <!-- jis:term/jis:preferred2//text() | -->
@@ -1440,24 +1446,32 @@
1440
1446
  <!-- <name>注記 1</name> to <name>注記<font_en> 1</font_en></name> -->
1441
1447
  <xsl:template match="jis:title/text() | jis:note/jis:name/text() | jis:termnote/jis:name/text() | jis:table/jis:name/text() | jis:figure/jis:name/text() | jis:termexample/jis:name/text() | jis:xref//text() | jis:origin/text()" mode="update_xml_step1">
1442
1448
  <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new(.), $regex_en, concat($tag_font_en_bold_open,'$1',$tag_font_en_bold_close))"/>
1443
- <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1444
- <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1445
- <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1446
- <xsl:with-param name="text" select="$text_en_"/>
1447
- </xsl:call-template></text></xsl:variable>
1448
- <xsl:copy-of select="xalan:nodeset($text_en)/text/node()"/>
1449
+ <xsl:variable name="text_en">
1450
+ <xsl:element name="text" namespace="{$namespace_full}">
1451
+ <xsl:call-template name="replace_text_tags">
1452
+ <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1453
+ <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1454
+ <xsl:with-param name="text" select="$text_en_"/>
1455
+ </xsl:call-template>
1456
+ </xsl:element>
1457
+ </xsl:variable>
1458
+ <xsl:copy-of select="xalan:nodeset($text_en)/*[local-name() = 'text']/node()"/>
1449
1459
  </xsl:template>
1450
1460
 
1451
1461
  <!-- for $contents -->
1452
1462
  <xsl:template match="title/text()">
1453
1463
  <xsl:variable name="regex_en_contents">([^\u00A0\u2002-\u200B\u3000-\u9FFF\uF900-\uFFFF\(\)]{1,})</xsl:variable>
1454
1464
  <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new(.), $regex_en_contents, concat($tag_font_en_bold_open,'$1',$tag_font_en_bold_close))"/>
1455
- <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1456
- <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1457
- <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1458
- <xsl:with-param name="text" select="$text_en_"/>
1459
- </xsl:call-template></text></xsl:variable>
1460
- <xsl:apply-templates select="xalan:nodeset($text_en)/text/node()"/>
1465
+ <xsl:variable name="text_en">
1466
+ <xsl:element name="text" namespace="{$namespace_full}">
1467
+ <xsl:call-template name="replace_text_tags">
1468
+ <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1469
+ <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1470
+ <xsl:with-param name="text" select="$text_en_"/>
1471
+ </xsl:call-template>
1472
+ </xsl:element>
1473
+ </xsl:variable>
1474
+ <xsl:apply-templates select="xalan:nodeset($text_en)/*[local-name() = 'text']/node()"/>
1461
1475
  </xsl:template>
1462
1476
 
1463
1477
  <!-- move example title to the first paragraph -->
@@ -1465,11 +1479,18 @@
1465
1479
  <xsl:copy>
1466
1480
  <xsl:copy-of select="@*"/>
1467
1481
  <xsl:element name="p" namespace="https://www.metanorma.org/ns/jis">
1468
- <xsl:value-of select="substring-after(jis:name/text(), ' — ')"/>
1482
+ <xsl:value-of select="substring-after(jis:name/text()[1], ' — ')"/>
1483
+ <xsl:apply-templates select="jis:name/text()[1]/following-sibling::node()" mode="update_xml_step1"/>
1469
1484
  </xsl:element>
1470
1485
  <xsl:apply-templates mode="update_xml_step1"/>
1471
1486
  </xsl:copy>
1472
1487
  </xsl:template>
1488
+ <xsl:template match="jis:example/jis:name[contains(text(), ' — ')]" mode="update_xml_step1">
1489
+ <xsl:copy>
1490
+ <xsl:copy-of select="@*"/>
1491
+ <xsl:apply-templates select="text()[1]" mode="update_xml_step1"/>
1492
+ </xsl:copy>
1493
+ </xsl:template>
1473
1494
  <xsl:template match="jis:example/jis:name/text()" mode="update_xml_step1">
1474
1495
  <xsl:variable name="example_name">
1475
1496
  <xsl:choose>
@@ -1478,12 +1499,16 @@
1478
1499
  </xsl:choose>
1479
1500
  </xsl:variable>
1480
1501
  <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new($example_name), $regex_en, concat($tag_font_en_bold_open,'$1',$tag_font_en_bold_close))"/>
1481
- <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1482
- <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1483
- <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1484
- <xsl:with-param name="text" select="$text_en_"/>
1485
- </xsl:call-template></text></xsl:variable>
1486
- <xsl:copy-of select="xalan:nodeset($text_en)/text/node()"/>
1502
+ <xsl:variable name="text_en">
1503
+ <xsl:element name="text" namespace="{$namespace_full}">
1504
+ <xsl:call-template name="replace_text_tags">
1505
+ <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1506
+ <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1507
+ <xsl:with-param name="text" select="$text_en_"/>
1508
+ </xsl:call-template>
1509
+ </xsl:element>
1510
+ </xsl:variable>
1511
+ <xsl:copy-of select="xalan:nodeset($text_en)/*[local-name() = 'text']/node()"/>
1487
1512
  </xsl:template>
1488
1513
 
1489
1514
  <xsl:template match="jis:eref//text()" mode="update_xml_step1">
@@ -1491,11 +1516,11 @@
1491
1516
  <xsl:variable name="parts">
1492
1517
  <xsl:choose>
1493
1518
  <xsl:when test="contains(., ':')">
1494
- <xsl:element name="{$element_name_font_en_bold}"><xsl:value-of select="substring-before(., ':')"/></xsl:element>
1495
- <xsl:element name="{$element_name_font_en}">:<xsl:value-of select="substring-after(., ':')"/></xsl:element>
1519
+ <xsl:element name="{$element_name_font_en_bold}" namespace="{$namespace_full}"><xsl:value-of select="substring-before(., ':')"/></xsl:element>
1520
+ <xsl:element name="{$element_name_font_en}" namespace="{$namespace_full}">:<xsl:value-of select="substring-after(., ':')"/></xsl:element>
1496
1521
  </xsl:when>
1497
1522
  <xsl:otherwise>
1498
- <xsl:element name="{$element_name_font_en_bold}"><xsl:value-of select="."/></xsl:element>
1523
+ <xsl:element name="{$element_name_font_en_bold}" namespace="{$namespace_full}"><xsl:value-of select="."/></xsl:element>
1499
1524
  </xsl:otherwise>
1500
1525
  </xsl:choose>
1501
1526
  </xsl:variable>
@@ -1503,12 +1528,16 @@
1503
1528
  <xsl:variable name="tag_open">###<xsl:value-of select="local-name()"/>###</xsl:variable>
1504
1529
  <xsl:variable name="tag_close">###/<xsl:value-of select="local-name()"/>###</xsl:variable>
1505
1530
  <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new(.), $regex_en, concat($tag_open,'$1',$tag_close))"/>
1506
- <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1507
- <xsl:with-param name="tag_open" select="$tag_open"/>
1508
- <xsl:with-param name="tag_close" select="$tag_close"/>
1509
- <xsl:with-param name="text" select="$text_en_"/>
1510
- </xsl:call-template></text></xsl:variable>
1511
- <xsl:copy-of select="xalan:nodeset($text_en)/text/node()"/>
1531
+ <xsl:variable name="text_en">
1532
+ <xsl:element name="text" namespace="{$namespace_full}">
1533
+ <xsl:call-template name="replace_text_tags">
1534
+ <xsl:with-param name="tag_open" select="$tag_open"/>
1535
+ <xsl:with-param name="tag_close" select="$tag_close"/>
1536
+ <xsl:with-param name="text" select="$text_en_"/>
1537
+ </xsl:call-template>
1538
+ </xsl:element>
1539
+ </xsl:variable>
1540
+ <xsl:copy-of select="xalan:nodeset($text_en)/*[local-name() = 'text']/node()"/>
1512
1541
  </xsl:for-each>
1513
1542
  </xsl:template>
1514
1543
 
@@ -1517,12 +1546,16 @@
1517
1546
  </xsl:template>
1518
1547
  <xsl:template match="jis:strong/text()" priority="2" mode="update_xml_step1">
1519
1548
  <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new(.), $regex_en, concat($tag_font_en_bold_open,'$1',$tag_font_en_bold_close))"/>
1520
- <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1521
- <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1522
- <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1523
- <xsl:with-param name="text" select="$text_en_"/>
1524
- </xsl:call-template></text></xsl:variable>
1525
- <xsl:copy-of select="xalan:nodeset($text_en)/text/node()"/>
1549
+ <xsl:variable name="text_en">
1550
+ <xsl:element name="text" namespace="{$namespace_full}">
1551
+ <xsl:call-template name="replace_text_tags">
1552
+ <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1553
+ <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1554
+ <xsl:with-param name="text" select="$text_en_"/>
1555
+ </xsl:call-template>
1556
+ </xsl:element>
1557
+ </xsl:variable>
1558
+ <xsl:copy-of select="xalan:nodeset($text_en)/*[local-name() = 'text']/node()"/>
1526
1559
  </xsl:template>
1527
1560
 
1528
1561
  <xsl:template match="*[local-name() = 'font_en_bold'][normalize-space() != '']">
@@ -3457,13 +3490,35 @@
3457
3490
  </xsl:for-each>
3458
3491
  </xsl:element>
3459
3492
 
3460
- <xsl:call-template name="insertAnnexInSeparatePageSequences"/>
3493
+ <xsl:call-template name="insertAnnexAndBibliographyInSeparatePageSequences"/>
3461
3494
 
3462
- <xsl:call-template name="insertBibliographyInSeparatePageSequences"/>
3495
+ <!-- <xsl:call-template name="insertBibliographyInSeparatePageSequences"/> -->
3463
3496
 
3464
3497
  <!-- <xsl:call-template name="insertIndexInSeparatePageSequences"/> -->
3465
3498
  </xsl:template> <!-- END: insertMainSectionsInSeparatePageSequences -->
3466
3499
 
3500
+ <xsl:template name="insertAnnexAndBibliographyInSeparatePageSequences">
3501
+ <xsl:for-each select="/*/*[local-name()='annex'] | /*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]] | /*/*[local-name()='indexsect']">
3502
+ <xsl:sort select="@displayorder" data-type="number"/>
3503
+ <xsl:choose>
3504
+ <xsl:when test="local-name() = 'annex' or local-name() = 'indexsect'">
3505
+ <xsl:element name="page_sequence" namespace="{$namespace_full}">
3506
+ <xsl:attribute name="main_page_sequence"/>
3507
+ <xsl:apply-templates select="." mode="update_xml_step_move_pagebreak"/>
3508
+ </xsl:element>
3509
+ </xsl:when>
3510
+ <xsl:otherwise> <!-- bibliography -->
3511
+ <xsl:element name="bibliography" namespace="{$namespace_full}"> <!-- save context element -->
3512
+ <xsl:element name="page_sequence" namespace="{$namespace_full}">
3513
+ <xsl:attribute name="main_page_sequence"/>
3514
+ <xsl:apply-templates select="." mode="update_xml_step_move_pagebreak"/>
3515
+ </xsl:element>
3516
+ </xsl:element>
3517
+ </xsl:otherwise>
3518
+ </xsl:choose>
3519
+ </xsl:for-each>
3520
+ </xsl:template>
3521
+
3467
3522
  <xsl:template name="insertAnnexInSeparatePageSequences">
3468
3523
  <xsl:for-each select="/*/*[local-name()='annex']">
3469
3524
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -7671,6 +7726,12 @@
7671
7726
  <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'attachment']">
7672
7727
  <attachment filename="{@name}"/>
7673
7728
  </xsl:for-each>
7729
+ <xsl:if test="not(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'attachment'])">
7730
+ <xsl:for-each select="//*[local-name() = 'bibitem'][@hidden = 'true'][*[local-name() = 'uri'][@type = 'attachment']]">
7731
+ <xsl:variable name="attachment_path" select="*[local-name() = 'uri'][@type = 'attachment']"/>
7732
+ <attachment filename="{$attachment_path}"/>
7733
+ </xsl:for-each>
7734
+ </xsl:if>
7674
7735
  </xsl:variable>
7675
7736
  <xsl:variable name="pdfAttachmentsList" select="xalan:nodeset($pdfAttachmentsList_)"/>
7676
7737
 
@@ -7683,7 +7744,7 @@
7683
7744
  <xsl:value-of select="concat(normalize-space(@target), '.pdf')"/>
7684
7745
  </xsl:when>
7685
7746
  <!-- link to the PDF attachment -->
7686
- <xsl:when test="$pdfAttachmentsList//attachment[@filename = current()/@target]">
7747
+ <xsl:when test="@attachment = 'true' and $pdfAttachmentsList//attachment[@filename = current()/@target]">
7687
7748
  <xsl:value-of select="concat('url(embedded-file:', @target, ')')"/>
7688
7749
  </xsl:when>
7689
7750
  <!-- <xsl:when test="starts-with($target_normalized, '_') and contains($target_normalized, '_attachments/') and $pdfAttachmentsList//attachment[@filename = $target_attachment_name]">
@@ -8325,7 +8386,16 @@
8325
8386
  </xsl:variable>
8326
8387
  <xsl:variable name="img_src">
8327
8388
  <xsl:choose>
8328
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
8389
+ <xsl:when test="not(starts-with(@src, 'data:'))">
8390
+ <xsl:choose>
8391
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8392
+ <xsl:value-of select="@src"/>
8393
+ </xsl:when>
8394
+ <xsl:otherwise>
8395
+ <xsl:value-of select="concat($basepath, @src)"/>
8396
+ </xsl:otherwise>
8397
+ </xsl:choose>
8398
+ </xsl:when>
8329
8399
  <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8330
8400
  </xsl:choose>
8331
8401
  </xsl:variable>
@@ -8338,7 +8408,7 @@
8338
8408
  <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
8339
8409
  <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
8340
8410
  <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
8341
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
8411
+ <xsl:variable name="scale" select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
8342
8412
  <xsl:value-of select="$scale"/>
8343
8413
  </xsl:template>
8344
8414
 
@@ -8357,7 +8427,14 @@
8357
8427
  <xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
8358
8428
  </xsl:when>
8359
8429
  <xsl:when test="not(starts-with(@src, 'data:'))">
8360
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8430
+ <xsl:choose>
8431
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8432
+ <xsl:value-of select="concat('url(file:///', @src, ')')"/>
8433
+ </xsl:when>
8434
+ <xsl:otherwise>
8435
+ <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8436
+ </xsl:otherwise>
8437
+ </xsl:choose>
8361
8438
  </xsl:when>
8362
8439
  <xsl:otherwise>
8363
8440
  <xsl:value-of select="@src"/>
@@ -8379,7 +8456,14 @@
8379
8456
  </xsl:when>
8380
8457
  <xsl:when test="not(starts-with(@src, 'data:'))">
8381
8458
  <xsl:variable name="src">
8382
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8459
+ <xsl:choose>
8460
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8461
+ <xsl:value-of select="concat('url(file:///', @src, ')')"/>
8462
+ </xsl:when>
8463
+ <xsl:otherwise>
8464
+ <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8465
+ </xsl:otherwise>
8466
+ </xsl:choose>
8383
8467
  </xsl:variable>
8384
8468
  <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
8385
8469
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
@@ -12290,10 +12374,12 @@
12290
12374
  <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'attachment']" mode="update_xml_step1">
12291
12375
  <xsl:copy>
12292
12376
  <xsl:copy-of select="@*"/>
12293
- <xsl:variable name="name_filepath" select="concat($inputxml_basepath, @name)"/>
12294
- <xsl:variable name="file_exists" select="normalize-space(java:exists(java:java.io.File.new($name_filepath)))"/>
12295
- <xsl:if test="$file_exists = 'false'"> <!-- copy attachment content only if file on disk doesnt exist -->
12296
- <xsl:value-of select="."/>
12377
+ <xsl:if test="1 = 2"> <!-- remove attachment/text(), because attachments added in the template 'addPDFUAmeta' before applying 'update_xml_step1' -->
12378
+ <xsl:variable name="name_filepath" select="concat($inputxml_basepath, @name)"/>
12379
+ <xsl:variable name="file_exists" select="normalize-space(java:exists(java:java.io.File.new($name_filepath)))"/>
12380
+ <xsl:if test="$file_exists = 'false'"> <!-- copy attachment content only if file on disk doesnt exist -->
12381
+ <xsl:value-of select="normalize-space(.)"/>
12382
+ </xsl:if>
12297
12383
  </xsl:if>
12298
12384
  </xsl:copy>
12299
12385
  </xsl:template>
@@ -13273,25 +13359,37 @@
13273
13359
  </x:xmpmeta>
13274
13360
  <!-- add attachments -->
13275
13361
  <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'attachment']">
13276
- <xsl:choose>
13277
- <xsl:when test="normalize-space() != ''">
13278
- <pdf:embedded-file src="{.}" filename="{@name}"/>
13279
- </xsl:when>
13280
- <xsl:otherwise>
13281
- <!-- _{filename}_attachments -->
13282
- <!-- <xsl:variable name="url" select="concat('url(file:///',$inputxml_basepath, '_', $inputxml_filename_prefix, '_attachments', '/', @name, ')')"/> -->
13283
- <xsl:variable name="url" select="concat('url(file:///',$inputxml_basepath , @name, ')')"/>
13284
- <pdf:embedded-file src="{$url}" filename="{@name}"/>
13285
- </xsl:otherwise>
13286
- </xsl:choose>
13362
+ <xsl:variable name="description" select="normalize-space(//*[local-name() = 'bibitem'][@hidden = 'true'][*[local-name() = 'uri'][@type = 'attachment'] = current()/@name]/*[local-name() = 'formattedref'])"/>
13363
+
13364
+ <pdf:embedded-file filename="{@name}">
13365
+ <xsl:attribute name="src">
13366
+ <xsl:choose>
13367
+ <xsl:when test="normalize-space() != ''">
13368
+ <xsl:variable name="src_attachment" select="java:replaceAll(java:java.lang.String.new(.),'(&#13;&#10;|&#13;|&#10;)', '')"/> <!-- remove line breaks -->
13369
+ <xsl:value-of select="$src_attachment"/>
13370
+ </xsl:when>
13371
+ <xsl:otherwise>
13372
+ <xsl:variable name="url" select="concat('url(file:///',$inputxml_basepath , @name, ')')"/>
13373
+ <xsl:value-of select="$url"/>
13374
+ </xsl:otherwise>
13375
+ </xsl:choose>
13376
+ </xsl:attribute>
13377
+ <xsl:if test="$description != ''">
13378
+ <xsl:attribute name="description"><xsl:value-of select="$description"/></xsl:attribute>
13379
+ </xsl:if>
13380
+ </pdf:embedded-file>
13287
13381
  </xsl:for-each>
13288
13382
  <!-- references to external attachments (no binary-encoded within the Metanorma XML file) -->
13289
13383
  <xsl:if test="not(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'attachment'])">
13290
13384
  <xsl:for-each select="//*[local-name() = 'bibitem'][@hidden = 'true'][*[local-name() = 'uri'][@type = 'attachment']]">
13291
13385
  <xsl:variable name="attachment_path" select="*[local-name() = 'uri'][@type = 'attachment']"/>
13292
- <xsl:variable name="url" select="concat('url(file:///',$inputxml_basepath, $attachment_path, ')')"/>
13293
- <xsl:variable name="filename_embedded" select="substring-after($attachment_path, concat('_', $inputxml_filename_prefix, '_attachments', '/'))"/>
13294
- <pdf:embedded-file src="{$url}" filename="{$filename_embedded}"/>
13386
+ <xsl:variable name="url" select="concat('url(file:///',$basepath, $attachment_path, ')')"/>
13387
+ <xsl:variable name="description" select="normalize-space(*[local-name() = 'formattedref'])"/>
13388
+ <pdf:embedded-file src="{$url}" filename="{$attachment_path}">
13389
+ <xsl:if test="$description != ''">
13390
+ <xsl:attribute name="description"><xsl:value-of select="$description"/></xsl:attribute>
13391
+ </xsl:if>
13392
+ </pdf:embedded-file>
13295
13393
  </xsl:for-each>
13296
13394
  </xsl:if>
13297
13395
  </xsl:template> <!-- addPDFUAmeta -->
@@ -13667,7 +13765,14 @@
13667
13765
  <xsl:value-of select="$src"/>
13668
13766
  </xsl:when>
13669
13767
  <xsl:otherwise>
13670
- <xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
13768
+ <xsl:choose>
13769
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
13770
+ <xsl:value-of select="concat('url(file:///', @src, ')')"/>
13771
+ </xsl:when>
13772
+ <xsl:otherwise>
13773
+ <xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
13774
+ </xsl:otherwise>
13775
+ </xsl:choose>
13671
13776
  </xsl:otherwise>
13672
13777
  </xsl:choose>
13673
13778
  </xsl:template>
@@ -37,7 +37,7 @@ module IsoDoc
37
37
 
38
38
  def ol_depth(node)
39
39
  depth = node.ancestors("ol").size + 1
40
- depth == 1 and return :alphabetic
40
+ depth == 1 and return :alphabet
41
41
  :arabic
42
42
  end
43
43
 
@@ -7,14 +7,18 @@ module IsoDoc
7
7
  word_note_cleanup(docxml)
8
8
  boldface(docxml)
9
9
  super
10
- move_to_inner_cover(docxml)
10
+ end
11
+
12
+ def word_remove_empty_sections(docxml)
13
+ move_to_inner_cover(docxml) # preempt by populating WordSection1
14
+ super
11
15
  end
12
16
 
13
17
  def move_to_inner_cover(docxml)
14
18
  source = docxml.at("//div[@type = 'inner-cover-note']")
15
19
  dest = docxml.at("//div[@id = 'boilerplate-inner-cover-note']")
16
20
  source && dest and dest.replace(source.remove)
17
- source = docxml.at("//div[@type = 'contributors']")
21
+ source = docxml.at("//div[@type = 'participants']")
18
22
  dest = docxml.at("//div[@id = 'boilerplate-contributors']")
19
23
  source && dest and dest.replace(source.remove)
20
24
  docxml
@@ -1000,14 +1000,14 @@
1000
1000
  <define name="PureTextElement">
1001
1001
  <choice>
1002
1002
  <text/>
1003
- <ref name="em"/>
1004
- <ref name="strong"/>
1003
+ <ref name="pure_em"/>
1004
+ <ref name="pure_strong"/>
1005
1005
  <ref name="sub"/>
1006
1006
  <ref name="sup"/>
1007
- <ref name="tt"/>
1008
- <ref name="underline"/>
1009
- <ref name="strike"/>
1010
- <ref name="smallcap"/>
1007
+ <ref name="pure_tt"/>
1008
+ <ref name="pure_underline"/>
1009
+ <ref name="pure_strike"/>
1010
+ <ref name="pure_smallcap"/>
1011
1011
  <ref name="br"/>
1012
1012
  </choice>
1013
1013
  </define>
@@ -1031,6 +1031,13 @@
1031
1031
  </zeroOrMore>
1032
1032
  </element>
1033
1033
  </define>
1034
+ <define name="pure_em">
1035
+ <element name="em">
1036
+ <zeroOrMore>
1037
+ <ref name="PureTextElement"/>
1038
+ </zeroOrMore>
1039
+ </element>
1040
+ </define>
1034
1041
  <define name="strong">
1035
1042
  <element name="strong">
1036
1043
  <zeroOrMore>
@@ -1046,6 +1053,13 @@
1046
1053
  </zeroOrMore>
1047
1054
  </element>
1048
1055
  </define>
1056
+ <define name="pure_strong">
1057
+ <element name="strong">
1058
+ <zeroOrMore>
1059
+ <ref name="PureTextElement"/>
1060
+ </zeroOrMore>
1061
+ </element>
1062
+ </define>
1049
1063
  <define name="tt">
1050
1064
  <element name="tt">
1051
1065
  <zeroOrMore>
@@ -1060,6 +1074,13 @@
1060
1074
  </zeroOrMore>
1061
1075
  </element>
1062
1076
  </define>
1077
+ <define name="pure_tt">
1078
+ <element name="tt">
1079
+ <zeroOrMore>
1080
+ <ref name="PureTextElement"/>
1081
+ </zeroOrMore>
1082
+ </element>
1083
+ </define>
1063
1084
  <define name="keyword">
1064
1085
  <element name="keyword">
1065
1086
  <zeroOrMore>
@@ -1090,13 +1111,42 @@
1090
1111
  <zeroOrMore>
1091
1112
  <choice>
1092
1113
  <ref name="PureTextElement"/>
1114
+ <ref name="stem"/>
1115
+ <ref name="eref"/>
1116
+ <ref name="xref"/>
1117
+ <ref name="hyperlink"/>
1093
1118
  <ref name="index"/>
1094
1119
  <ref name="index-xref"/>
1095
1120
  </choice>
1096
1121
  </zeroOrMore>
1097
1122
  </element>
1098
1123
  </define>
1124
+ <define name="pure_strike">
1125
+ <element name="strike">
1126
+ <zeroOrMore>
1127
+ <ref name="PureTextElement"/>
1128
+ </zeroOrMore>
1129
+ </element>
1130
+ </define>
1099
1131
  <define name="underline">
1132
+ <element name="underline">
1133
+ <optional>
1134
+ <attribute name="style"/>
1135
+ </optional>
1136
+ <zeroOrMore>
1137
+ <choice>
1138
+ <ref name="PureTextElement"/>
1139
+ <ref name="stem"/>
1140
+ <ref name="eref"/>
1141
+ <ref name="xref"/>
1142
+ <ref name="hyperlink"/>
1143
+ <ref name="index"/>
1144
+ <ref name="index-xref"/>
1145
+ </choice>
1146
+ </zeroOrMore>
1147
+ </element>
1148
+ </define>
1149
+ <define name="pure_underline">
1100
1150
  <element name="underline">
1101
1151
  <optional>
1102
1152
  <attribute name="style"/>
@@ -1107,6 +1157,21 @@
1107
1157
  </element>
1108
1158
  </define>
1109
1159
  <define name="smallcap">
1160
+ <element name="smallcap">
1161
+ <zeroOrMore>
1162
+ <choice>
1163
+ <ref name="PureTextElement"/>
1164
+ <ref name="stem"/>
1165
+ <ref name="eref"/>
1166
+ <ref name="xref"/>
1167
+ <ref name="hyperlink"/>
1168
+ <ref name="index"/>
1169
+ <ref name="index-xref"/>
1170
+ </choice>
1171
+ </zeroOrMore>
1172
+ </element>
1173
+ </define>
1174
+ <define name="pure_smallcap">
1110
1175
  <element name="smallcap">
1111
1176
  <zeroOrMore>
1112
1177
  <ref name="PureTextElement"/>
@@ -1204,7 +1204,9 @@
1204
1204
  <optional>
1205
1205
  <ref name="formattedref"/>
1206
1206
  </optional>
1207
- <ref name="btitle"/>
1207
+ <oneOrMore>
1208
+ <ref name="btitle"/>
1209
+ </oneOrMore>
1208
1210
  <optional>
1209
1211
  <ref name="bplace"/>
1210
1212
  </optional>
@@ -82,6 +82,37 @@ module Metanorma
82
82
  ::Metanorma::Standoc::Converter.instance_method(:ol_cleanup).bind(self)
83
83
  .call(doc)
84
84
  end
85
+
86
+ def biblio_reorder(xmldoc)
87
+ xmldoc.xpath("//references[@normative = 'true']").each do |r|
88
+ biblio_reorder1(r)
89
+ end
90
+ end
91
+
92
+ def pub_class_prep(bib)
93
+ iso = bib.at("#{PUBLISHER}[abbreviation = 'ISO']") ||
94
+ bib.at("#{PUBLISHER}[name = 'International Organization " \
95
+ "for Standardization']")
96
+ iec = bib.at("#{PUBLISHER}[abbreviation = 'IEC']") ||
97
+ bib.at("#{PUBLISHER}[name = 'International " \
98
+ "Electrotechnical Commission']")
99
+ jis = bib.at("#{PUBLISHER}[abbreviation = 'JIS']") ||
100
+ bib.at("#{PUBLISHER}[name = '#{pub_hash['ja']}']") ||
101
+ bib.at("#{PUBLISHER}[name = '#{pub_hash['en']}']")
102
+ [iso, iec, jis]
103
+ end
104
+
105
+ def pub_class(bib)
106
+ iso, iec, jis = pub_class_prep(bib)
107
+ jis && iec && iso and return 2
108
+ jis && iec and return 2
109
+ jis && iso and return 3
110
+ jis and return 1
111
+ iso && iec and return 4
112
+ iso and return 4
113
+ iec and return 5
114
+ 6
115
+ end
85
116
  end
86
117
  end
87
118
  end
@@ -662,6 +662,9 @@
662
662
  <value>LatexMath</value>
663
663
  </choice>
664
664
  </attribute>
665
+ <optional>
666
+ <attribute name="number-format"/>
667
+ </optional>
665
668
  <attribute name="block">
666
669
  <data type="boolean"/>
667
670
  </attribute>
@@ -66,6 +66,9 @@
66
66
  <ref name="MultilingualRenderingType"/>
67
67
  </attribute>
68
68
  </optional>
69
+ <optional>
70
+ <attribute name="class"/>
71
+ </optional>
69
72
  <optional>
70
73
  <ref name="reqtitle"/>
71
74
  </optional>
@@ -20,6 +20,9 @@ module Metanorma
20
20
  schema_validate(formattedstr_strip(doc.dup),
21
21
  File.join(File.dirname(__FILE__), "jis.rng"))
22
22
  end
23
+
24
+ def image_name_validate(xmldoc); end
25
+ def norm_bibitem_style(xmldoc); end
23
26
  end
24
27
  end
25
28
  end
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module JIS
3
- VERSION = "0.3.1".freeze
3
+ VERSION = "0.3.3".freeze
4
4
  end
5
5
  end
6
6
 
@@ -0,0 +1,57 @@
1
+ extenttemplate:
2
+ book: "{{ volume }} {{ page }}"
3
+ booklet: book
4
+ proceedings: book
5
+ journal: book
6
+ standard: book
7
+ techreport: book
8
+ inbook: "{{ volume }} {{ page }}"
9
+ misc: "{{ volume }} {{issue}} {{ page }}, {{ duration }}"
10
+ nametemplate:
11
+ one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %}"
12
+ two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %} , & {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{initials[1] | join: ''}}.{% endif %}"
13
+ more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{initials[1] | join: ''}}. {% endif %} , & {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{{surname[2]}} {{initials[2] | join: ''}}.{% endif %}"
14
+ # disabled the following: they should be provided in inheriting calls
15
+ # etal: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %}, {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %} <em>et al.</em>"
16
+ # etal_count: 5
17
+ seriestemplate: "{% if series_formatted %}{{ series_formatted }}{%else%}{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %} ({{series_run}}) {{series_num}}|({{series_partnumber}}){%endif%}"
18
+ journaltemplate: "{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %} ({{series_run}}) {{ labels['volume'] }}_{{series_num}} {{ labels['part'] }}_{{series_partnumber}}"
19
+ template:
20
+ # skip standardidentifier, it is inserted in front of formattedref within metanorma
21
+ standard: "{% if home_standard %}<span_class='stddocTitle'>{{ title }}</span> ,_{{ extent }}{% else %}{{ creatornames }}. <span_class='stddocTitle'>{{ title }}</span> ,_{{ extent }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{labels['updated'] | capitalize }}_{{date_updated}}. {{status | capitalize}}. {{ authorizer }}. {{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>.{% endif %}"
22
+ website: "{{ creatornames }} ({{ role }}) . <span_class='stddocTitle'>{{ title }}</span> [{{ labels['website'] }}]. {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{place}}: {{ publisher }}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
23
+ book: "{{ creatornames }} ({{role}}) . {{ title }} . {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
24
+ booklet: book
25
+ manual: book
26
+ techreport: book
27
+ proceedings: book
28
+ inbook: "{{ creatornames }} ({{role}}) . {{ title }} . {{host_title}} ({{host_role}} {{ host_creatornames}}). {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
29
+ inproceedings: inbook
30
+ incollection: inbook
31
+ journal: "{{ title}} . {{ edition | capitalize_first }}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
32
+ article: "{{ creatornames }} ({{role}}) . {{ title }}. {{ series }} . {{date}}, {{ extent }}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
33
+ software: "{{ creatornames }} ({{ role}}) . {{ title }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize}}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
34
+ electronic resource: software
35
+ dataset: "{{ creatornames }} ({{ role }}) . {{ title }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize }}. {{ labels['in'] | capitalize }}:_{{series}}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. {{ authoritative_identifier | join '. ' }}. {{ other_identifier | join '. ' }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ size }}. {{ extent}}. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
36
+ webresource: website
37
+ unpublished: "{{ creatornames }} ({{ role }}) . {{ title }} . {{ medium | capitalize }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
38
+ presentation: unpublished
39
+ thesis: "{{ creatornames }} ({{ role }}) . {{ title }} . {{ medium | capitalize }}. {{place}}: {{ publisher }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
40
+ misc: "{{ creatornames }} ({{ role }}) . {{ title }} . {{ date }}."
41
+ # following are # unsupported types:
42
+ map: misc
43
+ audiovisual: misc
44
+ film: misc
45
+ video: misc
46
+ broadcast: misc
47
+ graphic_work: misc
48
+ music: misc
49
+ performance: misc
50
+ patent: misc
51
+ archival: misc
52
+ social_media: misc
53
+ alert: misc
54
+ message: misc
55
+ conversation: misc
56
+ internal: misc
57
+
@@ -7,14 +7,27 @@ module Relaton
7
7
  module Render
8
8
  module JIS
9
9
  class General < ::Relaton::Render::Iso::General
10
- #def config_loc
11
- # YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
12
- #end
10
+ def config_loc
11
+ YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
12
+ end
13
13
 
14
14
  def klass_initialize(_options)
15
15
  super
16
16
  @parseklass = Relaton::Render::JIS::Parse
17
17
  end
18
+
19
+ def render1(doc)
20
+ r = doc.relation.select { |x| x.type == "hasRepresentation" }
21
+ .map { |x| @i18n.also_pub_as + render_single_bibitem(x.bibitem) }
22
+ out = [render_single_bibitem(doc)] + r
23
+ @i18n.l10n(out.join(". ").gsub(".. ", ". ").sub(/\.\s*$/, ""))
24
+ end
25
+
26
+ def render_all(bib, type: "author-date")
27
+ ret = super
28
+ ret&.each_value { |k| k[:formattedref]&.sub!(/[.。]\s*$/, "") }
29
+ ret
30
+ end
18
31
  end
19
32
  end
20
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-jis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-05 00:00:00.000000000 Z
11
+ date: 2024-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: japanese_calendar
@@ -314,6 +314,7 @@ files:
314
314
  - lib/metanorma/jis/reqt.rng
315
315
  - lib/metanorma/jis/validate.rb
316
316
  - lib/metanorma/jis/version.rb
317
+ - lib/relaton/render-jis/config.yml
317
318
  - lib/relaton/render-jis/general.rb
318
319
  - lib/relaton/render-jis/parse.rb
319
320
  - metanorma-jis.gemspec