git.sophuwu.com > manweb
made parsing 2 to 4 milliseconds faster, thanks to malivvan
sophuwu sophie@sophuwu.com
Tue, 22 Jul 2025 20:07:29 +0200
commit

479194eb545e5b1db568ca2f2ac92d95e4baf674

parent

b9982b32827c019965242afba6333213a6b39c0f

1 files changed, 3 insertions(+), 5 deletions(-)

jump to
M manpage/manpage.gomanpage/manpage.go

@@ -39,7 +39,7 @@ }

return s, "" } -var ManDotName = regexp.MustCompile(`^[^ .]+(\.[0-9]+[a-z]*)?$`) +var ManDotName = regexp.MustCompile(`^[^ ]+?(\.[0-9]+[a-z]*)?$`) func (m *ManPage) Find(q string) bool { if !ManDotName.MatchString(q) {

@@ -60,6 +60,7 @@ }

var LinkRemover = regexp.MustCompile(`(<a [^>]*>)|(</a>)`).ReplaceAllString var HTMLManName = regexp.MustCompile(`(?:<b>)?([a-zA-Z0-9_.:\-]+)(?:</b>)?\(([0-9][0-9a-z]*)\)`) +var htmlRep = `<a href="?$1.$2">$1($2)</a>` func (m *ManPage) Html() (string, neterr.NetErr) { b, err := exec.Command(CFG.Mandoc, "-Thtml", "-O", "fragment", m.Path).Output()

@@ -67,10 +68,7 @@ if err != nil {

return "", neterr.Err500 } html := LinkRemover(string(b), "") - html = HTMLManName.ReplaceAllStringFunc(html, func(s string) string { - mn := HTMLManName.FindStringSubmatch(s) - return fmt.Sprintf(`<a href="?%s.%s">%s(%s)</a>`, mn[1], mn[2], mn[1], mn[2]) - }) + html = HTMLManName.ReplaceAllString(html, htmlRep) return html, nil }