summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruint <abhinav.prsai@gmail.com>2025-12-19 20:32:59 +0000
committeruint <abhinav.prsai@gmail.com>2025-12-19 20:32:59 +0000
commit42050f9c08be40180905467304fb87255dafd0b6 (patch)
tree7e7fc0dd096a82452af893a6fbd4c8dc0f8db3a3
parentb79e3e9b0e189cf84ccf3cd330253bd62080cea5 (diff)
add navigation symbols + self promo
-rw-r--r--kew.go28
1 files changed, 21 insertions, 7 deletions
diff --git a/kew.go b/kew.go
index fb42520..f7f5fa1 100644
--- a/kew.go
+++ b/kew.go
@@ -12,8 +12,11 @@ import (
/* TODO: config.h */
const SiteTitle = "mallocd.com"
-const FooterText = "made with kew"
+const FooterText = "made with <a href=\"https://github.com/uint23/kew\">kew</a>"
const TemplateFile = "template.html"
+const NavDirSymbol = "/"
+const NavFileSymbol = ": "
+const NavCurrentSymbol = "@ "
type NavNode struct {
Name string
@@ -66,7 +69,7 @@ func build_nav(dir string, root string) (NavNode, bool) {
return node, true
}
-func render_nav(n NavNode, b *strings.Builder) {
+func render_nav(n NavNode, b *strings.Builder, cur string) {
b.WriteString("<ul>\n")
for _, f := range n.Files {
@@ -74,12 +77,17 @@ func render_nav(n NavNode, b *strings.Builder) {
if !strings.HasPrefix(p, "/") {
p = "/" + p
}
- b.WriteString(`<li><a href="` + p + `">` + f.Name + "</a></li>\n")
+ sym := NavFileSymbol
+ if p == cur {
+ sym = NavCurrentSymbol
+ }
+ b.WriteString(`<li><a href="` + p + `">` + sym + f.Name + "</a></li>\n")
}
for _, c := range n.Children {
- b.WriteString("<li>" + c.Name)
- render_nav(c, b)
+ /* directory label with symbol */
+ b.WriteString("<li>" + c.Name + NavDirSymbol)
+ render_nav(c, b, cur)
b.WriteString("</li>\n")
}
@@ -143,8 +151,6 @@ func main() {
/* build nav */
rootnav, _ := build_nav(src, src)
- var navbuf strings.Builder
- render_nav(rootnav, &navbuf)
/* walk site */
err = filepath.WalkDir(src, func(path string, d os.DirEntry, err error) error {
@@ -165,6 +171,14 @@ func main() {
return err
}
+ relhtml := strings.TrimSuffix(rel, ".md") + ".html"
+ cur := relhtml
+ if !strings.HasPrefix(cur, "/") {
+ cur = "/" + cur
+ }
+ var navbuf strings.Builder
+ render_nav(rootnav, &navbuf, cur)
+
page := string(tmpl)
page = strings.Replace(page, "{{TITLE}}", SiteTitle, 1)
page = strings.Replace(page, "{{NAV}}", navbuf.String(), 1)