Sha256: 66e90f21095b8fb885369610ef01acf56ca8172f21920097e025e8b6c35df63b
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true require "doc2text" require "tempfile" module Decidim module Proposals # This class parses a participatory text document in markdown and # produces Proposals in the form of sections and articles. # # This implementation uses Redcarpet Base renderer. # Redcarpet::Render::Base performs a callback for every block it finds, what MarkdownToProposals # does is to implement callbacks for the blocks which it is interested in performing some actions. # class DocToMarkdown MARKDOWN_MIME_TYPE = "text/markdown" ODT_MIME_TYPE = "application/vnd.oasis.opendocument.text" DOCX_MIME_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" # Public: Initializes the serializer with a proposal. def initialize(doc, mime_type) @doc = doc @transformer = case mime_type # when MARKDOWN_MIME_TYPE # no transformer required when ODT_MIME_TYPE # convert libreoffice odt to markdown OdtToMarkdown.new(doc) when DOCX_MIME_TYPE # convert word 2013 docx to markdown DocxToMarkdown.new(doc) end end def to_md @transformer ? @transformer.to_md : @doc end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-proposals-0.16.1 | lib/decidim/proposals/doc_to_markdown.rb |
decidim-proposals-0.16.0 | lib/decidim/proposals/doc_to_markdown.rb |