Do progress reporting during parsing/processing stage, not HTML render stage

This commit is contained in:
Eli Bendersky 2019-06-07 06:12:30 -07:00
parent d34c7ac64e
commit cdbdae9715

View File

@ -225,13 +225,17 @@ func parseAndRenderSegs(sourcePath string) ([]*Seg, string) {
} }
func parseExamples() []*Example { func parseExamples() []*Example {
if verbose() { var exampleNames []string
fmt.Println("Parsing examples") for _, line := range readLines("examples.txt") {
if line != "" && !strings.HasPrefix(line, "#") {
exampleNames = append(exampleNames, line)
}
} }
exampleNames := readLines("examples.txt")
examples := make([]*Example, 0) examples := make([]*Example, 0)
for _, exampleName := range exampleNames { for i, exampleName := range exampleNames {
if (exampleName != "") && !strings.HasPrefix(exampleName, "#") { if verbose() {
fmt.Printf("Processing %s [%d/%d]\n", exampleName, i+1, len(exampleNames))
}
example := Example{Name: exampleName} example := Example{Name: exampleName}
exampleID := strings.ToLower(exampleName) exampleID := strings.ToLower(exampleName)
exampleID = strings.Replace(exampleID, " ", "-", -1) exampleID = strings.Replace(exampleID, " ", "-", -1)
@ -258,7 +262,6 @@ func parseExamples() []*Example {
} }
examples = append(examples, &example) examples = append(examples, &example)
} }
}
for i, example := range examples { for i, example := range examples {
if i < (len(examples) - 1) { if i < (len(examples) - 1) {
example.NextExample = examples[i+1] example.NextExample = examples[i+1]
@ -281,13 +284,13 @@ func renderIndex(examples []*Example) {
} }
func renderExamples(examples []*Example) { func renderExamples(examples []*Example) {
if verbose() {
fmt.Println("Generating HTML")
}
exampleTmpl := template.New("example") exampleTmpl := template.New("example")
_, err := exampleTmpl.Parse(mustReadFile("templates/example.tmpl")) _, err := exampleTmpl.Parse(mustReadFile("templates/example.tmpl"))
check(err) check(err)
for i, example := range examples { for _, example := range examples {
if verbose() {
fmt.Printf("Rendering %s [%d/%d]\n", example.Name, i, len(examples))
}
exampleF, err := os.Create(siteDir + "/" + example.ID) exampleF, err := os.Create(siteDir + "/" + example.ID)
check(err) check(err)
exampleTmpl.Execute(exampleF, example) exampleTmpl.Execute(exampleF, example)