module web //import freeflowuniverse.crystallib.osal import veb import web1.components.intro import freeflowuniverse.crystallib.ui.console // import rand import os // import json // import freeflowuniverse.crystallib.webserver.auth.jwt // import time //import x.templating.dtm pub fn render(mut ctx Context) !map[string]string { mut res:=map[string]string{} res=intro.render(defaults:true)! //todo: here we need to add all renders we support // if true{ // println(res) // exit(1) // } return res } pub fn template_render(path string, content map[string]string)!string { mut name:=os.base(path).to_lower() name=name.all_before_last(".html") c := match name{ "index"{ $tmpl('./templates/index.html') }"blog-list-classic"{ $tmpl('./templates/blog-list-classic.html') }else{ return error("can't find template with name: ${name}") } } //TODO: NEED to add the other templates, its a pitty we can't do this dynamic return c } pub fn (mut app App) index(mut ctx Context) veb.Result { return app.index2(mut ctx ,"") } @['/:path'] pub fn (mut app App) index2(mut ctx Context,path string) veb.Result { mut templpath:="${path}" if templpath==""{ templpath="index" } println(templpath) console.print_debug("templpath : '${templpath}'") content:=render(mut ctx) or { ctx.res.set_status(.unknown) return ctx.html('