module MaRuKu::In::Markdown

Constants

BlockExtensions

Hash Regexp -> Block

SpanExtensions

Hash String -> Extension

SpanExtensionsTrigger

Hash Fixnum -> name

Public Class Methods

register_block_extension(args) click to toggle source
# File lib/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) click to toggle source
# File lib/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

Public Instance Methods

any_matching_block_extension?(line) click to toggle source
# File lib/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) click to toggle source
# File lib/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 # not special
end
check_span_extensions(src, con) click to toggle source
# File lib/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 # not special
end