htmgo/htmgo-site/main.go
2024-09-21 12:23:47 -05:00

55 lines
1.1 KiB
Go

package main
import (
"embed"
"fmt"
"github.com/labstack/echo/v4"
"github.com/maddalax/htmgo/framework/h"
"github.com/maddalax/htmgo/framework/htmgo/service"
_ "github.com/mattn/go-sqlite3"
"htmgo-site/internal/markdown"
"htmgo-site/pages"
"htmgo-site/partials/load"
"io/fs"
)
//go:embed assets/dist/*
var StaticAssets embed.FS
//go:embed md/*
var MarkdownAssets embed.FS
func main() {
locator := service.NewLocator()
service.Set(locator, service.Singleton, markdown.NewRenderer)
sub, err := fs.Sub(StaticAssets, "assets/dist")
if err != nil {
panic(err)
}
fmt.Println("test")
h.Start(h.AppOpts{
ServiceLocator: locator,
LiveReload: true,
Register: func(e *echo.Echo) {
e.StaticFS("/public", sub)
e.Use(func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
c.Set("embeddedMarkdown", &MarkdownAssets)
return next(c)
}
})
load.RegisterPartials(e)
pages.RegisterPages(e)
pages.RegisterMarkdown(e, "md", MarkdownAssets, func(ctx echo.Context, path string) error {
return pages.MarkdownHandler(ctx.(*h.RequestContext), path)
})
},
})
}