require_relative "base_convert" require_relative "init" require "fileutils" require "isodoc" require_relative "metadata" module IsoDoc module Ogc # A {Converter} implementation that generates HTML output, and a document # schema encapsulation of the document for validation # class HtmlConvert < IsoDoc::HtmlConvert def initialize(options) @libdir = File.dirname(__FILE__) super end def default_fonts(options) { bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'), headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Overpass",sans-serif'), monospacefont: '"Space Mono",monospace' } end def default_file_locations(_options) { htmlstylesheet: html_doc_path("htmlstyle.scss"), htmlcoverpage: html_doc_path("html_ogc_titlepage.html"), htmlintropage: html_doc_path("html_ogc_intro.html"), scripts: html_doc_path("scripts.html"), } end def googlefonts <<~HEAD.freeze HEAD end def admonition_class(node) case node["type"] when "important" then "Admonition.Important" when "warning" then "Admonition.Warning" else "Admonition" end end def make_body(xml, docxml) body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72", "xml:lang": "EN-US", class: "container" } xml.body **body_attr do |body| make_body1(body, docxml) make_body2(body, docxml) make_body3(body, docxml) end end def make_body3(body, docxml) body.div **{ class: "main-section" } do |div3| @prefacenum = 0 boilerplate docxml, div3 abstract docxml, div3 keywords docxml, div3 foreword docxml, div3 introduction docxml, div3 submittingorgs docxml, div3 submitters docxml, div3 preface docxml, div3 acknowledgements docxml, div3 middle docxml, div3 footnotes div3 comments div3 end end def authority_cleanup(docxml) authority_cleanup1(docxml, "contact") super end include BaseConvert include Init end end end