diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-12-13 18:38:35 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-12-13 18:38:35 +0100 |
| commit | 1f8505e3b83d77a9cbed56c1182522efeba1f199 (patch) | |
| tree | 010d985ffa5f9fa534f6f2921465fd2bd43bd6fc /backend/parser.go | |
| parent | deed583618a2ceb91e2c166d804dee575476c07c (diff) | |
refactor(backend): use dom package to render link
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() } } |
