module IsoDoc::Function::Inline

Public Instance Methods

add_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 130
def add_parse(node, out)
  out.span **{ class: "addition" } do |e|
    node.children.each { |n| parse(n, e) }
  end
end
bookmark_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 28
def bookmark_parse(node, out)
  out.a **attr_code(id: node["id"])
end
br_parse(_node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 20
def br_parse(_node, out)
  out.br
end
callout_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 17
def callout_parse(node, out)
  out << " &lt;#{node.text}&gt;"
end
del_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 136
def del_parse(node, out)
  out.span **{ class: "deletion" } do |e|
    node.children.each { |n| parse(n, e) }
  end
end
em_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 38
def em_parse(node, out)
  out.i do |e|
    node.children.each { |n| parse(n, e) }
  end
end
eref_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 55
def eref_parse(node, out)
  href = eref_target(node)
  if node["type"] == "footnote"
    out.sup do |s|
      s.a(**{ href: href }) { |l| no_locality_parse(node, l) }
    end
  else
    out.a(**{ href: href }) { |l| no_locality_parse(node, l) }
  end
end
eref_target(node) click to toggle source
# File lib/isodoc/function/inline.rb, line 43
def eref_target(node)
  href = "##{node['bibitemid']}"
  url = node.at(ns("//bibitem[@id = '#{node['bibitemid']}']/"\
                   "uri[@type = 'citation']"))
  return href unless url

  href = suffix_url(url.text)
  anchor = node&.at(ns(".//locality[@type = 'anchor']"))&.text&.strip
  anchor and href += "##{anchor}"
  href
end
error_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 142
def error_parse(node, out)
  text = node.to_xml.gsub(/</, "&lt;").gsub(/>/, "&gt;")
  out.para do |p|
    p.b(**{ role: "strong" }) { |e| e << text }
  end
end
hr_parse(_node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 16
def hr_parse(_node, out)
  out.hr
end
image_parse(node, out, caption) click to toggle source
# File lib/isodoc/function/inline.rb, line 103
def image_parse(node, out, caption)
  attrs = { src: node["src"],
            height: node["height"] || "auto",
            width: node["width"] || "auto",
            title: node["title"],
            alt: node["alt"] }
  out.img **attr_code(attrs)
  image_title_parse(out, caption)
end
image_title_parse(out, caption) click to toggle source
# File lib/isodoc/function/inline.rb, line 95
def image_title_parse(out, caption)
  unless caption.nil?
    out.p **{ class: "FigureTitle", style: "text-align:center;" } do |p|
      p.b { |b| b << caption.to_s }
    end
  end
end
index_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 24
def index_parse(node, out); end
index_xref_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 26
def index_xref_parse(node, out); end
keyword_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 32
def keyword_parse(node, out)
  out.span **{ class: "keyword" } do |s|
    node.children.each { |n| parse(n, s) }
  end
end
no_locality_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 21
def no_locality_parse(node, out)
  node.children.each do |n|
    parse(n, out) unless %w{locality localityStack}.include? n.name
  end
end
origin_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 66
def origin_parse(node, out)
  if t = node.at(ns("./termref"))
    termrefelem_parse(t, out)
  else
    eref_parse(node, out)
  end
end
page_break(out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 8
def page_break(out)
  out.br
end
pagebreak_parse(_node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 12
def pagebreak_parse(_node, out)
  out.br
end
section_break(body) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 4
def section_break(body)
  body.br
end
smallcap_parse(node, xml) click to toggle source
# File lib/isodoc/function/inline.rb, line 113
def smallcap_parse(node, xml)
  xml.span **{ style: "font-variant:small-caps;" } do |s|
    node.children.each { |n| parse(n, s) }
  end
end
stem_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 82
def stem_parse(node, out)
  ooml = case node["type"]
         when "AsciiMath"
           "#{@openmathdelim}#{HTMLEntities.new.encode(node.text)}"\
           "#{@closemathdelim}"
         when "MathML" then node.first_element_child.to_s
         else HTMLEntities.new.encode(node.text)
         end
  out.span **{ class: "stem" } do |span|
    span.parent.add_child ooml
  end
end
strike_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 68
def strike_parse(node, out)
  out.s do |e|
    node.children.each { |n| parse(n, e) }
  end
end
strong_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 44
def strong_parse(node, out)
  out.b do |e|
    node.children.each { |n| parse(n, e) }
  end
end
sub_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 56
def sub_parse(node, out)
  out.sub do |e|
    node.children.each { |n| parse(n, e) }
  end
end
suffix_url(url) click to toggle source
# File lib/isodoc/function/inline.rb, line 36
def suffix_url(url)
  return url if %r{^https?://}.match?(url)
  return url unless File.extname(url).empty?

  url.sub(/#{File.extname(url)}$/, ".html")
end
sup_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 50
def sup_parse(node, out)
  out.sup do |e|
    node.children.each { |n| parse(n, e) }
  end
end
termrefelem_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 74
def termrefelem_parse(node, out)
  if node.text.strip.empty?
    out << "Termbase #{node['base']}, term ID #{node['target']}"
  else
    node.children.each { |n| parse(n, out) }
  end
end
text_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 119
def text_parse(node, out)
  return if node.nil? || node.text.nil?

  text = node.to_s
  if in_sourcecode
    text = text.gsub("\n", "<br/>").gsub("<br/> ", "<br/>&nbsp;")
      .gsub(/ (?= )/, "&nbsp;")
  end
  out << text
end
tt_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 62
def tt_parse(node, out)
  out.tt do |e|
    node.children.each { |n| parse(n, e) }
  end
end
underline_parse(node, out) click to toggle source
# File lib/isodoc/function/inline_simple.rb, line 74
def underline_parse(node, out)
  out.u do |e|
    node.children.each { |n| parse(n, e) }
  end
end
xref_parse(node, out) click to toggle source
# File lib/isodoc/function/inline.rb, line 27
def xref_parse(node, out)
  target = if /#/.match?(node["target"])
             node["target"].sub(/#/, ".html#")
           else
             "##{node['target']}"
           end
  out.a(**{ href: target }) { |l| no_locality_parse(node, l) }
end