Sha256: 35d34c6193969b218fd40722315e67afbbea7e07b3d1e9501e789d0a14f4488f

Contents?: true

Size: 1.75 KB

Versions: 11

Compression:

Stored size: 1.75 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["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

11 entries across 11 versions & 1 rubygems

Version Path
isodoc-2.3.2 lib/isodoc/word_function/inline.rb
isodoc-2.3.1 lib/isodoc/word_function/inline.rb
isodoc-2.3.0 lib/isodoc/word_function/inline.rb
isodoc-2.2.3.1 lib/isodoc/word_function/inline.rb
isodoc-2.2.3 lib/isodoc/word_function/inline.rb
isodoc-2.2.2.2 lib/isodoc/word_function/inline.rb
isodoc-2.2.1 lib/isodoc/word_function/inline.rb
isodoc-2.2.0 lib/isodoc/word_function/inline.rb
isodoc-2.1.5 lib/isodoc/word_function/inline.rb
isodoc-2.1.4 lib/isodoc/word_function/inline.rb
isodoc-2.1.3 lib/isodoc/word_function/inline.rb