diff options
Diffstat (limited to 'backend/parser.go')
| -rw-r--r-- | backend/parser.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/backend/parser.go b/backend/parser.go index b8e730b..3625671 100644 --- a/backend/parser.go +++ b/backend/parser.go @@ -7,6 +7,7 @@ import ( "log/slog" "strings" + "git.anhgelus.world/anhgelus/small-web/dom" "git.anhgelus.world/anhgelus/small-web/markdown" "github.com/pelletier/go-toml/v2" ) @@ -20,14 +21,15 @@ type EntryInfo struct { func renderLinkFunc(url string) func(string, string) template.HTML { return func(content, href string) template.HTML { - b := "<a" + anchor := dom.NewLiteralContentElement("a", template.HTML(content)) + anchor.SetAttribute("href", href) if href == url || (href != "/" && url != "/" && strings.HasPrefix(url, href)) { - b += ` class="target"` + anchor.ClassList().Add("target") } if markdown.ExternalLink.MatchString(href) { - b += ` target="_blank"` + anchor.SetAttribute("target", "_blank").SetAttribute("rel", "noreferrer") } - return template.HTML(fmt.Sprintf(`%s href="%s">%s</a>`, b, href, content)) + return anchor.Render() } } |
