Pushup 发布了首个 Preview 版本:0.1。
Pushup 是一个实验性的新项目,使用 Go 创建现代、面向页面的 Web 应用。Pushup 旨在探索使用 Go 轻松构建面向页面的服务器端 Web 应用程序。
此版本目前初步实现了以下功能:
- 固定的 project/app 目录结构,支持基于文件的路由 (file-based routing)
- 可替代传统 Web 框架目标的轻量级标记语法 (lightweight markup),将用于控制流的 Go 代码和命令式、类似视图控制器的代码与 HTML 标记相结合
- 解析上述标记语法并生成纯 Go 代码的编译器 (compiler),在 Go stdlib
net/http
包之上构建独立的 Web 应用程序
示例代码
^import "time" ^{ title := "Hello, from Pushup!" } <h1>^title</h1> <p>The time is now ^time.Now().String().</p> ^if time.Now().Weekday() == time.Friday { <p>It's Friday! Enjoy the start to your weekend.</p> } ^else { <p>Have a great day, we're glad you're here.</p> }
File app/pages/hello.up → /hello URL path
Pushup 示例应用的目录结构
/path/to/mypushupapp ├── layouts │ └── default.up ├── pages │ └── index.up ├── pkg │ └── app.go └── static ├── app.css └── htmx.min.js
详情查看 Release Notes。