Module: Coradoc::Markdown

Defined in:
lib/coradoc/markdown.rb,
lib/coradoc/markdown/errors.rb,
lib/coradoc/markdown/parser.rb,
lib/coradoc/markdown/version.rb,
lib/coradoc/markdown/model/base.rb,
lib/coradoc/markdown/model/code.rb,
lib/coradoc/markdown/model/link.rb,
lib/coradoc/markdown/model/list.rb,
lib/coradoc/markdown/model/math.rb,
lib/coradoc/markdown/model/text.rb,
lib/coradoc/markdown/serializer.rb,
lib/coradoc/markdown/model/image.rb,
lib/coradoc/markdown/model/table.rb,
lib/coradoc/markdown/parser_util.rb,
lib/coradoc/markdown/transformer.rb,
lib/coradoc/markdown/model/strong.rb,
lib/coradoc/markdown/model/heading.rb,
lib/coradoc/markdown/toc_generator.rb,
lib/coradoc/markdown/model/document.rb,
lib/coradoc/markdown/model/emphasis.rb,
lib/coradoc/markdown/model/footnote.rb,
lib/coradoc/markdown/model/extension.rb,
lib/coradoc/markdown/model/highlight.rb,
lib/coradoc/markdown/model/list_item.rb,
lib/coradoc/markdown/model/paragraph.rb,
lib/coradoc/markdown/model/blockquote.rb,
lib/coradoc/markdown/model/code_block.rb,
lib/coradoc/markdown/model/abbreviation.rb,
lib/coradoc/markdown/model/strikethrough.rb,
lib/coradoc/markdown/parser/block_parser.rb,
lib/coradoc/markdown/model/attribute_list.rb,
lib/coradoc/markdown/parser/ast_processor.rb,
lib/coradoc/markdown/parser/html_entities.rb,
lib/coradoc/markdown/parser/inline_parser.rb,
lib/coradoc/markdown/model/definition_item.rb,
lib/coradoc/markdown/model/definition_list.rb,
lib/coradoc/markdown/model/definition_term.rb,
lib/coradoc/markdown/model/horizontal_rule.rb,
lib/coradoc/markdown/parser/parslet_extras.rb,
lib/coradoc/markdown/transform/to_core_model.rb,
lib/coradoc/markdown/model/footnote_reference.rb,
lib/coradoc/markdown/transform/from_core_model.rb,
lib/coradoc/markdown/transform/text_extraction.rb

Defined Under Namespace

Modules: Errors, Model, Parser, ParserUtil, Transform Classes: Abbreviation, AttributeList, Base, Blockquote, Code, CodeBlock, DefinitionItem, DefinitionList, DefinitionTerm, Document, Emphasis, Extension, Footnote, FootnoteReference, Heading, Highlight, HorizontalRule, Image, Link, List, ListItem, Math, Paragraph, Serializer, Strikethrough, Strong, Table, Text, TocGenerator, Transformer

Constant Summary collapse

VERSION =
'1.0.0'

Class Method Summary collapse

Class Method Details

.AttributeListObject

Access AttributeList class



89
90
91
# File 'lib/coradoc/markdown.rb', line 89

def AttributeList
  @AttributeList ||= const_get(:AttributeList)
end

.ExtensionObject

Access Extension class



99
100
101
# File 'lib/coradoc/markdown.rb', line 99

def Extension
  @Extension ||= const_get(:Extension)
end

.from_core_model(core_document) ⇒ Coradoc::Markdown::Document

Transform CoreModel to Markdown model

Parameters:

  • core_document (Coradoc::CoreModel::StructuralElement)

    The CoreModel document

Returns:



180
181
182
# File 'lib/coradoc/markdown.rb', line 180

def from_core_model(core_document)
  Transform::FromCoreModel.transform(core_document)
end

.from_file(filename, **options) ⇒ Array

Parse Markdown from a file

Parameters:

  • filename (String)

    Path to the Markdown file

  • options (Hash)

    Parsing options (see #parse)

Returns:

  • (Array)

    The parsed AST



128
129
130
131
# File 'lib/coradoc/markdown.rb', line 128

def from_file(filename, **options)
  content = File.read(filename)
  parse(content, **options)
end

.handles_model?(model) ⇒ Boolean

Check if this format can transform the given model to CoreModel

Parameters:

  • model (Object)

    The model to check

Returns:

  • (Boolean)

    true if this format handles the model type



154
155
156
# File 'lib/coradoc/markdown.rb', line 154

def handles_model?(model)
  model.is_a?(Coradoc::Markdown::Base)
end

.MathObject

Access Math class



94
95
96
# File 'lib/coradoc/markdown.rb', line 94

def Math
  @Math ||= const_get(:Math)
end

.parse(content, _options = {}) ⇒ Coradoc::Markdown::Document

Parse Markdown content into a Document model

Parameters:

  • content (String)

    The Markdown content to parse

  • options (Hash)

    Parsing options

Returns:



110
111
112
113
# File 'lib/coradoc/markdown.rb', line 110

def parse(content, _options = {})
  ast = Parser::BlockParser.new.parse(content)
  Transformer.transform_document(ast)
end

.parse_ast(content) ⇒ Array

Parse raw AST (for debugging)

Parameters:

  • content (String)

    The Markdown content to parse

Returns:

  • (Array)

    The raw AST



119
120
121
# File 'lib/coradoc/markdown.rb', line 119

def parse_ast(content)
  Parser::BlockParser.new.parse(content)
end

.parse_inline(content) ⇒ Array

Parse inline Markdown content

Parameters:

  • content (String)

    The inline Markdown content to parse

Returns:

  • (Array)

    The parsed inline elements



137
138
139
# File 'lib/coradoc/markdown.rb', line 137

def parse_inline(content)
  Parser::InlineParser.new.parse(content)
end

.parse_to_core(content) ⇒ Coradoc::CoreModel::StructuralElement

Parse and transform to CoreModel in one step

Parameters:

  • content (String)

    The Markdown content

Returns:

  • (Coradoc::CoreModel::StructuralElement)

    The CoreModel document



171
172
173
174
# File 'lib/coradoc/markdown.rb', line 171

def parse_to_core(content)
  doc = parse(content)
  to_core_model(doc)
end

.serialize(document, options = {}) ⇒ String

Serialize a document model to Markdown string

Parameters:

Returns:

  • (String)

    The Markdown output



146
147
148
# File 'lib/coradoc/markdown.rb', line 146

def serialize(document, options = {})
  Serializer.serialize(document, options)
end

.to_core_model(document) ⇒ Coradoc::CoreModel::StructuralElement Also known as: to_core

Transform Markdown model to CoreModel

Parameters:

Returns:

  • (Coradoc::CoreModel::StructuralElement)

    The CoreModel document



162
163
164
# File 'lib/coradoc/markdown.rb', line 162

def to_core_model(document)
  Transform::ToCoreModel.transform(document)
end