Class: Markly::Merge::Backend::Parser
- Inherits:
-
TreeHaver::Base::Parser
- Object
- TreeHaver::Base::Parser
- Markly::Merge::Backend::Parser
- Defined in:
- lib/markly/merge/backend.rb
Overview
Markly parser wrapper
Instance Method Summary collapse
-
#initialize ⇒ Parser
constructor
Create a new RBS parser instance.
-
#language=(lang) ⇒ void
Set the language for this parser.
-
#parse(source) ⇒ Tree
Parse Markdown source code.
Constructor Details
Instance Method Details
#language=(lang) ⇒ void
This method returns an undefined value.
Set the language for this parser
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/markly/merge/backend.rb', line 115 def language=(lang) case lang when Language @language = lang when Symbol, String if lang.to_sym == :markdown @language = Language.markdown else raise ArgumentError, "Markly backend only supports Markdown parsing. Got: #{lang.inspect}" end else raise ArgumentError, "Expected Backend::Language or :markdown, got #{lang.class}" end end |
#parse(source) ⇒ Tree
Parse Markdown source code
136 137 138 139 140 141 142 143 144 |
# File 'lib/markly/merge/backend.rb', line 136 def parse(source) raise "Language not set" unless language Backend.available? or raise "Markly not available" flags = language.flags || ::Markly::DEFAULT exts = language.extensions || [:table] doc = ::Markly.parse(source, flags: flags, extensions: exts) Tree.new(doc, source) end |