Dont make urls part of styling, instead have a dedicated UrlFunc API

Since urls can potentially change a lot, caching them makes no sense
This commit is contained in:
Kovid Goyal
2022-08-28 10:12:35 +05:30
parent be22f49012
commit 4a4500d56b
3 changed files with 26 additions and 7 deletions

View File

@@ -28,3 +28,24 @@ func (self *Context) SprintFunc(spec string) func(args ...interface{}) string {
return b.String()
}
}
func (self *Context) UrlFunc(spec string) func(string, string) string {
p := prefix_for_spec(spec)
s := suffix_for_spec(spec)
return func(url string, text string) string {
if !self.AllowEscapeCodes {
return text
}
uc := url_code{url: url}
up, us := uc.prefix(), uc.suffix()
b := strings.Builder{}
b.Grow(len(p) + len(up) + len(text) + len(s) + len(us))
b.WriteString(p)
b.WriteString(up)
b.WriteString(text)
b.WriteString(us)
b.WriteString(s)
return b.String()
}
}