htmgo/htmgo-site/pages/docs.go

41 lines
1 KiB
Go
Raw Normal View History

2024-09-20 16:45:23 +00:00
package pages
import (
2024-09-20 18:25:14 +00:00
"embed"
2024-09-20 16:45:23 +00:00
"github.com/maddalax/htmgo/framework/h"
"htmgo-site/internal/dirwalk"
"htmgo-site/pages/base"
2024-09-23 19:41:43 +00:00
"htmgo-site/partials"
2024-09-20 16:45:23 +00:00
)
func DocsPage(ctx *h.RequestContext) *h.Page {
2024-09-20 18:25:14 +00:00
assets := ctx.Get("embeddedMarkdown").(*embed.FS)
pages := dirwalk.WalkPages("md/docs", assets)
2024-09-20 16:45:23 +00:00
return h.NewPage(base.RootPage(
h.Div(
2024-09-24 17:39:16 +00:00
h.Class("flex flex-col md:flex-row gap-4 justify-center mb-12"),
2024-09-23 19:41:43 +00:00
partials.DocSidebar(pages),
h.Div(
2024-09-24 17:39:16 +00:00
h.Class("flex flex-col justify-center items-center mt-6"),
2024-09-23 19:41:43 +00:00
h.List(pages, func(page *dirwalk.Page, index int) *h.Element {
2024-09-24 17:39:16 +00:00
anchor := partials.CreateAnchor(page.Parts)
return h.Div(
h.Class("border-b border-b-slate-300 w-full pb-8 mb-8"),
MarkdownContent(ctx, page.FilePath, anchor),
h.Div(
h.Class("ml-4 pl-1 mt-2 bg-rose-200"),
h.If(anchor == "core-concepts-partials",
h.GetPartial(partials.CurrentTimePartial, "load, every 1s"),
),
),
)
2024-09-23 19:41:43 +00:00
}),
),
h.Div(
h.Class("min-h-12"),
),
2024-09-20 16:45:23 +00:00
),
2024-09-23 19:41:43 +00:00
))
2024-09-20 16:45:23 +00:00
}