Skip to content

Commit 41dfd68

Browse files
committed
feat: toc table add column: solved
1 parent 62ad724 commit 41dfd68

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

cmd/new/main.go

+5
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ var (
146146
* @draft false
147147
* @link {{ .Link }}
148148
* @frontendId {{ .FrontendId }}
149+
* @solved {{ .Solved }}
149150
*/
150151
151152
{{ .Code }}
@@ -170,6 +171,7 @@ var (
170171
* @draft false
171172
* @link {{ .Link }}
172173
* @frontendId {{ .FrontendId }}
174+
* @solved {{ .Solved }}
173175
*/
174176
175177
export {{ .Code }}
@@ -188,6 +190,7 @@ var (
188190
* @draft false
189191
* @link {{ .Link }}
190192
* @frontendId {{ .FrontendId }}
193+
* @solved {{ .Solved }}
191194
*/
192195
193196
{{ .Code }}
@@ -206,6 +209,7 @@ var (
206209
@draft false
207210
@link {{ .Link }}
208211
@frontendId {{ .FrontendId }}
212+
@solved {{ .Solved }}
209213
'''
210214
211215
{{ .Code }}
@@ -226,6 +230,7 @@ var (
226230
* @draft false
227231
* @link {{ .Link }}
228232
* @frontendId {{ .FrontendId }}
233+
* @solved {{ .Solved }}
229234
*/
230235
{{ .Code }}
231236
`

cmd/update/main.go

+21-4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var (
2626
draftRegex = regexp.MustCompile("@draft (.+)")
2727
linkRegex = regexp.MustCompile("@link (.+)")
2828
frontendIdRegex = regexp.MustCompile("@frontendId (.+)")
29+
solvedRegex = regexp.MustCompile("@solved (.+)")
2930
)
3031

3132
const (
@@ -46,6 +47,8 @@ type Meta struct {
4647
Fp string
4748
Link string
4849
FrontendId string
50+
Ext string
51+
Completed string
4952
}
5053

5154
type Metas []*Meta
@@ -92,6 +95,11 @@ func findMeta(content []byte, fp string) *Meta {
9295
return nil
9396
}
9497
tags := strings.Split(findTag(content, tagsRegex), ",")
98+
solved := false
99+
if strings.ToLower(findTag(content, solvedRegex)) == "true" {
100+
solved = true
101+
}
102+
95103
return &Meta{
96104
Index: findTag(content, indexRegex),
97105
Title: findTag(content, titleRegex),
@@ -101,7 +109,16 @@ func findMeta(content []byte, fp string) *Meta {
101109
Fp: filepath.Dir(fp),
102110
Link: findTag(content, linkRegex),
103111
FrontendId: findTag(content, frontendIdRegex),
112+
Ext: filepath.Ext(fp),
113+
Completed: genCompleted(solved, filepath.Ext(fp)),
114+
}
115+
}
116+
117+
func genCompleted(isCompleted bool, ext string) string {
118+
if isCompleted {
119+
return ext[1:] + " ✅"
104120
}
121+
return ext[1:] + " ❎"
105122
}
106123

107124
func genTable(data *TableData) string {
@@ -164,7 +181,7 @@ func Run() {
164181
}
165182

166183
for tag, metas := range tagMetas {
167-
fp := fmt.Sprintf("./toc/%s.md", tag)
184+
fp := filepath.Join(toc, fmt.Sprintf("%s.md", tag))
168185
wg.Add(1)
169186
metas := metas
170187
tag := tag
@@ -202,9 +219,9 @@ var tableStr = `
202219
203220
总计: {{ .Total }}
204221
205-
| 网页序号 | 序号 | 难度 | 题目 | 解答 |
206-
| ---- | ---- | ---- | ------------------ | ---------------- |{{ range .Metas }}
207-
| {{ .FrontendId }} | {{ .Index }} | {{ .Difficulty }} | [{{ .Title }}]({{ .Link }}) | [{{ .Fp }}](../{{ .Fp }})|{{ end }}
222+
| 网页序号 | 序号 | 难度 | 题目 | 解答 | 完成 |
223+
| ---- | ---- | ---- | ------------------ | ---------------- | -------- | {{ range .Metas }}
224+
| {{ .FrontendId }} | {{ .Index }} | {{ .Difficulty }} | [{{ .Title }}]({{ .Link }}) | [{{ .Fp }}](../{{ .Fp }})| {{ .Completed }} |{{ end }}
208225
`
209226

210227
var tagStr = `# {{ .Name }}

pkg/leetcode/leetcode.go

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type Meta struct {
2424
Link string
2525
Content string
2626
Code string
27+
Solved bool
2728
//CodeSnippets string
2829
}
2930

0 commit comments

Comments
 (0)