├── views ├── widget │ └── header │ │ └── header.tpl ├── demo │ ├── widget │ │ └── header │ │ │ └── header.tpl │ └── page │ │ └── index.tpl └── config │ └── demo-map.json ├── conf └── app.conf ├── static └── demo │ └── widget │ └── header │ ├── header.js │ └── header.css ├── .gitignore ├── main.go └── controllers └── default.go /views/widget/header/header.tpl: -------------------------------------------------------------------------------- 1 |
2 | This is a Widget 3 |
-------------------------------------------------------------------------------- /conf/app.conf: -------------------------------------------------------------------------------- 1 | appname = firstApp 2 | httpport = 8088 3 | runmode = dev 4 | -------------------------------------------------------------------------------- /views/demo/widget/header/header.tpl: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /static/demo/widget/header/header.js: -------------------------------------------------------------------------------- 1 | define('demo:widget/header/header.js', function(require, exports, module){ 2 | 3 | 4 | 5 | }); -------------------------------------------------------------------------------- /static/demo/widget/header/header.css: -------------------------------------------------------------------------------- 1 | #header { 2 | width: 100%; 3 | min-height: 100px; 4 | background-color: #CCCCCC; 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /.settings 3 | /.project 4 | /firstApp 5 | 6 | tmp 7 | ~* 8 | *.db 9 | *.bak 10 | *.tmp 11 | *.swp 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /views/demo/page/index.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | GoIS DEMO 4 | {{placefolder "css"}} 5 | 6 | 7 | {{widget "demo:widget/header/header.tpl"}} 8 | 9 | {{placefolder "js"}} 10 | 11 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "app/firstApp/controllers" 5 | "github.com/astaxie/beego" 6 | "github.com/xiangshouding/gofis" 7 | "path/filepath" 8 | ) 9 | 10 | func main() { 11 | var settings = make(map[string]string) 12 | root, _ := filepath.Abs(beego.AppPath) 13 | settings["config_dir"] = root + "/" + beego.ViewsPath + "/config/" 14 | gofis.Register(settings) 15 | beego.Router("/", &controllers.MainController{}) 16 | beego.Run() 17 | } 18 | -------------------------------------------------------------------------------- /controllers/default.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/astaxie/beego" 6 | "github.com/xiangshouding/gofis" 7 | ) 8 | 9 | type MainController struct { 10 | beego.Controller 11 | } 12 | 13 | func (this *MainController) Get() { 14 | fmt.Println("Index") 15 | this.Data["Website"] = "beego.me" 16 | this.Data["Email"] = "astaxie@gmail.com" 17 | this.TplNames = "demo/page/index.tpl" 18 | } 19 | 20 | func (this *MainController) Render() error { 21 | rb, err := this.RenderBytes() 22 | if err != nil { 23 | return err 24 | } else { 25 | this.Ctx.Output.Header("Content-Type", "text/html; charset=utf-8") 26 | 27 | rb, _ = gofis.AfterProcess(rb) 28 | 29 | this.Ctx.Output.Body(rb) 30 | } 31 | return nil 32 | } 33 | -------------------------------------------------------------------------------- /views/config/demo-map.json: -------------------------------------------------------------------------------- 1 | { 2 | "res": { 3 | "demo:page/index.tpl": { 4 | "uri": "demo/widget/index.tpl", 5 | "type": "tpl", 6 | "extras": { 7 | "isPage": true 8 | } 9 | }, 10 | "demo:widget/header/header.css": { 11 | "uri": "/static/demo/widget/header/header.css", 12 | "type": "css" 13 | }, 14 | "demo:widget/header/header.js": { 15 | "uri": "/static/demo/widget/header/header.js", 16 | "type": "js", 17 | "deps": [ 18 | "demo:widget/header/header.css" 19 | ] 20 | }, 21 | "demo:widget/header/header.tpl": { 22 | "uri": "demo/widget/header/header.tpl", 23 | "type": "tpl", 24 | "deps": [ 25 | "demo:widget/header/header.js", 26 | "demo:widget/header/header.css" 27 | ] 28 | } 29 | }, 30 | "pkg": {} 31 | } --------------------------------------------------------------------------------