Module: MaRuKu::In::Markdown
- Included in:
- MDDocument
- Defined in:
- lib/amp-front/third_party/maruku.rb,
lib/amp-front/third_party/maruku/attributes.rb,
lib/amp-front/third_party/maruku/input/parse_doc.rb,
lib/amp-front/third_party/maruku/input/rubypants.rb,
lib/amp-front/third_party/maruku/input/charsource.rb,
lib/amp-front/third_party/maruku/input/extensions.rb,
lib/amp-front/third_party/maruku/input/linesource.rb,
lib/amp-front/third_party/maruku/input/html_helper.rb,
lib/amp-front/third_party/maruku/input/parse_block.rb,
lib/amp-front/third_party/maruku/input/parse_span_better.rb
Defined Under Namespace
Modules: BlockLevelParser, SpanLevelParser
Classes: SpanExtension
Constant Summary
collapse
- SpanExtensionsTrigger =
{}
- SpanExtensions =
{}
- BlockExtensions =
{}
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.register_block_extension(args) ⇒ Object
42
43
44
45
|
# File 'lib/amp-front/third_party/maruku/input/extensions.rb', line 42
def self.register_block_extension(args)
regexp = args[:regexp]
BlockExtensions[regexp] = (args[:handler] || raise("No blocks passed"))
end
|
.register_span_extension(args) ⇒ Object
32
33
34
35
36
37
38
39
40
|
# File 'lib/amp-front/third_party/maruku/input/extensions.rb', line 32
def self.register_span_extension(args)
e = SpanExtension.new
e.chars = [*args[:chars]]
e.regexp = args[:regexp]
e.block = args[:handler] || raise("No blocks passed")
e.chars.each do |c|
(SpanExtensionsTrigger[c] ||= []).push e
end
end
|
Instance Method Details
#any_matching_block_extension?(line) ⇒ Boolean
61
62
63
64
65
66
67
|
# File 'lib/amp-front/third_party/maruku/input/extensions.rb', line 61
def any_matching_block_extension?(line)
BlockExtensions.each_key do |reg|
m = reg.match(line)
return m if m
end
return false
end
|
#check_block_extensions(src, con, line) ⇒ Object
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/amp-front/third_party/maruku/input/extensions.rb', line 50
def check_block_extensions(src, con, line)
BlockExtensions.each do |reg, block|
if m = reg.match(line)
block = BlockExtensions[reg]
accepted = block.call(doc, src, con)
return true if accepted
end
end
return false end
|
#check_span_extensions(src, con) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/amp-front/third_party/maruku/input/extensions.rb', line 20
def check_span_extensions(src, con)
c = src.cur_char
if extensions = SpanExtensionsTrigger[c]
extensions.each do |e|
if e.regexp && (match = src.next_matches(e.regexp))
return true if e.block.call(doc, src, con)
end
end
end
return false end
|