abstract class Luce::InlineSyntax

Overview

Represents one kind of Markdown tag that can be parsed.

Direct Known Subclasses

Defined in:

luce/inline_syntaxes/inline_syntax.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(pattern : String, start_character : Int32 | Nil = nil, case_sensitive : Bool = true) #

Creates a new InlineSyntax which matches text on pattern.

If start_character is passed, it is used as a pre-matching check which is faster than matching against pattern.

If case_sensitive is disabled, then case is ignored when matching the pattern.


Instance Method Detail

def matches?(parser : InlineParser, start_match_pos : Int32 | Nil = nil) : Bool #

Tries to match at the parser's current position.

The parser's position can be overriden with start_match_pos. Return whether or not the pattern successfully matched.


abstract def on_match(parser : InlineParser, match : Regex::MatchData) : Bool #

Processes match, adding nodes to parser and possibly advancing parser.

Will return whether the caller should advance parser by match[0].size.


def pattern : Regex #