summaryrefslogtreecommitdiff
path: root/internal/tailwind/transformer.go
diff options
from:
to:
context:
space:
mode:
authorGravatar Saya Andy <145215889+SayaAndy@users.noreply.github.com> 2025-10-17 19:28:37 +0700
committerGravatar GitHub <noreply@github.com> 2025-10-17 19:28:37 +0700
commitfa2d3009ed93c28e05758d52367b25fd6a04a2b7 (patch)
treec4a05a93b5b5a1c586f0ed8a9eea2ef2f90dd3c6 /internal/tailwind/transformer.go
parent2e93141f1f53410d6c38122b918972581ec4aa8d (diff)
parent152bbebe8d2d0a07ab6958a74b5f53159c79e45f (diff)
downloadweb-0.9.0.tar.gz
web-0.9.0.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/transformer.go')
-rw-r--r--internal/tailwind/transformer.go33
1 files changed, 20 insertions, 13 deletions
diff --git a/internal/tailwind/transformer.go b/internal/tailwind/transformer.go
index 2f052b9..23ba1a3 100644
--- a/internal/tailwind/transformer.go
+++ b/internal/tailwind/transformer.go
@@ -1,6 +1,9 @@
package tailwind
import (
+ "bytes"
+ "fmt"
+
"github.com/yuin/goldmark/ast"
"github.com/yuin/goldmark/parser"
"github.com/yuin/goldmark/text"
@@ -17,44 +20,48 @@ func (t *TailwindTransformer) Transform(node *ast.Document, reader text.Reader,
switch node := n.(type) {
case *ast.Heading:
classes := map[int]string{
- 1: "font-patua text-[2.5vmax] font-bold text-main-dark mb-[1.2vmin] tracking-[0.04vmin]",
- 2: "font-spectral text-[2vmax] font-bold text-main-dark mb-[0.8vmin] tracking-[0.04vmin]",
- 3: "font-spectral text-[1.5vmax] font-medium text-main-dark mb-[0.6vmin] tracking-[0.04vmin]",
- 4: "font-spectral text-[1.2vmax] font-medium text-main-medium mb-[0.4vmin] tracking-[0.04vmin]",
- 5: "font-spectral text-[1vmax] font-medium text-main-medium mb-[0.4vmin] italic tracking-[0.04vmin]",
- 6: "font-spectral text-[1vmax] font-medium text-secondary mb-[0.4vmin]",
+ 1: "font-patua text-4xl font-bold text-main-dark mb-3 tracking-[.0125rem]",
+ 2: "font-spectral text-3xl font-bold text-main-dark mb-1 tracking-[.0125rem]",
+ 3: "font-spectral text-2xl font-medium text-main-dark mb-0.8 tracking-[.0125rem]",
+ 4: "font-spectral text-xl font-medium text-main-medium mb-0.5 tracking-[.0125rem]",
+ 5: "font-spectral text-base font-medium text-main-medium mb-0.5 italic tracking-[.0125rem]",
+ 6: "font-spectral text-base font-medium text-secondary mb-0.5",
}
if class, ok := classes[node.Level]; ok {
node.SetAttribute([]byte("class"), []byte(class))
}
case *ast.Paragraph:
- node.SetAttribute([]byte("class"), []byte("text-[1vmax]/[2] font-spectral tracking-[0.04vmin] -indent-[2vmax] ml-[2vmax] mb-[1.6vmin]"))
+ node.SetAttribute([]byte("class"), []byte("text-base/[2] font-spectral tracking-[.0125rem] -indent-8 ml-4 mb-8"))
case *ast.List:
if node.IsOrdered() {
- node.SetAttribute([]byte("class"), []byte("list-decimal list-inside space-y-[0.8vmin] mb-[1.6vmin] pl-[2vmax]"))
+ node.SetAttribute([]byte("class"), []byte("list-decimal list-inside space-y-2 mb-4 pl-8"))
} else {
- node.SetAttribute([]byte("class"), []byte("list-disc list-inside space-y-[0.8vmin] mb-[1.6vmin] pl-[2vmax]"))
+ node.SetAttribute([]byte("class"), []byte("list-disc list-inside space-y-2 mb-4 pl-8"))
}
case *ast.ListItem:
- node.SetAttribute([]byte("class"), []byte("text-[1vmax]/[2] font-spectral tracking-[0.04vmin]"))
+ node.SetAttribute([]byte("class"), []byte("text-base/[2] font-spectral tracking-[.0125rem]"))
case *ast.Blockquote:
- node.SetAttribute([]byte("class"), []byte("border-l-[0.4vmin] border-main-medium bg-background-dark p-[0.8vmin] mb-[0.8vmin] italic"))
+ node.SetAttribute([]byte("class"), []byte("border-l-2 border-main-medium bg-background-dark p-1 mb-2 italic"))
case *ast.CodeSpan:
node.SetAttribute([]byte("class"), []byte("bg-background-dark"))
case *ast.CodeBlock, *ast.FencedCodeBlock:
- node.SetAttribute([]byte("class"), []byte("bg-background-dark p-[0.8vmin] rounded-lg overflow-x-auto mb-[1.6vmin]"))
+ node.SetAttribute([]byte("class"), []byte("bg-background-dark p-1 rounded-lg overflow-x-auto mb-4"))
case *ast.Link:
+ if bytes.HasPrefix(node.Destination, []byte{'.', '/'}) {
+ onclickAttr := fmt.Appendf(make([]byte, 0, 21+len(node.Destination)), "return changeUrl('%s');", node.Destination)
+ node.SetAttribute([]byte("onclick"), onclickAttr)
+ }
node.SetAttribute([]byte("class"), []byte("text-secondary hover:text-main-dark underline"))
case *ast.Image:
- node.SetAttribute([]byte("class"), []byte("max-w-full h-auto rounded-lg shadow-lg mb-[1.6vmin]"))
+ node.SetAttribute([]byte("class"), []byte("max-w-full h-auto rounded-lg shadow-lg mb-4"))
case *ast.Emphasis:
switch node.Level {