From fb8db4afe621771b6c57ec6053c85cab2297d4a7 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 16 Jul 2024 11:28:30 -0300 Subject: [PATCH] fix: escape characters closes #106 closes #274 closes #311 --- ansi/baseelement.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/ansi/baseelement.go b/ansi/baseelement.go index 5ccc7103..6bd29455 100644 --- a/ansi/baseelement.go +++ b/ansi/baseelement.go @@ -119,6 +119,28 @@ func (e *BaseElement) doRender(w io.Writer, p termenv.Profile, st1, st2 StylePri return err } } - renderText(w, p, st2, s) + renderText(w, p, st2, escapeReplacer.Replace(s)) return nil } + +// https://www.markdownguide.org/basic-syntax/#characters-you-can-escape +var escapeReplacer = strings.NewReplacer( + "\\\\", "\\", + "\\`", "`", + "\\*", "*", + "\\_", "_", + "\\{", "{", + "\\}", "}", + "\\[", "[", + "\\]", "]", + "\\<", "<", + "\\>", ">", + "\\(", "(", + "\\)", ")", + "\\#", "#", + "\\+", "+", + "\\-", "-", + "\\.", ".", + "\\!", "!", + "\\|", "|", +)