Sha256: f7ea3cdfbd7b7e9291a06655738ecc5656e246a8f272e0b07cb8df5efaeaf25e

Contents?: true

Size: 988 Bytes

Versions: 6

Compression:

Stored size: 988 Bytes

Contents

require "word-to-markdown"
require "coradoc/input/html"
require "fileutils"

module Coradoc
  module Input::Docx
    def self.processor_id
      :docx
    end

    def self.processor_match?(filename)
      %w[.docx .doc].any? { |i| filename.downcase.end_with?(i) }
    end

    def self.processor_execute(input, options = {})
      image_dir = Dir.mktmpdir
      options = options.merge(sourcedir: image_dir)
      doc = WordToMarkdown.new(input, image_dir)
      doc = Coradoc::Input::HTML.cleaner.preprocess_word_html(doc.document.html)
      options = WordToMarkdown::REVERSE_MARKDOWN_OPTIONS.merge(options)
      Coradoc::Input::HTML.to_coradoc(doc, options)
    ensure
      FileUtils.rm_rf(image_dir)
    end

    def self.processor_postprocess(data, options)
      Coradoc::Input::HTML.processor_postprocess(data, options)
    end

    # This processor prefers to work on original files.
    def self.processor_wants_filenames; true; end

    Coradoc::Input.define(self)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
coradoc-1.1.6 lib/coradoc/input/docx.rb
coradoc-1.1.5 lib/coradoc/input/docx.rb
coradoc-1.1.4 lib/coradoc/input/docx.rb
coradoc-1.1.3 lib/coradoc/input/docx.rb
coradoc-1.1.2 lib/coradoc/input/docx.rb
coradoc-1.1.1 lib/coradoc/input/docx.rb