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/pass.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/model/verse.rb,
lib/coradoc/markdown/parser_util.rb,
lib/coradoc/markdown/transformer.rb,
lib/coradoc/markdown/model/strong.rb,
lib/coradoc/markdown/model/comment.rb,
lib/coradoc/markdown/model/heading.rb,
lib/coradoc/markdown/model/literal.rb,
lib/coradoc/markdown/model/sidebar.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/subscript.rb,
lib/coradoc/markdown/model/underline.rb,
lib/coradoc/markdown/model/admonition.rb,
lib/coradoc/markdown/model/blockquote.rb,
lib/coradoc/markdown/model/code_block.rb,
lib/coradoc/markdown/model/open_block.rb,
lib/coradoc/markdown/model/named_value.rb,
lib/coradoc/markdown/model/superscript.rb,
lib/coradoc/markdown/serializer/config.rb,
lib/coradoc/markdown/serializer/flavor.rb,
lib/coradoc/markdown/serializer/runner.rb,
lib/coradoc/markdown/model/abbreviation.rb,
lib/coradoc/markdown/serializer/builder.rb,
lib/coradoc/markdown/serializer/context.rb,
lib/coradoc/markdown/model/example_block.rb,
lib/coradoc/markdown/model/strikethrough.rb,
lib/coradoc/markdown/parser/block_parser.rb,
lib/coradoc/markdown/serializer/registry.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/cross_reference.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/hard_line_break.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/serializer/registrations.rb,
lib/coradoc/markdown/parser/frontmatter_parser.rb,
lib/coradoc/markdown/transform/from_core_model.rb,
lib/coradoc/markdown/transform/text_extraction.rb,
lib/coradoc/markdown/transform/list_transformer.rb,
lib/coradoc/markdown/serializer/serializers/code.rb,
lib/coradoc/markdown/serializer/serializers/link.rb,
lib/coradoc/markdown/serializer/serializers/list.rb,
lib/coradoc/markdown/serializer/serializers/math.rb,
lib/coradoc/markdown/serializer/serializers/pass.rb,
lib/coradoc/markdown/transform/block_transformer.rb,
lib/coradoc/markdown/transform/image_transformer.rb,
lib/coradoc/markdown/transform/table_transformer.rb,
lib/coradoc/markdown/serializer/serializers/image.rb,
lib/coradoc/markdown/serializer/serializers/table.rb,
lib/coradoc/markdown/serializer/serializers/verse.rb,
lib/coradoc/markdown/transform/inline_transformer.rb,
lib/coradoc/markdown/serializer/element_serializer.rb,
lib/coradoc/markdown/serializer/serializers/strong.rb,
lib/coradoc/markdown/serializer/serializers/comment.rb,
lib/coradoc/markdown/serializer/serializers/heading.rb,
lib/coradoc/markdown/serializer/serializers/literal.rb,
lib/coradoc/markdown/serializer/serializers/sidebar.rb,
lib/coradoc/markdown/serializer/serializers/document.rb,
lib/coradoc/markdown/serializer/serializers/emphasis.rb,
lib/coradoc/markdown/serializer/serializers/footnote.rb,
lib/coradoc/markdown/serializer/serializers/extension.rb,
lib/coradoc/markdown/serializer/serializers/highlight.rb,
lib/coradoc/markdown/serializer/serializers/paragraph.rb,
lib/coradoc/markdown/serializer/serializers/subscript.rb,
lib/coradoc/markdown/serializer/serializers/underline.rb,
lib/coradoc/markdown/transform/structural_transformer.rb,
lib/coradoc/markdown/serializer/serializers/admonition.rb,
lib/coradoc/markdown/serializer/serializers/blockquote.rb,
lib/coradoc/markdown/serializer/serializers/code_block.rb,
lib/coradoc/markdown/serializer/serializers/open_block.rb,
lib/coradoc/markdown/serializer/serializers/superscript.rb,
lib/coradoc/markdown/serializer/serializers/abbreviation.rb,
lib/coradoc/markdown/serializer/strategies/autolink/bare.rb,
lib/coradoc/markdown/serializer/strategies/autolink/base.rb,
lib/coradoc/markdown/serializer/strategies/autolink/none.rb,
lib/coradoc/markdown/serializer/serializers/example_block.rb,
lib/coradoc/markdown/serializer/serializers/strikethrough.rb,
lib/coradoc/markdown/serializer/strategies/autolink/angle.rb,
lib/coradoc/markdown/serializer/serializers/attribute_list.rb,
lib/coradoc/markdown/serializer/strategies/admonition/base.rb,
lib/coradoc/markdown/serializer/strategies/admonition/html.rb,
lib/coradoc/markdown/serializer/serializers/cross_reference.rb,
lib/coradoc/markdown/serializer/serializers/definition_list.rb,
lib/coradoc/markdown/serializer/serializers/hard_line_break.rb,
lib/coradoc/markdown/serializer/serializers/horizontal_rule.rb,
lib/coradoc/markdown/serializer/strategies/admonition/github.rb,
lib/coradoc/markdown/serializer/strategies/autolink/registry.rb,
lib/coradoc/markdown/serializer/serializers/footnote_reference.rb,
lib/coradoc/markdown/serializer/strategies/admonition/registry.rb,
lib/coradoc/markdown/serializer/strategies/admonition/container.rb,
lib/coradoc/markdown/serializer/strategies/admonition/gfm_alert.rb,
lib/coradoc/markdown/serializer/strategies/definition_list/base.rb,
lib/coradoc/markdown/serializer/strategies/definition_list/flat.rb,
lib/coradoc/markdown/serializer/strategies/definition_list/registry.rb,
lib/coradoc/markdown/serializer/strategies/definition_list/nested_html.rb
Overview
Markdown document model, parser, and serializer.
Defined Under Namespace
Modules: Errors, Parser, ParserUtil, Transform Classes: Abbreviation, Admonition, AttributeList, Base, Blockquote, Code, CodeBlock, Comment, CrossReference, DefinitionItem, DefinitionList, DefinitionTerm, Document, Emphasis, ExampleBlock, Extension, Footnote, FootnoteReference, HardLineBreak, Heading, Highlight, HorizontalRule, Image, Link, List, ListItem, Literal, Math, NamedValue, OpenBlock, Paragraph, Pass, Serializer, Sidebar, Strikethrough, Strong, Subscript, Superscript, Table, Text, TocGenerator, Transformer, Underline, Verse
Constant Summary collapse
- VERSION =
'1.0.3'
Class Method Summary collapse
-
.from_core_model(core_document) ⇒ Coradoc::Markdown::Document
Transform CoreModel to Markdown model.
-
.from_file(filename, **options) ⇒ Array
Parse Markdown from a file.
-
.handles_model?(model) ⇒ Boolean
Check if this format can transform the given model to CoreModel.
-
.parse(content, _options = {}) ⇒ Coradoc::Markdown::Document
Parse Markdown content into a Document model.
-
.parse_ast(content) ⇒ Array
Parse raw AST (for debugging).
-
.parse_inline(content) ⇒ Array
Parse inline Markdown content.
-
.parse_to_core(content) ⇒ Coradoc::CoreModel::StructuralElement
Parse and transform to CoreModel in one step.
-
.serialize(document, options = {}) ⇒ String
Serialize a document model to Markdown string.
-
.to_core_model(document) ⇒ Coradoc::CoreModel::StructuralElement
(also: to_core)
Transform Markdown model to CoreModel.
Class Method Details
.from_core_model(core_document) ⇒ Coradoc::Markdown::Document
Transform CoreModel to Markdown model
183 184 185 |
# File 'lib/coradoc/markdown.rb', line 183 def from_core_model(core_document) Transform::FromCoreModel.transform(core_document) end |
.from_file(filename, **options) ⇒ Array
Parse Markdown from a file
130 131 132 133 |
# File 'lib/coradoc/markdown.rb', line 130 def from_file(filename, **) content = File.read(filename) parse(content, **) end |
.handles_model?(model) ⇒ Boolean
Check if this format can transform the given model to CoreModel
157 158 159 |
# File 'lib/coradoc/markdown.rb', line 157 def handles_model?(model) model.is_a?(Coradoc::Markdown::Base) end |
.parse(content, _options = {}) ⇒ Coradoc::Markdown::Document
Parse Markdown content into a Document model
109 110 111 112 113 114 115 |
# File 'lib/coradoc/markdown.rb', line 109 def parse(content, = {}) split = Parser::FrontmatterParser.call(content) ast = Parser::BlockParser.new.parse(split.body) doc = Transformer.transform_document(ast) doc.frontmatter = split.frontmatter if split.frontmatter? doc end |
.parse_ast(content) ⇒ Array
Parse raw AST (for debugging)
121 122 123 |
# File 'lib/coradoc/markdown.rb', line 121 def parse_ast(content) Parser::BlockParser.new.parse(content) end |
.parse_inline(content) ⇒ Array
Parse inline Markdown content
139 140 141 |
# File 'lib/coradoc/markdown.rb', line 139 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
174 175 176 177 |
# File 'lib/coradoc/markdown.rb', line 174 def parse_to_core(content) doc = parse(content) to_core_model(doc) end |
.serialize(document, options = {}) ⇒ String
Serialize a document model to Markdown string
148 149 150 151 |
# File 'lib/coradoc/markdown.rb', line 148 def serialize(document, = {}) document = Transform::FromCoreModel.transform(document) if document.is_a?(Coradoc::CoreModel::Base) Serializer.serialize(document, ) end |
.to_core_model(document) ⇒ Coradoc::CoreModel::StructuralElement Also known as: to_core
Transform Markdown model to CoreModel
165 166 167 |
# File 'lib/coradoc/markdown.rb', line 165 def to_core_model(document) Transform::ToCoreModel.transform(document) end |