Class: IsoDoc::Ogc::HtmlConvert

Inherits:
HtmlConvert
  • Object
show all
Includes:
BaseConvert, Init
Defined in:
lib/isodoc/ogc/html_convert.rb

Instance Method Summary collapse

Methods included from Init

#bibrenderer, #fileloc, #i18n_init, #metadata_init, #ogc_draft_ref?, #submittingorgs_path, #xref_init

Methods included from BaseConvert

#abstract, #acknowledgements, #cleanup, #error_parse, #example_label, #example_name_parse, #example_parse, #foreword, #hi_parse, #intro_clause, #is_clause?, #make_tr_attr, #middle_clause, #ol_depth, #para_class, #preface, #table_attrs, #term_cleanup, #term_cleanup_merge_admitted, #term_cleanup_merge_termnum, #top_element_render

Constructor Details

#initialize(options) ⇒ HtmlConvert

Returns a new instance of HtmlConvert.



10
11
12
13
# File 'lib/isodoc/ogc/html_convert.rb', line 10

def initialize(options)
  @libdir = File.dirname(__FILE__)
  super
end

Instance Method Details

#admonition_class(node) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/isodoc/ogc/html_convert.rb', line 42

def admonition_class(node)
  case node["type"]
  when "important" then "Admonition.Important"
  when "warning" then "Admonition.Warning"
  else "Admonition"
  end
end

#authority_cleanup(docxml) ⇒ Object



65
66
67
68
# File 'lib/isodoc/ogc/html_convert.rb', line 65

def authority_cleanup(docxml)
  authority_cleanup1(docxml, "contact")
  super
end

#default_file_locations(_options) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/isodoc/ogc/html_convert.rb', line 26

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"),
  }
end

#default_fonts(_options) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/isodoc/ogc/html_convert.rb', line 15

def default_fonts(_options)
  {
    bodyfont: '"Overpass",sans-serif',
    headerfont: '"Overpass",sans-serif',
    monospacefont: '"Space Mono",monospace',
    normalfontsize: "16px",
    monospacefontsize: "0.8em",
    footnotefontsize: "0.9em",
  }
end

#googlefontsObject



34
35
36
37
38
39
40
# File 'lib/isodoc/ogc/html_convert.rb', line 34

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=Overpass:300,300i,600,900" rel="stylesheet"/>
    <link href="https://fonts.googleapis.com/css?family=Teko:300,400,500" rel="stylesheet"/>
  HEAD
end

#heading_anchors(html) ⇒ Object



127
128
129
130
131
132
133
134
135
136
# File 'lib/isodoc/ogc/html_convert.rb', line 127

def heading_anchors(html)
  super
  html.xpath("//p[@class = 'RecommendationTitle'] | " \
             "//p[@class = 'RecommendationTestTitle']").each do |h|
    div = h.xpath("./ancestor::table[@id]")
    div.empty? and next
    heading_anchor(h, div[-1]["id"])
  end
  html
end

#html_headObject



70
71
72
73
74
75
76
77
78
79
# File 'lib/isodoc/ogc/html_convert.rb', line 70

def html_head
  ret = super
  ret += html_head_kw
  ret += html_head_abstract
  ret += html_head_creator
  ret += html_head_date
  ret += html_head_title
  ret += html_head_dc
  ret
end

#html_head_abstractObject



81
82
83
84
85
86
# File 'lib/isodoc/ogc/html_convert.rb', line 81

def html_head_abstract
  k = @meta.get[:abstract] and k = @c.encode(k)&.gsub("'", "&#x27;")
  (k.nil? || k.empty?) and return ""
  "<meta name='description' content='#{k}'/>\n" \
    "<meta name='DC.description' lang='#{@lang}' content='#{k}' />"
end

#html_head_creatorObject



107
108
109
110
111
112
# File 'lib/isodoc/ogc/html_convert.rb', line 107

def html_head_creator
  k = @meta.get[:authors] and
    k = @c.encode(k.join(", ")).gsub("'", "&#x27;")
  (k.nil? || k.empty?) and return ""
  "<meta name='DC.creator' lang='#{@lang}' content='#{k}' />"
end

#html_head_dateObject



114
115
116
117
118
119
# File 'lib/isodoc/ogc/html_convert.rb', line 114

def html_head_date
  k = @meta.get[:revdate] || @meta.get[:ipublisheddate] and
    k = @c.encode(k)&.gsub("'", "&#x27;")
  (k.nil? || k.empty?) and return ""
  "<meta name='DC.date' content='#{k}' />"
end

#html_head_dcObject



96
97
98
99
100
101
102
103
104
105
# File 'lib/isodoc/ogc/html_convert.rb', line 96

def html_head_dc
  <<~HTML
    <link rel="profile" href="http://dublincore.org/documents/2008/08/04/dc-html/" />
    <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
    <meta name="DC.language" content="#{@lang}" />
    <meta name="DC.rights" lang="#{@lang}" content="CC-BY-4.0"/>
    <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" />
    <link rel="DCTERMS.license" href="https://www.ogc.org/license" />
  HTML
end

#html_head_kwObject



88
89
90
91
92
93
94
# File 'lib/isodoc/ogc/html_convert.rb', line 88

def html_head_kw
  k = @meta.get[:keywords].join(", ") and
    k = @c.encode(k).gsub("'", "&#x27;")
  k.empty? and return ""
  "<meta name='keywords' content='#{k}'/>" \
    "<meta name='DC.subject' lang='#{@lang}' content='#{k}' />"
end

#html_head_titleObject



121
122
123
124
125
# File 'lib/isodoc/ogc/html_convert.rb', line 121

def html_head_title
  k = @meta.get[:doctitle] and k = @c.encode(k)&.gsub("'", "&#x27;")
  (k.nil? || k.empty?) and return ""
  "<meta name='DC.title' lang='#{@lang}' content='#{k}' />"
end

#make_body(xml, docxml) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'lib/isodoc/ogc/html_convert.rb', line 50

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

#make_body3(body, docxml) ⇒ Object



60
61
62
63
# File 'lib/isodoc/ogc/html_convert.rb', line 60

def make_body3(body, docxml)
  @prefacenum = 0
  super
end