all repos

olexsmir.xyz @ cbe21a73327c950699120a787fba516349bedf5f

my site, yes, i like lua
4 files changed, 58 insertions(+), 7 deletions(-)
feat: callouts; emoji support
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2025-12-04 01:18:43 +0200
Change ID: zqkknollwvxyuwvoppsmznywrsqnlqnl
Parent: d34979b
M go/go.mod

@@ -3,11 +3,15 @@

go 1.25.3 require ( - github.com/alecthomas/chroma/v2 v2.20.0 // indirect + github.com/alecthomas/chroma/v2 v2.20.0 + github.com/wyatt915/goldmark-treeblood v0.0.1 + github.com/yuin/goldmark v1.7.13 + github.com/yuin/goldmark-emoji v1.0.6 + github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc + gitlab.com/staticnoise/goldmark-callout v0.0.0-20240609120641-6366b799e4ab +) + +require ( github.com/dlclark/regexp2 v1.11.5 // indirect - github.com/wyatt915/goldmark-treeblood v0.0.1 // indirect github.com/wyatt915/treeblood v0.1.16 // indirect - github.com/yuin/goldmark v1.7.13 // indirect - github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc // indirect - gitlab.com/staticnoise/goldmark-callout v0.0.0-20240609120641-6366b799e4ab // indirect )
M go/go.sum

@@ -1,15 +1,19 @@

-github.com/alecthomas/chroma/v2 v2.2.0 h1:Aten8jfQwUqEdadVFFjNyjx7HTexhKP0XuqBG67mRDY= +github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= +github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/chroma/v2 v2.2.0/go.mod h1:vf4zrexSH54oEjJ7EdB65tGNHmH3pGZmVkgTP5RHvAs= github.com/alecthomas/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw= github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA= github.com/alecthomas/repr v0.0.0-20220113201626-b1b626ac65ae/go.mod h1:2kn6fqh/zIyPLmm3ugklbEi5hg5wS435eygvNfaDQL8= +github.com/alecthomas/repr v0.5.1 h1:E3G4t2QbHTSNpPKBgMTln5KLkZHLOcU7r37J4pXBuIg= +github.com/alecthomas/repr v0.5.1/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=

@@ -20,6 +24,8 @@ github.com/wyatt915/treeblood v0.1.16/go.mod h1:i7+yhhmzdDP17/97pIsOSffw74EK/xk+qJ0029cSXUY=

github.com/yuin/goldmark v1.4.15/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA= github.com/yuin/goldmark v1.7.13/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= +github.com/yuin/goldmark-emoji v1.0.6 h1:QWfF2FYaXwL74tfGOW5izeiZepUDroDJfWubQI9HTHs= +github.com/yuin/goldmark-emoji v1.0.6/go.mod h1:ukxJDKFpdFb5x0a5HqbdlcKtebh086iJpI31LTKmWuA= github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc h1:+IAOyRda+RLrxa1WC7umKOZRsGq4QrFFMYApOeHzQwQ= github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc/go.mod h1:ovIvrum6DQJA4QsJSovrkC4saKHQVs7TvcaeO8AIl5I= gitlab.com/staticnoise/goldmark-callout v0.0.0-20240609120641-6366b799e4ab h1:gK9tS6QJw5F0SIhYJnGG2P83kuabOdmWBbSmZhJkz2A=
M go/main.go

@@ -12,6 +12,7 @@ chromahtml "github.com/alecthomas/chroma/v2/formatters/html"

"github.com/alecthomas/chroma/v2/styles" treeblood "github.com/wyatt915/goldmark-treeblood" "github.com/yuin/goldmark" + emoji "github.com/yuin/goldmark-emoji" highlighting "github.com/yuin/goldmark-highlighting/v2" "github.com/yuin/goldmark/extension" "github.com/yuin/goldmark/renderer/html"

@@ -39,8 +40,10 @@ ),

extension.NewFootnote( extension.WithFootnoteIDPrefix([]byte("footnote")), ), + extension.Linkify, treeblood.MathML(), callout.CalloutExtention, + emoji.Emoji, ), goldmark.WithRendererOptions(html.WithUnsafe()), )
M lua/blog/styles.lua

@@ -8,6 +8,11 @@ ["--text-color"] = "#babdc4",

["--text-mutted"] = text_mutted, ["--link-color"] = "#82aee3", ["--code-background-color"] = "#2d2d2d", + ["--callout-note-border"] = "#1f6feb", + ["--callout-tip-border"] = "#238636", + ["--callout-warn-border"] = "#9e6a03", + ["--callout-important-border"] = "#ab7df8", + ["--callout-caution-border"] = "#da3633", }, ["[data-theme='light']"] = {

@@ -150,5 +155,38 @@ font_family = "monospace",

background_color = "var(--code-background-color)", white_space = "pre-wrap", padding = "0 0.3em", + }, + + -- -- CALLOUTS + [".callout-content"] = { padding_left = "0.5em" }, + ["details[data-callout]"] = { + border_radius = "2px", + margin = "1em 0", + padding = "0.2em 1em", + }, + + ["details[data-callout=NOTE]"] = { + border_left = "4px solid var(--callout-note-border)", + summary = { color = "var(--callout-note-border)" }, + }, + + ["details[data-callout=TIP]"] = { + border_left = "4px solid var(--callout-tip-border)", + summary = { color = "var(--callout-tip-border)" }, + }, + + ["details[data-callout=WARNING]"] = { + border_left = "4px solid var(--callout-warn-border)", + summary = { color = "var(--callout-warn-border)" }, + }, + + ["details[data-callout=IMPORTANT]"] = { + border_left = "4px solid var(--callout-important-border)", + summary = { color = "var(--callout-important-border)" }, + }, + + ["details[data-callout=CAUTION]"] = { + border_left = "4px solid var(--callout-caution-border)", + summary = { color = "var(--callout-caution-border)" }, }, }