commit 9c017e512e275d151aa8872e92af674930a7844d
parent 2105e42aca22f07267fb56dbe17bbe10bd14560d
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Mon, 19 Sep 2016 10:52:07 +0200
commands: Add some band-aid to convert
Fixes #2458
Diffstat:
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/commands/convert.go b/commands/convert.go
@@ -137,7 +137,8 @@ func convertContents(mark rune) (err error) {
page.SetDir(filepath.Join(helpers.AbsPathify(viper.GetString("ContentDir")), file.Dir()))
page.SetSourceContent(psr.Content())
if err = page.SetSourceMetaData(metadata, mark); err != nil {
- return fmt.Errorf("Failed to set source metadata for file %q: %s", page.FullFilePath(), err)
+ jww.ERROR.Printf("Failed to set source metadata for file %q: %s. For more info see For more info see https://github.com/spf13/hugo/issues/2458", page.FullFilePath(), err)
+ continue
}
if outputDir != "" {
diff --git a/hugolib/page.go b/hugolib/page.go
@@ -1020,15 +1020,28 @@ func (p *Page) SetSourceContent(content []byte) {
}
func (p *Page) SetSourceMetaData(in interface{}, mark rune) (err error) {
- by, err := parser.InterfaceToFrontMatter(in, mark)
+ // See https://github.com/spf13/hugo/issues/2458
+ defer func() {
+ if r := recover(); r != nil {
+ var ok bool
+ err, ok = r.(error)
+ if !ok {
+ err = fmt.Errorf("error from marshal: %v", r)
+ }
+ }
+ }()
+
+ var by []byte
+
+ by, err = parser.InterfaceToFrontMatter(in, mark)
if err != nil {
- return err
+ return
}
by = append(by, '\n')
p.Source.Frontmatter = by
- return nil
+ return
}
func (p *Page) SafeSaveSourceAs(path string) error {