Handle backslash escapes in :code: blocks
This commit is contained in:
parent
5d3a9f2628
commit
4969611bdb
@ -7,6 +7,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
"unicode"
|
||||||
|
|
||||||
"kitty"
|
"kitty"
|
||||||
"kitty/tools/utils"
|
"kitty/tools/utils"
|
||||||
@ -50,6 +51,28 @@ func New(allow_escape_codes bool) *Context {
|
|||||||
return &ans
|
return &ans
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func remove_backslash_escapes(text string) string {
|
||||||
|
// see https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#escaping-mechanism
|
||||||
|
out := strings.Builder{}
|
||||||
|
prev_was_slash := false
|
||||||
|
out.Grow(len(text))
|
||||||
|
for _, ch := range text {
|
||||||
|
if prev_was_slash {
|
||||||
|
if !unicode.IsSpace(ch) {
|
||||||
|
out.WriteRune(ch)
|
||||||
|
}
|
||||||
|
prev_was_slash = false
|
||||||
|
} else {
|
||||||
|
if ch == '\\' {
|
||||||
|
prev_was_slash = true
|
||||||
|
} else {
|
||||||
|
out.WriteRune(ch)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return out.String()
|
||||||
|
}
|
||||||
|
|
||||||
func replace_all_rst_roles(str string, repl func(rst_format_match) string) string {
|
func replace_all_rst_roles(str string, repl func(rst_format_match) string) string {
|
||||||
var m rst_format_match
|
var m rst_format_match
|
||||||
rf := func(full_match string, groupdict map[string]utils.SubMatch) string {
|
rf := func(full_match string, groupdict map[string]utils.SubMatch) string {
|
||||||
@ -132,7 +155,7 @@ func (self *Context) Prettify(text string) string {
|
|||||||
case "term":
|
case "term":
|
||||||
return self.ref_hyperlink(val, "term-")
|
return self.ref_hyperlink(val, "term-")
|
||||||
case "code":
|
case "code":
|
||||||
return self.Code(val)
|
return self.Code(remove_backslash_escapes(val))
|
||||||
case "option":
|
case "option":
|
||||||
idx := strings.LastIndex(val, "--")
|
idx := strings.LastIndex(val, "--")
|
||||||
if idx < 0 {
|
if idx < 0 {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user