metanorma-ieee 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +13 -0
  3. data/.rubocop.yml +10 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +11 -0
  6. data/LICENSE +25 -0
  7. data/README.adoc +30 -0
  8. data/Rakefile +8 -0
  9. data/bin/console +14 -0
  10. data/bin/rspec +17 -0
  11. data/bin/setup +8 -0
  12. data/lib/html2doc/ieee.rb +89 -0
  13. data/lib/isodoc/ieee/base_convert.rb +33 -0
  14. data/lib/isodoc/ieee/html/header.html +146 -0
  15. data/lib/isodoc/ieee/html/html_ieee_intro.html +12 -0
  16. data/lib/isodoc/ieee/html/html_ieee_titlepage.html +44 -0
  17. data/lib/isodoc/ieee/html/htmlstyle.css +1027 -0
  18. data/lib/isodoc/ieee/html/htmlstyle.scss +736 -0
  19. data/lib/isodoc/ieee/html/ieee.css +3603 -0
  20. data/lib/isodoc/ieee/html/ieee.scss +3418 -0
  21. data/lib/isodoc/ieee/html/scripts.html +70 -0
  22. data/lib/isodoc/ieee/html/word_ieee_intro.html +70 -0
  23. data/lib/isodoc/ieee/html/word_ieee_titlepage.html +28 -0
  24. data/lib/isodoc/ieee/html/wordstyle.css +5310 -0
  25. data/lib/isodoc/ieee/html/wordstyle.scss +5026 -0
  26. data/lib/isodoc/ieee/html_convert.rb +52 -0
  27. data/lib/isodoc/ieee/i18n-en.yaml +28 -0
  28. data/lib/isodoc/ieee/i18n.rb +19 -0
  29. data/lib/isodoc/ieee/ieee.amendment.xsl +11177 -0
  30. data/lib/isodoc/ieee/ieee.rb +11 -0
  31. data/lib/isodoc/ieee/ieee.standard.xsl +11177 -0
  32. data/lib/isodoc/ieee/init.rb +28 -0
  33. data/lib/isodoc/ieee/metadata.rb +136 -0
  34. data/lib/isodoc/ieee/pdf_convert.rb +24 -0
  35. data/lib/isodoc/ieee/presentation_terms.rb +181 -0
  36. data/lib/isodoc/ieee/presentation_xml_convert.rb +89 -0
  37. data/lib/isodoc/ieee/word_authority.rb +160 -0
  38. data/lib/isodoc/ieee/word_cleanup.rb +134 -0
  39. data/lib/isodoc/ieee/word_convert.rb +75 -0
  40. data/lib/isodoc/ieee/xref.rb +77 -0
  41. data/lib/isodoc/ieee.rb +11 -0
  42. data/lib/metanorma/ieee/basicdoc.rng +1150 -0
  43. data/lib/metanorma/ieee/biblio.rng +1385 -0
  44. data/lib/metanorma/ieee/boilerplate.xml +298 -0
  45. data/lib/metanorma/ieee/cleanup.rb +160 -0
  46. data/lib/metanorma/ieee/converter.rb +81 -0
  47. data/lib/metanorma/ieee/front.rb +120 -0
  48. data/lib/metanorma/ieee/ieee.rng +97 -0
  49. data/lib/metanorma/ieee/isodoc.rng +2776 -0
  50. data/lib/metanorma/ieee/processor.rb +56 -0
  51. data/lib/metanorma/ieee/reqt.rng +226 -0
  52. data/lib/metanorma/ieee/validate.rb +198 -0
  53. data/lib/metanorma/ieee/validate_section.rb +119 -0
  54. data/lib/metanorma/ieee/validate_style.rb +108 -0
  55. data/lib/metanorma/ieee/version.rb +5 -0
  56. data/lib/metanorma/ieee.rb +11 -0
  57. data/lib/metanorma-ieee.rb +8 -0
  58. data/metanorma-itu.gemspec +41 -0
  59. metadata +284 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4bbf250e70bbe6d7c3ce624147d503935bf9005694965377bee47b61d3260c67
