hugolib: Handle any errors in processShortcodes
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 6 May 2017 08:48:27 +0000 (10:48 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 13 May 2017 19:44:15 +0000 (22:44 +0300)
hugolib/handler_page.go
hugolib/page.go

index 6439344b055a75a3e9b6c340f48116dbe2b3660b..a7dbff2e608a690f0974f0cea3b61d9a8001f58d 100644 (file)
@@ -79,7 +79,9 @@ func (h htmlHandler) PageConvert(p *Page) HandledResult {
        // Work on a copy of the raw content from now on.
        p.createWorkContentCopy()
 
-       p.ProcessShortcodes()
+       if err := p.processShortcodes(); err != nil {
+               return HandledResult{err: err}
+       }
 
        return HandledResult{err: nil}
 }
@@ -128,7 +130,9 @@ func commonConvert(p *Page) HandledResult {
        // Work on a copy of the raw content from now on.
        p.createWorkContentCopy()
 
-       p.ProcessShortcodes()
+       if err := p.processShortcodes(); err != nil {
+               return HandledResult{err: err}
+       }
 
        // TODO(bep) these page handlers need to be re-evaluated, as it is hard to
        // process a page in isolation. See the new preRender func.
index 8479288d7a9479f3bc1d3753863a6093382be5f0..21603c3dcf98d9f2bf5eab5a58c753e8320a8465 100644 (file)
@@ -1371,11 +1371,16 @@ func (p *Page) SaveSource() error {
        return p.SaveSourceAs(p.FullFilePath())
 }
 
-func (p *Page) ProcessShortcodes() {
+func (p *Page) processShortcodes() error {
        p.shortcodeState = newShortcodeHandler()
-       tmpContent, _ := p.shortcodeState.extractAndRenderShortcodes(string(p.workContent), p)
+       tmpContent, err := p.shortcodeState.extractAndRenderShortcodes(string(p.workContent), p)
+       if err != nil {
+               return err
+       }
        p.workContent = []byte(tmpContent)
 
+       return nil
+
 }
 
 func (p *Page) FullFilePath() string {