require "date"
require "nokogiri"
require "htmlentities"
require "json"
require "pathname"
require "open-uri"
require "pp"
module Asciidoctor
module ISO
module Front
def metadata_id(node, xml)
xml.id do |i|
i.project_number node.attr("docnumber"),
**attr_code(part: node.attr("partnumber"))
if node.attr("tc-docnumber")
i.tc_document_number node.attr("tc-docnumber")
end
end
end
def metadata_version(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
def metadata_author(node, xml)
xml.creator **{ role: "author" } do |a|
a.technical_committee node.attr("technical-committee"),
**attr_code(number: node.attr("technical-committee-number"))
if node.attr("subcommittee")
a.subcommittee node.attr("subcommittee"),
**attr_code(number: node.attr("subcommittee-number"))
end
if node.attr("workgroup")
a.workgroup node.attr("workgroup"),
**attr_code(number: node.attr("workgroup-number"))
end
a.secretariat node.attr("secretariat") if node.attr("secretariat")
end
end
def metadata_copyright(node, xml)
from = node.attr("copyright-year") || Date.today.year
xml.copyright do |c|
c.from from
c.owner do |o|
o.affiliation "ISO"
end
end
end
def metadata_status(node, xml)
xml.status do |s|
s.stage ( node.attr("docstage") || "60" )
s.substage ( node.attr("docsubstage") || "60" )
end
end
def metadata(node, xml)
metadata_status(node, xml)
metadata_author(node, xml)
xml.language node.attr("language")
xml.script "latn"
xml.type node.attr("doctype")
metadata_id(node, xml)
metadata_version(node, xml)
metadata_copyright(node, xml)
end
def title(node, xml)
["en", "fr"].each do |lang|
xml.title **{ language: lang } do |t|
if node.attr("title-intro-#{lang}")
t.title_intro { |t1| t1 << node.attr("title-intro-#{lang}") }
end
t.title_main { |t1| t1 << node.attr("title-main-#{lang}") }
if node.attr("title-part-#{lang}")
t.title_part node.attr("title-part-#{lang}")
end
end
end
end
end
end
end