diff options
| author | 2025-10-17 19:28:37 +0700 | |
|---|---|---|
| committer | 2025-10-17 19:28:37 +0700 | |
| commit | fa2d3009ed93c28e05758d52367b25fd6a04a2b7 (patch) | |
| tree | c4a05a93b5b5a1c586f0ed8a9eea2ef2f90dd3c6 /internal/tailwind/link_renderer.go | |
| parent | 2e93141f1f53410d6c38122b918972581ec4aa8d (diff) | |
| parent | 152bbebe8d2d0a07ab6958a74b5f53159c79e45f (diff) | |
| download | web-fa2d3009ed93c28e05758d52367b25fd6a04a2b7.tar.gz web-fa2d3009ed93c28e05758d52367b25fd6a04a2b7.zip | |
v0.9.0 (#10)v0.9.0
- [feat: implement new prototype
gallery](https://github.com/SayaAndy/saya-today-web/commit/44fe2478478225450becb77ad5d273462c9b400a)
(masonry + glightbox instead of lightgallery)
- A simpler column gallery, expandable between 2 and 5 columns;
- Allows highlighting images via tags;
- A simpler lightbox layout with wider image, especially on mobile
devices;
- Displays tooltips;
- [feat: adapted layouts for mobile/tablet
devices](https://github.com/SayaAndy/saya-today-web/commit/d3ffefbd3d9de2378b564e4c6f965c03a5a06113)
- [feat: switched most length units to absolute in
layouts](https://github.com/SayaAndy/saya-today-web/commit/454e2f3cd84b6c0b02a0c2936a574d3d9c35c5a1)
- [feat: use dvw/dvh instead of
vw/vh](https://github.com/SayaAndy/saya-today-web/commit/e231d8a3074853fbdbae9b368976bd902a1428f7)
- [feat: add onclick links in blog post
links](https://github.com/SayaAndy/saya-today-web/commit/db174993127a8b2faf863a670fd6ce8ca8d7c1af)
- feat: add href for any onclick links/icons
- feat: use page-first layout for page titles (like "{page-header} //
SAYA TODAY", not vice versa)
- chore: rm any remains of old lightgallery
- fix: map redefining
Diffstat (limited to 'internal/tailwind/link_renderer.go')
| -rw-r--r-- | internal/tailwind/link_renderer.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/internal/tailwind/link_renderer.go b/internal/tailwind/link_renderer.go new file mode 100644 index 0000000..ff3d437 --- /dev/null +++ b/internal/tailwind/link_renderer.go @@ -0,0 +1,49 @@ +package tailwind + +import ( + "github.com/yuin/goldmark/ast" + "github.com/yuin/goldmark/renderer" + "github.com/yuin/goldmark/renderer/html" + "github.com/yuin/goldmark/util" +) + +type CustomLinkRenderer struct { + html.Config +} + +func NewCustomLinkRenderer(opts ...html.Option) renderer.NodeRenderer { + r := &CustomLinkRenderer{ + Config: html.NewConfig(), + } + for _, opt := range opts { + opt.SetHTMLOption(&r.Config) + } + return r +} + +func (r *CustomLinkRenderer) renderLink(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) { + n := node.(*ast.Link) + if entering { + _, _ = w.WriteString("<a href=\"") + if r.Unsafe || !html.IsDangerousURL(n.Destination) { + _, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true))) + } + _, _ = w.WriteString(`"`) + if n.Title != nil { + _, _ = w.WriteString(` title="`) + _, _ = w.Write(util.EscapeHTML(n.Title)) + _, _ = w.WriteString(`"`) + } + if n.Attributes() != nil { + html.RenderAttributes(w, n, nil) + } + _, _ = w.WriteString(">") + } else { + _, _ = w.WriteString("</a>") + } + return ast.WalkContinue, nil +} + +func (r *CustomLinkRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer) { + reg.Register(ast.KindLink, r.renderLink) +} |