通过 URL 路由匹配 .chart 文件.

Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
rick.chan 2022-08-31 12:49:25 +08:00
parent d1ca07b46a
commit e9103b47a6
2 changed files with 24 additions and 6 deletions

View File

@ -4,6 +4,7 @@ goplot
goplot 是一个使用简单的绘制图表的工具,图表绘制使用了[Chart.js](http://www.chartjs.org/)开源库编译好的goplot只有一个二进制文件不依赖任何库/网络。
##### 下载
[Mac OS X](http://www.bigendian123.com/goplot-darwin.tar.gz)
[Linux amd64](http://www.bigendian123.com/goplot-linux-amd64.tar.gz)
@ -11,10 +12,16 @@ goplot是一个使用简单的绘制图表的工具图表绘制使用了[Char
Windows暂缺
##### 使用方法
* 解压下载包后进入解压目录可以看到一个goplot的可执行文件和一些*.chart文件这些chart文件是默认的一些数据文件样例。可以在这些chart文件的目录执行goplot然后通过浏览器访问http://localhost:8000就可以看到图表了。
* 解压下载包后,进入解压目录,可以看到一个 goplot 的可执行文件和一些 *.chart 文件,这些 chart 文件是默认的一些数据文件样例。可以在这些 chart 文件的目录执行 goplot然后通过浏览器访问<http://localhost:8000> 就可以看到图表了。
* 你可以把 `goplot` 工具放到你的 `PATH` 中,在 chart 文件所在的目录执行 goplot 即可。
* chart 文件必须是 .chart 后缀名,内容可以参考源码 examples 目录中的例子。启动 goplot 的目录如果有多个 chart 文件,可以通过不断刷新网页来切换图表。
.chart 文件定义了 Chart 的 Namegoplot 会根据该 Name 建立路由规则,访问对应 Name 的 Chart 规则为:
```url
http://localhost:8000/\<Chart Name>
```
##### 曲线图
![](image/line.png)

View File

@ -2,6 +2,7 @@ package main
import (
"net/http"
"strings"
"text/template"
)
@ -78,7 +79,17 @@ func handler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(err.Error()))
return
} else {
chart = ChartHandlers[prop.Name]
var ok bool
urls := strings.Split(r.URL.String(), "/")
if 2 > len(urls) {
w.Write([]byte(err.Error()))
return
}
chart, ok = ChartHandlers[urls[1]]
if !ok {
w.Write([]byte(err.Error()))
return
}
canvas := chart.Canvas("line", prop.Height, prop.Width)
Args["Canvas"] = canvas