├── 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 | }
--------------------------------------------------------------------------------