class IsoDoc::UN::HtmlConvert

A {Converter} implementation that generates HTML output, and a document schema encapsulation of the document for validation

Public Class Methods

new(options) click to toggle source
Calls superclass method
# File lib/isodoc/un/html_convert.rb, line 12
def initialize(options)
  @libdir = File.dirname(__FILE__)
  super
end

Public Instance Methods

default_file_locations(_options) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 35
def default_file_locations(_options)
  {
    htmlstylesheet: html_doc_path("htmlstyle.scss"),
    htmlcoverpage: html_doc_path("html_unece_titlepage.html"),
    htmlintropage: html_doc_path("html_unece_intro.html"),
  }
end
default_fonts(options) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 17
def default_fonts(options)
  {
    bodyfont: (
      options[:script] == "Hans" ?
      '"Source Han Sans",serif' :
      '"Times New Roman", serif'
    ),
    headerfont: (
      options[:script] == "Hans" ?
      '"Source Han Sans",sans-serif' :
      '"Times New Roman", serif'
    ),
    monospacefont: '"Courier New",monospace',
    normalfontsize: "15px",
    footnotefontsize: "0.9em",
  }
end
foreword(isoxml, out) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 99
def foreword(isoxml, out)
  f = isoxml.at(ns("//foreword")) || return
  page_break(out)
  out.div **attr_code(id: f["id"]) do |s|
    clause_name(nil, f.at(ns("./title")) || @i18n.foreword, s,
              class: "ForewordTitle")
    f.elements.each { |e| parse(e, s) unless e.name == "title" }
  end
end
googlefonts() click to toggle source
# File lib/isodoc/un/html_convert.rb, line 44
      def googlefonts
        <<~HEAD.freeze
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,500,700,900" rel="stylesheet">
        HEAD
      end
introduction(isoxml, out) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 88
def introduction(isoxml, out)
  f = isoxml.at(ns("//introduction")) || return
  page_break(out)
  out.div **{ class: "Section3", id: f["id"] } do |div|
    clause_name(nil, f.at(ns("./title")), div, { class: "IntroTitle" })
    f.elements.each do |e|
      parse(e, div) unless e.name == "title"
    end
  end
end
make_body(xml, docxml) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 51
def make_body(xml, docxml)
  plenary = is_plenary?(docxml)
  body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72",
                "xml:lang": "EN-US", class: "container" }
  if plenary &&
      @htmlcoverpage == html_doc_path("html_unece_titlepage.html")
    @htmlcoverpage = html_doc_path("html_unece_plenary_titlepage.html")
  end
  xml.body **body_attr do |body|
    make_body1(body, docxml)
    make_body2(body, docxml)
    make_body3(body, docxml)
  end
end
make_body3(body, docxml) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 66
def make_body3(body, docxml)
  body.div **{ class: "main-section" } do |div3|
    boilerplate docxml, div3
    preface_block docxml, div3
    abstract docxml, div3
    foreword docxml, div3
    introduction docxml, div3
    preface docxml, div3
    acknowledgements docxml, div3
    middle docxml, div3
    footnotes div3
    comments div3
  end
end
middle(isoxml, out) click to toggle source
# File lib/isodoc/un/html_convert.rb, line 81
def middle(isoxml, out)
  middle_admonitions(isoxml, out)
  clause isoxml, out
  annex isoxml, out
  bibliography isoxml, out
end