Module: Markdownator

Defined in:
lib/markdownator.rb,
lib/markdownator/engine.rb,
lib/markdownator/errors.rb,
lib/markdownator/result.rb,
lib/markdownator/version.rb,
lib/markdownator/stream_info.rb,
lib/markdownator/converters/csv.rb,
lib/markdownator/converters/pdf.rb,
lib/markdownator/converters/xml.rb,
lib/markdownator/converters/zip.rb,
lib/markdownator/converters/base.rb,
lib/markdownator/converters/docx.rb,
lib/markdownator/converters/epub.rb,
lib/markdownator/converters/html.rb,
lib/markdownator/converters/json.rb,
lib/markdownator/converters/pptx.rb,
lib/markdownator/converters/xlsx.rb,
lib/markdownator/converters/image.rb,
lib/markdownator/converters/plain_text.rb

Overview

Convert assorted file formats (Office docs, PDF, HTML, structured data, archives, images) into LLM-friendly Markdown.

Defined Under Namespace

Modules: Converters Classes: Engine, Error, FileConversionError, MissingDependencyError, Result, StreamInfo, UnsupportedFormatError

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.convert(source, **options) ⇒ Markdownator::Result

Convert a local path, http(s) URL, or open IO stream to Markdown.



28
29
30
# File 'lib/markdownator.rb', line 28

def convert(source, **options)
  default_engine.convert(source, **options)
end

.convert_local(path, **options) ⇒ Object

Convert a local file path to Markdown.



33
34
35
# File 'lib/markdownator.rb', line 33

def convert_local(path, **options)
  default_engine.convert_local(path, **options)
end

.convert_stream(io, stream_info = nil, **options) ⇒ Object

Convert an open IO stream to Markdown. ‘stream_info` supplies format hints.



38
39
40
# File 'lib/markdownator.rb', line 38

def convert_stream(io, stream_info = nil, **options)
  default_engine.convert_stream(io, stream_info, **options)
end

.require_optional(gem_name, feature:) ⇒ Object

Lazily require an optional gem, raising a helpful error if it is missing.



43
44
45
46
47
48
# File 'lib/markdownator.rb', line 43

def require_optional(gem_name, feature:)
  require gem_name
rescue LoadError
  raise MissingDependencyError,
        "#{feature} requires the '#{gem_name}' gem. Add it to your Gemfile: gem \"#{gem_name}\""
end