Ego
Ego is a full-stack web framework written in Go, lightweight and efficient front-end component solutions, based on gin. The front-end is compiled, does not affect the back-end.
This is a work in progress.
Contents
- Docs
- Requirements
- Installation
- Update
- Build-tools
- Examples
- TestRestful
- Plans
- Donate
- Contributing
- License
Docs
- API Docs   Â
- ä¸æ–‡æ–‡æ¡£
- GoDoc
Requirements:
Go Version ≥1.7
Installation:
go get github.com/go-ego/ego
Update:
go get -u github.com/go-ego/ego
Build-tools
go get -u github.com/go-ego/re
re new
To create a new Ego web application
$ re new my-webapp
re run
To run the application we just created, you can navigate to the application folder and execute:
$ cd my-webapp && re run
Examples:
Router
package main
import (
"github.com/go-ego/ego"
)
func main() {
router := ego.Classic()
ego.UseRenders()
router.GlobHTML("views/html/*")
parArr := [5]int{1, 2, 3, 4, 5}
router.Ego("/head/", "head/head.html", ego.Map{
"head": "Test to load the HTML template",
"parArr": parArr,
})
router.Run(":3100")
}
icon.vgo
// pkg icon
<div class="icon">
<i class="iconfont {vclass}" {node}></i>
<p>{prpo}</p>
</div>
<style>
.header-left{
float:left;
}
.header-right{
float:right;
}
.iconfont {
position: relative;
font-size:24px
}
</style>
head.vgo
import (
"icons"
icon "icons/icon.vgo"
)
<div class="head">
<div>ego:{{.head}}</div>
<icon>
vclass={icon-share-to}
node={ id="slot1"}
prpo={node---1}
</icon>
<div>
{{range .parArr}}
<p>arr::: {{.}}</p>
{{end}}
</div>
</div>
Renderings:
TestRestful
package main
import (
"github.com/go-ego/ego"
)
const httpUrl string = "http://127.0.0.1:3000"
func main() {
router := ego.Classic()
router.Static("/js", "./views/js")
router.Static("/src", "./views/src")
router.GlobHTML("views/html/*")
strUrl := httpUrl + "/test/hlist"
paramMap := ego.Map{
"lon": "10.1010101",
"lat": "20.202020",
"type": "1",
}
router.TestHtml(strUrl, paramMap) // http url, http parameter, args (optional parameters): The default is "data".
router.Run(":3100")
}
Renderings:
Plans
- Compression and merge css/js
- CSS Preprocessing
- Try supports MVVM and vdom
- Update web framework
Donate
- Supporting ego, buy me a coffee.
Contributing
-
To contribute to Ego, please see Contribution Guidelines. Fork -> Patch -> Push -> Test -> Pull Request.
-
See contributors page for full list of contributors.
License
Ego is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.
See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.