Class: Coradoc::Markdown::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/coradoc/markdown/serializer.rb,
lib/coradoc/markdown/serializer/config.rb,
lib/coradoc/markdown/serializer/flavor.rb,
lib/coradoc/markdown/serializer/runner.rb,
lib/coradoc/markdown/serializer/builder.rb,
lib/coradoc/markdown/serializer/context.rb,
lib/coradoc/markdown/serializer/registry.rb,
lib/coradoc/markdown/serializer/registrations.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/serializer/serializers/image.rb,
lib/coradoc/markdown/serializer/serializers/table.rb,
lib/coradoc/markdown/serializer/serializers/verse.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/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

Serializer for Markdown Document models.

Two equivalent entry points:

# Build a configured runner (preferred for non-default options)
Serializer.build(:gfm) do |config|
  config.admonition_style = :container
  config.suppress_comments = false
end.call(element)

# One-shot with overrides
Serializer.call(element, markdown_flavor: :vitepress)

The legacy ‘serialize(element, options = {})` class method is kept as a thin alias for `call` so existing callers don’t break.

Defined Under Namespace

Modules: Flavor, Registrations, Serializers, Strategies Classes: Builder, Config, Context, ElementSerializer, Registry, Runner

Class Method Summary collapse

Class Method Details

.build(flavor = Flavor::DEFAULT_FLAVOR, &block) ⇒ Object



25
26
27
28
29
# File 'lib/coradoc/markdown/serializer.rb', line 25

def build(flavor = Flavor::DEFAULT_FLAVOR, &block)
  builder = Builder.new(flavor)
  block&.call(builder)
  builder.runner
end

.call(element, **options) ⇒ Object



31
32
33
34
# File 'lib/coradoc/markdown/serializer.rb', line 31

def call(element, **options)
  flavor = options.delete(:markdown_flavor) || options.delete(:flavor) || Flavor::DEFAULT_FLAVOR
  Builder.new(flavor).apply(options).call(element)
end

.newObject

Raises:

  • (NoMethodError)


40
41
42
43
44
# File 'lib/coradoc/markdown/serializer.rb', line 40

def new(*)
  raise NoMethodError,
        'Coradoc::Markdown::Serializer is no longer instantiable. ' \
        'Use Serializer.build(:gfm) or Serializer.call(element).'
end

.serialize(element, options = {}) ⇒ Object



36
37
38
# File 'lib/coradoc/markdown/serializer.rb', line 36

def serialize(element, options = {})
  call(element, **options)
end