@@ -3,7 +3,7 @@ package update
3
3
import (
4
4
"bytes"
5
5
"fmt"
6
- "html/template "
6
+ "github.com/zcong1993/leetcode-tool/pkg/leetcode "
7
7
"io/ioutil"
8
8
"log"
9
9
"os"
@@ -13,6 +13,7 @@ import (
13
13
"strconv"
14
14
"strings"
15
15
"sync"
16
+ "text/template"
16
17
17
18
"github.com/bmatcuk/doublestar/v2"
18
19
)
27
28
frontendIdRegex = regexp .MustCompile ("@frontendId (.+)" )
28
29
)
29
30
31
+ const (
32
+ toc = "toc"
33
+ )
34
+
30
35
var (
31
36
tableTpl = template .Must (template .New ("table" ).Parse (tableStr ))
37
+ tagTpl = template .Must (template .New ("tag" ).Parse (tagStr ))
32
38
)
33
39
34
40
type Meta struct {
@@ -152,14 +158,28 @@ func Run() {
152
158
}()
153
159
}
154
160
wg .Wait ()
161
+
162
+ if ! fileExists (toc ) {
163
+ _ = os .MkdirAll (toc , 0755 )
164
+ }
165
+
155
166
for tag , metas := range tagMetas {
156
167
fp := fmt .Sprintf ("./toc/%s.md" , tag )
157
- if ! fileExists (fp ) {
158
- continue
159
- }
160
168
wg .Add (1 )
161
169
metas := metas
170
+ tag := tag
162
171
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
+ }
163
183
content , err := ioutil .ReadFile (fp )
164
184
if err != nil {
165
185
log .Fatal (err )
@@ -186,3 +206,9 @@ var tableStr = `
186
206
| ---- | ---- | ---- | ------------------ | ---------------- |{{ range .Metas }}
187
207
| {{ .FrontendId }} | {{ .Index }} | {{ .Difficulty }} | [{{ .Title }}]({{ .Link }}) | [{{ .Fp }}](../{{ .Fp }})|{{ end }}
188
208
`
209
+
210
+ var tagStr = `# {{ .Name }}
211
+
212
+ <!--- table -->
213
+
214
+ `
0 commit comments