module Crst::Escaper

Defined in:

crst/escaper.cr

Constant 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

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"

[View source]
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"

[View source]