@@ -3,7 +3,7 @@ package update
33import (
44 "bytes"
55 "fmt"
6- "html/template "
6+ "github.com/zcong1993/leetcode-tool/pkg/leetcode "
77 "io/ioutil"
88 "log"
99 "os"
@@ -13,6 +13,7 @@ import (
1313 "strconv"
1414 "strings"
1515 "sync"
16+ "text/template"
1617
1718 "github.com/bmatcuk/doublestar/v2"
1819)
2728 frontendIdRegex = regexp .MustCompile ("@frontendId (.+)" )
2829)
2930
31+ const (
32+ toc = "toc"
33+ )
34+
3035var (
3136 tableTpl = template .Must (template .New ("table" ).Parse (tableStr ))
37+ tagTpl = template .Must (template .New ("tag" ).Parse (tagStr ))
3238)
3339
3440type Meta struct {
@@ -152,14 +158,28 @@ func Run() {
152158 }()
153159 }
154160 wg .Wait ()
161+
162+ if ! fileExists (toc ) {
163+ _ = os .MkdirAll (toc , 0755 )
164+ }
165+
155166 for tag , metas := range tagMetas {
156167 fp := fmt .Sprintf ("./toc/%s.md" , tag )
157- if ! fileExists (fp ) {
158- continue
159- }
160168 wg .Add (1 )
161169 metas := metas
170+ tag := tag
162171 go func () {
172+ if ! fileExists (fp ) {
173+ var content bytes.Buffer
174+ err := tagTpl .Execute (& content , & leetcode.Tag {Name : tag })
175+ if err != nil {
176+ log .Fatal (err )
177+ }
178+ err = ioutil .WriteFile (fp , content .Bytes (), 0644 )
179+ if err != nil {
180+ log .Printf ("write file %s error, %s\n " , fp , err )
181+ }
182+ }
163183 content , err := ioutil .ReadFile (fp )
164184 if err != nil {
165185 log .Fatal (err )
@@ -186,3 +206,9 @@ var tableStr = `
186206| ---- | ---- | ---- | ------------------ | ---------------- |{{ range .Metas }}
187207| {{ .FrontendId }} | {{ .Index }} | {{ .Difficulty }} | [{{ .Title }}]({{ .Link }}) | [{{ .Fp }}](../{{ .Fp }})|{{ end }}
188208`
209+
210+ var tagStr = `# {{ .Name }}
211+
212+ <!--- table -->
213+
214+ `
0 commit comments