module Markd::Rule
Direct including types
- Markd::Rule::BlockQuote
- Markd::Rule::CodeBlock
- Markd::Rule::Document
- Markd::Rule::Heading
- Markd::Rule::HTMLBlock
- Markd::Rule::Item
- Markd::Rule::List
- Markd::Rule::Paragraph
- Markd::Rule::ThematicBreak
Defined in:
markd/rule.crmarkd/rules/block_quote.cr
markd/rules/code_block.cr
markd/rules/document.cr
markd/rules/heading.cr
markd/rules/html_block.cr
markd/rules/item.cr
markd/rules/list.cr
markd/rules/paragraph.cr
markd/rules/thematic_break.cr
Constant Summary
-
ATTRIBUTE =
((("(?:" + "\\s+") + ATTRIBUTE_NAME_STRING) + ATTRIBUTE_VALUE_SPEC_STRING) + "?)" -
ATTRIBUTE_NAME_STRING =
"[a-zA-Z_:][a-zA-Z0-9:._-]*" -
ATTRIBUTE_VALUE_SPEC_STRING =
((("(?:" + "\\s*=") + "\\s*") + ATTRIBUTE_VALUE_STRING) + ")" -
ATTRIBUTE_VALUE_STRING =
((((("(?:" + UNQUOTED_VALUE_STRING) + "|") + SINGLE_QUOTED_VALUE_STRING) + "|") + DOUBLE_QUOTED_VALUE_STRING) + ")" -
AUTO_LINK =
/^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i -
CDATA_STRING =
"<!\\[CDATA\\[[\\s\\S]*?\\]\\]>" -
CLOSE_TAG =
("</" + TAG_NAME_STRING) + "\\s*[>]" -
CLOSE_TAG_STRING =
"</#{TAG_NAME_STRING}\\s*[>]" -
CODE_INDENT =
4 -
COMMENT_STRING =
"<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->" -
DASH =
/--+/ -
DECLARATION_STRING =
"<![A-Z]+" + "\\s+[^>]*>" -
DOUBLE_QUOTED_VALUE_STRING =
"\"[^\"]*\"" -
ELLIPSIS =
"..." -
EMAIL_AUTO_LINK =
/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/ -
ESCAPABLE =
/^#{ESCAPABLE_STRING}/ -
ESCAPABLE_STRING =
"[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]" -
ESCAPED_CHAR_STRING =
"\\\\" + ESCAPABLE_STRING -
HTML_BLOCK_CLOSE =
[/<\/(?:script|pre|style)>/i, /-->/, /\?>/, />/, /\]\]>/] -
HTML_BLOCK_OPEN =
[/^<(?:script|pre|style)(?:\s|>|$)/i, /^<!--/, /^<[?]/, /^<![A-Z]/, /^<!\[CDATA\[/, /^<[\/]?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[123456]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|title|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|[\/]?[>]|$)/i, Regex.new(((("^(?:" + OPEN_TAG) + "|") + CLOSE_TAG) + ")\\s*$", Regex::Options::IGNORE_CASE)] -
HTML_TAG =
/^#{HTML_TAG_STRING}/i -
HTML_TAG_STRING =
"(?:#{OPEN_TAG_STRING}|#{CLOSE_TAG_STRING}|#{COMMENT_STRING}|#{PROCESSING_INSTRUCTION_STRING}|#{DECLARATION_STRING}|#{CDATA_STRING})" -
LINE_ENDING =
/\n|\x0d|\x0d\n/ -
LINK_DESTINATION_BRACES =
Regex.new(("^(?:[<](?:[^<>\\t\\n\\\\\\x00]|" + ESCAPED_CHAR_STRING) + ")*[>])") -
LINK_LABEL =
Regex.new(("^\\[(?:[^\\\\\\[\\]]|" + ESCAPED_CHAR_STRING) + "|\\\\){0,}\\]") -
LINK_TITLE =
Regex.new(("^(?:\"(#{ESCAPED_CHAR_STRING}|[^\"\\x00])*\"" + "|'(#{ESCAPED_CHAR_STRING}|[^'\\x00])*'") + "|\\((#{ESCAPED_CHAR_STRING}|[^)\\x00])*\\))") -
MAYBE_SPECIAL =
{'#', '`', '~', '*', '+', '_', '=', '<', '>', '-'} -
NUMERIC_HTML_ENTITY =
/^&#(?:[Xx][0-9a-fA-F]{1,6}|[0-9]{1,7});/ -
OPEN_TAG =
((("<" + TAG_NAME_STRING) + ATTRIBUTE) + "*") + "\\s*/?>" -
OPEN_TAG_STRING =
"<#{TAG_NAME_STRING}#{ATTRIBUTE}*" + "\\s*/?>" -
PROCESSING_INSTRUCTION_STRING =
"[<][?].*?[?][>]" -
PUNCTUATION =
/[$+<=>^`|~\p{P}]/ -
SINGLE_QUOTED_VALUE_STRING =
"'[^']*'" -
TAG_NAME_STRING =
"[A-Za-z][A-Za-z0-9-]*" -
THEMATIC_BREAK =
/^(?:(?:\*[ \t]*){3,}|(?:_[ \t]*){3,}|(?:-[ \t]*){3,})[ \t]*$/ -
TICKS =
/`+/ -
UNQUOTED_VALUE_STRING =
"[^\"'=<>`\\x00-\\x20]+" -
UNSAFE_DATA_PROTOCOL =
/^data:image\/(?:png|gif|jpeg|webp)/i -
UNSAFE_PROTOCOL =
/^javascript:|vbscript:|file:|data:/i -
WHITESPACE =
/[ \t\n\x0b\x0c\x0d]+/ -
WHITESPACE_CHAR =
/^[ \t\n\x0b\x0c\x0d]/
Instance Method Summary
-
#accepts_lines? : Bool
accepts_line
-
#continue(parser : Parser, container : Node) : ContinueStatus
continue
-
#match(parser : Parser, container : Node) : MatchValue
match and parse
-
#token(parser : Parser, container : Node) : Nil
token finalize