lib/asciidoctor/iso/front.rb in metanorma-iso-1.10.6 vs lib/asciidoctor/iso/front.rb in metanorma-iso-2.0.0

- old
+ new

@@ -1,170 +1,3 @@ -require "date" -require "nokogiri" -require "htmlentities" -require "json" -require "pathname" -require "open-uri" -require_relative "front_id" +require "asciidoctor/iso/deprecated" +require "metanorma/iso/front" -module Asciidoctor - module ISO - class Converter < Standoc::Converter - def metadata_ext(node, xml) - super - structured_id(node, xml) - xml.stagename stage_name(get_stage(node), get_substage(node), - doctype(node), node.attr("iteration")) - @amd && a = node.attr("updates-document-type") and - xml.updates_document_type a - end - - def metadata_subdoctype(node, xml) - super - a = node.attr("horizontal") and xml.horizontal a - end - - def org_abbrev - { "International Organization for Standardization" => "ISO", - "International Electrotechnical Commission" => "IEC" } - end - - def metadata_author(node, xml) - publishers = node.attr("publisher") || "ISO" - csv_split(publishers).each do |p| - xml.contributor do |c| - c.role **{ type: "author" } - c.organization do |a| - organization(a, p, false, node, !node.attr("publisher")) - end - end - end - end - - def metadata_publisher(node, xml) - publishers = node.attr("publisher") || "ISO" - csv_split(publishers).each do |p| - xml.contributor do |c| - c.role **{ type: "publisher" } - c.organization do |a| - organization(a, p, true, node, !node.attr("publisher")) - end - end - end - end - - def metadata_copyright(node, xml) - publishers = node.attr("copyright-holder") || node.attr("publisher") || - "ISO" - csv_split(publishers).each do |p| - xml.copyright do |c| - c.from (node.attr("copyright-year") || Date.today.year) - c.owner do |owner| - owner.organization do |o| - organization( - o, p, true, node, - !(node.attr("copyright-holder") || node.attr("publisher")) - ) - end - end - end - end - end - - def metadata_status(node, xml) - stage = get_stage(node) - substage = get_substage(node) - xml.status do |s| - s.stage stage, **attr_code(abbreviation: cover_stage_abbr(node)) - s.substage substage - node.attr("iteration") && (s.iteration node.attr("iteration")) - end - end - - def metadata_committee(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 - - def title_intro(node, xml, lang, at) - return unless node.attr("title-intro-#{lang}") - - xml.title(**attr_code(at.merge(type: "title-intro"))) do |t1| - t1 << Metanorma::Utils::asciidoc_sub(node.attr("title-intro-#{lang}")) - end - end - - def title_main(node, xml, lang, at) - xml.title **attr_code(at.merge(type: "title-main")) do |t1| - t1 << Metanorma::Utils::asciidoc_sub(node.attr("title-main-#{lang}")) - end - end - - def title_part(node, xml, lang, at) - return unless node.attr("title-part-#{lang}") - - xml.title(**attr_code(at.merge(type: "title-part"))) do |t1| - t1 << Metanorma::Utils::asciidoc_sub(node.attr("title-part-#{lang}")) - end - end - - def title_amd(node, xml, lang, at) - return unless node.attr("title-amendment-#{lang}") - - xml.title(**attr_code(at.merge(type: "title-amd"))) do |t1| - t1 << Metanorma::Utils::asciidoc_sub( - node.attr("title-amendment-#{lang}"), - ) - end - end - - def title_full(node, xml, lang, at) - title = node.attr("title-main-#{lang}") - intro = node.attr("title-intro-#{lang}") - part = node.attr("title-part-#{lang}") - amd = node.attr("title-amendment-#{lang}") - title = "#{intro} -- #{title}" if intro - title = "#{title} -- #{part}" if part - title = "#{title} -- #{amd}" if amd && @amd - xml.title **attr_code(at.merge(type: "main")) do |t1| - t1 << Metanorma::Utils::asciidoc_sub(title) - end - end - - def title(node, xml) - ["en", "fr"].each do |lang| - at = { language: lang, format: "text/plain" } - title_full(node, xml, lang, at) - title_intro(node, xml, lang, at) - title_main(node, xml, lang, at) - title_part(node, xml, lang, at) - title_amd(node, xml, lang, at) if @amd - end - end - - def relaton_relations - super + %w(obsoletes successor-of manifestation-of related annotation-of) - end - - def relaton_relation_descriptions - super.merge( - "amends" => "updates", "revises" => "updates", - "replaces" => "obsoletes", - "supersedes" => "obsoletes", - "corrects" => "updates", - "informatively-cited-in" => "isCitedIn", - "informatively-cites" => "cites", - "normatively-cited in" => "isCitedIn", - "normatively-cites" => "cites", - "identical-adopted-from" => "adoptedFrom", - "modified-adopted-from" => "adoptedFrom", - "related-directive" => "related", - "related-mandate" => "related", - ) - end - end - end -end