Module: Asciidoctor::ISO::Front
- Included in:
- Converter
- Defined in:
- lib/asciidoctor/iso/front.rb
Instance Method Summary collapse
- #asciidoc_sub(x) ⇒ Object
- #committee_component(compname, node, out) ⇒ Object
- #metadata(node, xml) ⇒ Object
- #metadata_author(node, xml) ⇒ Object
- #metadata_committee(node, xml) ⇒ Object
- #metadata_copyright(node, xml) ⇒ Object
- #metadata_ics(node, xml) ⇒ Object
- #metadata_id(node, xml) ⇒ Object
- #metadata_publisher(node, xml) ⇒ Object
- #metadata_status(node, xml) ⇒ Object
- #metadata_version(node, xml) ⇒ Object
- #organization(org, orgname) ⇒ Object
- #title(node, xml) ⇒ Object
- #title_intro(node, t, lang, at) ⇒ Object
- #title_main(node, t, lang, at) ⇒ Object
- #title_part(node, t, lang, at) ⇒ Object
Instance Method Details
#asciidoc_sub(x) ⇒ Object
122 123 124 125 126 127 |
# File 'lib/asciidoctor/iso/front.rb', line 122 def asciidoc_sub(x) return nil if x.nil? d = Asciidoctor::Document.new(x.lines.entries, {header_footer: false}) b = d.parse.blocks.first b.apply_subs(b.source) end |
#committee_component(compname, node, out) ⇒ Object
31 32 33 34 35 |
# File 'lib/asciidoctor/iso/front.rb', line 31 def committee_component(compname, node, out) out.send compname.gsub(/-/, "_"), node.attr(compname), **attr_code(number: node.attr("#{compname}-number"), type: node.attr("#{compname}-type")) end |
#metadata(node, xml) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/asciidoctor/iso/front.rb', line 109 def (node, xml) title node, xml (node, xml) (node, xml) (node, xml) xml.language node.attr("language") xml.script (node.attr("script") || "Latn") (node, xml) (node, xml) (node, xml) (node, xml) end |
#metadata_author(node, xml) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/asciidoctor/iso/front.rb', line 51 def (node, xml) publishers = node.attr("publisher") || "ISO" publishers.split(/,[ ]?/).each do |p| xml.contributor do |c| c.role **{ type: "author" } c.organization { |a| organization(a, p) } end end end |
#metadata_committee(node, xml) ⇒ Object
91 92 93 94 95 96 97 98 |
# File 'lib/asciidoctor/iso/front.rb', line 91 def (node, xml) xml.editorialgroup do |a| committee_component("technical-committee", node, a) committee_component("subcommittee", node, a) committee_component("workgroup", node, a) node.attr("secretariat") && a.secretariat(node.attr("secretariat")) end end |
#metadata_copyright(node, xml) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/asciidoctor/iso/front.rb', line 71 def (node, xml) publishers = node.attr("publisher") || "ISO" publishers.split(/,[ ]?/).each do |p| xml.copyright do |c| c.from (node.attr("copyright-year") || Date.today.year) c.owner do |owner| owner.organization { |o| organization(o, p) } end end end end |
#metadata_ics(node, xml) ⇒ Object
100 101 102 103 104 105 106 107 |
# File 'lib/asciidoctor/iso/front.rb', line 100 def (node, xml) ics = node.attr("library-ics") ics && ics.split(/,\s*/).each do |i| xml.ics do |ics| ics.code i end end end |
#metadata_id(node, xml) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/asciidoctor/iso/front.rb', line 12 def (node, xml) part, subpart = node&.attr("partnumber")&.split(/-/) xml.docidentifier do |i| i.project_number node.attr("docnumber"), **attr_code(part: part, subpart: subpart) if node.attr("tc-docnumber") i.tc_document_number node.attr("tc-docnumber") end end end |
#metadata_publisher(node, xml) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/asciidoctor/iso/front.rb', line 61 def (node, xml) publishers = node.attr("publisher") || "ISO" publishers.split(/,[ ]?/).each do |p| xml.contributor do |c| c.role **{ type: "publisher" } c.organization { |a| organization(a, p) } end end end |
#metadata_status(node, xml) ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/asciidoctor/iso/front.rb', line 83 def (node, xml) xml.status do |s| s.stage (node.attr("docstage") || "60") s.substage (node.attr("docsubstage") || "60") node.attr("iteration") && (s.iteration node.attr("iteration")) end end |
#metadata_version(node, xml) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/asciidoctor/iso/front.rb', line 23 def (node, xml) xml.version do |v| v.edition node.attr("edition") if node.attr("edition") v.revision_date node.attr("revdate") if node.attr("revdate") v.draft node.attr("draft") if node.attr("draft") end end |
#organization(org, orgname) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/asciidoctor/iso/front.rb', line 37 def organization(org, orgname) if ["ISO", "International Organization for Standardization"].include? orgname org.name "International Organization for Standardization" org.abbreviation "ISO" elsif ["IEC", "International Electrotechnical Commission"].include? orgname org.name "International Electrotechnical Commission" org.abbreviation "IEC" else org.name orgname end end |
#title(node, xml) ⇒ Object
149 150 151 152 153 154 155 156 157 158 |
# File 'lib/asciidoctor/iso/front.rb', line 149 def title(node, xml) ["en", "fr"].each do |lang| xml.title do |t| at = { language: lang, format: "text/plain" } title_intro(node, t, lang, at) title_main(node, t, lang, at) title_part(node, t, lang, at) end end end |
#title_intro(node, t, lang, at) ⇒ Object
129 130 131 132 133 134 |
# File 'lib/asciidoctor/iso/front.rb', line 129 def title_intro(node, t, lang, at) return unless node.attr("title-intro-#{lang}") t.title_intro(**attr_code(at)) do |t1| t1 << asciidoc_sub(node.attr("title-intro-#{lang}")) end end |
#title_main(node, t, lang, at) ⇒ Object
136 137 138 139 140 |
# File 'lib/asciidoctor/iso/front.rb', line 136 def title_main(node, t, lang, at) t.title_main **attr_code(at) do |t1| t1 << asciidoc_sub(node.attr("title-main-#{lang}")) end end |
#title_part(node, t, lang, at) ⇒ Object
142 143 144 145 146 147 |
# File 'lib/asciidoctor/iso/front.rb', line 142 def title_part(node, t, lang, at) return unless node.attr("title-part-#{lang}") t.title_part(**attr_code(at)) do |t1| t1 << asciidoc_sub(node.attr("title-part-#{lang}")) end end |