2626 draftRegex = regexp .MustCompile ("@draft (.+)" )
2727 linkRegex = regexp .MustCompile ("@link (.+)" )
2828 frontendIdRegex = regexp .MustCompile ("@frontendId (.+)" )
29+ solvedRegex = regexp .MustCompile ("@solved (.+)" )
2930)
3031
3132const (
@@ -46,6 +47,8 @@ type Meta struct {
4647 Fp string
4748 Link string
4849 FrontendId string
50+ Ext string
51+ Completed string
4952}
5053
5154type 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
107124func 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
210227var tagStr = `# {{ .Name }}
0 commit comments