4
+ data.tar.gz: cd6e4e3f393d870c38f0d31ae11254123b7301659ed519e9a39988b472de9dcc
5
+ SHA512:
6
+ metadata.gz: 7c10105ed014eb7919a245ee2b1ca5bb9165768aa9cd3390cf7782abcaac24e1ff35fd0fbf9c14bcedfb39f7b4090ef17b43c7ba1bc36dbd6f7ad96abef9a04a
7
+ data.tar.gz: 41d392c1240e1ad3f31660d22b3d46ff2471e4e4001fc990eea12ff388877aa39b6eb49fd119b19d707a26096f55955e8d31ea76827bdfdc3715e597896089fd
@@ -0,0 +1,13 @@
1
+ name: rake
2
+
3
+ on:
4
+ push:
5
+ branches: [ master, main ]
6
+ tags: [ v* ]
7
+ pull_request:
8
+
9
+ jobs:
10
+ rake:
11
+ uses: metanorma/metanorma-build-scripts/.github/workflows/generic-rake.yml@main
12
+ secrets:
13
+ pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
data/.rubocop.yml ADDED
@@ -0,0 +1,10 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ inherit_from:
4
+ - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
5
+
6
+ # local repo-specific modifications
7
+ # ...
8
+
9
+ AllCops:
10
+ TargetRubyVersion: 2.5
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at ronald.tse@ribose.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ Encoding.default_external = Encoding::UTF_8
2
+ Encoding.default_internal = Encoding::UTF_8
3
+
4
+ source 'https://rubygems.org'
5
+ git_source(:github) { |repo| "https://github.com/#{repo}" }
6
+
7
+ gemspec
8
+
9
+ if File.exist? 'Gemfile.devel'
10
+ eval File.read('Gemfile.devel'), nil, 'Gemfile.devel' # rubocop:disable Security/Eval
11
+ end
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2018, Ribose
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
20
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.adoc ADDED
@@ -0,0 +1,30 @@
1
+ = metanorma-ieee: Metanorma for IEEE
2
+
3
+ image:https://img.shields.io/gem/v/metanorma-ieee.svg["Gem Version", link="https://rubygems.org/gems/metanorma-ieee"]
4
+ image:https://github.com/metanorma/metanorma-ieee/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-ieee/actions?workflow=rake"]
5
+ image:https://codeclimate.com/github/metanorma/metanorma-ieee/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-ieee"]
6
+ image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-ieee.svg["Pull Requests", link="https://github.com/metanorma/metanorma-ieee/pulls"]
7
+ image:https://img.shields.io/github/commits-since/metanorma/metanorma-ieee/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-ieee/releases"]
8
+
9
+ == Functionality
10
+
11
+ This gem processes https://www.metanorma.com[Metanorma documents] following a template for generating ITU
12
+ standards and documents.
13
+
14
+ The implementation inherits from https://github.com/metanorma/metanorma-standoc.
15
+
16
+ == Usage
17
+
18
+ == Usage and installation
19
+
20
+ See https://www.metanorma.com.
21
+
22
+ == Documentation
23
+
24
+ See https://www.metanorma.com/author/ieee/[Write IEEE documents with Metanorma].
25
+
26
+ == Examples
27
+
28
+ * Example documents are available at the https://github.com/metanorma/mn-samples-ieee[mn-samples-ieee] repository.
29
+ * Document templates are available at the https://github.com/metanorma/mn-templates-ieee[mn-templates-ieee] repository.
30
+
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require "isodoc/gem_tasks"
4
+
5
+ IsoDoc::GemTasks.install
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "metanorma/itu"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/rspec ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rspec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require "pathname"
10
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path(
11
+ "../../Gemfile", Pathname.new(__FILE__).realpath
12
+ )
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rspec-core", "rspec")
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,89 @@
1
+ class Html2Doc
2
+ class IEEE < ::Html2Doc
3
+ def process_footnote_texts(docxml, footnotes)
4
+ body = docxml.at("//body")
5
+ list = body.add_child("<div style='mso-element:footnote-list'/>")
6
+ footnotes.each_with_index do |f, i|
7
+ if i.zero?
8
+ fn = list.first.add_child(footnote_container_nofn(docxml, i + 1))
9
+ f.parent = fn.first
10
+ footnote_div_to_p_unstyled(f)
11
+ else
12
+ fn = list.first.add_child(footnote_container(docxml, i + 1))
13
+ f.parent = fn.first
14
+ footnote_div_to_p(f)
15
+ end
16
+ end
17
+ footnote_cleanup(docxml)
18
+ end
19
+
20
+ def footnote_container_nofn(_docxml, idx)
21
+ <<~DIV
22
+ <div style='mso-element:footnote' id='ftn#{idx}'>
23
+ <a style='mso-footnote-id:ftn#{idx}' href='#_ftn#{idx}'
24
+ name='_ftnref#{idx}' title='' id='_ftnref#{idx}'></a></div>
25
+ DIV
26
+ end
27
+
28
+ def footnote_div_to_p_unstyled(elem)
29
+ if %w{div aside}.include? elem.name
30
+ if elem.at(".//p")
31
+ elem.replace(elem.children)
32
+ else
33
+ elem.name = "p"
34
+ end
35
+ end
36
+ end
37
+
38
+ def transform_footnote_text(note)
39
+ note["id"] = ""
40
+ note.xpath(".//div").each { |div| div.replace(div.children) }
41
+ note.xpath(".//aside | .//p").each do |p|
42
+ p.name = "p"
43
+ %w(IEEEStdsCRTextReg IEEEStdsCRTextItal).include?(p["class"]) or
44
+ p["class"] = "IEEEStdsFootnote"
45
+ end
46
+ note.remove
47
+ end
48
+
49
+ def list2para(list)
50
+ return if list.xpath("./li").empty?
51
+
52
+ if list.name == "ol"
53
+ list2para_ol(list)
54
+ else
55
+ list2para_ul(list)
56
+ end
57
+ end
58
+
59
+ def list2para_ul(list)
60
+ list.xpath("./li").first["class"] ||= "IEEEStdsUnorderedListCxSpFirst"
61
+ list.xpath("./li").last["class"] ||= "IEEEStdsUnorderedListCxSpLast"
62
+ list.xpath("./li/p").each do |p|
63
+ p["class"] ||= "IEEEStdsUnorderedListCxSpMiddle"
64
+ end
65
+ list.xpath("./li").each do |l|
66
+ l.name = "p"
67
+ l["class"] ||= "IEEEStdsUnorderedListCxSpMiddle"
68
+ l&.first_element_child&.name == "p" and
69
+ l.first_element_child.replace(l.first_element_child.children)
70
+ end
71
+ list.replace(list.children)
72
+ end
73
+
74
+ def list2para_ol(list)
75
+ list.xpath("./li").first["class"] ||= "IEEEStdsNumberedListLevel1CxSpFirst"
76
+ list.xpath("./li").last["class"] ||= "IEEEStdsNumberedListLevel1CxSpLast"
77
+ list.xpath("./li/p").each do |p|
78
+ p["class"] ||= "IEEEStdsNumberedListLevel1CxSpMiddle"
79
+ end
80
+ list.xpath("./li").each do |l|
81
+ l.name = "p"
82
+ l["class"] ||= "IEEEStdsNumberedListLevel1CxSpMiddle"
83
+ l&.first_element_child&.name == "p" and
84
+ l.first_element_child.replace(l.first_element_child.children)
85
+ end
86
+ list.replace(list.children)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,33 @@
1
+ require "isodoc"
2
+ require "fileutils"
3
+
4
+ module IsoDoc
5
+ module IEEE
6
+ module BaseConvert
7
+ def clause_attrs(node)
8
+ { id: node["id"], type: node["type"] }
9
+ end
10
+
11
+ def scope(isoxml, out, num)
12
+ f = isoxml.at(ns("//clause[@type = 'overview']")) or return num
13
+ out.div **attr_code(id: f["id"]) do |div|
14
+ num = num + 1
15
+ clause_name(num, f&.at(ns("./title")), div, nil)
16
+ f.elements.each do |e|
17
+ parse(e, div) unless e.name == "title"
18
+ end
19
+ end
20
+ num
21
+ end
22
+
23
+ def middle_clause(_docxml = nil)
24
+ "//clause[parent::sections][not(@type = 'overview')]"\
25
+ "[not(descendant::terms)]"
26
+ end
27
+
28
+ def para_attrs(node)
29
+ super.merge(type: node["type"])
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,146 @@
1
+ <html xmlns:v="urn:schemas-microsoft-com:vml"
2
+ xmlns:o="urn:schemas-microsoft-com:office:office"
3
+ xmlns:w="urn:schemas-microsoft-com:office:word"
4
+ xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
5
+ xmlns="http://www.w3.org/TR/REC-html40">
6
+
7
+ <head>
8
+ <meta http-equiv=Content-Type content="text/html; charset=utf-8">
9
+ <meta name=ProgId content=Word.Document>
10
+ <meta name=Generator content="Microsoft Word 15">
11
+ <meta name=Originator content="Microsoft Word 15">
12
+ <link id=Main-File rel=Main-File href="../{{ filename}}.html">
13
+ <!--[if gte mso 9]><xml>
14
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
15
+ </xml><![endif]-->
16
+ </head>
17
+
18
+ <body lang=EN-AU link=blue vlink=purple>
19
+
20
+ <div style='mso-element:footnote-separator' id=fs>
21
+
22
+ <p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
23
+
24
+ <hr align=left size=1 width="33%">
25
+
26
+ <![endif]></span></span></p>
27
+
28
+ </div>
29
+
30
+ <div style='mso-element:footnote-continuation-separator' id=fcs>
31
+
32
+ <p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
33
+
34
+ <hr align=left size=1>
35
+
36
+ <![endif]></span></span></p>
37
+
38
+ </div>
39
+
40
+ <div style='mso-element:endnote-separator' id=es>
41
+
42
+ <p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
43
+
44
+ <hr align=left size=1 width="33%">
45
+
46
+ <![endif]></span></span></p>
47
+
48
+ </div>
49
+
50
+ <div style='mso-element:endnote-continuation-separator' id=ecs>
51
+
52
+ <p class=MsoNormal><span lang=EN-US><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
53
+
54
+ <hr align=left size=1>
55
+
56
+ <![endif]></span></span></p>
57
+
58
+ </div>
59
+
60
+ <div style='mso-element:header' id=h1>
61
+
62
+ <p class=MsoHeader><span lang=EN-US>P{{ docnumeric }}{% if draft %}/D{{ draft }},
63
+ {{ draft_month }} {{ draft_year }}{% endif %}</span></p>
64
+
65
+ <p class=MsoHeader><span lang=EN-US>{% if draft %}Draft{% endif %} {{ doctype_abbrev }} for
66
+ {{ doctitle }}</span></p>
67
+
68
+ </div>
69
+
70
+ <div style='mso-element:footer' id=ef1>
71
+
72
+ <div style='mso-element:frame;mso-element-wrap:around;mso-element-anchor-vertical:
73
+ paragraph;mso-element-anchor-horizontal:margin;mso-element-left:center;
74
+ mso-element-top:.05pt;mso-height-rule:exactly'>
75
+
76
+ <table cellspacing=0 cellpadding=0 hspace=0 vspace=0 align=center>
77
+ <tr>
78
+ <td valign=top align=left style='padding-top:0cm;padding-right:0cm;
79
+ padding-bottom:0cm;padding-left:0cm'>
80
+ <p class=MsoFooter style='mso-element:frame;mso-element-wrap:around;
81
+ mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:margin;
82
+ mso-element-left:center;mso-element-top:.05pt;mso-height-rule:exactly'><!--[if supportFields]><span
83
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'><span
84
+ style='mso-element:field-begin'></span>PAGE<span style='mso-spacerun:yes'> 
85
+ </span></span></span><![endif]--><!--[if supportFields]><span
86
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'><span
87
+ style='mso-element:field-end'></span></span></span><![endif]--><span
88
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'><o:p></o:p></span></span></p>
89
+ </td>
90
+ </tr>
91
+ </table>
92
+
93
+ </div>
94
+
95
+ <p class=MsoFooter style='margin-right:18.0pt'><span lang=EN-US><o:p>&#xa0;</o:p></span></p>
96
+
97
+ </div>
98
+
99
+ <div style='mso-element:header' id=fh1>
100
+
101
+ <p class=IEEEStdsTitlePgHead><span lang=EN-US>IEEE Std {{docnumeric}}™-0</span></p>
102
+
103
+ </div>
104
+
105
+ <div style='mso-element:footer' id=f3>
106
+
107
+ <div style='mso-element:frame;mso-element-wrap:no-wrap-beside;mso-element-anchor-vertical:
108
+ paragraph;mso-element-anchor-horizontal:margin;mso-element-left:center;
109
+ mso-element-top:.05pt;mso-height-rule:exactly'>
110
+
111
+ <table cellspacing=0 cellpadding=0 hspace=0 vspace=0 align=center>
112
+ <tr>
113
+ <td valign=top align=left style='padding-top:0cm;padding-right:0cm;
114
+ padding-bottom:0cm;padding-left:0cm'>
115
+ <p class=MsoFooter style='tab-stops:right 432.0pt;mso-element:frame;
116
+ mso-element-wrap:no-wrap-beside;mso-element-anchor-vertical:paragraph;
117
+ mso-element-anchor-horizontal:margin;mso-element-left:center;mso-element-top:
118
+ .05pt;mso-height-rule:exactly'><!--[if supportFields]><span
119
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'><span
120
+ style='mso-element:field-begin'></span><span
121
+ style='mso-spacerun:yes'> </span>PAGE <span style='mso-element:field-separator'></span></span></span><![endif]--><span
122
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'>ix</span></span><!--[if supportFields]><span
123
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'><span
124
+ style='mso-element:field-end'></span></span></span><![endif]--><span
125
+ class=MsoPageNumber><span lang=EN-US style='font-size:10.0pt'><o:p></o:p></span></span></p>
126
+ </td>
127
+ </tr>
128
+ </table>
129
+
130
+ </div>
131
+
132
+ <![if !supportTextWrap]><br clear=ALL>
133
+ <![endif]>
134
+
135
+ <p class=MsoFooter style='tab-stops:right 432.0pt'><span lang=EN-US>Copyright ©
136
+ {{ docyear }} IEEE. All rights reserved.</span></p>
137
+
138
+ <p class=MsoFooter style='tab-stops:right 432.0pt'><span lang=EN-US>{% if draft %}This is an
139
+ unapproved IEEE Standards Draft, subject to change.{% endif %}</span></p>
140
+
141
+ </div>
142
+
143
+ </body>
144
+
145
+ </html>
146
+
@@ -0,0 +1,12 @@
1
+ <div id="boilerplate-legal-destination"/>
2
+ <div id="boilerplate-license-destination"/>
3
+
4
+
5
+ <nav>
6
+ <h1 id="content">{{ labels["table_of_contents"]}}</h1>
7
+ <div id="toc"></div>
8
+
9
+ </nav>
10
+
11
+
12
+ <div class="rule toc"></div>
@@ -0,0 +1,44 @@
1
+ <div id='toggle'> <span>•</span> </div>
2
+
3
+ <div class="doctitle-en"><span>P{{ docnumeric }}™{% if draft %}/D{{ draft }}{% endif %}</span><br/>
4
+ <span lang="EN-US">{{ full_doctitle }}</span></div>
5
+ {% if doctitleamdlabel %}
6
+ <div class="doctitle-part">{{ doctitleamdlabel }}{% if doctitleamd %}: {{ doctitleamd }}{% endif %}</div>
7
+ {% endif %}
8
+ {% if doctitlecorrlabel %}
9
+ <div class="doctitle-part">{{ doctitlecorrlabel }}</div>
10
+ {% endif %}
11
+ </div>
12
+
13
+ <div><p>Developed by the</p>
14
+ <p><b>{{ technical_committee }}</b></p>
15
+ <p>of the</p>
16
+ <p><b>IEEE {{ society }}</b></p>
17
+ <p>Approved {{ confirmeddate }}</p>
18
+ <p>IEEE SA Standards Board</p>
19
+ </div>
20
+
21
+
22
+
23
+
24
+ <div class="coverpage_docstage">
25
+ {% if unpublished %}
26
+ <p>{{ stageabbr }} stage</p>
27
+ {% endif %}
28
+ </div>
29
+
30
+ {% if unpublished %}
31
+ <div class="coverpage_warning">
32
+ <div id="boilerplate-license-destination"/>
33
+ </div>
34
+ {% endif %}
35
+ <div class="coverpage-warning" id="coverpage-note-destination"/>
36
+
37
+ {% if ics %}
38
+ <p><b>ICS:</b> {{ ics }}</p>
39
+ {% endif %}
40
+
41
+ {% if keywords.size > 0 %}
42
+ <p><b>Descriptors:</b> {{ keywords | join: ", " }}
43
+ {% endif %}
44
+