package mApp
import (
"fmt"
"html/template"
"log"
"MollyBlog/config"
"MollyBlog/internal/model"
"github.com/88250/lute"
"github.com/gin-gonic/gin"
)
type MApp struct {
Host string
Port int
Config *config.MConfig
lute *lute.Lute
engine *gin.Engine
Posts []*model.MPost
TaggedPosts []*model.MPost
CategorizedPosts []*model.MPost
SrcFiles []model.MFileInfo
}
const (
SRC = "_post/src" // source markdown files
DST = "_post/dst" // destination html files
)
func (ma *MApp) Run() {
ma.loadRoutes()
ma.loadTemplates()
addr := fmt.Sprintf("%s:%d", ma.Host, ma.Port)
err := ma.engine.Run(addr)
if err != nil {
log.Fatal(err)
}
}
func NewMApp(cfg *config.MConfig) *MApp {
engine := gin.Default()
engine.SetFuncMap(template.FuncMap{
"add": func(a, b int) int {
return a + b
},
})
return &MApp{
Host: cfg.Host,
Port: cfg.Port,
Config: cfg,
lute: lute.New(),
engine: engine,
}
}