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)