Sha256: e18bda1f28cd6c74f5c0bc6796cf67f2e3fed9a3f89306e0b25c0ab4e9ee7e3d

Contents?: true

Size: 1.83 KB

Versions: 20

Compression:

Stored size: 1.83 KB

Contents

module IsoDoc
  module WordFunction
    module Body
      def section_break(body, continuous: false)
        body.p do |p|
          if continuous
            p.br **{ clear: "all", style: "page-break-before:auto;"\
                                          "mso-break-type:section-break" }
          else
            p.br **{ clear: "all", class: "section" }
          end
        end
      end

      def page_break(out)
        out.p do |p|
          p.br **{ clear: "all",
                   style: "mso-special-character:line-break;"\
                          "page-break-before:always" }
        end
      end

      def pagebreak_parse(node, out)
        return page_break(out) if node["orientation"].nil?

        out.p do |p|
          p.br **{ clear: "all", class: "section",
                   orientation: node["orientation"] }
        end
      end

      def imgsrc(node)
        return node["src"] unless %r{^data:}.match? node["src"]

        save_dataimage(node["src"])
      end

      def image_parse(node, out, caption)
        if emf = node.at(ns("./emf"))
          node["src"] = emf["src"]
          node["height"] ||= emf["height"]
          node["width"] ||= emf["width"]
          node["mimetype"] = "image/x-emf"
          node.children.remove
        end
        attrs = { src: imgsrc(node),
                  height: node["height"], alt: node["alt"],
                  title: node["title"], width: node["width"] }
        out.img **attr_code(attrs)
        image_title_parse(out, caption)
      end

      def xref_parse(node, out)
        target = if /#/.match?(node["target"])
                   node["target"].sub(/#/, ".doc#")
                 else
                   "##{node['target']}"
                 end
        out.a(**{ href: target }) do |l|
          node.children.each { |n| parse(n, l) }
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
isodoc-2.5.8 lib/isodoc/word_function/inline.rb
isodoc-2.5.7 lib/isodoc/word_function/inline.rb
isodoc-2.5.6 lib/isodoc/word_function/inline.rb
isodoc-2.5.5 lib/isodoc/word_function/inline.rb
isodoc-2.5.4 lib/isodoc/word_function/inline.rb
isodoc-2.5.3 lib/isodoc/word_function/inline.rb
isodoc-2.5.2 lib/isodoc/word_function/inline.rb
isodoc-2.5.1 lib/isodoc/word_function/inline.rb
isodoc-2.5.0 lib/isodoc/word_function/inline.rb
isodoc-2.4.5 lib/isodoc/word_function/inline.rb
isodoc-2.4.4 lib/isodoc/word_function/inline.rb
isodoc-2.4.3 lib/isodoc/word_function/inline.rb
isodoc-2.4.2 lib/isodoc/word_function/inline.rb
isodoc-2.4.1 lib/isodoc/word_function/inline.rb
isodoc-2.4.0 lib/isodoc/word_function/inline.rb
isodoc-2.3.6 lib/isodoc/word_function/inline.rb
isodoc-2.3.5 lib/isodoc/word_function/inline.rb
isodoc-2.3.4.1 lib/isodoc/word_function/inline.rb
isodoc-2.3.4 lib/isodoc/word_function/inline.rb
isodoc-2.3.3 lib/isodoc/word_function/inline.rb