From f851c4162bf3e6e2fd596e2f911b1e62b0220358 Mon Sep 17 00:00:00 2001 From: tycho garen <garen@tychoish.com> Date: Sun, 7 Jul 2013 10:01:53 -0400 Subject: [PATCH] fix: changing terminal yaml line, generalizing forematter splitting --- docs/content/doc/configuration.md | 2 +- docs/content/doc/contributing.md | 2 +- docs/content/doc/contributors.md | 2 +- docs/content/doc/example.md | 2 +- docs/content/doc/front-matter.md | 4 +-- docs/content/doc/installing.md | 2 +- docs/content/doc/license.md | 2 +- docs/content/doc/organization.md | 2 +- docs/content/doc/release-notes.md | 2 +- docs/content/doc/roadmap.md | 2 +- docs/content/doc/shortcodes.md | 2 +- docs/content/doc/source-directory.md | 2 +- docs/content/doc/templates.md | 2 +- docs/content/doc/usage.md | 2 +- docs/content/doc/variables.md | 2 +- hugolib/page.go | 44 ++++++++-------------------- 16 files changed, 29 insertions(+), 47 deletions(-) diff --git a/docs/content/doc/configuration.md b/docs/content/doc/configuration.md index 670a8e99..09cfb48f 100644 --- a/docs/content/doc/configuration.md +++ b/docs/content/doc/configuration.md @@ -1,7 +1,7 @@ --- 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 6ddb241f..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" ---- +... 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 3a7d7e64..e8a8ad97 100644 --- a/docs/content/doc/contributors.md +++ b/docs/content/doc/contributors.md @@ -1,7 +1,7 @@ --- 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 51e3c160..b13fa3e1 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" ---- +... 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 e4342099..af930b25 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" ---- +... 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 @@ -16,7 +16,7 @@ different formats. The main format supported is YAML. Here is an example: - "Development" - "VIM" Slug: "spf13-vim-3-0-release-and-new-website" - --- + ... ### Variables diff --git a/docs/content/doc/installing.md b/docs/content/doc/installing.md index 92a07dec..1f0f02de 100644 --- a/docs/content/doc/installing.md +++ b/docs/content/doc/installing.md @@ -1,7 +1,7 @@ --- title: "Installing Hugo" Pubdate: "2013-07-01" ---- +... Hugo is written in GoLang with support for Windows, Linux, FreeBSD and OSX. diff --git a/docs/content/doc/license.md b/docs/content/doc/license.md index 613a7ed2..43eba11e 100644 --- a/docs/content/doc/license.md +++ b/docs/content/doc/license.md @@ -1,7 +1,7 @@ --- 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 f524c59d..23238b26 100644 --- a/docs/content/doc/organization.md +++ b/docs/content/doc/organization.md @@ -1,7 +1,7 @@ --- 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 e268a5c3..a4b9e11e 100644 --- a/docs/content/doc/release-notes.md +++ b/docs/content/doc/release-notes.md @@ -1,7 +1,7 @@ --- 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 93a7a83d..7cc5bc81 100644 --- a/docs/content/doc/roadmap.md +++ b/docs/content/doc/roadmap.md @@ -1,7 +1,7 @@ --- 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 222963b0..abca668f 100644 --- a/docs/content/doc/shortcodes.md +++ b/docs/content/doc/shortcodes.md @@ -1,7 +1,7 @@ --- 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 9b0d1ae7..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" ---- +... 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 6b6e0f34..c2164feb 100644 --- a/docs/content/doc/templates.md +++ b/docs/content/doc/templates.md @@ -1,7 +1,7 @@ --- 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 772c1039..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" ---- +... 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 8a80fa17..a5d70739 100644 --- a/docs/content/doc/variables.md +++ b/docs/content/doc/variables.md @@ -1,7 +1,7 @@ --- 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/page.go b/hugolib/page.go index b0e796e9..c27bb7c5 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -148,62 +148,44 @@ func (p *Page) analyzePage() { 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 "..." - // must be on their own lines (for now) - var found = 0 - for i, line := range lines { - - if strings.HasPrefix(line, "---") { - found += 1 - } - - if strings.HasPrefix(line, "---") { - found -= 1 - } - - if found == 0 { - datum = lines[1: i+2] - lines = lines[i+3:] - break - } - } + datum, lines := splitPageContent(data, "---", "...") err = page.handleMetaData(page.handleYamlMetaData([]byte(strings.Join(datum, "\n")))) return lines, err } + func (page *Page) parseJsonMetaData(data []byte) ([]string, error) { var err error + datum, lines := splitPageContent(data, "{", "}") + + err = page.handleMetaData(page.handleJsonMetaData([]byte(strings.Join(datum, "\n")))) + return lines, err +} + +func splitPageContent(data []byte, start string, end string) ([]string, []string) { lines := strings.Split(string(data), "\n") datum := lines[0:] - // 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 strings.HasPrefix(line, start) { found += 1 } - if line == "}" { + if strings.HasPrefix(line, end) { found -= 1 } if found == 0 { - datum = lines[0 : i+1] + datum = lines[1: i+1] lines = lines[i+1:] break } } - - err = page.handleMetaData(page.handleJsonMetaData([]byte(strings.Join(datum, "\n")))) - return lines, err + return datum, lines } func (p *Page) Permalink() template.HTML { -- 2.30.2