mirror of
https://github.com/foolin/goview.git
synced 2025-09-27 03:06:23 +08:00
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
/*
|
|
* Copyright 2018 Foolin. All rights reserved.
|
|
*
|
|
* Use of this source code is governed by a MIT style
|
|
* license that can be found in the LICENSE file.
|
|
*
|
|
*/
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/foolin/goview"
|
|
"html/template"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
|
|
gv := goview.New(goview.Config{
|
|
Root: "views",
|
|
Extension: ".tpl",
|
|
Master: "layouts/master",
|
|
Partials: []string{"partials/ad"},
|
|
Funcs: template.FuncMap{
|
|
"sub": func(a, b int) int {
|
|
return a - b
|
|
},
|
|
"copy": func() string {
|
|
return time.Now().Format("2006")
|
|
},
|
|
},
|
|
DisableCache: true,
|
|
})
|
|
|
|
//Set new instance
|
|
goview.Use(gv)
|
|
|
|
//render index use `index` without `.tpl` extension, that will render with master layout.
|
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
|
err := goview.Render(w, http.StatusOK, "index", goview.M{
|
|
"title": "Index title!",
|
|
"add": func(a int, b int) int {
|
|
return a + b
|
|
},
|
|
})
|
|
if err != nil {
|
|
fmt.Fprintf(w, "Render index error: %v!", err)
|
|
}
|
|
|
|
})
|
|
|
|
//render page use `page.tpl` with '.tpl' will only file template without master layout.
|
|
http.HandleFunc("/page", func(w http.ResponseWriter, r *http.Request) {
|
|
err := goview.Render(w, http.StatusOK, "page.tpl", goview.M{"title": "Page file title!!"})
|
|
if err != nil {
|
|
fmt.Fprintf(w, "Render page.html error: %v!", err)
|
|
}
|
|
})
|
|
|
|
fmt.Println("Listening and serving HTTP on :9090")
|
|
http.ListenAndServe(":9090", nil)
|
|
}
|