metanorma-ieee 1.2.9 → 1.2.10
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/ieee.amendment.xsl +221 -56
- data/lib/isodoc/ieee/ieee.standard.xsl +221 -56
- data/lib/metanorma/ieee/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2cb2ea85f9094f39b8ed51d803e2072d1bdf8bfc871f4e9ca191b5cd945ecd7
|
4
|
+
data.tar.gz: 1272a88d0397ca6f8dc944e73766f4a8ca098be3541a6c5b2d823063ad4ac086
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e76448907cc07d651f9b8c046570475bfd12315aba626a007fefce15be274742c444e5b7120654c6598f3166f3ee4f2debfc6b3c1b72cfcb2ee1ed26a7cd80a
|
7
|
+
data.tar.gz: d443d478fb70eefd820d0361e5dffc0ec83bcb48eaf78b142a709d1a9c64be8270c5322a6511c42054031ec96633296c27f91cc234f4971c6eaf41059f9ea996
|
@@ -7,9 +7,6 @@
|
|
7
7
|
|
8
8
|
<!-- mandatory variable -->
|
9
9
|
|
10
|
-
<!-- mandatory variable -->
|
11
|
-
<xsl:variable name="namespace_full">https://www.metanorma.org/ns/ieee</xsl:variable>
|
12
|
-
|
13
10
|
<!-- mandatory variable -->
|
14
11
|
<xsl:variable name="debug">false</xsl:variable>
|
15
12
|
|
@@ -2657,9 +2654,10 @@
|
|
2657
2654
|
</xsl:choose>
|
2658
2655
|
</xsl:variable> -->
|
2659
2656
|
<xsl:element name="{$element-name}">
|
2660
|
-
<xsl:call-template name="
|
2661
|
-
<xsl:with-param name="
|
2657
|
+
<xsl:call-template name="setBlockAttributes">
|
2658
|
+
<xsl:with-param name="text_align_default">justify</xsl:with-param>
|
2662
2659
|
</xsl:call-template>
|
2660
|
+
|
2663
2661
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute><!-- 8pt -->
|
2664
2662
|
<xsl:if test="($current_template = 'whitepaper' or $current_template = 'icap-whitepaper' or $current_template = 'industry-connection-report') and (ancestor::ieee:sections or ancestor::ieee:annex)">
|
2665
2663
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
@@ -3800,7 +3798,7 @@
|
|
3800
3798
|
<xsl:strip-space xmlns:redirect="http://xml.apache.org/xalan/redirect" elements="ieee:xref"/>
|
3801
3799
|
|
3802
3800
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
|
3803
|
-
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="root_element" select="local-name(/*)"/>
|
3801
|
+
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
|
3804
3802
|
|
3805
3803
|
<!-- external parameters -->
|
3806
3804
|
|
@@ -5550,7 +5548,7 @@
|
|
5550
5548
|
|
5551
5549
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="processPrefaceSectionsDefault_items">
|
5552
5550
|
|
5553
|
-
<xsl:variable name="
|
5551
|
+
<xsl:variable name="updated_xml_step_move_pagebreak">
|
5554
5552
|
|
5555
5553
|
<xsl:element name="{$root_element}" namespace="{$namespace_full}">
|
5556
5554
|
|
@@ -5568,17 +5566,32 @@
|
|
5568
5566
|
</xsl:variable>
|
5569
5567
|
|
5570
5568
|
<xsl:variable name="updated_xml_step_move_pagebreak_filename" select="concat($output_path,'_preface_', java:getTime(java:java.util.Date.new()), '.xml')"/>
|
5571
|
-
|
5569
|
+
<!-- <xsl:message>updated_xml_step_move_pagebreak_filename=<xsl:value-of select="$updated_xml_step_move_pagebreak_filename"/></xsl:message>
|
5570
|
+
<xsl:message>start write updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5572
5571
|
<redirect:write file="{$updated_xml_step_move_pagebreak_filename}">
|
5573
|
-
<xsl:copy-of select="$
|
5572
|
+
<xsl:copy-of select="$updated_xml_step_move_pagebreak"/>
|
5574
5573
|
</redirect:write>
|
5574
|
+
<!-- <xsl:message>end write updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5575
5575
|
|
5576
5576
|
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5577
5577
|
|
5578
|
+
<!-- TODO: instead of
|
5579
|
+
<xsl:for-each select=".//*[local-name() = 'page_sequence'][normalize-space() != '' or .//image or .//svg]">
|
5580
|
+
in each template, add removing empty page_sequence here
|
5581
|
+
-->
|
5582
|
+
|
5583
|
+
<xsl:if test="$debug = 'true'">
|
5584
|
+
<redirect:write file="page_sequence_preface.xml">
|
5585
|
+
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5586
|
+
</redirect:write>
|
5587
|
+
</xsl:if>
|
5588
|
+
|
5589
|
+
<!-- <xsl:message>start delete updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5578
5590
|
<xsl:call-template name="deleteFile">
|
5579
5591
|
<xsl:with-param name="filepath" select="$updated_xml_step_move_pagebreak_filename"/>
|
5580
5592
|
</xsl:call-template>
|
5581
|
-
|
5593
|
+
<!-- <xsl:message>end delete updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5594
|
+
</xsl:template> <!-- END: processPrefaceSectionsDefault_items -->
|
5582
5595
|
|
5583
5596
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="copyCommonElements">
|
5584
5597
|
<!-- copy bibdata, localized-strings, metanorma-extension and boilerplate -->
|
@@ -5603,37 +5616,7 @@
|
|
5603
5616
|
</xsl:for-each>
|
5604
5617
|
</xsl:template><!-- END: processMainSectionsDefault -->
|
5605
5618
|
|
5606
|
-
|
5607
|
-
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
|
5608
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
5609
|
-
<xsl:variable name="flatxml">
|
5610
|
-
<xsl:apply-templates select="." mode="flatxml"/>
|
5611
|
-
</xsl:variable>
|
5612
|
-
<!-- debug_flatxml='<xsl:copy-of select="$flatxml"/>' -->
|
5613
|
-
<xsl:apply-templates select="xalan:nodeset($flatxml)/*"/>
|
5614
|
-
|
5615
|
-
</xsl:for-each>
|
5616
|
-
|
5617
|
-
<xsl:for-each select="/*/*[local-name()='annex']">
|
5618
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
5619
|
-
<xsl:variable name="flatxml">
|
5620
|
-
<xsl:apply-templates select="." mode="flatxml"/>
|
5621
|
-
</xsl:variable>
|
5622
|
-
<!-- debug_flatxml='<xsl:copy-of select="$flatxml"/>' -->
|
5623
|
-
<xsl:apply-templates select="xalan:nodeset($flatxml)/*"/>
|
5624
|
-
</xsl:for-each>
|
5625
|
-
|
5626
|
-
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
|
5627
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
5628
|
-
<xsl:variable name="flatxml">
|
5629
|
-
<xsl:apply-templates select="." mode="flatxml"/>
|
5630
|
-
</xsl:variable>
|
5631
|
-
<!-- debug_flatxml='<xsl:copy-of select="$flatxml"/>' -->
|
5632
|
-
<xsl:apply-templates select="xalan:nodeset($flatxml)/*"/>
|
5633
|
-
</xsl:for-each>
|
5634
|
-
</xsl:template>
|
5635
|
-
|
5636
|
-
<!-- Example:
|
5619
|
+
<!-- Example:
|
5637
5620
|
<iso-standard>
|
5638
5621
|
<sections>
|
5639
5622
|
<page_sequence>
|
@@ -5653,7 +5636,7 @@
|
|
5653
5636
|
-->
|
5654
5637
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="processMainSectionsDefault_items">
|
5655
5638
|
|
5656
|
-
<xsl:variable name="
|
5639
|
+
<xsl:variable name="updated_xml_step_move_pagebreak">
|
5657
5640
|
|
5658
5641
|
<xsl:element name="{$root_element}" namespace="{$namespace_full}">
|
5659
5642
|
|
@@ -5690,11 +5673,17 @@
|
|
5690
5673
|
<xsl:variable name="updated_xml_step_move_pagebreak_filename" select="concat($output_path,'_main_', java:getTime(java:java.util.Date.new()), '.xml')"/>
|
5691
5674
|
|
5692
5675
|
<redirect:write file="{$updated_xml_step_move_pagebreak_filename}">
|
5693
|
-
<xsl:copy-of select="$
|
5676
|
+
<xsl:copy-of select="$updated_xml_step_move_pagebreak"/>
|
5694
5677
|
</redirect:write>
|
5695
5678
|
|
5696
5679
|
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5697
5680
|
|
5681
|
+
<xsl:if test="$debug = 'true'">
|
5682
|
+
<redirect:write file="page_sequence_main.xml">
|
5683
|
+
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5684
|
+
</redirect:write>
|
5685
|
+
</xsl:if>
|
5686
|
+
|
5698
5687
|
<xsl:call-template name="deleteFile">
|
5699
5688
|
<xsl:with-param name="filepath" select="$updated_xml_step_move_pagebreak_filename"/>
|
5700
5689
|
</xsl:call-template>
|
@@ -5707,6 +5696,14 @@
|
|
5707
5696
|
<xsl:variable name="deletefile" select="java:java.nio.file.Files.deleteIfExists($xml_file_path)"/>
|
5708
5697
|
</xsl:template>
|
5709
5698
|
|
5699
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="getPageSequenceOrientation">
|
5700
|
+
<xsl:variable name="previous_orientation" select="preceding-sibling::*[local-name() = 'page_sequence'][@orientation][1]/@orientation"/>
|
5701
|
+
<xsl:choose>
|
5702
|
+
<xsl:when test="@orientation = 'landscape'">-<xsl:value-of select="@orientation"/></xsl:when>
|
5703
|
+
<xsl:when test="$previous_orientation = 'landscape' and not(@orientation = 'portrait')">-<xsl:value-of select="$previous_orientation"/></xsl:when>
|
5704
|
+
</xsl:choose>
|
5705
|
+
</xsl:template>
|
5706
|
+
|
5710
5707
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
5711
5708
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="tag_fo_inline_keep-together_within-line_open">###fo:inline keep-together_within-line###</xsl:variable>
|
5712
5709
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="tag_fo_inline_keep-together_within-line_close">###/fo:inline keep-together_within-line###</xsl:variable>
|
@@ -6044,7 +6041,9 @@
|
|
6044
6041
|
|
6045
6042
|
<xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'][not(@type = 'units')] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
|
6046
6043
|
<xsl:if test="$isNoteOrFnExist = 'true'">
|
6047
|
-
|
6044
|
+
|
6045
|
+
<xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
|
6046
|
+
|
6048
6047
|
</xsl:if>
|
6049
6048
|
|
6050
6049
|
<xsl:choose>
|
@@ -6101,13 +6100,14 @@
|
|
6101
6100
|
</fo:table>
|
6102
6101
|
|
6103
6102
|
<xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
|
6104
|
-
|
6105
|
-
|
6106
|
-
|
6107
|
-
|
6108
|
-
|
6109
|
-
|
6110
|
-
|
6103
|
+
|
6104
|
+
<xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
|
6105
|
+
<xsl:call-template name="insertTableFooterInSeparateTable">
|
6106
|
+
<xsl:with-param name="table_attributes" select="$table_attributes"/>
|
6107
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
6108
|
+
<xsl:with-param name="colgroup" select="$colgroup"/>
|
6109
|
+
</xsl:call-template>
|
6110
|
+
</xsl:for-each>
|
6111
6111
|
|
6112
6112
|
<xsl:if test="*[local-name()='bookmark']"> <!-- special case: table/bookmark -->
|
6113
6113
|
<fo:block keep-with-previous="always" line-height="0.1">
|
@@ -6461,8 +6461,10 @@
|
|
6461
6461
|
<width_min><xsl:value-of select="@width_min"/></width_min>
|
6462
6462
|
<e><xsl:value-of select="$d * $W div $D"/></e>
|
6463
6463
|
<!-- set the column's width to the minimum width plus d times W over D. -->
|
6464
|
+
<xsl:variable name="column_width_" select="round(@width_min + $d * $W div $D)"/> <!-- * 10 -->
|
6465
|
+
<xsl:variable name="column_width" select="$column_width_*($column_width_ >= 0) - $column_width_*($column_width_ < 0)"/> <!-- absolute value -->
|
6464
6466
|
<column divider="100">
|
6465
|
-
<xsl:value-of select="
|
6467
|
+
<xsl:value-of select="$column_width"/>
|
6466
6468
|
</column>
|
6467
6469
|
</xsl:for-each>
|
6468
6470
|
|
@@ -6923,6 +6925,22 @@
|
|
6923
6925
|
|
6924
6926
|
<xsl:call-template name="refine_table-header-cell-style"/>
|
6925
6927
|
|
6928
|
+
<!-- experimental feature, see https://github.com/metanorma/metanorma-plateau/issues/30#issuecomment-2145461828 -->
|
6929
|
+
<!-- <xsl:choose>
|
6930
|
+
<xsl:when test="count(node()) = 1 and *[local-name() = 'span'][contains(@style, 'text-orientation')]">
|
6931
|
+
<fo:block-container reference-orientation="270">
|
6932
|
+
<fo:block role="SKIP" text-align="start">
|
6933
|
+
<xsl:apply-templates />
|
6934
|
+
</fo:block>
|
6935
|
+
</fo:block-container>
|
6936
|
+
</xsl:when>
|
6937
|
+
<xsl:otherwise>
|
6938
|
+
<fo:block role="SKIP">
|
6939
|
+
<xsl:apply-templates />
|
6940
|
+
</fo:block>
|
6941
|
+
</xsl:otherwise>
|
6942
|
+
</xsl:choose> -->
|
6943
|
+
|
6926
6944
|
<fo:block role="SKIP">
|
6927
6945
|
<xsl:apply-templates/>
|
6928
6946
|
</fo:block>
|
@@ -10418,6 +10436,15 @@
|
|
10418
10436
|
<xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
|
10419
10437
|
<xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
|
10420
10438
|
</xsl:when>
|
10439
|
+
<!-- in WebP format, then convert image into PNG -->
|
10440
|
+
<xsl:when test="starts-with(@src, 'data:image/webp')">
|
10441
|
+
<xsl:variable name="src_png" select="java:org.metanorma.fop.utils.ImageUtils.convertWebPtoPNG(@src)"/>
|
10442
|
+
<xsl:value-of select="$src_png"/>
|
10443
|
+
</xsl:when>
|
10444
|
+
<xsl:when test="not(starts-with(@src, 'data:')) and (java:endsWith(java:java.lang.String.new(@src), '.webp') or java:endsWith(java:java.lang.String.new(@src), '.WEBP'))">
|
10445
|
+
<xsl:variable name="src_png" select="java:org.metanorma.fop.utils.ImageUtils.convertWebPtoPNG(@src)"/>
|
10446
|
+
<xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
|
10447
|
+
</xsl:when>
|
10421
10448
|
<xsl:when test="not(starts-with(@src, 'data:'))">
|
10422
10449
|
<xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
|
10423
10450
|
</xsl:when>
|
@@ -14141,6 +14168,75 @@
|
|
14141
14168
|
<!-- ===================================== -->
|
14142
14169
|
<!-- Update xml -->
|
14143
14170
|
<!-- ===================================== -->
|
14171
|
+
|
14172
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="updateXML">
|
14173
|
+
<xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step1</xsl:message></xsl:if>
|
14174
|
+
<xsl:variable name="startTime1" select="java:getTime(java:java.util.Date.new())"/>
|
14175
|
+
|
14176
|
+
<!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
|
14177
|
+
<xsl:variable name="updated_xml_step1">
|
14178
|
+
<xsl:if test="$table_if = 'false'">
|
14179
|
+
<xsl:apply-templates mode="update_xml_step1"/>
|
14180
|
+
</xsl:if>
|
14181
|
+
</xsl:variable>
|
14182
|
+
|
14183
|
+
<xsl:variable name="endTime1" select="java:getTime(java:java.util.Date.new())"/>
|
14184
|
+
<xsl:if test="$debug = 'true'">
|
14185
|
+
<xsl:message>DEBUG: processing time <xsl:value-of select="$endTime1 - $startTime1"/> msec.</xsl:message>
|
14186
|
+
<xsl:message>END updated_xml_step1</xsl:message>
|
14187
|
+
<!-- <redirect:write file="updated_xml_step1_{java:getTime(java:java.util.Date.new())}.xml">
|
14188
|
+
<xsl:copy-of select="$updated_xml_step1"/>
|
14189
|
+
</redirect:write> -->
|
14190
|
+
</xsl:if>
|
14191
|
+
|
14192
|
+
<xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step2</xsl:message></xsl:if>
|
14193
|
+
<xsl:variable name="startTime2" select="java:getTime(java:java.util.Date.new())"/>
|
14194
|
+
|
14195
|
+
<!-- STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
14196
|
+
<xsl:variable name="updated_xml_step2">
|
14197
|
+
|
14198
|
+
<xsl:if test="$table_if = 'false'">
|
14199
|
+
<xsl:apply-templates select="xalan:nodeset($updated_xml_step1)" mode="update_xml_step2"/>
|
14200
|
+
</xsl:if>
|
14201
|
+
|
14202
|
+
</xsl:variable>
|
14203
|
+
|
14204
|
+
<xsl:variable name="endTime2" select="java:getTime(java:java.util.Date.new())"/>
|
14205
|
+
<xsl:if test="$debug = 'true'">
|
14206
|
+
<xsl:message>DEBUG: processing time <xsl:value-of select="$endTime2 - $startTime2"/> msec.</xsl:message>
|
14207
|
+
<xsl:message>END updated_xml_step2</xsl:message>
|
14208
|
+
<!-- <redirect:write file="updated_xml_step2_{java:getTime(java:java.util.Date.new())}.xml">
|
14209
|
+
<xsl:copy-of select="$updated_xml_step2"/>
|
14210
|
+
</redirect:write> -->
|
14211
|
+
</xsl:if>
|
14212
|
+
|
14213
|
+
<xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step3</xsl:message></xsl:if>
|
14214
|
+
<xsl:variable name="startTime3" select="java:getTime(java:java.util.Date.new())"/>
|
14215
|
+
|
14216
|
+
<xsl:variable name="updated_xml_step3">
|
14217
|
+
<xsl:choose>
|
14218
|
+
<xsl:when test="$table_if = 'false'">
|
14219
|
+
<xsl:apply-templates select="xalan:nodeset($updated_xml_step2)" mode="update_xml_enclose_keep-together_within-line"/>
|
14220
|
+
</xsl:when>
|
14221
|
+
<xsl:otherwise>
|
14222
|
+
<xsl:apply-templates select="." mode="update_xml_enclose_keep-together_within-line"/>
|
14223
|
+
</xsl:otherwise>
|
14224
|
+
</xsl:choose>
|
14225
|
+
</xsl:variable>
|
14226
|
+
|
14227
|
+
<xsl:variable name="endTime3" select="java:getTime(java:java.util.Date.new())"/>
|
14228
|
+
<xsl:if test="$debug = 'true'">
|
14229
|
+
<xsl:message>DEBUG: processing time <xsl:value-of select="$endTime3 - $startTime3"/> msec.</xsl:message>
|
14230
|
+
<xsl:message>END updated_xml_step3</xsl:message>
|
14231
|
+
<!-- <redirect:write file="updated_xml_step3_{java:getTime(java:java.util.Date.new())}.xml">
|
14232
|
+
<xsl:copy-of select="$updated_xml_step3"/>
|
14233
|
+
</redirect:write> -->
|
14234
|
+
</xsl:if>
|
14235
|
+
|
14236
|
+
<xsl:copy-of select="$updated_xml_step3"/>
|
14237
|
+
|
14238
|
+
</xsl:template>
|
14239
|
+
|
14144
14240
|
<!-- =========================================================================== -->
|
14145
14241
|
<!-- STEP1: -->
|
14146
14242
|
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
@@ -14340,7 +14436,7 @@
|
|
14340
14436
|
|
14341
14437
|
<!-- determine pagebreak is last element before </fo:flow> or not -->
|
14342
14438
|
<xsl:variable name="isLast">
|
14343
|
-
<xsl:for-each select="ancestor-or-self::*[ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14439
|
+
<xsl:for-each select="ancestor-or-self::*[ancestor::*[local-name() = 'preface'] or ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14344
14440
|
<xsl:if test="following-sibling::*">false</xsl:if>
|
14345
14441
|
</xsl:for-each>
|
14346
14442
|
</xsl:variable>
|
@@ -14362,7 +14458,7 @@
|
|
14362
14458
|
<xsl:text disable-output-escaping="yes"></page_sequence></xsl:text>
|
14363
14459
|
|
14364
14460
|
<!-- create a new page_sequence (opening elements) -->
|
14365
|
-
<xsl:text disable-output-escaping="yes"><page_sequence
|
14461
|
+
<xsl:text disable-output-escaping="yes"><page_sequence xmlns="</xsl:text><xsl:value-of select="$namespace_full"/>"<xsl:if test="$orientation != ''"> orientation="<xsl:value-of select="$orientation"/>"</xsl:if><xsl:text disable-output-escaping="yes">></xsl:text>
|
14366
14462
|
|
14367
14463
|
<xsl:call-template name="insertOpeningElements">
|
14368
14464
|
<xsl:with-param name="tree" select="$tree"/>
|
@@ -14372,7 +14468,7 @@
|
|
14372
14468
|
</xsl:template>
|
14373
14469
|
|
14374
14470
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="makeAncestorsElementsTree">
|
14375
|
-
<xsl:for-each select="ancestor::*[ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14471
|
+
<xsl:for-each select="ancestor::*[ancestor::*[local-name() = 'preface'] or ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14376
14472
|
<element pos="{position()}">
|
14377
14473
|
<xsl:copy-of select="@*[local-name() != 'id']"/>
|
14378
14474
|
<xsl:value-of select="name()"/>
|
@@ -14657,7 +14753,7 @@
|
|
14657
14753
|
<xsl:value-of select="substring-before($text, $tag_open)"/>
|
14658
14754
|
<xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
|
14659
14755
|
|
14660
|
-
<xsl:element name="{substring-before(substring-after($tag_open, '###'),'###')}">
|
14756
|
+
<xsl:element name="{substring-before(substring-after($tag_open, '###'),'###')}" namespace="{$namespace_full}">
|
14661
14757
|
<xsl:value-of select="substring-before($text_after, $tag_close)"/>
|
14662
14758
|
</xsl:element>
|
14663
14759
|
|
@@ -15477,7 +15573,10 @@
|
|
15477
15573
|
<xsl:call-template name="setTextAlignment">
|
15478
15574
|
<xsl:with-param name="default" select="$text_align_default"/>
|
15479
15575
|
</xsl:call-template>
|
15576
|
+
<xsl:call-template name="setKeepAttributes"/>
|
15577
|
+
</xsl:template>
|
15480
15578
|
|
15579
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="setKeepAttributes">
|
15481
15580
|
<!-- https://www.metanorma.org/author/topics/document-format/text/#avoiding-page-breaks -->
|
15482
15581
|
<!-- Example: keep-lines-together="true" -->
|
15483
15582
|
<xsl:if test="@keep-lines-together = 'true'">
|
@@ -15489,6 +15588,72 @@
|
|
15489
15588
|
</xsl:if>
|
15490
15589
|
</xsl:template>
|
15491
15590
|
|
15591
|
+
<!-- insert cover page image -->
|
15592
|
+
<!-- background cover image -->
|
15593
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="insertBackgroundPageImage">
|
15594
|
+
<xsl:param name="number">1</xsl:param>
|
15595
|
+
<xsl:param name="name">coverpage-image</xsl:param>
|
15596
|
+
<xsl:variable name="num" select="number($number)"/>
|
15597
|
+
<!-- background image -->
|
15598
|
+
<fo:block-container absolute-position="fixed" left="0mm" top="0mm" font-size="0" id="__internal_layout__coverpage_{$name}_{$number}_{generate-id()}">
|
15599
|
+
<fo:block>
|
15600
|
+
<xsl:for-each select="/*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = $name][1]/*[local-name() = 'value']/*[local-name() = 'image'][$num]">
|
15601
|
+
<xsl:choose>
|
15602
|
+
<xsl:when test="*[local-name() = 'svg'] or java:endsWith(java:java.lang.String.new(@src), '.svg')">
|
15603
|
+
<fo:instream-foreign-object fox:alt-text="Image Front">
|
15604
|
+
<xsl:attribute name="content-height"><xsl:value-of select="$pageHeight"/>mm</xsl:attribute>
|
15605
|
+
<xsl:call-template name="getSVG"/>
|
15606
|
+
</fo:instream-foreign-object>
|
15607
|
+
</xsl:when>
|
15608
|
+
<xsl:when test="starts-with(@src, 'data:application/pdf;base64')">
|
15609
|
+
<fo:external-graphic src="{@src}" fox:alt-text="Image Front"/>
|
15610
|
+
</xsl:when>
|
15611
|
+
<xsl:otherwise> <!-- bitmap image -->
|
15612
|
+
<xsl:variable name="coverimage_src" select="normalize-space(@src)"/>
|
15613
|
+
<xsl:if test="$coverimage_src != ''">
|
15614
|
+
<xsl:variable name="coverpage">
|
15615
|
+
<xsl:call-template name="getImageURL">
|
15616
|
+
<xsl:with-param name="src" select="$coverimage_src"/>
|
15617
|
+
</xsl:call-template>
|
15618
|
+
</xsl:variable>
|
15619
|
+
<!-- <xsl:variable name="coverpage" select="concat('url(file:',$basepath, 'coverpage1.png', ')')"/> --> <!-- for DEBUG -->
|
15620
|
+
<fo:external-graphic src="{$coverpage}" width="{$pageWidth}mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
|
15621
|
+
</xsl:if>
|
15622
|
+
</xsl:otherwise>
|
15623
|
+
</xsl:choose>
|
15624
|
+
</xsl:for-each>
|
15625
|
+
</fo:block>
|
15626
|
+
</fo:block-container>
|
15627
|
+
</xsl:template>
|
15628
|
+
|
15629
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="getImageURL">
|
15630
|
+
<xsl:param name="src"/>
|
15631
|
+
<xsl:choose>
|
15632
|
+
<xsl:when test="starts-with($src, 'data:image')">
|
15633
|
+
<xsl:value-of select="$src"/>
|
15634
|
+
</xsl:when>
|
15635
|
+
<xsl:otherwise>
|
15636
|
+
<xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
|
15637
|
+
</xsl:otherwise>
|
15638
|
+
</xsl:choose>
|
15639
|
+
</xsl:template>
|
15640
|
+
|
15641
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="getSVG">
|
15642
|
+
<xsl:choose>
|
15643
|
+
<xsl:when test="*[local-name() = 'svg']">
|
15644
|
+
<xsl:apply-templates select="*[local-name() = 'svg']" mode="svg_update"/>
|
15645
|
+
</xsl:when>
|
15646
|
+
<xsl:otherwise>
|
15647
|
+
<xsl:variable name="svg_content" select="document(@src)"/>
|
15648
|
+
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
|
15649
|
+
<xsl:apply-templates select="." mode="svg_update"/>
|
15650
|
+
</xsl:for-each>
|
15651
|
+
</xsl:otherwise>
|
15652
|
+
</xsl:choose>
|
15653
|
+
</xsl:template>
|
15654
|
+
|
15655
|
+
<!-- END: insert cover page image -->
|
15656
|
+
|
15492
15657
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="number-to-words">
|
15493
15658
|
<xsl:param name="number"/>
|
15494
15659
|
<xsl:param name="first"/>
|
@@ -7,9 +7,6 @@
|
|
7
7
|
|
8
8
|
<!-- mandatory variable -->
|
9
9
|
|
10
|
-
<!-- mandatory variable -->
|
11
|
-
<xsl:variable name="namespace_full">https://www.metanorma.org/ns/ieee</xsl:variable>
|
12
|
-
|
13
10
|
<!-- mandatory variable -->
|
14
11
|
<xsl:variable name="debug">false</xsl:variable>
|
15
12
|
|
@@ -2657,9 +2654,10 @@
|
|
2657
2654
|
</xsl:choose>
|
2658
2655
|
</xsl:variable> -->
|
2659
2656
|
<xsl:element name="{$element-name}">
|
2660
|
-
<xsl:call-template name="
|
2661
|
-
<xsl:with-param name="
|
2657
|
+
<xsl:call-template name="setBlockAttributes">
|
2658
|
+
<xsl:with-param name="text_align_default">justify</xsl:with-param>
|
2662
2659
|
</xsl:call-template>
|
2660
|
+
|
2663
2661
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute><!-- 8pt -->
|
2664
2662
|
<xsl:if test="($current_template = 'whitepaper' or $current_template = 'icap-whitepaper' or $current_template = 'industry-connection-report') and (ancestor::ieee:sections or ancestor::ieee:annex)">
|
2665
2663
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
@@ -3800,7 +3798,7 @@
|
|
3800
3798
|
<xsl:strip-space xmlns:redirect="http://xml.apache.org/xalan/redirect" elements="ieee:xref"/>
|
3801
3799
|
|
3802
3800
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
|
3803
|
-
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="root_element" select="local-name(/*)"/>
|
3801
|
+
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
|
3804
3802
|
|
3805
3803
|
<!-- external parameters -->
|
3806
3804
|
|
@@ -5550,7 +5548,7 @@
|
|
5550
5548
|
|
5551
5549
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="processPrefaceSectionsDefault_items">
|
5552
5550
|
|
5553
|
-
<xsl:variable name="
|
5551
|
+
<xsl:variable name="updated_xml_step_move_pagebreak">
|
5554
5552
|
|
5555
5553
|
<xsl:element name="{$root_element}" namespace="{$namespace_full}">
|
5556
5554
|
|
@@ -5568,17 +5566,32 @@
|
|
5568
5566
|
</xsl:variable>
|
5569
5567
|
|
5570
5568
|
<xsl:variable name="updated_xml_step_move_pagebreak_filename" select="concat($output_path,'_preface_', java:getTime(java:java.util.Date.new()), '.xml')"/>
|
5571
|
-
|
5569
|
+
<!-- <xsl:message>updated_xml_step_move_pagebreak_filename=<xsl:value-of select="$updated_xml_step_move_pagebreak_filename"/></xsl:message>
|
5570
|
+
<xsl:message>start write updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5572
5571
|
<redirect:write file="{$updated_xml_step_move_pagebreak_filename}">
|
5573
|
-
<xsl:copy-of select="$
|
5572
|
+
<xsl:copy-of select="$updated_xml_step_move_pagebreak"/>
|
5574
5573
|
</redirect:write>
|
5574
|
+
<!-- <xsl:message>end write updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5575
5575
|
|
5576
5576
|
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5577
5577
|
|
5578
|
+
<!-- TODO: instead of
|
5579
|
+
<xsl:for-each select=".//*[local-name() = 'page_sequence'][normalize-space() != '' or .//image or .//svg]">
|
5580
|
+
in each template, add removing empty page_sequence here
|
5581
|
+
-->
|
5582
|
+
|
5583
|
+
<xsl:if test="$debug = 'true'">
|
5584
|
+
<redirect:write file="page_sequence_preface.xml">
|
5585
|
+
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5586
|
+
</redirect:write>
|
5587
|
+
</xsl:if>
|
5588
|
+
|
5589
|
+
<!-- <xsl:message>start delete updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5578
5590
|
<xsl:call-template name="deleteFile">
|
5579
5591
|
<xsl:with-param name="filepath" select="$updated_xml_step_move_pagebreak_filename"/>
|
5580
5592
|
</xsl:call-template>
|
5581
|
-
|
5593
|
+
<!-- <xsl:message>end delete updated_xml_step_move_pagebreak_filename</xsl:message> -->
|
5594
|
+
</xsl:template> <!-- END: processPrefaceSectionsDefault_items -->
|
5582
5595
|
|
5583
5596
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="copyCommonElements">
|
5584
5597
|
<!-- copy bibdata, localized-strings, metanorma-extension and boilerplate -->
|
@@ -5603,37 +5616,7 @@
|
|
5603
5616
|
</xsl:for-each>
|
5604
5617
|
</xsl:template><!-- END: processMainSectionsDefault -->
|
5605
5618
|
|
5606
|
-
|
5607
|
-
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
|
5608
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
5609
|
-
<xsl:variable name="flatxml">
|
5610
|
-
<xsl:apply-templates select="." mode="flatxml"/>
|
5611
|
-
</xsl:variable>
|
5612
|
-
<!-- debug_flatxml='<xsl:copy-of select="$flatxml"/>' -->
|
5613
|
-
<xsl:apply-templates select="xalan:nodeset($flatxml)/*"/>
|
5614
|
-
|
5615
|
-
</xsl:for-each>
|
5616
|
-
|
5617
|
-
<xsl:for-each select="/*/*[local-name()='annex']">
|
5618
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
5619
|
-
<xsl:variable name="flatxml">
|
5620
|
-
<xsl:apply-templates select="." mode="flatxml"/>
|
5621
|
-
</xsl:variable>
|
5622
|
-
<!-- debug_flatxml='<xsl:copy-of select="$flatxml"/>' -->
|
5623
|
-
<xsl:apply-templates select="xalan:nodeset($flatxml)/*"/>
|
5624
|
-
</xsl:for-each>
|
5625
|
-
|
5626
|
-
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
|
5627
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
5628
|
-
<xsl:variable name="flatxml">
|
5629
|
-
<xsl:apply-templates select="." mode="flatxml"/>
|
5630
|
-
</xsl:variable>
|
5631
|
-
<!-- debug_flatxml='<xsl:copy-of select="$flatxml"/>' -->
|
5632
|
-
<xsl:apply-templates select="xalan:nodeset($flatxml)/*"/>
|
5633
|
-
</xsl:for-each>
|
5634
|
-
</xsl:template>
|
5635
|
-
|
5636
|
-
<!-- Example:
|
5619
|
+
<!-- Example:
|
5637
5620
|
<iso-standard>
|
5638
5621
|
<sections>
|
5639
5622
|
<page_sequence>
|
@@ -5653,7 +5636,7 @@
|
|
5653
5636
|
-->
|
5654
5637
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="processMainSectionsDefault_items">
|
5655
5638
|
|
5656
|
-
<xsl:variable name="
|
5639
|
+
<xsl:variable name="updated_xml_step_move_pagebreak">
|
5657
5640
|
|
5658
5641
|
<xsl:element name="{$root_element}" namespace="{$namespace_full}">
|
5659
5642
|
|
@@ -5690,11 +5673,17 @@
|
|
5690
5673
|
<xsl:variable name="updated_xml_step_move_pagebreak_filename" select="concat($output_path,'_main_', java:getTime(java:java.util.Date.new()), '.xml')"/>
|
5691
5674
|
|
5692
5675
|
<redirect:write file="{$updated_xml_step_move_pagebreak_filename}">
|
5693
|
-
<xsl:copy-of select="$
|
5676
|
+
<xsl:copy-of select="$updated_xml_step_move_pagebreak"/>
|
5694
5677
|
</redirect:write>
|
5695
5678
|
|
5696
5679
|
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5697
5680
|
|
5681
|
+
<xsl:if test="$debug = 'true'">
|
5682
|
+
<redirect:write file="page_sequence_main.xml">
|
5683
|
+
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
5684
|
+
</redirect:write>
|
5685
|
+
</xsl:if>
|
5686
|
+
|
5698
5687
|
<xsl:call-template name="deleteFile">
|
5699
5688
|
<xsl:with-param name="filepath" select="$updated_xml_step_move_pagebreak_filename"/>
|
5700
5689
|
</xsl:call-template>
|
@@ -5707,6 +5696,14 @@
|
|
5707
5696
|
<xsl:variable name="deletefile" select="java:java.nio.file.Files.deleteIfExists($xml_file_path)"/>
|
5708
5697
|
</xsl:template>
|
5709
5698
|
|
5699
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="getPageSequenceOrientation">
|
5700
|
+
<xsl:variable name="previous_orientation" select="preceding-sibling::*[local-name() = 'page_sequence'][@orientation][1]/@orientation"/>
|
5701
|
+
<xsl:choose>
|
5702
|
+
<xsl:when test="@orientation = 'landscape'">-<xsl:value-of select="@orientation"/></xsl:when>
|
5703
|
+
<xsl:when test="$previous_orientation = 'landscape' and not(@orientation = 'portrait')">-<xsl:value-of select="$previous_orientation"/></xsl:when>
|
5704
|
+
</xsl:choose>
|
5705
|
+
</xsl:template>
|
5706
|
+
|
5710
5707
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
5711
5708
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="tag_fo_inline_keep-together_within-line_open">###fo:inline keep-together_within-line###</xsl:variable>
|
5712
5709
|
<xsl:variable xmlns:redirect="http://xml.apache.org/xalan/redirect" name="tag_fo_inline_keep-together_within-line_close">###/fo:inline keep-together_within-line###</xsl:variable>
|
@@ -6044,7 +6041,9 @@
|
|
6044
6041
|
|
6045
6042
|
<xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'][not(@type = 'units')] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
|
6046
6043
|
<xsl:if test="$isNoteOrFnExist = 'true'">
|
6047
|
-
|
6044
|
+
|
6045
|
+
<xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
|
6046
|
+
|
6048
6047
|
</xsl:if>
|
6049
6048
|
|
6050
6049
|
<xsl:choose>
|
@@ -6101,13 +6100,14 @@
|
|
6101
6100
|
</fo:table>
|
6102
6101
|
|
6103
6102
|
<xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
|
6104
|
-
|
6105
|
-
|
6106
|
-
|
6107
|
-
|
6108
|
-
|
6109
|
-
|
6110
|
-
|
6103
|
+
|
6104
|
+
<xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
|
6105
|
+
<xsl:call-template name="insertTableFooterInSeparateTable">
|
6106
|
+
<xsl:with-param name="table_attributes" select="$table_attributes"/>
|
6107
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
6108
|
+
<xsl:with-param name="colgroup" select="$colgroup"/>
|
6109
|
+
</xsl:call-template>
|
6110
|
+
</xsl:for-each>
|
6111
6111
|
|
6112
6112
|
<xsl:if test="*[local-name()='bookmark']"> <!-- special case: table/bookmark -->
|
6113
6113
|
<fo:block keep-with-previous="always" line-height="0.1">
|
@@ -6461,8 +6461,10 @@
|
|
6461
6461
|
<width_min><xsl:value-of select="@width_min"/></width_min>
|
6462
6462
|
<e><xsl:value-of select="$d * $W div $D"/></e>
|
6463
6463
|
<!-- set the column's width to the minimum width plus d times W over D. -->
|
6464
|
+
<xsl:variable name="column_width_" select="round(@width_min + $d * $W div $D)"/> <!-- * 10 -->
|
6465
|
+
<xsl:variable name="column_width" select="$column_width_*($column_width_ >= 0) - $column_width_*($column_width_ < 0)"/> <!-- absolute value -->
|
6464
6466
|
<column divider="100">
|
6465
|
-
<xsl:value-of select="
|
6467
|
+
<xsl:value-of select="$column_width"/>
|
6466
6468
|
</column>
|
6467
6469
|
</xsl:for-each>
|
6468
6470
|
|
@@ -6923,6 +6925,22 @@
|
|
6923
6925
|
|
6924
6926
|
<xsl:call-template name="refine_table-header-cell-style"/>
|
6925
6927
|
|
6928
|
+
<!-- experimental feature, see https://github.com/metanorma/metanorma-plateau/issues/30#issuecomment-2145461828 -->
|
6929
|
+
<!-- <xsl:choose>
|
6930
|
+
<xsl:when test="count(node()) = 1 and *[local-name() = 'span'][contains(@style, 'text-orientation')]">
|
6931
|
+
<fo:block-container reference-orientation="270">
|
6932
|
+
<fo:block role="SKIP" text-align="start">
|
6933
|
+
<xsl:apply-templates />
|
6934
|
+
</fo:block>
|
6935
|
+
</fo:block-container>
|
6936
|
+
</xsl:when>
|
6937
|
+
<xsl:otherwise>
|
6938
|
+
<fo:block role="SKIP">
|
6939
|
+
<xsl:apply-templates />
|
6940
|
+
</fo:block>
|
6941
|
+
</xsl:otherwise>
|
6942
|
+
</xsl:choose> -->
|
6943
|
+
|
6926
6944
|
<fo:block role="SKIP">
|
6927
6945
|
<xsl:apply-templates/>
|
6928
6946
|
</fo:block>
|
@@ -10418,6 +10436,15 @@
|
|
10418
10436
|
<xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
|
10419
10437
|
<xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
|
10420
10438
|
</xsl:when>
|
10439
|
+
<!-- in WebP format, then convert image into PNG -->
|
10440
|
+
<xsl:when test="starts-with(@src, 'data:image/webp')">
|
10441
|
+
<xsl:variable name="src_png" select="java:org.metanorma.fop.utils.ImageUtils.convertWebPtoPNG(@src)"/>
|
10442
|
+
<xsl:value-of select="$src_png"/>
|
10443
|
+
</xsl:when>
|
10444
|
+
<xsl:when test="not(starts-with(@src, 'data:')) and (java:endsWith(java:java.lang.String.new(@src), '.webp') or java:endsWith(java:java.lang.String.new(@src), '.WEBP'))">
|
10445
|
+
<xsl:variable name="src_png" select="java:org.metanorma.fop.utils.ImageUtils.convertWebPtoPNG(@src)"/>
|
10446
|
+
<xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
|
10447
|
+
</xsl:when>
|
10421
10448
|
<xsl:when test="not(starts-with(@src, 'data:'))">
|
10422
10449
|
<xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
|
10423
10450
|
</xsl:when>
|
@@ -14141,6 +14168,75 @@
|
|
14141
14168
|
<!-- ===================================== -->
|
14142
14169
|
<!-- Update xml -->
|
14143
14170
|
<!-- ===================================== -->
|
14171
|
+
|
14172
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="updateXML">
|
14173
|
+
<xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step1</xsl:message></xsl:if>
|
14174
|
+
<xsl:variable name="startTime1" select="java:getTime(java:java.util.Date.new())"/>
|
14175
|
+
|
14176
|
+
<!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
|
14177
|
+
<xsl:variable name="updated_xml_step1">
|
14178
|
+
<xsl:if test="$table_if = 'false'">
|
14179
|
+
<xsl:apply-templates mode="update_xml_step1"/>
|
14180
|
+
</xsl:if>
|
14181
|
+
</xsl:variable>
|
14182
|
+
|
14183
|
+
<xsl:variable name="endTime1" select="java:getTime(java:java.util.Date.new())"/>
|
14184
|
+
<xsl:if test="$debug = 'true'">
|
14185
|
+
<xsl:message>DEBUG: processing time <xsl:value-of select="$endTime1 - $startTime1"/> msec.</xsl:message>
|
14186
|
+
<xsl:message>END updated_xml_step1</xsl:message>
|
14187
|
+
<!-- <redirect:write file="updated_xml_step1_{java:getTime(java:java.util.Date.new())}.xml">
|
14188
|
+
<xsl:copy-of select="$updated_xml_step1"/>
|
14189
|
+
</redirect:write> -->
|
14190
|
+
</xsl:if>
|
14191
|
+
|
14192
|
+
<xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step2</xsl:message></xsl:if>
|
14193
|
+
<xsl:variable name="startTime2" select="java:getTime(java:java.util.Date.new())"/>
|
14194
|
+
|
14195
|
+
<!-- STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
14196
|
+
<xsl:variable name="updated_xml_step2">
|
14197
|
+
|
14198
|
+
<xsl:if test="$table_if = 'false'">
|
14199
|
+
<xsl:apply-templates select="xalan:nodeset($updated_xml_step1)" mode="update_xml_step2"/>
|
14200
|
+
</xsl:if>
|
14201
|
+
|
14202
|
+
</xsl:variable>
|
14203
|
+
|
14204
|
+
<xsl:variable name="endTime2" select="java:getTime(java:java.util.Date.new())"/>
|
14205
|
+
<xsl:if test="$debug = 'true'">
|
14206
|
+
<xsl:message>DEBUG: processing time <xsl:value-of select="$endTime2 - $startTime2"/> msec.</xsl:message>
|
14207
|
+
<xsl:message>END updated_xml_step2</xsl:message>
|
14208
|
+
<!-- <redirect:write file="updated_xml_step2_{java:getTime(java:java.util.Date.new())}.xml">
|
14209
|
+
<xsl:copy-of select="$updated_xml_step2"/>
|
14210
|
+
</redirect:write> -->
|
14211
|
+
</xsl:if>
|
14212
|
+
|
14213
|
+
<xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step3</xsl:message></xsl:if>
|
14214
|
+
<xsl:variable name="startTime3" select="java:getTime(java:java.util.Date.new())"/>
|
14215
|
+
|
14216
|
+
<xsl:variable name="updated_xml_step3">
|
14217
|
+
<xsl:choose>
|
14218
|
+
<xsl:when test="$table_if = 'false'">
|
14219
|
+
<xsl:apply-templates select="xalan:nodeset($updated_xml_step2)" mode="update_xml_enclose_keep-together_within-line"/>
|
14220
|
+
</xsl:when>
|
14221
|
+
<xsl:otherwise>
|
14222
|
+
<xsl:apply-templates select="." mode="update_xml_enclose_keep-together_within-line"/>
|
14223
|
+
</xsl:otherwise>
|
14224
|
+
</xsl:choose>
|
14225
|
+
</xsl:variable>
|
14226
|
+
|
14227
|
+
<xsl:variable name="endTime3" select="java:getTime(java:java.util.Date.new())"/>
|
14228
|
+
<xsl:if test="$debug = 'true'">
|
14229
|
+
<xsl:message>DEBUG: processing time <xsl:value-of select="$endTime3 - $startTime3"/> msec.</xsl:message>
|
14230
|
+
<xsl:message>END updated_xml_step3</xsl:message>
|
14231
|
+
<!-- <redirect:write file="updated_xml_step3_{java:getTime(java:java.util.Date.new())}.xml">
|
14232
|
+
<xsl:copy-of select="$updated_xml_step3"/>
|
14233
|
+
</redirect:write> -->
|
14234
|
+
</xsl:if>
|
14235
|
+
|
14236
|
+
<xsl:copy-of select="$updated_xml_step3"/>
|
14237
|
+
|
14238
|
+
</xsl:template>
|
14239
|
+
|
14144
14240
|
<!-- =========================================================================== -->
|
14145
14241
|
<!-- STEP1: -->
|
14146
14242
|
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
@@ -14340,7 +14436,7 @@
|
|
14340
14436
|
|
14341
14437
|
<!-- determine pagebreak is last element before </fo:flow> or not -->
|
14342
14438
|
<xsl:variable name="isLast">
|
14343
|
-
<xsl:for-each select="ancestor-or-self::*[ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14439
|
+
<xsl:for-each select="ancestor-or-self::*[ancestor::*[local-name() = 'preface'] or ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14344
14440
|
<xsl:if test="following-sibling::*">false</xsl:if>
|
14345
14441
|
</xsl:for-each>
|
14346
14442
|
</xsl:variable>
|
@@ -14362,7 +14458,7 @@
|
|
14362
14458
|
<xsl:text disable-output-escaping="yes"></page_sequence></xsl:text>
|
14363
14459
|
|
14364
14460
|
<!-- create a new page_sequence (opening elements) -->
|
14365
|
-
<xsl:text disable-output-escaping="yes"><page_sequence
|
14461
|
+
<xsl:text disable-output-escaping="yes"><page_sequence xmlns="</xsl:text><xsl:value-of select="$namespace_full"/>"<xsl:if test="$orientation != ''"> orientation="<xsl:value-of select="$orientation"/>"</xsl:if><xsl:text disable-output-escaping="yes">></xsl:text>
|
14366
14462
|
|
14367
14463
|
<xsl:call-template name="insertOpeningElements">
|
14368
14464
|
<xsl:with-param name="tree" select="$tree"/>
|
@@ -14372,7 +14468,7 @@
|
|
14372
14468
|
</xsl:template>
|
14373
14469
|
|
14374
14470
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="makeAncestorsElementsTree">
|
14375
|
-
<xsl:for-each select="ancestor::*[ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14471
|
+
<xsl:for-each select="ancestor::*[ancestor::*[local-name() = 'preface'] or ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
14376
14472
|
<element pos="{position()}">
|
14377
14473
|
<xsl:copy-of select="@*[local-name() != 'id']"/>
|
14378
14474
|
<xsl:value-of select="name()"/>
|
@@ -14657,7 +14753,7 @@
|
|
14657
14753
|
<xsl:value-of select="substring-before($text, $tag_open)"/>
|
14658
14754
|
<xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
|
14659
14755
|
|
14660
|
-
<xsl:element name="{substring-before(substring-after($tag_open, '###'),'###')}">
|
14756
|
+
<xsl:element name="{substring-before(substring-after($tag_open, '###'),'###')}" namespace="{$namespace_full}">
|
14661
14757
|
<xsl:value-of select="substring-before($text_after, $tag_close)"/>
|
14662
14758
|
</xsl:element>
|
14663
14759
|
|
@@ -15477,7 +15573,10 @@
|
|
15477
15573
|
<xsl:call-template name="setTextAlignment">
|
15478
15574
|
<xsl:with-param name="default" select="$text_align_default"/>
|
15479
15575
|
</xsl:call-template>
|
15576
|
+
<xsl:call-template name="setKeepAttributes"/>
|
15577
|
+
</xsl:template>
|
15480
15578
|
|
15579
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="setKeepAttributes">
|
15481
15580
|
<!-- https://www.metanorma.org/author/topics/document-format/text/#avoiding-page-breaks -->
|
15482
15581
|
<!-- Example: keep-lines-together="true" -->
|
15483
15582
|
<xsl:if test="@keep-lines-together = 'true'">
|
@@ -15489,6 +15588,72 @@
|
|
15489
15588
|
</xsl:if>
|
15490
15589
|
</xsl:template>
|
15491
15590
|
|
15591
|
+
<!-- insert cover page image -->
|
15592
|
+
<!-- background cover image -->
|
15593
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="insertBackgroundPageImage">
|
15594
|
+
<xsl:param name="number">1</xsl:param>
|
15595
|
+
<xsl:param name="name">coverpage-image</xsl:param>
|
15596
|
+
<xsl:variable name="num" select="number($number)"/>
|
15597
|
+
<!-- background image -->
|
15598
|
+
<fo:block-container absolute-position="fixed" left="0mm" top="0mm" font-size="0" id="__internal_layout__coverpage_{$name}_{$number}_{generate-id()}">
|
15599
|
+
<fo:block>
|
15600
|
+
<xsl:for-each select="/*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = $name][1]/*[local-name() = 'value']/*[local-name() = 'image'][$num]">
|
15601
|
+
<xsl:choose>
|
15602
|
+
<xsl:when test="*[local-name() = 'svg'] or java:endsWith(java:java.lang.String.new(@src), '.svg')">
|
15603
|
+
<fo:instream-foreign-object fox:alt-text="Image Front">
|
15604
|
+
<xsl:attribute name="content-height"><xsl:value-of select="$pageHeight"/>mm</xsl:attribute>
|
15605
|
+
<xsl:call-template name="getSVG"/>
|
15606
|
+
</fo:instream-foreign-object>
|
15607
|
+
</xsl:when>
|
15608
|
+
<xsl:when test="starts-with(@src, 'data:application/pdf;base64')">
|
15609
|
+
<fo:external-graphic src="{@src}" fox:alt-text="Image Front"/>
|
15610
|
+
</xsl:when>
|
15611
|
+
<xsl:otherwise> <!-- bitmap image -->
|
15612
|
+
<xsl:variable name="coverimage_src" select="normalize-space(@src)"/>
|
15613
|
+
<xsl:if test="$coverimage_src != ''">
|
15614
|
+
<xsl:variable name="coverpage">
|
15615
|
+
<xsl:call-template name="getImageURL">
|
15616
|
+
<xsl:with-param name="src" select="$coverimage_src"/>
|
15617
|
+
</xsl:call-template>
|
15618
|
+
</xsl:variable>
|
15619
|
+
<!-- <xsl:variable name="coverpage" select="concat('url(file:',$basepath, 'coverpage1.png', ')')"/> --> <!-- for DEBUG -->
|
15620
|
+
<fo:external-graphic src="{$coverpage}" width="{$pageWidth}mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
|
15621
|
+
</xsl:if>
|
15622
|
+
</xsl:otherwise>
|
15623
|
+
</xsl:choose>
|
15624
|
+
</xsl:for-each>
|
15625
|
+
</fo:block>
|
15626
|
+
</fo:block-container>
|
15627
|
+
</xsl:template>
|
15628
|
+
|
15629
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="getImageURL">
|
15630
|
+
<xsl:param name="src"/>
|
15631
|
+
<xsl:choose>
|
15632
|
+
<xsl:when test="starts-with($src, 'data:image')">
|
15633
|
+
<xsl:value-of select="$src"/>
|
15634
|
+
</xsl:when>
|
15635
|
+
<xsl:otherwise>
|
15636
|
+
<xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
|
15637
|
+
</xsl:otherwise>
|
15638
|
+
</xsl:choose>
|
15639
|
+
</xsl:template>
|
15640
|
+
|
15641
|
+
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="getSVG">
|
15642
|
+
<xsl:choose>
|
15643
|
+
<xsl:when test="*[local-name() = 'svg']">
|
15644
|
+
<xsl:apply-templates select="*[local-name() = 'svg']" mode="svg_update"/>
|
15645
|
+
</xsl:when>
|
15646
|
+
<xsl:otherwise>
|
15647
|
+
<xsl:variable name="svg_content" select="document(@src)"/>
|
15648
|
+
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
|
15649
|
+
<xsl:apply-templates select="." mode="svg_update"/>
|
15650
|
+
</xsl:for-each>
|
15651
|
+
</xsl:otherwise>
|
15652
|
+
</xsl:choose>
|
15653
|
+
</xsl:template>
|
15654
|
+
|
15655
|
+
<!-- END: insert cover page image -->
|
15656
|
+
|
15492
15657
|
<xsl:template xmlns:redirect="http://xml.apache.org/xalan/redirect" name="number-to-words">
|
15493
15658
|
<xsl:param name="number"/>
|
15494
15659
|
<xsl:param name="first"/>
|
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.10
|
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-06-
|
11
|
+
date: 2024-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|