ref: b024454ea99e647c2b85ce13b3c89c61a4cd0e54
parent: 67f4da30b184866434d14ae485e63910a66c62ef
author: tycho garen <[email protected]>
date: Sat Jul 6 20:49:57 EDT 2013
fixes: returning json parsing, error messages, yaml header offsets
--- a/docs/content/doc/example.md
+++ b/docs/content/doc/example.md
@@ -16,7 +16,7 @@
Topics": [ "Development", "GoLang" ]
Slug": "nitro"
project_url": "http://github.com/spf13/nitro"
- ...
+ ---
# Nitro
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -165,14 +165,13 @@
}
if found == 0 {
- datum = lines[0: i+1]
- lines = lines[i+1:]
+ datum = lines[1: i+2]
+ lines = lines[i+3:]
break
}
}
- err = page.handleYamlMetaData([]byte(strings.Join(datum, "\n")))
-
+ err = page.handleMetaData(page.handleYamlMetaData([]byte(strings.Join(datum, "\n"))))
return lines, err
}
@@ -203,8 +202,7 @@
}
}
- err = page.handleJsonMetaData([]byte(strings.Join(datum, "\n")))
-
+ err = page.handleMetaData(page.handleJsonMetaData([]byte(strings.Join(datum, "\n"))))
return lines, err
}
@@ -220,12 +218,26 @@
}
}
-func (page *Page) handleYamlMetaData(datum []byte) error {
+func (page *Page) handleYamlMetaData(datum []byte) interface{} {
m := map[string]interface{}{}
if err := goyaml.Unmarshal(datum, &m); err != nil {
- return fmt.Errorf("Invalid YAML in $v \nError parsing page meta data: %s", page.FileName, err)
+ return fmt.Errorf("Invalid YAML in %s \nError parsing page meta data: %s", page.FileName, err)
}
+ return m
+}
+
+func (page *Page) handleJsonMetaData(datum []byte) interface{} {
+ var f interface{}
+ if err := json.Unmarshal(datum, &f); err != nil {
+ return fmt.Errorf("Invalide JSON in $v \nError parsing page meta data: %s", page.FileName, err)
+ }
+ return f
+}
+
+func (page *Page) handleMetaData(f interface{}) error {
+ m := f.(map[string]interface{})
+
for k, v := range m {
switch strings.ToLower(k) {
case "title":
@@ -271,8 +283,8 @@
}
}
}
- //Printer(page.Params)
return nil
+
}
func (page *Page) GetParam(key string) interface{} {
@@ -388,7 +400,7 @@
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
- print(err)
+ fmt.Println(err)
}
content := out.String()