metanorma-ieee 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/isodoc/ieee/html/wp_image001_icr.emz +0 -0
- data/lib/isodoc/ieee/html/wp_image003_icr.emz +0 -0
- data/lib/isodoc/ieee/html/wp_image008_icr.emz +0 -0
- data/lib/isodoc/ieee/ieee.amendment.xsl +59 -10
- data/lib/isodoc/ieee/ieee.standard.xsl +59 -10
- data/lib/isodoc/ieee/presentation_bibdata.rb +9 -4
- data/lib/isodoc/ieee/word_cleanup.rb +2 -0
- data/lib/metanorma/ieee/basicdoc.rng +3 -0
- data/lib/metanorma/ieee/boilerplate.adoc +1 -1
- data/lib/metanorma/ieee/cleanup.rb +9 -5
- data/lib/metanorma/ieee/front.rb +69 -4
- data/lib/metanorma/ieee/isodoc.rng +4 -1
- data/lib/metanorma/ieee/version.rb +1 -1
- data/metanorma-ieee.gemspec +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: daaebf8c438f244ad1a0cc4c804f1aac05fcdf3252bb9b2847f0ab056ed5ffc0
|
4
|
+
data.tar.gz: 4cf01847b8a56f6e9a520cd7509cc56cec8077d891bef18beed30262688e87bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8af52bc41555e8ef7ff4f296dd65522cab8896226b9cbdad0b443f49a4a428343c0c205ff733845f8a4e93f707f543e152897b5895456ab2b72494e3c0a2cddc
|
7
|
+
data.tar.gz: f2b0d65f7e1e5e853363ac60dd7608b90d04f97368360dd60701e60d115f09d7973bd4791edd76b990f13d5628224c78e0883185743187efb532e1e1a68dad00
|
Binary file
|
Binary file
|
Binary file
|
@@ -5622,7 +5622,9 @@
|
|
5622
5622
|
</xsl:template> <!-- license-statement/p -->
|
5623
5623
|
|
5624
5624
|
<xsl:template match="*[local-name()='legal-statement']">
|
5625
|
+
<xsl:param name="isLegacy">false</xsl:param>
|
5625
5626
|
<fo:block xsl:use-attribute-sets="legal-statement-style">
|
5627
|
+
|
5626
5628
|
<xsl:apply-templates/>
|
5627
5629
|
</fo:block>
|
5628
5630
|
</xsl:template> <!-- legal-statement -->
|
@@ -7915,13 +7917,14 @@
|
|
7915
7917
|
<!-- ================= -->
|
7916
7918
|
<!-- Added,deleted text -->
|
7917
7919
|
<!-- ================= -->
|
7918
|
-
<xsl:template match="*[local-name()='add']" name="tag_add">
|
7920
|
+
<xsl:template match="*[local-name()='add'] | *[local-name() = 'change-open-tag'] | *[local-name() = 'change-close-tag']" name="tag_add">
|
7919
7921
|
<xsl:param name="skip">true</xsl:param>
|
7920
7922
|
<xsl:param name="block">false</xsl:param>
|
7921
7923
|
<xsl:param name="type"/>
|
7922
7924
|
<xsl:param name="text-align"/>
|
7923
7925
|
<xsl:choose>
|
7924
|
-
<xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start
|
7926
|
+
<xsl:when test="starts-with(., $ace_tag) or local-name() = 'change-open-tag' or local-name() = 'change-close-tag'"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start, or
|
7927
|
+
<change-open-tag>A<sub>1</sub></change-open-tag>, <change-close-tag>A<sub>1</sub></change-close-tag> -->
|
7925
7928
|
<xsl:choose>
|
7926
7929
|
<xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab']) or local-name(..) = 'formattedref' and not(preceding-sibling::node())) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
|
7927
7930
|
<xsl:otherwise>
|
@@ -7929,12 +7932,32 @@
|
|
7929
7932
|
<xsl:call-template name="insertTag">
|
7930
7933
|
<xsl:with-param name="type">
|
7931
7934
|
<xsl:choose>
|
7935
|
+
<xsl:when test="local-name() = 'change-open-tag'">start</xsl:when>
|
7936
|
+
<xsl:when test="local-name() = 'change-close-tag'">end</xsl:when>
|
7932
7937
|
<xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
|
7933
7938
|
<xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
|
7934
7939
|
</xsl:choose>
|
7935
7940
|
</xsl:with-param>
|
7936
|
-
<xsl:with-param name="kind"
|
7937
|
-
|
7941
|
+
<xsl:with-param name="kind">
|
7942
|
+
<xsl:choose>
|
7943
|
+
<xsl:when test="local-name() = 'change-open-tag' or local-name() = 'change-close-tag'">
|
7944
|
+
<xsl:value-of select="text()"/>
|
7945
|
+
</xsl:when>
|
7946
|
+
<xsl:otherwise>
|
7947
|
+
<xsl:value-of select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
|
7948
|
+
</xsl:otherwise>
|
7949
|
+
</xsl:choose>
|
7950
|
+
</xsl:with-param>
|
7951
|
+
<xsl:with-param name="value">
|
7952
|
+
<xsl:choose>
|
7953
|
+
<xsl:when test="local-name() = 'change-open-tag' or local-name() = 'change-close-tag'">
|
7954
|
+
<xsl:value-of select="*[local-name() = 'sub']"/>
|
7955
|
+
</xsl:when>
|
7956
|
+
<xsl:otherwise>
|
7957
|
+
<xsl:value-of select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
|
7958
|
+
</xsl:otherwise>
|
7959
|
+
</xsl:choose>
|
7960
|
+
</xsl:with-param>
|
7938
7961
|
</xsl:call-template>
|
7939
7962
|
</xsl:variable>
|
7940
7963
|
<xsl:choose>
|
@@ -10144,11 +10167,17 @@
|
|
10144
10167
|
</xsl:when>
|
10145
10168
|
<xsl:otherwise>
|
10146
10169
|
|
10170
|
+
<xsl:variable name="image_class" select="ancestor::*[local-name() = 'image']/@class"/>
|
10171
|
+
<xsl:variable name="ancestor_table_cell" select="normalize-space(ancestor::*[local-name() = 'td'] or ancestor::*[local-name() = 'th'])"/>
|
10172
|
+
|
10147
10173
|
<xsl:variable name="element">
|
10148
10174
|
<xsl:choose>
|
10149
10175
|
<xsl:when test="ancestor::*[local-name() = 'tr'] and $isGenerateTableIF = 'true'">
|
10150
10176
|
<fo:inline xsl:use-attribute-sets="image-style" text-align="left"/>
|
10151
10177
|
</xsl:when>
|
10178
|
+
<xsl:when test="not(ancestor::*[local-name() = 'figure'])">
|
10179
|
+
<fo:inline xsl:use-attribute-sets="image-style" text-align="left"/>
|
10180
|
+
</xsl:when>
|
10152
10181
|
<xsl:otherwise>
|
10153
10182
|
<fo:block xsl:use-attribute-sets="image-style">
|
10154
10183
|
<xsl:if test="ancestor::*[local-name() = 'dt']">
|
@@ -10164,10 +10193,24 @@
|
|
10164
10193
|
<xsl:copy-of select="@*"/>
|
10165
10194
|
<!-- <fo:block xsl:use-attribute-sets="image-style"> -->
|
10166
10195
|
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
10167
|
-
|
10168
|
-
|
10169
|
-
|
10170
|
-
|
10196
|
+
|
10197
|
+
<xsl:choose>
|
10198
|
+
<xsl:when test="$image_class = 'corrigenda-tag'">
|
10199
|
+
<xsl:attribute name="fox:alt-text">CorrigendaTag</xsl:attribute>
|
10200
|
+
<xsl:attribute name="baseline-shift">-10%</xsl:attribute>
|
10201
|
+
<xsl:if test="$ancestor_table_cell = 'true'">
|
10202
|
+
<xsl:attribute name="baseline-shift">-25%</xsl:attribute>
|
10203
|
+
</xsl:if>
|
10204
|
+
<xsl:attribute name="height">3.5mm</xsl:attribute>
|
10205
|
+
</xsl:when>
|
10206
|
+
<xsl:otherwise>
|
10207
|
+
<xsl:if test="$isGenerateTableIF = 'false'">
|
10208
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
10209
|
+
</xsl:if>
|
10210
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
10211
|
+
</xsl:otherwise>
|
10212
|
+
</xsl:choose>
|
10213
|
+
|
10171
10214
|
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
10172
10215
|
<xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
|
10173
10216
|
<xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
|
@@ -12364,13 +12407,19 @@
|
|
12364
12407
|
<fo:block id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
|
12365
12408
|
</xsl:when>
|
12366
12409
|
<!-- if there isn't element with id 'from', then create 'bookmark' here -->
|
12367
|
-
<xsl:when test="not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
|
12410
|
+
<xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
|
12411
|
+
<fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
|
12412
|
+
</xsl:when>
|
12413
|
+
<xsl:when test="not(//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
|
12368
12414
|
<fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
|
12369
12415
|
</xsl:when>
|
12370
12416
|
</xsl:choose>
|
12371
12417
|
|
12372
12418
|
</xsl:template>
|
12373
12419
|
|
12420
|
+
<!-- https://github.com/metanorma/mn-samples-bsi/issues/312 -->
|
12421
|
+
<xsl:template match="*[local-name() = 'review'][@type = 'other']"/>
|
12422
|
+
|
12374
12423
|
<xsl:template match="*[local-name() = 'name']/text()">
|
12375
12424
|
<!-- 0xA0 to space replacement -->
|
12376
12425
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
|
@@ -14137,7 +14186,7 @@
|
|
14137
14186
|
|
14138
14187
|
<xsl:template name="printEdition">
|
14139
14188
|
<xsl:variable name="edition_i18n" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) != ''])"/>
|
14140
|
-
|
14189
|
+
|
14141
14190
|
<xsl:choose>
|
14142
14191
|
<xsl:when test="$edition_i18n != ''">
|
14143
14192
|
<!-- Example: <edition language="fr">deuxième édition</edition> -->
|
@@ -5622,7 +5622,9 @@
|
|
5622
5622
|
</xsl:template> <!-- license-statement/p -->
|
5623
5623
|
|
5624
5624
|
<xsl:template match="*[local-name()='legal-statement']">
|
5625
|
+
<xsl:param name="isLegacy">false</xsl:param>
|
5625
5626
|
<fo:block xsl:use-attribute-sets="legal-statement-style">
|
5627
|
+
|
5626
5628
|
<xsl:apply-templates/>
|
5627
5629
|
</fo:block>
|
5628
5630
|
</xsl:template> <!-- legal-statement -->
|
@@ -7915,13 +7917,14 @@
|
|
7915
7917
|
<!-- ================= -->
|
7916
7918
|
<!-- Added,deleted text -->
|
7917
7919
|
<!-- ================= -->
|
7918
|
-
<xsl:template match="*[local-name()='add']" name="tag_add">
|
7920
|
+
<xsl:template match="*[local-name()='add'] | *[local-name() = 'change-open-tag'] | *[local-name() = 'change-close-tag']" name="tag_add">
|
7919
7921
|
<xsl:param name="skip">true</xsl:param>
|
7920
7922
|
<xsl:param name="block">false</xsl:param>
|
7921
7923
|
<xsl:param name="type"/>
|
7922
7924
|
<xsl:param name="text-align"/>
|
7923
7925
|
<xsl:choose>
|
7924
|
-
<xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start
|
7926
|
+
<xsl:when test="starts-with(., $ace_tag) or local-name() = 'change-open-tag' or local-name() = 'change-close-tag'"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start, or
|
7927
|
+
<change-open-tag>A<sub>1</sub></change-open-tag>, <change-close-tag>A<sub>1</sub></change-close-tag> -->
|
7925
7928
|
<xsl:choose>
|
7926
7929
|
<xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab']) or local-name(..) = 'formattedref' and not(preceding-sibling::node())) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
|
7927
7930
|
<xsl:otherwise>
|
@@ -7929,12 +7932,32 @@
|
|
7929
7932
|
<xsl:call-template name="insertTag">
|
7930
7933
|
<xsl:with-param name="type">
|
7931
7934
|
<xsl:choose>
|
7935
|
+
<xsl:when test="local-name() = 'change-open-tag'">start</xsl:when>
|
7936
|
+
<xsl:when test="local-name() = 'change-close-tag'">end</xsl:when>
|
7932
7937
|
<xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
|
7933
7938
|
<xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
|
7934
7939
|
</xsl:choose>
|
7935
7940
|
</xsl:with-param>
|
7936
|
-
<xsl:with-param name="kind"
|
7937
|
-
|
7941
|
+
<xsl:with-param name="kind">
|
7942
|
+
<xsl:choose>
|
7943
|
+
<xsl:when test="local-name() = 'change-open-tag' or local-name() = 'change-close-tag'">
|
7944
|
+
<xsl:value-of select="text()"/>
|
7945
|
+
</xsl:when>
|
7946
|
+
<xsl:otherwise>
|
7947
|
+
<xsl:value-of select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
|
7948
|
+
</xsl:otherwise>
|
7949
|
+
</xsl:choose>
|
7950
|
+
</xsl:with-param>
|
7951
|
+
<xsl:with-param name="value">
|
7952
|
+
<xsl:choose>
|
7953
|
+
<xsl:when test="local-name() = 'change-open-tag' or local-name() = 'change-close-tag'">
|
7954
|
+
<xsl:value-of select="*[local-name() = 'sub']"/>
|
7955
|
+
</xsl:when>
|
7956
|
+
<xsl:otherwise>
|
7957
|
+
<xsl:value-of select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
|
7958
|
+
</xsl:otherwise>
|
7959
|
+
</xsl:choose>
|
7960
|
+
</xsl:with-param>
|
7938
7961
|
</xsl:call-template>
|
7939
7962
|
</xsl:variable>
|
7940
7963
|
<xsl:choose>
|
@@ -10144,11 +10167,17 @@
|
|
10144
10167
|
</xsl:when>
|
10145
10168
|
<xsl:otherwise>
|
10146
10169
|
|
10170
|
+
<xsl:variable name="image_class" select="ancestor::*[local-name() = 'image']/@class"/>
|
10171
|
+
<xsl:variable name="ancestor_table_cell" select="normalize-space(ancestor::*[local-name() = 'td'] or ancestor::*[local-name() = 'th'])"/>
|
10172
|
+
|
10147
10173
|
<xsl:variable name="element">
|
10148
10174
|
<xsl:choose>
|
10149
10175
|
<xsl:when test="ancestor::*[local-name() = 'tr'] and $isGenerateTableIF = 'true'">
|
10150
10176
|
<fo:inline xsl:use-attribute-sets="image-style" text-align="left"/>
|
10151
10177
|
</xsl:when>
|
10178
|
+
<xsl:when test="not(ancestor::*[local-name() = 'figure'])">
|
10179
|
+
<fo:inline xsl:use-attribute-sets="image-style" text-align="left"/>
|
10180
|
+
</xsl:when>
|
10152
10181
|
<xsl:otherwise>
|
10153
10182
|
<fo:block xsl:use-attribute-sets="image-style">
|
10154
10183
|
<xsl:if test="ancestor::*[local-name() = 'dt']">
|
@@ -10164,10 +10193,24 @@
|
|
10164
10193
|
<xsl:copy-of select="@*"/>
|
10165
10194
|
<!-- <fo:block xsl:use-attribute-sets="image-style"> -->
|
10166
10195
|
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
10167
|
-
|
10168
|
-
|
10169
|
-
|
10170
|
-
|
10196
|
+
|
10197
|
+
<xsl:choose>
|
10198
|
+
<xsl:when test="$image_class = 'corrigenda-tag'">
|
10199
|
+
<xsl:attribute name="fox:alt-text">CorrigendaTag</xsl:attribute>
|
10200
|
+
<xsl:attribute name="baseline-shift">-10%</xsl:attribute>
|
10201
|
+
<xsl:if test="$ancestor_table_cell = 'true'">
|
10202
|
+
<xsl:attribute name="baseline-shift">-25%</xsl:attribute>
|
10203
|
+
</xsl:if>
|
10204
|
+
<xsl:attribute name="height">3.5mm</xsl:attribute>
|
10205
|
+
</xsl:when>
|
10206
|
+
<xsl:otherwise>
|
10207
|
+
<xsl:if test="$isGenerateTableIF = 'false'">
|
10208
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
10209
|
+
</xsl:if>
|
10210
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
10211
|
+
</xsl:otherwise>
|
10212
|
+
</xsl:choose>
|
10213
|
+
|
10171
10214
|
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
10172
10215
|
<xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
|
10173
10216
|
<xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
|
@@ -12364,13 +12407,19 @@
|
|
12364
12407
|
<fo:block id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
|
12365
12408
|
</xsl:when>
|
12366
12409
|
<!-- if there isn't element with id 'from', then create 'bookmark' here -->
|
12367
|
-
<xsl:when test="not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
|
12410
|
+
<xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
|
12411
|
+
<fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
|
12412
|
+
</xsl:when>
|
12413
|
+
<xsl:when test="not(//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
|
12368
12414
|
<fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
|
12369
12415
|
</xsl:when>
|
12370
12416
|
</xsl:choose>
|
12371
12417
|
|
12372
12418
|
</xsl:template>
|
12373
12419
|
|
12420
|
+
<!-- https://github.com/metanorma/mn-samples-bsi/issues/312 -->
|
12421
|
+
<xsl:template match="*[local-name() = 'review'][@type = 'other']"/>
|
12422
|
+
|
12374
12423
|
<xsl:template match="*[local-name() = 'name']/text()">
|
12375
12424
|
<!-- 0xA0 to space replacement -->
|
12376
12425
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
|
@@ -14137,7 +14186,7 @@
|
|
14137
14186
|
|
14138
14187
|
<xsl:template name="printEdition">
|
14139
14188
|
<xsl:variable name="edition_i18n" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) != ''])"/>
|
14140
|
-
|
14189
|
+
|
14141
14190
|
<xsl:choose>
|
14142
14191
|
<xsl:when test="$edition_i18n != ''">
|
14143
14192
|
<!-- Example: <edition language="fr">deuxième édition</edition> -->
|
@@ -17,8 +17,7 @@ module IsoDoc
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def ddMMMyyyy(isodate)
|
20
|
-
|
21
|
-
|
20
|
+
isodate.nil? and return nil
|
22
21
|
arr = isodate.split("-")
|
23
22
|
if arr.size == 1 && (/^\d+$/.match isodate)
|
24
23
|
Date.new(*arr.map(&:to_i)).strftime("%Y")
|
@@ -62,11 +61,17 @@ module IsoDoc
|
|
62
61
|
key = ""
|
63
62
|
map = list.xpath(ns(".//dt | .//dd")).each_with_object({}) do |dtd, m|
|
64
63
|
(dtd.name == "dt" and key = dtd.text) or
|
65
|
-
m[key] =
|
64
|
+
m[key] = text_from_paras(dtd)
|
65
|
+
.gsub(/\*/, "<span class='cite_fn'>*</span>")
|
66
66
|
end
|
67
67
|
list.replace(participant_para(map, idx))
|
68
68
|
end
|
69
69
|
|
70
|
+
def text_from_paras(node)
|
71
|
+
r = node.at(ns("./p")) and node = r
|
72
|
+
node.children.to_xml.strip
|
73
|
+
end
|
74
|
+
|
70
75
|
def participant_para(map, idx)
|
71
76
|
name = participant_name(map)
|
72
77
|
if map["role"]&.casecmp("member")&.zero?
|
@@ -89,7 +94,7 @@ module IsoDoc
|
|
89
94
|
name = "<strong>#{name}</strong>" if idx.zero?
|
90
95
|
br = map["role"].size > 30 ? "<br/>" : ""
|
91
96
|
"<p type='officeholder' align='center'>#{name}, #{br}" \
|
92
|
-
"<em>#{map['role']}</em></p>"
|
97
|
+
"<em><span class='au_role'>#{map['role']}</span></em></p>"
|
93
98
|
end
|
94
99
|
|
95
100
|
def participant_name(map)
|
@@ -190,14 +190,13 @@ module Metanorma
|
|
190
190
|
|
191
191
|
def populate_participants2(list)
|
192
192
|
curr = list
|
193
|
-
p = curr.at("./p") and curr = p
|
193
|
+
p = curr.at("./p[text() != '']") and curr = p
|
194
194
|
if dl = curr.at("./dl")
|
195
195
|
ret = extract_participants(dl)
|
196
196
|
dl.children = ret.keys.map do |k|
|
197
197
|
"<dt>#{k}</dt><dd><p>#{ret[k]}</p></dd>"
|
198
198
|
end.join
|
199
|
-
else
|
200
|
-
list.children = "<dl><dt>name</dt><dd><p>#{curr.children.to_xml}" \
|
199
|
+
else list.children = "<dl><dt>name</dt><dd><p>#{curr.children.to_xml}" \
|
201
200
|
"</p></dd><dt>role</dt><dd><p>member</p></dd></dl>"
|
202
201
|
end
|
203
202
|
end
|
@@ -206,13 +205,18 @@ module Metanorma
|
|
206
205
|
key = ""
|
207
206
|
map = dlist.xpath("./dt | ./dd").each_with_object({}) do |dtd, m|
|
208
207
|
(dtd.name == "dt" and key = dtd.text.sub(/:+$/, "")) or
|
209
|
-
m[key.strip.downcase] =
|
210
|
-
@c.encode(@c.decode(dtd.text.strip), :hexadecimal)
|
208
|
+
m[key.strip.downcase] = text_from_paras(dtd)
|
211
209
|
end
|
210
|
+
map["company"] &&= "<span class='organization'>#{map['company']}</span>"
|
212
211
|
map["role"] ||= "member"
|
213
212
|
map
|
214
213
|
end
|
215
214
|
|
215
|
+
def text_from_paras(node)
|
216
|
+
r = node.at("./p") and node = r
|
217
|
+
node.children.to_xml.strip
|
218
|
+
end
|
219
|
+
|
216
220
|
def bibdata_cleanup(xmldoc)
|
217
221
|
super
|
218
222
|
provenance_title(xmldoc)
|
data/lib/metanorma/ieee/front.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "isoics"
|
2
|
+
require "pubid-ieee"
|
2
3
|
|
3
4
|
module Metanorma
|
4
5
|
module IEEE
|
@@ -16,7 +17,8 @@ module Metanorma
|
|
16
17
|
def metadata_committee_prep(node)
|
17
18
|
node.attr("doctype") == "whitepaper" &&
|
18
19
|
node.attr("docsubtype") == "industry-connection-report" and
|
19
|
-
node.set_attr("working-group",
|
20
|
+
node.set_attr("working-group",
|
21
|
+
"IEEE SA Industry Connections activity")
|
20
22
|
node.attr("committee") || node.attr("society") ||
|
21
23
|
node.attr("working-group") or return
|
22
24
|
node.attr("balloting-group") && !node.attr("balloting-group-type") and
|
@@ -32,8 +34,10 @@ module Metanorma
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def metadata_id(node, xml)
|
35
|
-
id = node.attr("
|
36
|
-
|
37
|
+
if id = node.attr("docidentifier")
|
38
|
+
xml.docidentifier id, **attr_code(type: "IEEE")
|
39
|
+
else ieee_id(node, xml)
|
40
|
+
end
|
37
41
|
id = node.attr("stdid-pdf") and
|
38
42
|
xml.docidentifier id, type: "IEEE", scope: "PDF"
|
39
43
|
id = node.attr("stdid-print") and
|
@@ -41,6 +45,65 @@ module Metanorma
|
|
41
45
|
xml.docnumber node.attr("docnumber")
|
42
46
|
end
|
43
47
|
|
48
|
+
def ieee_id(node, xml)
|
49
|
+
params = ieee_id_params(node)
|
50
|
+
params[:number] or return
|
51
|
+
ieee_id_out(xml, params)
|
52
|
+
end
|
53
|
+
|
54
|
+
def ieee_id_params(node)
|
55
|
+
core = ieee_id_params_core(node)
|
56
|
+
amd = ieee_id_params_amd(node, core) || {}
|
57
|
+
core.merge(amd)
|
58
|
+
end
|
59
|
+
|
60
|
+
def ieee_id_params_core(node)
|
61
|
+
pub = ieee_id_pub(node)
|
62
|
+
ret = { number: node.attr("docnumber"),
|
63
|
+
part: node.attr("partnumber"),
|
64
|
+
year: ieee_id_year(node, initial: true),
|
65
|
+
redline: @doctype == "redline",
|
66
|
+
publisher: pub[0],
|
67
|
+
copublisher: pub[1..-1] }.compact
|
68
|
+
ret[:copublisher].empty? and ret.delete(:copublisher)
|
69
|
+
ret
|
70
|
+
end
|
71
|
+
|
72
|
+
def ieee_id_params_amd(node, core)
|
73
|
+
if a = node.attr("corrigendum-number")
|
74
|
+
{ corrigendum: { version: a,
|
75
|
+
year: ieee_id_year(node, initial: false) } }
|
76
|
+
elsif node.attr("amendment-number")
|
77
|
+
{ amendment: pubid_select(core).create(**core) }
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def ieee_id_pub(node)
|
82
|
+
(node.attr("publisher") || default_publisher).split(/[;,]/)
|
83
|
+
.map(&:strip).map { |x| org_abbrev[x] || x }
|
84
|
+
end
|
85
|
+
|
86
|
+
def ieee_id_year(node, initial: false)
|
87
|
+
unless initial
|
88
|
+
y = node.attr("copyright-year") || node.attr("updated-date")
|
89
|
+
end
|
90
|
+
y ||= node.attr("published-date") || node.attr("copyright-year")
|
91
|
+
y&.sub(/-.*$/, "") || Date.today.year
|
92
|
+
end
|
93
|
+
|
94
|
+
def ieee_id_out(xml, params)
|
95
|
+
id = pubid_select(params).create(**params)
|
96
|
+
xml.docidentifier id.to_s, type: "IEEE"
|
97
|
+
end
|
98
|
+
|
99
|
+
def pubid_select(_params)
|
100
|
+
base_pubid
|
101
|
+
end
|
102
|
+
|
103
|
+
def base_pubid
|
104
|
+
Pubid::Ieee::Identifier
|
105
|
+
end
|
106
|
+
|
44
107
|
def default_publisher
|
45
108
|
"IEEE"
|
46
109
|
end
|
@@ -63,7 +126,9 @@ module Metanorma
|
|
63
126
|
end
|
64
127
|
|
65
128
|
def org_abbrev
|
66
|
-
{ "Institute of Electrical and Electronic Engineers" => "IEEE"
|
129
|
+
{ "Institute of Electrical and Electronic Engineers" => "IEEE",
|
130
|
+
"International Organization for Standardization" => "ISO",
|
131
|
+
"International Electrotechnical Commission" => "IEC" }
|
67
132
|
end
|
68
133
|
|
69
134
|
def relaton_relations
|
@@ -17,7 +17,7 @@
|
|
17
17
|
these elements; we just want one namespace for any child grammars
|
18
18
|
of this.
|
19
19
|
-->
|
20
|
-
<!-- VERSION v1.
|
20
|
+
<!-- VERSION v1.3.0 -->
|
21
21
|
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
22
22
|
<include href="reqt.rng"/>
|
23
23
|
<include href="basicdoc.rng">
|
@@ -146,6 +146,9 @@
|
|
146
146
|
<data type="boolean"/>
|
147
147
|
</attribute>
|
148
148
|
</optional>
|
149
|
+
<optional>
|
150
|
+
<attribute name="style"/>
|
151
|
+
</optional>
|
149
152
|
<oneOrMore>
|
150
153
|
<ref name="PureTextElement"/>
|
151
154
|
</oneOrMore>
|
data/metanorma-ieee.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
|
28
28
|
spec.add_dependency "metanorma-standoc", "~> 2.8.0"
|
29
29
|
spec.add_dependency "mnconvert", "~> 1.20"
|
30
|
-
|
30
|
+
spec.add_dependency "pubid-ieee"
|
31
31
|
#spec.add_dependency "pubid-iso", "~> 0.5.3"
|
32
32
|
#spec.add_dependency "relaton-iso", "~> 1.15.4"
|
33
33
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-ieee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.20'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pubid-ieee
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: debug
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,11 +266,14 @@ files:
|
|
252
266
|
- lib/isodoc/ieee/html/wordstyle_wp.scss
|
253
267
|
- lib/isodoc/ieee/html/wp_image001.emz
|
254
268
|
- lib/isodoc/ieee/html/wp_image001_icap.emz
|
269
|
+
- lib/isodoc/ieee/html/wp_image001_icr.emz
|
255
270
|
- lib/isodoc/ieee/html/wp_image003.emz
|
256
271
|
- lib/isodoc/ieee/html/wp_image003_icap.emz
|
272
|
+
- lib/isodoc/ieee/html/wp_image003_icr.emz
|
257
273
|
- lib/isodoc/ieee/html/wp_image007_icr.emz
|
258
274
|
- lib/isodoc/ieee/html/wp_image008.emz
|
259
275
|
- lib/isodoc/ieee/html/wp_image008_icap.emz
|
276
|
+
- lib/isodoc/ieee/html/wp_image008_icr.emz
|
260
277
|
- lib/isodoc/ieee/html_convert.rb
|
261
278
|
- lib/isodoc/ieee/i18n-en.yaml
|
262
279
|
- lib/isodoc/ieee/i18n.rb
|