Class: Markly::Merge::Backend::Language

Inherits:
TreeHaver::Base::Language
  • Object
show all
Defined in:
lib/markly/merge/backend.rb

Overview

Markly language wrapper

Markly only parses Markdown. This class exists for API compatibility and to pass through Markly-specific options (flags, extensions).

Examples:

language = Markly::Merge::Backend::Language.markdown(
  flags: Markly::DEFAULT | Markly::FOOTNOTES,
  extensions: [:table, :strikethrough]
)
parser.language = language

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = :markdown, flags: nil, extensions: [:table], options: {}) ⇒ Language

Create a new Markly language instance

Parameters:

  • name (Symbol) (defaults to: :markdown)

    Language name (should be :markdown)

  • flags (Integer) (defaults to: nil)

    Markly parse flags (default: Markly::DEFAULT)

  • extensions (Array<Symbol>) (defaults to: [:table])

    Extensions to enable (default: [:table])

  • options (Hash) (defaults to: {})

    parsing options (reserved for future use)

Raises:

  • (TreeHaver::NotAvailable)


59
60
61
62
63
64
65
66
67
68
69
# File 'lib/markly/merge/backend.rb', line 59

def initialize(name = :markdown, flags: nil, extensions: [:table], options: {})
  super(name, backend: :markly, options: options.merge({ flags: flags, extensions: extensions }))
  @flags = flags # Will use Markly::DEFAULT if nil at parse time
  @extensions = extensions

  return if @name == :markdown

  raise TreeHaver::NotAvailable,
        'Markly backend only supports Markdown parsing. ' \
          "Got language: #{name.inspect}"
end

Instance Attribute Details

#extensionsArray<Symbol> (readonly)

Markly extensions to enable

Returns:

  • (Array<Symbol>)


51
52
53
# File 'lib/markly/merge/backend.rb', line 51

def extensions
  @extensions
end

#flagsInteger (readonly)

Markly parse flags

Returns:

  • (Integer)


47
48
49
# File 'lib/markly/merge/backend.rb', line 47

def flags
  @flags
end

Class Method Details

.markdown(flags: nil, extensions: [:table], options: {}) ⇒ Language

Create a Markdown language instance

Parameters:

  • flags (Integer) (defaults to: nil)

    Markly parse flags

  • extensions (Array<Symbol>) (defaults to: [:table])

    Extensions to enable

  • options (Hash) (defaults to: {})

    parsing options (reserved for future use)

Returns:



78
79
80
# File 'lib/markly/merge/backend.rb', line 78

def markdown(flags: nil, extensions: [:table], options: {})
  new(:markdown, flags: flags, extensions: extensions, options: options)
end