module MaRuKu::In::Markdown
Constants
- BlockExtensions
-
Hash Regexp -> Block
- SpanExtensions
-
Hash
String
-> Extension - SpanExtensionsTrigger
-
Hash Fixnum -> name
Public Class Methods
Source
# File lib/maruku/input/extensions.rb, line 41 def self.register_block_extension(args) regexp = args[:regexp] BlockExtensions[regexp] = (args[:handler] || raise("No blocks passed")) end
Source
# File lib/maruku/input/extensions.rb, line 31 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
Public Instance Methods
Source
# File lib/maruku/input/extensions.rb, line 60 def any_matching_block_extension?(line) BlockExtensions.each_key do |reg| m = reg.match(line) return m if m end false end
Source
# File lib/maruku/input/extensions.rb, line 49 def check_block_extensions(src, con, line) BlockExtensions.each do |reg, block| if reg.match(line) block = BlockExtensions[reg] accepted = block.call(doc, src, con) return true if accepted end end false # not special end
Source
# File lib/maruku/input/extensions.rb, line 18 def check_span_extensions(src, con) c = src.cur_char if extensions = SpanExtensionsTrigger[c] extensions.each do |e| if e.regexp && src.next_matches(e.regexp) return true if e.block.call(doc, src, con) end end end false # not special end