Mercurial > repos > public > wdown
comparison wdown.go @ 18:adc92b0118f4
Fix crash when not providing a template
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 25 Jun 2020 21:57:11 +0200 |
parents | ebecd141e9d3 |
children |
comparison
equal
deleted
inserted
replaced
17:c515a9fa8bd5 | 18:adc92b0118f4 |
---|---|
32 var useTemplate = false | 32 var useTemplate = false |
33 if templateFilename != "" { | 33 if templateFilename != "" { |
34 useTemplate = true | 34 useTemplate = true |
35 } | 35 } |
36 | 36 |
37 tmpl, err := mustache.ParseFile(templateFilename) | |
38 if err != nil { | |
39 log.Fatal(err) | |
40 } | |
41 | |
42 source, err := ioutil.ReadFile(flag.Arg(0)) | 37 source, err := ioutil.ReadFile(flag.Arg(0)) |
43 | |
44 if err != nil { | 38 if err != nil { |
45 log.Fatal(err) | 39 log.Fatal(err) |
46 } | 40 } |
47 | 41 |
48 md := goldmark.New( | 42 md := goldmark.New( |
55 goldmark.WithParserOptions( | 49 goldmark.WithParserOptions( |
56 parser.WithAutoHeadingID(), | 50 parser.WithAutoHeadingID(), |
57 ), | 51 ), |
58 ) | 52 ) |
59 | 53 |
60 var htmlContent bytes.Buffer | 54 htmlContent := new(bytes.Buffer) |
61 parserContext := parser.NewContext() | 55 parserContext := parser.NewContext() |
62 err = md.Convert(source, &htmlContent, parser.WithContext(parserContext)) | 56 err = md.Convert(source, htmlContent, parser.WithContext(parserContext)) |
63 if err != nil { | 57 if err != nil { |
64 log.Fatal(err) | 58 log.Fatal(err) |
65 } | 59 } |
66 | 60 |
67 if useTemplate { | 61 if useTemplate { |
62 tmpl, err := mustache.ParseFile(templateFilename) | |
63 if err != nil { | |
64 log.Fatal(err) | |
65 } | |
68 templateVars := meta.Get(parserContext) | 66 templateVars := meta.Get(parserContext) |
69 if templateVars == nil { | 67 if templateVars == nil { |
70 templateVars = map[string]interface{}{} | 68 templateVars = map[string]interface{}{} |
71 } | 69 } |
72 templateVars["content"] = htmlContent.String() | 70 templateVars["content"] = htmlContent.String() |
73 | 71 |
74 err := tmpl.FRender(os.Stdout, templateVars) | 72 err = tmpl.FRender(os.Stdout, templateVars) |
75 if err != nil { | 73 if err != nil { |
76 log.Fatal(err) | 74 log.Fatal(err) |
77 } | 75 } |
78 } else { | 76 } else { |
79 fmt.Print(htmlContent) | 77 fmt.Print(htmlContent) |