module
Crst::Escaper
Defined in:
crst/escaper.crConstant Summary
-
ESCAPE_MAP =
{"\\_" => "\uE003", "\\[" => "\uE004", "\\]" => "\uE005", "\\|" => "\uE006", "\\:" => "\uE007", "\\-" => "\uE008", "\\+" => "\uE009", "\\/" => "\uE00A", "\\." => "\uE00B", "\\?" => "\uE00C", "\\!" => "\uE00D"} -
Mapping of escaped characters to Unicode placeholders Uses Unicode Private Use Area (U+E000-U+F8FF)
-
UNESCAPE_MAP =
{"\uE001" => "*", "\uE002" => "`", "\uE003" => "_", "\uE004" => "[", "\uE005" => "]", "\uE006" => "|", "\uE007" => ":", "\uE008" => "-", "\uE009" => "+", "\uE00A" => "/", "\uE00B" => ".", "\uE00C" => "?", "\uE00D" => "!"} -
Reverse mapping for unescape (includes additional placeholders from renderers)
Class Method Summary
-
.escape(text : String) : String
Escape markup characters to Unicode placeholders
-
.unescape(text : String) : String
Unescape Unicode placeholders back to original characters
Class Method Detail
def self.escape(text : String) : String
#
Escape markup characters to Unicode placeholders
Converts backslash-escaped characters (e.g., \_, \[) to Unicode
private use area placeholders to preserve them during parsing.
Crst::Escaper.escape("foo\\_bar") # => "foo\u{E003}bar"
def self.unescape(text : String) : String
#
Unescape Unicode placeholders back to original characters
Converts Unicode private use area placeholders back to their original characters for final rendering output.
Crst::Escaper.unescape("foo\u{E003}bar") # => "foo_bar"