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 +4 -4
- data/lib/isodoc/jis/html/style-human.css +40 -0
- data/lib/isodoc/jis/html/style-iso.css +40 -0
- data/lib/isodoc/jis/jis.international-standard.xsl +172 -67
- data/lib/isodoc/jis/presentation_xml_convert.rb +1 -1
- data/lib/isodoc/jis/word_cleanup.rb +6 -2
- data/lib/metanorma/jis/basicdoc.rng +71 -6
- data/lib/metanorma/jis/biblio.rng +3 -1
- data/lib/metanorma/jis/cleanup.rb +31 -0
- data/lib/metanorma/jis/isodoc.rng +3 -0
- data/lib/metanorma/jis/reqt.rng +3 -0
- data/lib/metanorma/jis/validate.rb +3 -0
- data/lib/metanorma/jis/version.rb +1 -1
- data/lib/relaton/render-jis/config.yml +57 -0
- data/lib/relaton/render-jis/general.rb +16 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cef3f0aef7b0710dc4f98802b2fcc476ffe6a3805d11334005eb280a0480001a
|
4
|
+
data.tar.gz: 9e8979493f228f6d689d606946736551c1f7e00545e90a1c68c664aa99f0d83a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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) > 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"
|
1431
|
-
<xsl:
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
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"
|
1444
|
-
<xsl:
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
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"
|
1456
|
-
<xsl:
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
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"
|
1482
|
-
<xsl:
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
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"
|
1507
|
-
<xsl:
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
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"
|
1521
|
-
<xsl:
|
1522
|
-
|
1523
|
-
|
1524
|
-
|
1525
|
-
|
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="
|
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:'))"
|
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.
|
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:
|
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:
|
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:
|
12294
|
-
|
12295
|
-
|
12296
|
-
<xsl:
|
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:
|
13277
|
-
|
13278
|
-
|
13279
|
-
|
13280
|
-
|
13281
|
-
|
13282
|
-
|
13283
|
-
|
13284
|
-
|
13285
|
-
|
13286
|
-
|
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(.),'( | | )', '')"/> <!-- 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:///',$
|
13293
|
-
<xsl:variable name="
|
13294
|
-
<pdf:embedded-file src="{$url}" filename="{$
|
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:
|
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>
|
@@ -7,14 +7,18 @@ module IsoDoc
|
|
7
7
|
word_note_cleanup(docxml)
|
8
8
|
boldface(docxml)
|
9
9
|
super
|
10
|
-
|
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 = '
|
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="
|
1004
|
-
<ref name="
|
1003
|
+
<ref name="pure_em"/>
|
1004
|
+
<ref name="pure_strong"/>
|
1005
1005
|
<ref name="sub"/>
|
1006
1006
|
<ref name="sup"/>
|
1007
|
-
<ref name="
|
1008
|
-
<ref name="
|
1009
|
-
<ref name="
|
1010
|
-
<ref name="
|
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"/>
|
@@ -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
|
data/lib/metanorma/jis/reqt.rng
CHANGED
@@ -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
|
-
|
11
|
-
|
12
|
-
|
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.
|
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-
|
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
|