Method: IsoDoc::WordFunction::Postprocess#make_WordToC

Defined in:
lib/isodoc/word_function/postprocess_toc.rb

#make_WordToC(docxml, level) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/isodoc/word_function/postprocess_toc.rb', line 59

def make_WordToC(docxml, level)
  toc = ""
  if source = docxml.at("//div[@class = 'TOC']")
    toc = to_xml(source.children)
  end
  # docxml.xpath("//h1 | //h2[not(ancestor::*[@class = 'Section3'])]").
  xpath = (1..level).each.map { |i| "//h#{i}" }.join (" | ")
  docxml.xpath(xpath).each do |h|
    toc += word_toc_entry(h.name[1].to_i, header_strip(h))
  end
  toc.sub(/(<p class="MsoToc1">)/,
          %{\\1#{word_toc_preface(level)}}) + WORD_TOC_SUFFIX1
end