From a7f5f97bc2c8941cbe9ade740e3c0e54202d8613 Mon Sep 17 00:00:00 2001 From: tycho garen Date: Sat, 6 Jul 2013 19:36:30 -0400 Subject: [PATCH] sanity: move from json to yaml --- docs/config.json | 4 ---- docs/config.yaml | 4 ++++ docs/content/doc/configuration.md | 8 ++++---- docs/content/doc/contributing.md | 8 ++++---- docs/content/doc/contributors.md | 8 ++++---- docs/content/doc/example.md | 8 ++++---- docs/content/doc/front-matter.md | 8 ++++---- docs/content/doc/installing.md | 9 +++++---- docs/content/doc/license.md | 8 ++++---- docs/content/doc/organization.md | 8 ++++---- docs/content/doc/release-notes.md | 9 ++++----- docs/content/doc/roadmap.md | 8 ++++---- docs/content/doc/shortcodes.md | 8 ++++---- docs/content/doc/source-directory.md | 8 ++++---- docs/content/doc/templates.md | 8 ++++---- docs/content/doc/usage.md | 8 ++++---- docs/content/doc/variables.md | 8 ++++---- hugolib/config.go | 4 ++-- hugolib/helpers.go | 4 ++-- hugolib/page.go | 20 ++++++++++---------- main.go | 6 +++--- 21 files changed, 82 insertions(+), 82 deletions(-) delete mode 100644 docs/config.json create mode 100644 docs/config.yaml diff --git a/docs/config.json b/docs/config.json deleted file mode 100644 index 6c8a198d..00000000 --- a/docs/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Indexes" : {"tag": "tags"}, - "BaseUrl" : "http://localhost" -} diff --git a/docs/config.yaml b/docs/config.yaml new file mode 100644 index 00000000..77155260 --- /dev/null +++ b/docs/config.yaml @@ -0,0 +1,4 @@ +Indexes: + tag: 'tags' +BaseUrl: 'http://localhost' +... diff --git a/docs/content/doc/configuration.md b/docs/content/doc/configuration.md index bc8df19e..eea530f0 100644 --- a/docs/content/doc/configuration.md +++ b/docs/content/doc/configuration.md @@ -1,7 +1,7 @@ -{ - "title": "Configuring Hugo", - "Pubdate": "2013-07-01" -} +--- +title: "Configuring Hugo" +pubdate: "2013-07-01" +... The directory structure and templates provide the majority of the configuration for a site. In fact a config file isn't even needed for many websites diff --git a/docs/content/doc/contributing.md b/docs/content/doc/contributing.md index 8ff4fccb..6b8aa823 100644 --- a/docs/content/doc/contributing.md +++ b/docs/content/doc/contributing.md @@ -1,7 +1,7 @@ -{ - "title": "Contributing to Hugo", - "Pubdate": "2013-07-01" -} +--- +title: "Contributing to Hugo" +Pubdate: "2013-07-01" +... 1. Fork it from https://github.com/spf13/hugo 2. Create your feature branch (`git checkout -b my-new-feature`) diff --git a/docs/content/doc/contributors.md b/docs/content/doc/contributors.md index 003d1855..e8a8ad97 100644 --- a/docs/content/doc/contributors.md +++ b/docs/content/doc/contributors.md @@ -1,7 +1,7 @@ -{ - "title": "Contributors", - "Pubdate": "2013-07-01" -} +--- +title: "Contributors" +Pubdate: "2013-07-01" +... Hugo was built with love and golang by: diff --git a/docs/content/doc/example.md b/docs/content/doc/example.md index 67311a1c..75f35f2b 100644 --- a/docs/content/doc/example.md +++ b/docs/content/doc/example.md @@ -1,7 +1,7 @@ -{ - "title": "Example Content File", - "Pubdate": "2013-07-01" -} +--- +title: "Example Content File" +Pubdate: "2013-07-01" +... Somethings are better shown than explained. The following is a very basic example of a content file: diff --git a/docs/content/doc/front-matter.md b/docs/content/doc/front-matter.md index 6feb74e4..3f008371 100644 --- a/docs/content/doc/front-matter.md +++ b/docs/content/doc/front-matter.md @@ -1,7 +1,7 @@ -{ - "title": "Front Matter", - "Pubdate": "2013-07-01" -} +--- +title: "Front Matter" +Pubdate: "2013-07-01" +... The front matter is one of the features that gives Hugo it's strength. It enables you to include the meta data of the content right with it. Hugo supports a few diff --git a/docs/content/doc/installing.md b/docs/content/doc/installing.md index 303e9ffa..1f0f02de 100644 --- a/docs/content/doc/installing.md +++ b/docs/content/doc/installing.md @@ -1,7 +1,8 @@ -{ - "title": "Installing Hugo", - "Pubdate": "2013-07-01" -} +--- +title: "Installing Hugo" +Pubdate: "2013-07-01" +... + Hugo is written in GoLang with support for Windows, Linux, FreeBSD and OSX. The latest release can be found at [hugo releases](https://github.com/spf13/hugo/releases). diff --git a/docs/content/doc/license.md b/docs/content/doc/license.md index 257c4cf9..43eba11e 100644 --- a/docs/content/doc/license.md +++ b/docs/content/doc/license.md @@ -1,7 +1,7 @@ -{ - "title": "License", - "Pubdate": "2013-07-01" -} +--- +title: "License" +Pubdate: "2013-07-01" +... Hugo is released under the Simple Public License. diff --git a/docs/content/doc/organization.md b/docs/content/doc/organization.md index 49647c53..23238b26 100644 --- a/docs/content/doc/organization.md +++ b/docs/content/doc/organization.md @@ -1,7 +1,7 @@ -{ - "title": "Organization", - "Pubdate": "2013-07-01" -} +--- +title: "Organization" +Pubdate: "2013-07-01" +... Hugo uses markdown files with headers commonly called the front matter. Hugo respects the organization that you provide for your content to minimize any extra configuration, though this can be overridden diff --git a/docs/content/doc/release-notes.md b/docs/content/doc/release-notes.md index 34bd5315..a4b9e11e 100644 --- a/docs/content/doc/release-notes.md +++ b/docs/content/doc/release-notes.md @@ -1,8 +1,7 @@ -{ - "title": "Release Notes", - "Pubdate": "2013-07-01" - -} +--- +title: "Release Notes" +Pubdate: "2013-07-01" +... * **0.7.0** July 4, 2013 * Hugo now includes a simple server diff --git a/docs/content/doc/roadmap.md b/docs/content/doc/roadmap.md index 3a4faf72..7cc5bc81 100644 --- a/docs/content/doc/roadmap.md +++ b/docs/content/doc/roadmap.md @@ -1,7 +1,7 @@ -{ - "title": "Roadmap", - "Pubdate": "2013-07-01" -} +--- +title: "Roadmap" +Pubdate: "2013-07-01" +... In no particular order, here is what I'm working on: diff --git a/docs/content/doc/shortcodes.md b/docs/content/doc/shortcodes.md index 1d30aa8d..abca668f 100644 --- a/docs/content/doc/shortcodes.md +++ b/docs/content/doc/shortcodes.md @@ -1,7 +1,7 @@ -{ - "title": "Shortcodes", - "Pubdate": "2013-07-01" -} +--- +title: "Shortcodes" +Pubdate: "2013-07-01" +... Because Hugo uses markdown for it's content format, it was clear that there's a lot of things that markdown doesn't support well. This is good, the simple nature of markdown is exactly why we chose it. diff --git a/docs/content/doc/source-directory.md b/docs/content/doc/source-directory.md index 326a556c..a33adb27 100644 --- a/docs/content/doc/source-directory.md +++ b/docs/content/doc/source-directory.md @@ -1,7 +1,7 @@ -{ - "title": "Source Directory Organization", - "Pubdate": "2013-07-01" -} +--- +title: "Source Directory Organization" +Pubdate: "2013-07-01" +... Hugo takes a single directory and uses it as the input for creating a complete website. diff --git a/docs/content/doc/templates.md b/docs/content/doc/templates.md index e7403bc5..c2164feb 100644 --- a/docs/content/doc/templates.md +++ b/docs/content/doc/templates.md @@ -1,7 +1,7 @@ -{ - "title": "Templates", - "Pubdate": "2013-07-01" -} +--- +title: "Templates" +Pubdate: "2013-07-01" +... Hugo uses the excellent golang html/template library for it's template engine. It is an extremely lightweight engine that provides a very small amount of logic. In our diff --git a/docs/content/doc/usage.md b/docs/content/doc/usage.md index 3c7033be..950c4abc 100644 --- a/docs/content/doc/usage.md +++ b/docs/content/doc/usage.md @@ -1,7 +1,7 @@ -{ - "title": "Using Hugo", - "Pubdate": "2013-07-01" -} +--- +title: "Using Hugo" +Pubdate: "2013-07-01" +... Make sure either hugo is in your path or provide a path to it. diff --git a/docs/content/doc/variables.md b/docs/content/doc/variables.md index ec84ac21..a5d70739 100644 --- a/docs/content/doc/variables.md +++ b/docs/content/doc/variables.md @@ -1,7 +1,7 @@ -{ - "title": "Variables", - "Pubdate": "2013-07-01" -} +--- +title: "Variables" +Pubdate: "2013-07-01" +... Hugo makes a set of values available to the templates. Go templates are context based. The following are available in the context for the templates. diff --git a/hugolib/config.go b/hugolib/config.go index abb25046..84d6ce96 100644 --- a/hugolib/config.go +++ b/hugolib/config.go @@ -14,7 +14,7 @@ package hugolib import ( - "encoding/json" + "launchpad.net/goyaml" "fmt" "io/ioutil" "os" @@ -55,7 +55,7 @@ func SetupConfig(cfgfile *string, path *string) *Config { file, err := ioutil.ReadFile(configPath) if err == nil { - if err := json.Unmarshal(file, &c); err != nil { + if err := goyaml.Unmarshal(file, &c); err != nil { fmt.Printf("Error parsing config: %s", err) os.Exit(1) } diff --git a/hugolib/helpers.go b/hugolib/helpers.go index 1e02af90..4ebeea99 100644 --- a/hugolib/helpers.go +++ b/hugolib/helpers.go @@ -81,7 +81,7 @@ func interfaceToBool(i interface{}) bool { case bool: return b default: - Error("Only Boolean values are supported for this JSON key") + Error("Only Boolean values are supported for this YAML key") } return false @@ -106,7 +106,7 @@ func interfaceToString(i interface{}) string { case string: return s default: - Error("Only Strings are supported for this JSON key") + Error("Only Strings are supported for this YAML key") } return "" diff --git a/hugolib/page.go b/hugolib/page.go index 2e07cf70..46c56641 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -15,7 +15,7 @@ package hugolib import ( "bytes" - "encoding/json" + "launchpad.net/goyaml" "fmt" "github.com/theplant/blackfriday" "html/template" @@ -141,23 +141,23 @@ func (p *Page) analyzePage() { } // TODO //rewrite to use byte methods instead -func (page *Page) parseJsonMetaData(data []byte) ([]string, error) { +func (page *Page) parseYamlMetaData(data []byte) ([]string, error) { var err error lines := strings.Split(string(data), "\n") datum := lines[0:] - // go through content parse between "{" and "}" + // go through content parse between "---" and "..." // must be on their own lines (for now) var found = 0 for i, line := range lines { line = strings.TrimSpace(line) - if line == "{" { + if line == "---" { found += 1 } - if line == "}" { + if line == "..." { found -= 1 } @@ -168,7 +168,7 @@ func (page *Page) parseJsonMetaData(data []byte) ([]string, error) { } } - err = page.handleJsonMetaData([]byte(strings.Join(datum, "\n"))) + err = page.handleYamlMetaData([]byte(strings.Join(datum, "\n"))) return lines, err } @@ -185,10 +185,10 @@ func (p *Page) Permalink() template.HTML { } } -func (page *Page) handleJsonMetaData(datum []byte) error { +func (page *Page) handleYamlMetaData(datum []byte) error { 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) + if err := goyaml.Unmarshal(datum, &f); err != nil { + return fmt.Errorf("Invalide YAML in $v \nError parsing page meta data: %s", page.FileName, err) } m := f.(map[string]interface{}) @@ -309,7 +309,7 @@ func (page *Page) parseFileHeading(data []byte) ([]string, error) { if data[0] == '-' { return page.parseFileMetaData(data) } - return page.parseJsonMetaData(data) + return page.parseYamlMetaData(data) } return nil, nil } diff --git a/main.go b/main.go index d7386c6c..1de48f76 100644 --- a/main.go +++ b/main.go @@ -17,7 +17,7 @@ import ( "flag" "fmt" "github.com/howeyc/fsnotify" - "github.com/spf13/hugo/hugolib" + "./hugolib" "net/http" "os" "path/filepath" @@ -26,12 +26,12 @@ import ( ) const ( - cfgFiledefault = "config.json" + cfgFiledefault = "config.yaml" ) var ( baseUrl = flag.String("b", "", "hostname (and path) to the root eg. http://spf13.com/") - cfgfile = flag.String("c", cfgFiledefault, "config file (default is path/config.json)") + cfgfile = flag.String("c", cfgFiledefault, "config file (default is path/config.yaml)") checkMode = flag.Bool("k", false, "analyze content and provide feedback") draft = flag.Bool("d", false, "include content marked as draft") help = flag.Bool("h", false, "show this help") -- 2.30.2