Skip to content

Commit d005b69

Browse files
committed
feat(cmd/web/tpl): 添加对部分语言的支持
1 parent 3a313fe commit d005b69

File tree

7 files changed

+70
-22
lines changed

7 files changed

+70
-22
lines changed

cmd/web/go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ require (
99
github.com/issue9/assert/v4 v4.3.1
1010
github.com/issue9/cmdopt v0.13.1
1111
github.com/issue9/errwrap v0.3.2
12-
github.com/issue9/localeutil v0.29.4
12+
github.com/issue9/localeutil v0.30.0
1313
github.com/issue9/logs/v7 v7.6.6
1414
github.com/issue9/source v0.12.5
15-
github.com/issue9/web v0.103.1
15+
github.com/issue9/web v0.103.2
1616
github.com/otiai10/copy v1.14.1
1717
golang.org/x/mod v0.24.0
1818
golang.org/x/text v0.24.0
@@ -36,6 +36,6 @@ require (
3636
github.com/otiai10/mint v1.6.3 // indirect
3737
golang.org/x/sync v0.13.0 // indirect
3838
golang.org/x/sys v0.32.0 // indirect
39-
golang.org/x/tools v0.31.0 // indirect
39+
golang.org/x/tools v0.32.0 // indirect
4040
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
4141
)

cmd/web/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ github.com/issue9/conv v1.3.5 h1:UWeA+Zqp5vjNDLrmhLhaXPjS1hL8gh4quX6Shk5njKQ=
2626
github.com/issue9/conv v1.3.5/go.mod h1:lkZYMyrmxy+HK//N4eLmwUl9mCwj0zgeTjnxgl/w7hM=
2727
github.com/issue9/errwrap v0.3.2 h1:7KEme9Pfe75M+sIMcPCn/DV90wjnOcRbO4DXVAHj3Fw=
2828
github.com/issue9/errwrap v0.3.2/go.mod h1:KcCLuUGiffjooLCUjL89r1cyO8/HT/VRcQrneO53N3A=
29-
github.com/issue9/localeutil v0.29.4 h1:VT8t64q1d7Ui1yCF6rfSI6Uibo/4v4HMtyT3n2yp6XI=
30-
github.com/issue9/localeutil v0.29.4/go.mod h1:k5nHeIIwmuQDil8ZF1dCCKn7pKEZmqe/6wCvBiunJis=
29+
github.com/issue9/localeutil v0.30.0 h1:y0MRACzSYhLwYUYI557VwLTIMMdajCgyaJrzV7MnjYo=
30+
github.com/issue9/localeutil v0.30.0/go.mod h1:U4MwKi+2gBybmSxgEQ7foUKSHscRccbeR86G2LMJ49c=
3131
github.com/issue9/logs/v7 v7.6.6 h1:z5M8yTVQVplJOEVbA6l5f4xvJAfrf0eNmelGBjpJQe0=
3232
github.com/issue9/logs/v7 v7.6.6/go.mod h1:isIxPUKO5NBtWZpwCtpNUZwC270EgczL4LXRapVtmEU=
3333
github.com/issue9/mux/v9 v9.1.4 h1:Ebs3HtDrw34HQrhnKHUVnJljOjateBndTfUcCoXylSA=
@@ -72,8 +72,8 @@ golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
7272
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
7373
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
7474
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
75-
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
76-
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
75+
golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
76+
golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
7777
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY=
7878
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
7979
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

cmd/web/tpl/header.go

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ var headerBuilders = map[string]fileHeaderBuildFunc{
2424

2525
".rs": singleCStyle,
2626

27+
".cs": singleCStyle,
28+
".css": multiCStyle,
29+
2730
".c": singleCStyle,
2831
".cxx": singleCStyle,
2932
".cc": singleCStyle,
@@ -34,20 +37,22 @@ var headerBuilders = map[string]fileHeaderBuildFunc{
3437
".m": singleCStyle,
3538

3639
".java": singleCStyle,
37-
".kt": singleCStyle,
38-
".kts": singleCStyle,
40+
".kt": singleCStyle,
41+
".kts": singleCStyle,
3942

4043
".swift": singleCStyle,
4144

4245
".py": singlePythonStyle,
4346

44-
".sh": singlePythonStyle,
45-
".rb": singlePythonStyle,
46-
".ps1": singlePythonStyle,
47+
".clj": func(s []string) string { return singleStyle([]byte("; "), s) },
48+
49+
".sh": singlePythonStyle,
50+
".rb": singlePythonStyle,
51+
".ps1": singlePythonStyle,
4752
".psm1": singlePythonStyle,
4853

4954
".yaml": singlePythonStyle,
50-
".yml": singlePythonStyle,
55+
".yml": singlePythonStyle,
5156
".toml": singlePythonStyle,
5257
}
5358

@@ -109,18 +114,43 @@ func singleCStyle(s []string) string { return singleStyle([]byte("// "), s) }
109114

110115
func singlePythonStyle(s []string) string { return singleStyle([]byte("# "), s) }
111116

117+
func multiCStyle(s []string) string {
118+
return multiStyle([]byte("/*"), []byte(" */"), []byte(" * "), s)
119+
}
120+
112121
func singleStyle(prefix []byte, s []string) string {
113-
var l = 0
122+
l := 5 * len(s)
123+
for _, v := range s {
124+
l += len(v)
125+
}
126+
127+
b := make([]byte, 0, l)
128+
for _, v := range s {
129+
b = append(b, prefix...)
130+
b = append(b, v...)
131+
b = append(b, '\n')
132+
}
133+
b = append(b, '\n') // 空行
134+
135+
return string(b)
136+
}
137+
138+
func multiStyle(start, end, prefix []byte, s []string) string {
139+
l := +5*len(s) + len(start) + len(end)
114140
for _, v := range s {
115141
l += len(v)
116142
}
117143

118-
b := make([]byte, 0, l+5*len(s))
144+
b := make([]byte, 0, l)
145+
b = append(b, start...)
146+
b = append(b, '\n')
119147
for _, v := range s {
120148
b = append(b, prefix...)
121149
b = append(b, v...)
122150
b = append(b, '\n')
123151
}
152+
b = append(b, end...)
153+
b = append(b, '\n') // 换行
124154
b = append(b, '\n') // 空行
125155

126156
return string(b)

cmd/web/tpl/header_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
func TestSingleCStyle(t *testing.T) {
2020
a := assert.New(t, false)
2121

22+
a.Equal(singleCStyle([]string{}), "\n")
2223
a.Equal(singleCStyle([]string{""}), "// \n\n")
2324

2425
a.Equal(singleCStyle([]string{
@@ -30,6 +31,23 @@ func TestSingleCStyle(t *testing.T) {
3031
`)
3132
}
3233

34+
func TestMultipCStyle(t *testing.T) {
35+
a := assert.New(t, false)
36+
37+
a.Equal(multiCStyle([]string{}), "/*\n */\n\n")
38+
a.Equal(multiCStyle([]string{""}), "/*\n * \n */\n\n")
39+
40+
a.Equal(multiCStyle([]string{
41+
"SPDX-FileCopyrightText: 2025 caixw",
42+
"SPDX-License-Identifier: MIT",
43+
}), `/*
44+
* SPDX-FileCopyrightText: 2025 caixw
45+
* SPDX-License-Identifier: MIT
46+
*/
47+
48+
`)
49+
}
50+
3351
func TestInsertFileHeader(t *testing.T) {
3452
a := assert.New(t, false)
3553
dir := "./testdata/out/fileheaders"

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/issue9/config v0.9.1
1313
github.com/issue9/conv v1.3.5
1414
github.com/issue9/errwrap v0.3.2
15-
github.com/issue9/localeutil v0.29.4
15+
github.com/issue9/localeutil v0.30.0
1616
github.com/issue9/logs/v7 v7.6.6
1717
github.com/issue9/mux/v9 v9.1.4
1818
github.com/issue9/query/v3 v3.1.3
@@ -38,7 +38,7 @@ require (
3838
github.com/redis/go-redis/v9 v9.7.3 // indirect
3939
github.com/x448/float16 v0.8.4 // indirect
4040
golang.org/x/mod v0.24.0 // indirect
41-
golang.org/x/net v0.36.0 // indirect
41+
golang.org/x/net v0.39.0 // indirect
4242
golang.org/x/sync v0.13.0 // indirect
4343
golang.org/x/sys v0.32.0 // indirect
4444
)

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ github.com/issue9/conv v1.3.5 h1:UWeA+Zqp5vjNDLrmhLhaXPjS1hL8gh4quX6Shk5njKQ=
2828
github.com/issue9/conv v1.3.5/go.mod h1:lkZYMyrmxy+HK//N4eLmwUl9mCwj0zgeTjnxgl/w7hM=
2929
github.com/issue9/errwrap v0.3.2 h1:7KEme9Pfe75M+sIMcPCn/DV90wjnOcRbO4DXVAHj3Fw=
3030
github.com/issue9/errwrap v0.3.2/go.mod h1:KcCLuUGiffjooLCUjL89r1cyO8/HT/VRcQrneO53N3A=
31-
github.com/issue9/localeutil v0.29.4 h1:VT8t64q1d7Ui1yCF6rfSI6Uibo/4v4HMtyT3n2yp6XI=
32-
github.com/issue9/localeutil v0.29.4/go.mod h1:k5nHeIIwmuQDil8ZF1dCCKn7pKEZmqe/6wCvBiunJis=
31+
github.com/issue9/localeutil v0.30.0 h1:y0MRACzSYhLwYUYI557VwLTIMMdajCgyaJrzV7MnjYo=
32+
github.com/issue9/localeutil v0.30.0/go.mod h1:U4MwKi+2gBybmSxgEQ7foUKSHscRccbeR86G2LMJ49c=
3333
github.com/issue9/logs/v7 v7.6.6 h1:z5M8yTVQVplJOEVbA6l5f4xvJAfrf0eNmelGBjpJQe0=
3434
github.com/issue9/logs/v7 v7.6.6/go.mod h1:isIxPUKO5NBtWZpwCtpNUZwC270EgczL4LXRapVtmEU=
3535
github.com/issue9/mux/v9 v9.1.4 h1:Ebs3HtDrw34HQrhnKHUVnJljOjateBndTfUcCoXylSA=
@@ -72,8 +72,8 @@ golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
7272
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
7373
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
7474
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
75-
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
76-
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
75+
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
76+
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
7777
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
7878
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
7979
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

web.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
)
2626

2727
// Version 当前框架的版本
28-
const Version = "0.103.2"
28+
const Version = "0.103.3"
2929

3030
type (
3131
Logger = logs.Logger

0 commit comments

Comments
 (0)