metanorma-ieee 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|