From 824154f16377298cb7da50b54f164231d01d3bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Mon, 5 Oct 2026 13:20:41 -0400 Subject: [PATCH] README example lives in examples/minimal; CI keeps them equal --- .github/workflows/ci.yml | 3 +++ README.md | 2 ++ examples/minimal/main.go | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 examples/minimal/main.go diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 440a800..a675fc9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,6 +53,9 @@ jobs: - name: Race if: runner.os != 'Windows' run: go test -race ${{ matrix.skip }} ./... + - name: README example matches examples/minimal + if: runner.os == 'Linux' + run: diff <(awk '/^```go$/{f=1;n++;next} /^```$/{f=0} f && n==1' README.md) examples/minimal/main.go - name: Examples compile run: go build ./examples/... - name: Upload snapshot diffs diff --git a/README.md b/README.md index 3746349..38b8121 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ go mod edit -require=mujicaui@v0.0.0 -replace=mujicaui=/path/to/MujicaUI ## 最小示例 +即 `examples/minimal/main.go`,CI 校验两者一致。 + ```go package main diff --git a/examples/minimal/main.go b/examples/minimal/main.go new file mode 100644 index 0000000..ac2c7ca --- /dev/null +++ b/examples/minimal/main.go @@ -0,0 +1,32 @@ +package main + +import ( + "log" + + "github.com/egoist/mygo" + "github.com/egoist/mygo/ui" + + mujica "mujicaui" +) + +type app struct{ name string } + +func (a *app) view(c *ui.Context) { + mujica.Use(c, mujica.Settings{Locale: mujica.ZhCN}) + ui.Column(c).Fill().Center().Gap(12).Children(func() { + mujica.TextInput(c, &a.name, mujica.TextInputOptions{Placeholder: "姓名"}) + if mujica.Button(c, "觐见", mujica.ButtonOptions{}).Clicked() { + log.Println("hello", a.name) + } + }) +} + +func main() { + a := &app{} + mygo.App.WhenReady(func() { + mygo.NewWindow(mygo.WindowOptions{Title: "Mujica", Width: 480, Height: 320, Content: ui.View(a.view)}) + }) + if err := mygo.App.Run(); err != nil { + log.Fatal(err) + } +}