add navigation symbols + self promo
This commit is contained in:
parent
b79e3e9b0e
commit
42050f9c08
1 changed files with 21 additions and 7 deletions
28
kew.go
28
kew.go
|
|
@ -12,8 +12,11 @@ import (
|
||||||
/* TODO: config.h */
|
/* TODO: config.h */
|
||||||
|
|
||||||
const SiteTitle = "mallocd.com"
|
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 TemplateFile = "template.html"
|
||||||
|
const NavDirSymbol = "/"
|
||||||
|
const NavFileSymbol = ": "
|
||||||
|
const NavCurrentSymbol = "@ "
|
||||||
|
|
||||||
type NavNode struct {
|
type NavNode struct {
|
||||||
Name string
|
Name string
|
||||||
|
|
@ -66,7 +69,7 @@ func build_nav(dir string, root string) (NavNode, bool) {
|
||||||
return node, true
|
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")
|
b.WriteString("<ul>\n")
|
||||||
|
|
||||||
for _, f := range n.Files {
|
for _, f := range n.Files {
|
||||||
|
|
@ -74,12 +77,17 @@ func render_nav(n NavNode, b *strings.Builder) {
|
||||||
if !strings.HasPrefix(p, "/") {
|
if !strings.HasPrefix(p, "/") {
|
||||||
p = "/" + 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 {
|
for _, c := range n.Children {
|
||||||
b.WriteString("<li>" + c.Name)
|
/* directory label with symbol */
|
||||||
render_nav(c, b)
|
b.WriteString("<li>" + c.Name + NavDirSymbol)
|
||||||
|
render_nav(c, b, cur)
|
||||||
b.WriteString("</li>\n")
|
b.WriteString("</li>\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,8 +151,6 @@ func main() {
|
||||||
|
|
||||||
/* build nav */
|
/* build nav */
|
||||||
rootnav, _ := build_nav(src, src)
|
rootnav, _ := build_nav(src, src)
|
||||||
var navbuf strings.Builder
|
|
||||||
render_nav(rootnav, &navbuf)
|
|
||||||
|
|
||||||
/* walk site */
|
/* walk site */
|
||||||
err = filepath.WalkDir(src, func(path string, d os.DirEntry, err error) error {
|
err = filepath.WalkDir(src, func(path string, d os.DirEntry, err error) error {
|
||||||
|
|
@ -165,6 +171,14 @@ func main() {
|
||||||
return err
|
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 := string(tmpl)
|
||||||
page = strings.Replace(page, "{{TITLE}}", SiteTitle, 1)
|
page = strings.Replace(page, "{{TITLE}}", SiteTitle, 1)
|
||||||
page = strings.Replace(page, "{{NAV}}", navbuf.String(), 1)
|
page = strings.Replace(page, "{{NAV}}", navbuf.String(), 1)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue