shithub: hugo

Download patch

ref: 8c0ab4def124cc632c6e046e3e770bd4a055133a
parent: b76b80c56423ec737cb21c68602ff9eef70b14a3
author: spf13 <[email protected]>
date: Sat Aug 17 04:34:25 EDT 2013

Complete overhaul of the docs

--- /dev/null
+++ b/docs/content/content/example.md
@@ -1,0 +1,41 @@
+---
+title: "Example Content File"
+date: "2013-07-01"
+aliases: ["/doc/example/"]
+---
+
+Somethings are better shown than explained. The following is a very basic example of a content file:
+
+**mysite/project/nitro.md  <- http://mysite.com/project/nitro.html**
+
+    ---
+    Title: "Nitro : A quick and simple profiler for golang"
+    Description": ""
+    Keywords": [ "Development", "golang", "profiling" ]
+    Tags": [ "Development", "golang", "profiling" ]
+    date": "2013-06-19"
+    Topics": [ "Development", "GoLang" ]
+    Slug": "nitro"
+    project_url": "http://github.com/spf13/nitro"
+    ---
+
+    # Nitro
+
+    Quick and easy performance analyzer library for golang.
+
+    ## Overview
+
+    Nitro is a quick and easy performance analyzer library for golang.
+    It is useful for comparing A/B against different drafts of functions
+    or different functions.
+
+    ## Implementing Nitro
+
+    Using Nitro is simple. First use go get to install the latest version
+    of the library.
+
+        $ go get github.com/spf13/nitro
+
+    Next include nitro in your application.
+
+
--- /dev/null
+++ b/docs/content/content/front-matter.md
@@ -1,0 +1,84 @@
++++
+title = "Front Matter"
+date = "2013-07-01"
+aliases = ["/doc/front-matter/"]
++++
+
+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
+different formats each with their own identifying tokens.
+
+Supported formats: <br>
+  **YAML**, identified by '\-\-\-'. <br>
+  **TOML**, indentified with '+++'.<br>
+  **JSON**, a single JSON object which is surrounded by '{' and '}' each on their own line.
+
+### YAML Example
+
+    ---
+    title: "spf13-vim 3.0 release and new website"
+    description: "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
+    tags: [ ".vimrc", "plugins", "spf13-vim", "vim" ]
+    date: "2012-04-06"
+    categories:
+      - "Development"
+      - "VIM"
+    slug: "spf13-vim-3-0-release-and-new-website"
+    ---
+    Content of the file goes Here
+
+### TOML Example
+
+    +++
+    title = "spf13-vim 3.0 release and new website"
+    description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
+    tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ]
+    date = "2012-04-06"
+    categories = [
+      "Development",
+      "VIM"
+    ]
+    slug = "spf13-vim-3-0-release-and-new-website"
+    +++
+    Content of the file goes Here
+
+### JSON Example
+
+    {
+    "title": "spf13-vim 3.0 release and new website",
+    "description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.",
+    "tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ],
+    "date": "2012-04-06",
+    "categories": [
+        "Development",
+        "VIM"
+    ],
+    "slug": "spf13-vim-3-0-release-and-new-website",
+    }
+    Content of the file goes Here
+
+### Variables
+
+There are a few predefined variables that Hugo is aware of and utilizes. The user can also create
+any variable they want to. These will be placed into the `.Params` variable available to the templates.
+**Field names are case insensitive.**
+
+#### Required
+
+**title**  The title for the content. <br>
+**description** The description for the content.<br>
+**date** The date the content will be sorted by.<br>
+**indexes** These will use the field name of the plural form of the index (see tags and categories above)
+
+#### Optional
+
+**redirect** Mark the post as a redirect post<br>
+**draft** If true the content will not be rendered unless `hugo` is called with -d<br>
+**type** The type of the content (will be derived from the directory automatically if unset).<br>
+**markup** (Experimental) Specify "rst" for reStructuredText (requires
+           `rst2html`,) or "md" (default) for the Markdown.<br>
+**slug** The token to appear in the tail of the url.<br>
+  *or*<br>
+**url** The full path to the content from the web root.<br>
+*If neither is present the filename will be used.*
+
--- /dev/null
+++ b/docs/content/content/organization.md
@@ -1,0 +1,154 @@
+---
+title: "Content Organization"
+date: "2013-07-01"
+aliases: ["/doc/organization/"]
+---
+
+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
+by additional configuration in the front matter.
+
+## Organization
+In Hugo the content should be arranged in the same way they are intended for the rendered website.
+Without any additional configuration the following will just work. Hugo supports
+content nested at any level. The top level is special in Hugo and is used as the
+[section](/content/sections).
+
+    .
+    └── content
+        ├── post
+        |   ├── firstpost.md       // <- http://site.com/post/firstpost/
+        |   ├── happy
+        |   |   └── happiness.md   // <- http://site.com/happy/happiness/
+        |   └── secondpost.md      // <- http://site.com/post/secondpost/
+        └── quote
+            ├── first.md           // <- http://site.com/quote/first/
+            └── second.md          // <- http://site.com/quote/second/
+
+**Here's the same organization run with hugo -\-uglyurls**
+
+    .
+    └── content
+        ├── post
+        |   ├── firstpost.md       // <- http://site.com/post/firstpost.html
+        |   ├── happy
+        |   |   └── happiness.md   // <- http://site.com/happy/happiness.html
+        |   └── secondpost.md      // <- http://site.com/post/secondpost.html
+        └── quote
+            ├── first.md           // <- http://site.com/quote/first.html
+            └── second.md          // <- http://site.com/quote/second.html
+
+## Destinations
+
+Hugo thinks that you organize your content with a purpose. The same structure
+that works to organize your source content is used to organize the rendered
+site. As displayed above, the organization of the source content will be
+mirrored in the destination.
+
+There are times when one would need more control over their content. In these
+cases there are a variety of things that can be specified in the front matter to
+determine the destination of a specific piece of content.
+
+The following items are defined in order, latter items in the list will override
+earlier settings.
+
+#### filename
+This isn't in the front matter, but is the actual name of the file minus the
+extension. This will be the name of the file in the destination.
+
+#### slug
+Defined in the front matter, the slug can take the place of the filename for the
+destination.
+
+#### filepath
+The actual path to the file on disk. Destination will create the destination
+with the same path. Includes [section](/content/sections).
+
+#### section
+section can be provided in the front matter overriding the section derived from
+the source content location on disk. See [section](/content/sections).
+
+#### path
+path can be provided in the front matter. This will replace the actual
+path to the file on disk. Destination will create the destination with the same
+path. Includes [section](/content/sections).
+
+#### url
+A complete url can be provided. This will override all the above as it pertains
+to the end destination. This must be the path from the baseurl (starting with a "/").
+When a url is provided it will be used exactly. Using url will ignore the
+-\-uglyurls setting.
+
+
+## Path breakdown in hugo
+
+### Content
+
+    .             path           slug
+    .       ⊢-------^----⊣ ⊢------^-------⊣
+    content/extras/indexes/category-example/index.html
+
+
+    .       section              slug
+    .       ⊢--^--⊣        ⊢------^-------⊣
+    content/extras/indexes/category-example/index.html
+
+
+    .       section  slug
+    .       ⊢--^--⊣⊢--^--⊣
+    content/extras/indexes/index.html
+
+### Destination
+
+
+               permalink
+    ⊢--------------^-------------⊣
+    http://spf13.com/projects/hugo
+
+
+       baseUrl       section  slug
+    ⊢-----^--------⊣ ⊢--^---⊣ ⊢-^⊣
+    http://spf13.com/projects/hugo
+
+
+       baseUrl       section          slug
+    ⊢-----^--------⊣ ⊢--^--⊣        ⊢--^--⊣
+    http://spf13.com/extras/indexes/example
+
+
+       baseUrl            path       slug
+    ⊢-----^--------⊣ ⊢------^-----⊣ ⊢--^--⊣
+    http://spf13.com/extras/indexes/example
+
+
+       baseUrl            url
+    ⊢-----^--------⊣ ⊢-----^-----⊣
+    http://spf13.com/projects/hugo
+
+
+       baseUrl               url
+    ⊢-----^--------⊣ ⊢--------^-----------⊣
+    http://spf13.com/extras/indexes/example
+
+
+
+section = which type the content is by default
+   based on content location 
+   front matter overrides
+
+
+slug = name.ext or name/
+    based on content-name.md
+    front matter overrides
+
+
+path = section + path to file exluding slug
+    based on path to content location
+
+
+url = relative url
+    defined in front matter
+    overrides all the above
+
+
+
--- /dev/null
+++ b/docs/content/content/sections.md
@@ -1,0 +1,43 @@
+---
+title: "Sections"
+date: "2013-07-01"
+---
+
+Hugo thinks that you organize your content with a purpose. The same structure
+that works to organize your source content is used to organize the rendered
+site ( [see organization](/content/organization) ). Following this pattern Hugo
+uses the top level of your content organization as **the Section**.
+
+The following example site uses two sections, "post" and "quote".
+
+    .
+    └── content
+        ├── post
+        |   ├── firstpost.md       // <- http://site.com/post/firstpost/
+        |   ├── happy
+        |   |   └── happiness.md   // <- http://site.com/happy/happiness/
+        |   └── secondpost.md      // <- http://site.com/post/secondpost/
+        └── quote
+            ├── first.md           // <- http://site.com/quote/first/
+            └── second.md          // <- http://site.com/quote/second/
+
+
+*Regardless of location on disk, the section can be provided in the front matter
+which will affect the destination location*.
+
+## Sections and Types
+
+By default everything created within a section will use the content type
+that matches the section name.
+
+Section defined in the front matter have the same impact.
+
+To change the type of a given piece of content simply define the type
+in the front matter.
+
+If a layout for a given type hasn't been provided a default type template will
+be used instead provided is exists.
+
+
+
+
--- /dev/null
+++ b/docs/content/content/types.md
@@ -1,0 +1,49 @@
+---
+title: "Content Types"
+date: "2013-07-01"
+---
+
+Hugo has full support for multiple content types each with it's own set
+of meta data and template. A good example of when multiple types are
+needed is to look a tumblr. A piece of content could be a photo, quote
+or post, each with different meta data and rendered differently.
+
+
+## Defining a content type
+
+Creating a new content type is easy in Hugo. You simply provide the
+templates that the new type will use.
+
+It is essential to provide the single render view template as well as a
+list view template.
+
+**Step 1:**
+Create a directory with the name of the type in layouts.Type is always singular.  *Eg /layouts/post*.
+
+**Step 2:**
+Create a file called single.html inside your directory. *Eg /layouts/post/single.html*.
+
+**Step 3:**
+Create a file with the same name as your directory in /layouts/indexes/. *Eg /layouts/index/post.html*.
+
+**Step 4:**
+Many sites support rendering content in a few different ways, for
+instance a single page view and a summary view to be used when displaying a list
+of contents on a single page. Hugo makes no assumptions here about how you want
+to display your content, and will support as many different views of a content
+type as your site requires. All that is required for these additional views is
+that a template exists in each layout/type directory with the same name.
+
+For these, reviewing this example site will be very helpful in order to understand how these types work.
+
+## Assigning a content type
+
+Hugo assumes that your site will be organized into [sections](/content/sections)
+and each section will use the corresponding type. If you are taking advantage of
+this then each new piece of content you place into a section will automatically
+inherit the type.
+
+Alternatively you can set the type in the meta data under the key "type".
+
+
+
--- a/docs/content/doc/aliases.md
+++ /dev/null
@@ -1,33 +1,0 @@
----
-title: "Aliases"
-Pubdate: "2013-07-09"
-Aliases:
-    - /doc/redirects/
-    - /doc/alias/
----
-
-For people migrating existing published content to Hugo theres a good chance
-you need a mechanism to handle redirecting old urls.
-
-Luckily, this can be handled easily with aliases in Hugo.
-
-## Example
-**content/posts/my-awesome-blog-post.md**
-
-    ---
-    aliases:
-        - /posts/my-original-url/
-        - /2010/even-earlier-url.html
-    ---
-
-Now when you go to any of the aliases locations they
-will redirect to the page.
-
-## Important Behaviors
-
-1. *Hugo makes no assumptions about aliases. They also don't change based
-on your UglyUrls setting. You Need to provide a relative path and the
-complete filename or directory.*
-
-2. *Aliases are rendered prior to any content and will be overwritten by
-any content with the same location.*
--- a/docs/content/doc/configuration.md
+++ /dev/null
@@ -1,58 +1,0 @@
----
-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
-since the defaults used follow commonly used patterns.
-
-Hugo expects to find the config file in the root of the source directory and
-will look there first for a config.yaml file. If none is present it will
-then look for a config.json file, followed by a config.toml file.
-
-**Please note the field names must be all lowercase**
-
-## Examples
-
-The following is an example of a yaml config file with the default values: 
-
-    ---
-    contentdir: "content"
-    layoutdir: "layouts"
-    publishdir: "public"
-    builddrafts: false
-    indexes:
-       category: "categories"
-       tag: "tags"
-    baseurl: "http://yoursite.com/"
-    ...
-
-
-The following is an example of a json config file with the default values: 
-
-    {
-        "contentdir": "content",
-        "layoutdir": "layouts",
-        "publishdir": "public",
-        "builddrafts": false,
-        "indexes": {
-           "category": "categories",
-           "tag": "tags"
-        },
-        "baseurl": "http://yoursite.com/"
-    }
-
-
-The following is an example of a toml config file with the default values: 
-
-    contentdir = "content"
-    layoutdir = "layouts"
-    publishdir = "public"
-    builddrafts = false
-    baseurl = "http://yoursite.com/"
-    [indexes]
-       category = "categories"
-       tag = "tags"
-
-
--- a/docs/content/doc/contributing.md
+++ /dev/null
@@ -1,44 +1,0 @@
----
-title: "Contributing to Hugo"
-Pubdate: "2013-07-01"
----
-
-We welcome all contributions. If you want to contribute, all 
-that is needed is simply fork Hugo, make changes and submit 
-a pull request. If you prefer, pick something from the roadmap
-or contact [spf13](http://spf13.com) about what may make sense 
-to do next.
-
-## Overview 
-1. Fork it from https://github.com/spf13/hugo
-2. Create your feature branch (`git checkout -b my-new-feature`)
-3. Commit your changes (`git commit -am 'Add some feature'`)
-4. Push to the branch (`git push origin my-new-feature`)
-5. Create new Pull Request
-
-
-### Clone locally (for contributors):
-
-    git clone https://github.com/spf13/hugo
-    cd hugo
-    go get
-
-Because go expects all of your libraries to be found in either 
-$GOROOT or $GOPATH, it's helpful to symlink the project to one 
-of the following paths:
-
- * ln -s /path/to/your/hugo $GOPATH/src/github.com/spf13/hugo
- * ln -s /path/to/your/hugo $GOROOT/src/pkg/github.com/spf13/hugo
-
-### Running Hugo
-
-    cd /path/to/hugo
-    go install github.com/spf13/hugo/hugolibs
-    go run main.go
-
-### Building Hugo
-
-    cd /path/to/hugo
-    go build -o hugo main.go
-    mv hugo /usr/local/bin/
-
--- a/docs/content/doc/contributors.md
+++ /dev/null
@@ -1,9 +1,0 @@
----
-title: "Contributors"
-date: "2013-07-01"
----
-
-Hugo was built with love and golang by:
-
-* [spf13](https://github.com/spf13)
-
--- a/docs/content/doc/example.md
+++ /dev/null
@@ -1,40 +1,0 @@
----
-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:
-
-**mysite/project/nitro.md  <- http://mysite.com/project/nitro.html**
-
-    ---
-    Title: "Nitro : A quick and simple profiler for golang"
-    Description": ""
-    Keywords": [ "Development", "golang", "profiling" ]
-    Tags": [ "Development", "golang", "profiling" ]
-    Pubdate": "2013-06-19"
-    Topics": [ "Development", "GoLang" ]
-    Slug": "nitro"
-    project_url": "http://github.com/spf13/nitro"
-    ---
-
-    # Nitro
-
-    Quick and easy performance analyzer library for golang.
-
-    ## Overview
-
-    Nitro is a quick and easy performance analyzer library for golang.
-    It is useful for comparing A/B against different drafts of functions
-    or different functions.
-
-    ## Implementing Nitro
-
-    Using Nitro is simple. First use go get to install the latest version
-    of the library.
-
-        $ go get github.com/spf13/nitro
-
-    Next include nitro in your application.
-
-
--- a/docs/content/doc/front-matter.md
+++ /dev/null
@@ -1,83 +1,0 @@
-+++
-title = "Front Matter"
-date = "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
-different formats each with their own identifying tokens.
-
-Supported formats: <br>
-  **YAML**, identified by '\-\-\-'. <br>
-  **TOML**, indentified with '+++'.<br>
-  **JSON**, a single JSON object which is surrounded by '{' and '}' each on their own line.
-
-### YAML Example
-
-    ---
-    title: "spf13-vim 3.0 release and new website"
-    description: "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
-    tags: [ ".vimrc", "plugins", "spf13-vim", "vim" ]
-    pubdate: "2012-04-06"
-    categories:
-      - "Development"
-      - "VIM"
-    slug: "spf13-vim-3-0-release-and-new-website"
-    ---
-    Content of the file goes Here
-
-### TOML Example
-
-    +++
-    title = "spf13-vim 3.0 release and new website"
-    description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
-    tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ]
-    Pubdate = "2012-04-06"
-    categories = [
-      "Development",
-      "VIM"
-    ]
-    slug = "spf13-vim-3-0-release-and-new-website"
-    +++
-    Content of the file goes Here
-
-### JSON Example
-
-    {
-    "title": "spf13-vim 3.0 release and new website",
-    "description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.",
-    "tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ],
-    "date": "2012-04-06",
-    "categories": [
-        "Development",
-        "VIM"
-    ],
-    "slug": "spf13-vim-3-0-release-and-new-website",
-    }
-    Content of the file goes Here
-
-### Variables
-
-There are a few predefined variables that Hugo is aware of and utilizes. The user can also create
-any variable they want to. These will be placed into the `.Params` variable available to the templates.
-**Field names are case insensitive.**
-
-#### Required
-
-**title**  The title for the content. <br>
-**description** The description for the content.<br>
-**date** The date the content will be sorted by.<br>
-**indexes** These will use the field name of the plural form of the index (see tags and categories above)
-
-#### Optional
-
-**redirect** Mark the post as a redirect post<br>
-**draft** If true the content will not be rendered unless `hugo` is called with -d<br>
-**type** The type of the content (will be derived from the directory automatically if unset).<br>
-**markup** (Experimental) Specify "rst" for reStructuredText (requires
-           `rst2html`,) or "md" (default) for the Markdown.<br>
-**slug** The token to appear in the tail of the url.<br>
-  *or*<br>
-**url** The full path to the content from the web root.<br>
-*If neither is present the filename will be used.*
-
--- a/docs/content/doc/indexes.md
+++ /dev/null
@@ -1,221 +1,0 @@
----
-title: "Indexes"
-Pubdate: "2013-07-01"
----
-
-Hugo includes support for user defined indexes of content. In our 
-terminology an index is best thought of as tags applied to content
-but they can be used for far more than just tags. Other common
-uses would include categories, groups, series. For the purpose of 
-this document we will just use tags for our example. For a more 
-complete example see [spf13.com-hugo](http://github.com/spf13/spf13.com-hugo).
-
-## Defining Indexes for a site
-
-Indexes must be defined in the site configuration, before they
-can be used throughout the site. 
-
-Here is an example configuration in YAML that specifies two indexes.
-Notice the format is **singular key** : *plural value*. While 
-we could use an inflection library to pluralize this, they currently
-support only a few languages, so instead we've opted for user defined
-pluralization.
-
-**config.yaml**
-
-    ---
-    indexes:
-        tag: "tags"
-        topic: "topics"
-    baseurl: "http://spf13.com/"
-    title: "Steve Francia is spf13.com"
-    ---
-
-## Creating index templates
-For each index type a template needs to be provided to render the index page.
-In the case of tags, this will render the content for /tags/TAGNAME/.
-
-The template must be called the singular name of the index and placed in 
-layouts/indexes
-
-    .
-    └── layouts
-        └── indexes
-            └── category.html
-
-The template will be provided Data about the index. 
-
-### Variables
-
-The following variables are available to the index template:
-
-**.Title**  The title for the content. <br>
-**.Date** The date the content is published on.<br>
-**.Permalink** The Permanent link for this page.<br>
-**.RSSLink** Link to the indexes' rss link. <br>
-**.Data.Pages** The content that is assigned this index.<br>
-**.Data.`singular`** The index itself.<br>
-
-#### Example
-
-    {{ template "chrome/header.html" . }}
-    {{ template "chrome/subheader.html" . }}
-
-    <section id="main">
-      <div>
-       <h1 id="title">{{ .Title }}</h1>
-        {{ range .Data.Pages }}
-            {{ .Render "summary"}}
-        {{ end }}
-      </div>
-    </section>
-
-    <aside id="meta"> </aside>
-
-    {{ template "chrome/footer.html" }}
-
-
-## Assigning indexes to content
-
-Once an index is defined at the site level, any piece of content
-can be assigned to it regardless of content type or section.
-
-Assigning content to an index is done in the front matter.
-Simply create a variable with the *plural* name of the index
-and assign all keys you want this content to match against. 
-
-**Index values are case insensitive**
-
-#### Example
-    {
-        "Title": "Hugo: A fast and flexible static site generator",
-        "Tags": [
-            "Development",
-            "golang",
-            "Blogging"
-        ],
-        "Slug": "hugo",
-        "project_url": "http://github.com/spf13/hugo"
-    }
-
-
-## Displaying indexes within content
-
-Within your content templates you may wish to display 
-the indexes that that piece of content is assigned to.
-
-Because we are leveraging the front matter system to 
-define indexes for content, the indexes assigned to 
-each content piece are located in the usual place 
-(.Params.`plural`)
-
-#### Example
-
-    <ul id="tags">
-      {{ range .Params.tags }}
-        <li><a href="tags/{{ . | urlize }}">{{ . }}</a> </li>
-      {{ end }}
-    </ul>
-
-If you wish to display the list of all indexes, the index can
-be retrieved from the `.Site` variable.
-
-#### Example
-
-    <ul id="all-tags">
-      {{ range .Site.Indexes.tags }}  
-        <li><a href="/tags/{{ .Name | urlize }}">{{ .Name }}</a></li>  
-      {{ end }}
-    </ul>
-
-## Creating Indexes of Indexes
-
-Hugo also supports creating pages that list your values for each 
-index along with the number of content items associated with the 
-index key.
-
-This may take the form of a tag cloud or simply a list.
-
-To have hugo create these indexes of indexes pages, simply create
-a template in indexes called indexes.html
-
-Hugo provides two different versions of the index. One alphabetically
-sorted, the other sorted by most popular. It's important to recognize
-that the data structure of the two is different.
-
-#### Example indexes.html file (alphabetical)
-
-    {{ template "chrome/header.html" . }}
-    {{ template "chrome/subheader.html" . }}
-
-    <section id="main">
-      <div>
-       <h1 id="title">{{ .Title }}</h1>
-       <ul>
-       {{ $data := .Data }}
-        {{ range $key, $value := .Data.Index }}
-        <li><a href="{{ $data.Plural }}/{{ $key | urlize }}"> {{ $key }} </a> {{ len $value }} </li>
-        {{ end }}
-       </ul>
-      </div>
-    </section>
-
-    {{ template "chrome/footer.html" }}
-
-
-#### Example indexes.html file (ordered)
-
-    {{ template "chrome/header.html" . }}
-    {{ template "chrome/subheader.html" . }}
-
-    <section id="main">
-      <div>
-       <h1 id="title">{{ .Title }}</h1>
-       <ul>
-        {{ range $data.OrderedIndex }}
-        <li><a href="{{ $data.Plural }}/{{ .Name | urlize }}"> {{ .Name }} </a> {{ .Count }} </li>
-        {{ end }}
-       </ul>
-      </div>
-    </section>
-
-    {{ template "chrome/footer.html" }}
-
-### Variables available to indexes of indexes pages.
-
-**.Title**  The title for the content. <br>
-**.Date** The date the content is published on.<br>
-**.Permalink** The Permanent link for this page.<br>
-**.RSSLink** Link to the indexes' rss link. <br>
-**.Data.Singular** The singular name of the index <br>
-**.Data.Plural** The plural name of the index<br>
-**.Data.Index** The Alphabetical index<br>
-**.Data.OrderedIndex** The popular index<br>
-
-## Creating a menu based on indexes
-
-Hugo can generate menus based on indexes by iterating and
-nesting the index keys. This can be used to build a hierarchy
-of content within your site.
-
-To have hugo create the menu, simply create a template in chome
-called menu.html, then include it using the 
-`{{ template "chrome/menu.html" . }}` syntax.
-
-
-#### Example menu.html file 
-
-    <section id="menu">
-      <ul>
-        {{ range $indexname, $index := .Site.Indexes }}
-          <li><a href="/{{ $indexname | urlize }}">{{ $indexname }}</a> 
-            <ul> 
-              {{ range $index }}
-                <li><a href="/{{ $indexname | urlize }}/{{ .Name | urlize }}">{{ .Name }}</a></li>
-              {{ end }}
-            </ul>
-          </li> 
-        {{ end }}
-      </ul>
-    </section>
-
--- a/docs/content/doc/installing.md
+++ /dev/null
@@ -1,46 +1,0 @@
----
-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).
-We currently build for Windows, Linux, FreeBSD and OS X for x64
-and 386 architectures. 
-
-## Installing Hugo (binary)
-
-Installation is very easy. Simply download the appropriate version for your
-platform from [hugo releases](https://github.com/spf13/hugo/releases).
-Once downloaded it can be run from anywhere. You don't need to install
-it into a global location. This works well for shared hosts and other systems
-where you don't have a privileged account.
-
-Ideally you should install it somewhere in your path for easy use. `/usr/local/bin` 
-is the most probable location.
-
-*the Hugo executible has no external dependencies.*
-
-## Installing from source
-
-### Dependencies
-
-* Git
-* Go 1.1+
-* Mercurial
-* Bazaar
-
-### Get directly from Github:
-
-    go get github.com/spf13/hugo
-
-### Building Hugo
-
-    cd /path/to/hugo
-    go build -o hugo main.go
-    mv hugo /usr/local/bin/
-
-## Contributing
-
-Please see the [contributing guide](/doc/contributing)
--- a/docs/content/doc/license.md
+++ /dev/null
@@ -1,75 +1,0 @@
----
-title: "License"
-Pubdate: "2013-07-01"
----
-
-Hugo is released under the Simple Public License.
-
-
-Simple Public License (SimPL-2.0)
-=================================
-
-Preamble
---------
-
-This Simple Public License 2.0 (SimPL-2.0 for short) is a plain language
-implementation of GPL 2.0.  The words are different, but the goal is the
-same - to guarantee for all users the freedom to share and change
-software.  If anyone wonders about the meaning of the SimPL, they should
-interpret it as consistent with GPL 2.0.
-
-
-Simple Public License (SimPL) 2.0
-=================================
-
-The SimPL applies to the software's source and object code and comes
-with any rights that I have in it (other than trademarks). You agree to
-the SimPL by copying, distributing, or making a derivative work of the
-software.
-
- You get the royalty free right to:
-
--   Use the software for any purpose;
--   Make derivative works of it (this is called a "Derived Work");
--   Copy and distribute it and any Derived Work.
-
-If you distribute the software or a Derived Work, you must give back to
-the community by:
-
--   Prominently noting the date of any changes you make;
--   Leaving other people's copyright notices, warranty disclaimers, and
-    license terms in place;
--   Providing the source code, build scripts, installation scripts, and
-    interface definitions in a form that is easy to get and best to
-    modify;
--   Licensing it to everyone under SimPL, or substantially similar terms
-    (such as GPL 2.0), without adding further restrictions to the rights
-    provided;
--   Conspicuously announcing that it is available under that license.
-
-There are some things that you must shoulder:
-
--   You get NO WARRANTIES. None of any kind;
--   If the software damages you in any way, you may only recover direct
-    damages up to the amount you paid for it (that is zero if you did
-    not pay anything). You may not recover any other damages, including
-    those called "consequential damages." (The state or country where
-    you live may not allow you to limit your liability in this way, so
-    this may not apply to you);
-
-The SimPL continues perpetually, except that your license rights end
-automatically if:
-
--   You do not abide by the "give back to the community" terms (your
-    licensees get to keep their rights if they abide);
--   Anyone prevents you from distributing the software under the terms
-    of the SimPL.
-
-License for the License
------------------------
-
-You may do anything that you want with the SimPL text; it's a license
-form to use in any way that you find helpful.  To avoid confusion,
-however, if you change the terms in any way then you may not call your
-license the Simple Public License or the SimPL (but feel free to
-acknowledge that your license is "based on the Simple Public License").
--- a/docs/content/doc/organization.md
+++ /dev/null
@@ -1,22 +1,0 @@
----
-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
-by additional configuration in the front matter.
-
-## Organization
-In Hugo the content should be arranged in the same way they are intended for the rendered website.
-Without any additional configuration the following will just work.
-
-    .
-    └── content
-        ├── post
-        |   ├── firstpost.md   // <- http://site.com/post/firstpost.html
-        |   └── secondpost.md  // <- http://site.com/post/secondpost.html
-        └── quote
-            ├── first.md       // <- http://site.com/quote/first.html
-            └── second.md      // <- http://site.com/quote/second.html
-
--- a/docs/content/doc/release-notes.md
+++ /dev/null
@@ -1,28 +1,0 @@
----
-title: "Release Notes"
-Pubdate: "2013-07-01"
----
-
-* **0.9.0**
-  * Added support for aliases (redirects)
-* **0.8.0** August 2, 2013
-  * Added support for pretty urls (filename/index.html vs filename.html)
-  * Hugo supports a destination directory
-  * Will efficiently sync content in static to destination directory
-  * Cleaned up options.. now with support for short and long options
-  * Added support for TOML
-  * Added support for YAML
-  * Added support for Previous & Next
-  * Added support for indexes for the indexes
-  * Better Windows compatibility
-  * Support for series
-  * Adding verbose output
-  * Loads of bugfixes
-* **0.7.0** July 4, 2013
-  * Hugo now includes a simple server
-  * First public release
-* **0.6.0** July 2, 2013
-  * Hugo includes an example documentation site which it builds
-* **0.5.0** June 25, 2013
-  * Hugo is quite usable and able to build spf13.com
-
--- a/docs/content/doc/roadmap.md
+++ /dev/null
@@ -1,17 +1,0 @@
----
-title: "Roadmap"
-Pubdate: "2013-07-01"
----
-
-In no particular order, here is what we are working on:
-
- * Pagination
- * Support for top level pages (other than homepage)
- * Better error handling
- * Syntax highlighting
- * Commands
- * Actions (eg. hugo create page)
- * Related Posts
- * Support for other formats
-
-
--- a/docs/content/doc/shortcodes.md
+++ /dev/null
@@ -1,76 +1,0 @@
----
-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.
-
-However we cannot accept being constrained by our simple format. Also unacceptable is writing raw
-html in our markdown every time we want to include unsupported content such as a video. To do 
-so is in complete opposition to the intent of using a bare bones format for our content and 
-utilizing templates to apply styling for display.
-
-To avoid both of these limitations Hugo has full support for shortcodes.
-
-### What is a shortcode?
-A shortcode is a simple snippet inside a markdown file that Hugo will render using a template.
-
-Short codes are designated by the opening and closing characters of '{{&#37;' and '%}}' respectively.
-Short codes are space delimited. The first word is always the name of the shortcode.  Following the 
-name are the parameters. The author of the shortcode can choose if the short code
-will use positional parameters or named parameters (but not both). A good rule of thumb is that if a
-short code has a single required value in the case of the youtube example below then positional
-works very well. For more complex layouts with optional parameters named parameters work best.
-
-The format for named parameters models that of html with the format name="value"
-
-### Example: youtube
-*Example has an extra space so Hugo doesn't actually render it*
-
-    {{ % youtube 09jf3ow9jfw %}}
-
-This would be rendered as 
-
-    <div class="embed video-player">
-    <iframe class="youtube-player" type="text/html"
-        width="640" height="385" 
-        src="http://www.youtube.com/embed/09jf3ow9jfw"
-        allowfullscreen frameborder="0">
-    </iframe>
-    </div>
-
-### Example: image with caption
-*Example has an extra space so Hugo doesn't actually render it*
-
-    {{ % img src="/media/spf13.jpg" title="Steve Francia" %}}
-
-Would be rendered as:
-
-    <figure >
-        <img src="/media/spf13.jpg"  />
-        <figcaption>
-            <h4>Steve Francia</h4>
-        </figcaption>
-    </figure>
-
-
-### Creating a shortcode
-
-All that you need to do to create a shortcode is place a template in the layouts/shortcodes directory.
-
-The template name will be the name of the shortcode.
-
-**Inside the template**
-
-To access a parameter by either position or name the index method can be used.
-
-    {{ index .Params 0 }}
-    or
-    {{ index .Params "class" }}
-
-To check if a parameter has been provided use the isset method provided by Hugo.
-
-    {{ if isset .Params "class"}} class="{{ index .Params "class"}}" {{ end }}
-
-
--- a/docs/content/doc/source-directory.md
+++ /dev/null
@@ -1,54 +1,0 @@
----
-title: "Source Directory Organization"
-Pubdate: "2013-07-01"
----
-
-Hugo takes a single directory and uses it as the input for creating a complete website.
-
-Hugo has a very small amount of configuration, while remaining highly customizable. 
-It accomplishes by assuming that you will only provide templates with the intent of
-using them.
-
-An example directory may look like:
-
-    .
-    ├── config.yaml
-    ├── content
-    |   ├── post
-    |   |   ├── firstpost.md
-    |   |   └── secondpost.md
-    |   └── quote
-    |   |   ├── first.md
-    |   |   └── second.md
-    ├── layouts
-    |   ├── chrome
-    |   |   ├── header.html
-    |   |   └── footer.html
-    |   ├── indexes
-    |   |   ├── category.html
-    |   |   ├── post.html
-    |   |   ├── quote.html
-    |   |   └── tag.html
-    |   ├── post
-    |   |   ├── li.html
-    |   |   ├── single.html
-    |   |   └── summary.html
-    |   ├── quote
-    |   |   ├── li.html
-    |   |   ├── single.html
-    |   |   └── summary.html
-    |   ├── shortcodes
-    |   |   ├── img.html
-    |   |   ├── vimeo.html
-    |   |   └── youtube.html
-    |   ├── index.html
-    |   └── rss.xml
-    └── static
-
-This directory structure tells us a lot about this site:
-
-1. the website intends to have two different types of content, posts and quotes.
-2. It will also apply two different indexes to that content, categories and tags.
-3. It will be displaying content in 3 different views, a list, a summary and a full page view.
-
-Included with the repository is this example site ready to be rendered.
--- a/docs/content/doc/templates.md
+++ /dev/null
@@ -1,66 +1,0 @@
----
-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 
-experience that it is just the right amount of logic to be able to create a good static website
-
-This document will not cover how to use golang templates, but the [golang docs](http://golang.org/pkg/html/template/)
-provide a good introduction.
-
-### Template roles
-
-There are 5 different kinds of templates that Hugo works with.
-
-#### index.html
-This file must exist in the layouts directory. It is the template used to render the 
-homepage of your site.
-
-#### rss.xml
-This file must exist in the layouts directory. It will be used to render all rss documents.
-The one provided in the example application will generate an ATOM format. 
-
-*Important: Hugo will automatically add the following header line to this file.*
-
-    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-
-#### Indexes
-An index is a page that list multiple pieces of content. If you think of a typical blog, the tag 
-pages are good examples of indexes.
-
-
-#### Content Type(s)
-Hugo supports multiple types of content. Another way of looking at this is that Hugo has the ability
-to render content in a variety of ways as determined by the type.
-
-#### Chrome
-Chrome is simply the decoration of your site. It's not a requirement to have this, but in practice
-it's very convenient. Hugo doesn't know anything about Chrome, it's simply a convention that you may
-likely find beneficial. As you create the rest of your templates you will include templates from the 
-/layout/chrome directory. I've found it helpful to include a header and footer template 
-in Chrome so I can include those in the other full page layouts (index.html, indexes/ type/single.html).
-
-### Adding a new content type
-
-Adding a type is easy.
-
-**Step 1:**
-Create a directory with the name of the type in layouts.Type is always singular.  *Eg /layouts/post*.
-
-**Step 2:**
-Create a file called single.html inside your directory. *Eg /layouts/post/single.html*.
-
-**Step 3:**
-Create a file with the same name as your directory in /layouts/indexes/. *Eg /layouts/index/post.html*.
-
-**Step 4:**
-Many sites support rendering content in a few different ways, for instance a single page view and a 
-summary view to be used when displaying a list of contents on a single page. Hugo makes no assumptions
-here about how you want to display your content, and will support as many different views of a content
-type as your site requires. All that is required for these additional views is that a template
-exists in each layout/type directory with the same name.
-
-For these, reviewing this example site will be very helpful in order to understand how these types work.
-
--- a/docs/content/doc/usage.md
+++ /dev/null
@@ -1,55 +1,0 @@
----
-title: "Using Hugo"
-Pubdate: "2013-07-01"
----
-
-Make sure either hugo is in your path or provide a path to it.
-
-    $ hugo --help
-    usage: hugo [flags] []
-      -b, --base-url="": hostname (and path) to the root eg. http://spf13.com/
-      -D, --build-drafts=false: include content marked as draft
-          --config="": config file (default is path/config.yaml|json|toml)
-      -d, --destination="": filesystem path to write files to
-      -h, --help=false: show this help
-          --port="1313": port to run web server on, default :1313
-      -S, --server=false: run a (very) simple web server
-      -s, --source="": filesystem path to read files relative from
-          --uglyurls=false: if true, use /filename.html instead of /filename/
-      -v, --verbose=false: verbose output
-          --version=false: which version of hugo
-      -w, --watch=false: watch filesystem for changes and recreate as needed
-
-## Common Usage Example:
-
-The most common use is probably to run hugo with your current
-directory being the input directory.
-
-
-    $ hugo
-    > X pages created
-    > Y indexes created
-      in 8 ms
-
-
-If you are working on things and want to see the changes
-immediately, tell Hugo to watch for changes. **It will
-recreate the site faster than you can tab over to
-your browser to view the changes.**
-
-    $ hugo -s ~/mysite --watch
-       Watching for changes. Press ctrl+c to stop
-       15 pages created
-       0 tags created
-       in 8 ms
-
-Hugo can even run a server and create your site at the same time!
-
-    $hugo --server -ws ~/mysite
-       Watching for changes. Press ctrl+c to stop
-       15 pages created
-       0 tags created
-       in 8 ms
-       Web Server is available at http://localhost:1313
-       Press ctrl+c to stop
-
--- a/docs/content/doc/variables.md
+++ /dev/null
@@ -1,32 +1,0 @@
----
-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.
-
-**.Title**  The title for the content.<br>
-**.Description** The description for the content.<br>
-**.Keywords** The meta keywords for this content.<br>
-**.Date** The date the content is published on.<br>
-**.Indexes** These will use the field name of the plural form of the index (see tags and categories above)<br>
-**.Permalink** The Permanent link for this page.<br>
-**.FuzzyWordCount** The approximate number of words in the content.<br>
-**.RSSLink** Link to the indexes' rss link <br>
-**.Prev** Pointer to the previous content (based on pub date)<br>
-**.Next** Pointer to the following content (based on pub date)<br>
-**.Content** The content itself, defined below the front matter.<br>
-
-Any value defined in the front matter, including indexes will be made available under `.Params`. 
-Take for example I'm using tags and categories as my indexes. The following would be how I would access them:
-
-**.Params.Tags** <br> 
-**.Params.Categories** <br> 
-
-Also available is `.Site` which has the following:
-
-**.Site.BaseUrl** The base URL for the site as defined in the config.json file.<br>
-**.Site.Indexes** The names of the indexes of the site.<br>
-**.Site.LastChange** The date of the last change of the most recent content.<br>
-**.Site.Recent** Array of all content ordered by Date, newest first<br>
--- /dev/null
+++ b/docs/content/extras/aliases.md
@@ -1,0 +1,34 @@
+---
+title: "Aliases"
+date: "2013-07-09"
+aliases:
+    - /doc/redirects/
+    - /doc/alias/
+    - /doc/aliases/
+---
+
+For people migrating existing published content to Hugo theres a good chance
+you need a mechanism to handle redirecting old urls.
+
+Luckily, this can be handled easily with aliases in Hugo.
+
+## Example
+**content/posts/my-awesome-blog-post.md**
+
+    ---
+    aliases:
+        - /posts/my-original-url/
+        - /2010/even-earlier-url.html
+    ---
+
+Now when you go to any of the aliases locations they
+will redirect to the page.
+
+## Important Behaviors
+
+1. *Hugo makes no assumptions about aliases. They also don't change based
+on your UglyUrls setting. You Need to provide a relative path and the
+complete filename or directory.*
+
+2. *Aliases are rendered prior to any content and will be overwritten by
+any content with the same location.*
--- /dev/null
+++ b/docs/content/extras/indexes.md
@@ -1,0 +1,220 @@
+---
+title: "Indexes"
+date: "2013-07-01"
+aliases: ["/doc/indexes/"]
+---
+
+Hugo includes support for user defined indexes of content. In our 
+terminology an index is best thought of as tags applied to content
+but they can be used for far more than just tags. Other common
+uses would include categories, groups, series. For the purpose of 
+this document we will just use tags for our example. For a more 
+complete example see [spf13.com-hugo](http://github.com/spf13/spf13.com-hugo).
+
+## Defining Indexes for a site
+
+Indexes must be defined in the site configuration, before they
+can be used throughout the site. 
+
+Here is an example configuration in YAML that specifies two indexes.
+Notice the format is **singular key** : *plural value*. While 
+we could use an inflection library to pluralize this, they currently
+support only a few languages, so instead we've opted for user defined
+pluralization.
+
+**config.yaml**
+
+    ---
+    indexes:
+        tag: "tags"
+        topic: "topics"
+    baseurl: "http://spf13.com/"
+    title: "Steve Francia is spf13.com"
+    ---
+
+## Creating index templates
+For each index type a template needs to be provided to render the index page.
+In the case of tags, this will render the content for /tags/TAGNAME/.
+
+The template must be called the singular name of the index and placed in 
+layouts/indexes
+
+    .
+    └── layouts
+        └── indexes
+            └── category.html
+
+The template will be provided Data about the index. 
+
+### Variables
+
+The following variables are available to the index template:
+
+**.Title**  The title for the content. <br>
+**.Date** The date the content is published on.<br>
+**.Permalink** The Permanent link for this page.<br>
+**.RSSLink** Link to the indexes' rss link. <br>
+**.Data.Pages** The content that is assigned this index.<br>
+**.Data.`singular`** The index itself.<br>
+
+#### Example
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+        {{ range .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+
+## Assigning indexes to content
+
+Once an index is defined at the site level, any piece of content
+can be assigned to it regardless of content type or section.
+
+Assigning content to an index is done in the front matter.
+Simply create a variable with the *plural* name of the index
+and assign all keys you want this content to match against. 
+
+**Index values are case insensitive**
+
+#### Example
+    {
+        "title": "Hugo: A fast and flexible static site generator",
+        "tags": [
+            "Development",
+            "golang",
+            "Blogging"
+        ],
+        "slug": "hugo",
+        "project_url": "http://github.com/spf13/hugo"
+    }
+
+
+## Displaying indexes within content
+
+Within your content templates you may wish to display 
+the indexes that that piece of content is assigned to.
+
+Because we are leveraging the front matter system to 
+define indexes for content, the indexes assigned to 
+each content piece are located in the usual place 
+(.Params.`plural`)
+
+#### Example
+
+    <ul id="tags">
+      {{ range .Params.tags }}
+        <li><a href="tags/{{ . | urlize }}">{{ . }}</a> </li>
+      {{ end }}
+    </ul>
+
+If you wish to display the list of all indexes, the index can
+be retrieved from the `.Site` variable.
+
+#### Example
+
+    <ul id="all-tags">
+      {{ range .Site.Indexes.tags }}  
+        <li><a href="/tags/{{ .Name | urlize }}">{{ .Name }}</a></li>  
+      {{ end }}
+    </ul>
+
+## Creating Indexes of Indexes
+
+Hugo also supports creating pages that list your values for each 
+index along with the number of content items associated with the 
+index key.
+
+This may take the form of a tag cloud or simply a list.
+
+To have hugo create these indexes of indexes pages, simply create
+a template in indexes called indexes.html
+
+Hugo provides two different versions of the index. One alphabetically
+sorted, the other sorted by most popular. It's important to recognize
+that the data structure of the two is different.
+
+#### Example indexes.html file (alphabetical)
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+       <ul>
+       {{ $data := .Data }}
+        {{ range $key, $value := .Data.Index }}
+        <li><a href="{{ $data.Plural }}/{{ $key | urlize }}"> {{ $key }} </a> {{ len $value }} </li>
+        {{ end }}
+       </ul>
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+
+#### Example indexes.html file (ordered)
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+       <ul>
+        {{ range $data.OrderedIndex }}
+        <li><a href="{{ $data.Plural }}/{{ .Name | urlize }}"> {{ .Name }} </a> {{ .Count }} </li>
+        {{ end }}
+       </ul>
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+### Variables available to indexes of indexes pages.
+
+**.Title**  The title for the content. <br>
+**.Date** The date the content is published on.<br>
+**.Permalink** The Permanent link for this page.<br>
+**.RSSLink** Link to the indexes' rss link. <br>
+**.Data.Singular** The singular name of the index <br>
+**.Data.Plural** The plural name of the index<br>
+**.Data.Index** The Alphabetical index<br>
+**.Data.OrderedIndex** The popular index<br>
+
+## Creating a menu based on indexes
+
+Hugo can generate menus based on indexes by iterating and
+nesting the index keys. This can be used to build a hierarchy
+of content within your site.
+
+To have hugo create the menu, simply create a template in chome
+called menu.html, then include it using the 
+`{{ template "chrome/menu.html" . }}` syntax.
+
+
+#### Example menu.html file 
+
+    <section id="menu">
+      <ul>
+        {{ range $indexname, $index := .Site.Indexes }}
+          <li><a href="/{{ $indexname | urlize }}">{{ $indexname }}</a> 
+            <ul> 
+              {{ range $index }}
+                <li><a href="/{{ $indexname | urlize }}/{{ .Name | urlize }}">{{ .Name }}</a></li>
+              {{ end }}
+            </ul>
+          </li> 
+        {{ end }}
+      </ul>
+    </section>
+
--- /dev/null
+++ b/docs/content/extras/indexes/category.md
@@ -1,0 +1,54 @@
+---
+title: "Index Category Example"
+date: "2013-07-01"
+---
+
+This page demonstrates an example of using indexes to provide categories for your site.
+
+### config.yaml
+First step is to define the index in your config file.
+*Because we use both the singular and plural name of the index in our rendering it's
+important to provide both here. We require this, rather than using inflection in
+effort to support as many languages as possible.*
+
+    ---
+    indexes:
+        category: "categories"
+    baseurl: "http://spf13.com/"
+    title: "Steve Francia is spf13.com"
+    ---
+
+### /layouts/indexes/category.html
+
+For each index type a template needs to be provided to render the index page.
+In the case of categories, this will render the content for /categories/CATEGORYNAME/.
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+        {{ range .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+
+### Assigning indexes to content
+
+Make sure that the index is set in the front matter:
+
+    {
+        "title": "Hugo: A fast and flexible static site generator",
+        "categories": [
+            "Development",
+            "golang",
+            "Blogging"
+        ],
+        "slug": "hugo"
+    }
+
--- /dev/null
+++ b/docs/content/extras/shortcodes.md
@@ -1,0 +1,77 @@
+---
+title: "Shortcodes"
+date: "2013-07-01"
+aliases: ["/doc/shortcodes/"]
+---
+
+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.
+
+However we cannot accept being constrained by our simple format. Also unacceptable is writing raw
+html in our markdown every time we want to include unsupported content such as a video. To do 
+so is in complete opposition to the intent of using a bare bones format for our content and 
+utilizing templates to apply styling for display.
+
+To avoid both of these limitations Hugo has full support for shortcodes.
+
+### What is a shortcode?
+A shortcode is a simple snippet inside a markdown file that Hugo will render using a template.
+
+Short codes are designated by the opening and closing characters of '{{&#37;' and '%}}' respectively.
+Short codes are space delimited. The first word is always the name of the shortcode.  Following the 
+name are the parameters. The author of the shortcode can choose if the short code
+will use positional parameters or named parameters (but not both). A good rule of thumb is that if a
+short code has a single required value in the case of the youtube example below then positional
+works very well. For more complex layouts with optional parameters named parameters work best.
+
+The format for named parameters models that of html with the format name="value"
+
+### Example: youtube
+*Example has an extra space so Hugo doesn't actually render it*
+
+    {{ % youtube 09jf3ow9jfw %}}
+
+This would be rendered as 
+
+    <div class="embed video-player">
+    <iframe class="youtube-player" type="text/html"
+        width="640" height="385" 
+        src="http://www.youtube.com/embed/09jf3ow9jfw"
+        allowfullscreen frameborder="0">
+    </iframe>
+    </div>
+
+### Example: image with caption
+*Example has an extra space so Hugo doesn't actually render it*
+
+    {{ % img src="/media/spf13.jpg" title="Steve Francia" %}}
+
+Would be rendered as:
+
+    <figure >
+        <img src="/media/spf13.jpg"  />
+        <figcaption>
+            <h4>Steve Francia</h4>
+        </figcaption>
+    </figure>
+
+
+### Creating a shortcode
+
+All that you need to do to create a shortcode is place a template in the layouts/shortcodes directory.
+
+The template name will be the name of the shortcode.
+
+**Inside the template**
+
+To access a parameter by either position or name the index method can be used.
+
+    {{ index .Params 0 }}
+    or
+    {{ index .Params "class" }}
+
+To check if a parameter has been provided use the isset method provided by Hugo.
+
+    {{ if isset .Params "class"}} class="{{ index .Params "class"}}" {{ end }}
+
+
--- /dev/null
+++ b/docs/content/layout/chrome.md
@@ -1,0 +1,80 @@
+---
+title: "Chrome Templates"
+date: "2013-07-01"
+---
+Chrome is a convention to create templates that are used by the other templates
+throughout the site. There is nothing special about the name "chrome", feel free
+to provide and use your own.
+
+It's not a requirement to have this, but in practice it's very convenient. Hugo doesn't
+know anything about Chrome, it's simply a convention that you may likely find
+beneficial. As you create the rest of your templates you will include templates
+from the /layout/chrome directory.
+
+I've found it helpful to include a header and footer template in Chrome so I can
+include those in the other full page layouts (index.html, indexes/
+type/single.html).  There is nothing special about header.html and footer.html
+other than they seem like good names to use for inclusion in your other
+templates.
+
+    ▾ layouts/
+      ▾ chrome/
+          header.html
+          footer.html
+
+By ensuring that we only reference [variables](/layout/variables/) variables
+used for both nodes and pages we can use the same chrome for both.
+
+## example header.html
+This header template is used for [spf13.com](http://spf13.com).
+
+    <!DOCTYPE html>
+    <html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
+    <head>
+        <meta charset="utf-8">
+
+        {{ template "chrome/meta.html" . }}
+
+        <base href="{{ .Site.BaseUrl }}">
+        <title> {{ .Title }} : spf13.com </title>
+        <link rel="canonical" href="{{ .Permalink }}">
+        {{ if .RSSlink }}<link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Title }}" />{{ end }}
+
+        {{ template "chrome/head_includes.html" . }}
+    </head>
+    <body lang="en">
+
+
+
+## example footer.html
+This header template is used for [spf13.com](http://spf13.com).
+
+    <footer>
+      <div>
+        <p>
+        &copy; 2013 Steve Francia.
+        <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons Attribution">Some rights reserved</a>; 
+        please attribute properly and link back. Hosted by <a href="http://servergrove.com">ServerGrove</a>.
+        </p>
+      </div>
+    </footer>
+    <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-XYSYXYSY-X']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script');
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
+            'http://www') + '.google-analytics.com/ga.js';
+        ga.setAttribute('async', 'true');
+        document.documentElement.firstChild.appendChild(ga);
+      })();
+
+    </script>
+    </body>
+    </html>
+
+**For examples of referencing these templates, see [content
+templates](/layout/content/) and [homepage templates](/layout/homepage/)**
--- /dev/null
+++ b/docs/content/layout/content.md
@@ -1,0 +1,125 @@
+---
+title: "Content Templates"
+date: "2013-07-01"
+---
+
+Content templates are created in a directory matching the name of the content.
+
+Content pages are of the type "page" and have all the [page
+variables](/layout/variables/) available to use in the templates.
+
+In the following examples we have created two different content types as well as
+a default content type.
+
+    ▾ layouts/
+      ▾ post/
+          single.html
+      ▾ project/
+          single.html
+
+Hugo also has support for a default content template to be used in the event
+that a specific template has not been provided for that type. The default type
+works the same as the other types but the directory must be called "_default".
+[Content views](/layout/views) can also be defined in the "_default" directory.
+
+
+    ▾ layouts/
+      ▾ _default/
+          single.html
+
+
+
+
+## post/single.html
+This content template is used for [spf13.com](http://spf13.com).
+It makes use of [chrome templates](/layout/chrome)
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+    {{ $baseurl := .Site.BaseUrl }}
+
+    <section id="main">
+      <h1 id="title">{{ .Title }}</h1>
+      <div>
+            <article id="content">
+               {{ .Content }}
+            </article>
+      </div>
+    </section>
+
+    <aside id="meta">
+        <div>
+        <section>
+          <h4 id="date"> {{ .Date.Format "Mon Jan 2, 2006" }} </h4>
+          <h5 id="wc"> {{ .FuzzyWordCount }} Words </h5>
+        </section>
+        <ul id="categories">
+          {{ range .Params.topics }}
+            <li><a href="{{ $baseurl }}/topics/{{ . | urlize }}">{{ . }}</a> </li>
+          {{ end }}
+        </ul>
+        <ul id="tags">
+          {{ range .Params.tags }}
+            <li> <a href="{{ $baseurl }}/tags/{{ . | urlize }}">{{ . }}</a> </li>
+          {{ end }}
+        </ul>
+        </div>
+        <div>
+            <a class="previous" href="{{.Prev.Permalink}}"> {{.Prev.Title}}</a>
+            <a class="next" href="{{.Next.Permalink}}"> {{.Next.Title}}</a>
+        </div>
+    </aside>
+
+    {{ template "chrome/disqus.html" . }}
+    {{ template "chrome/footer.html" . }}
+
+
+## project/single.html
+This content template is used for [spf13.com](http://spf13.com).
+It makes use of [chrome templates](/layout/chrome)
+
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+    {{ $baseurl := .Site.BaseUrl }}
+
+    <section id="main">
+      <h1 id="title">{{ .Title }}</h1>
+      <div>
+            <article id="content">
+               {{ .Content }}
+            </article>
+      </div>
+    </section>
+
+    <aside id="meta">
+        <div>
+        <section>
+          <h4 id="date"> {{ .Date.Format "Mon Jan 2, 2006" }} </h4>
+          <h5 id="wc"> {{ .FuzzyWordCount }} Words </h5>
+        </section>
+        <ul id="categories">
+          {{ range .Params.topics }}
+          <li><a href="{{ $baseurl }}/topics/{{ . | urlize }}">{{ . }}</a> </li>
+          {{ end }}
+        </ul>
+        <ul id="tags">
+          {{ range .Params.tags }}
+            <li> <a href="{{ $baseurl }}/tags/{{ . | urlize }}">{{ . }}</a> </li>
+          {{ end }}
+        </ul>
+        </div>
+    </aside>
+
+    {{if isset .Params "project_url" }}
+    <div id="ribbon">
+        <a href="{{ index .Params "project_url" }}" rel="me">Fork me on GitHub</a>
+    </div>
+    {{ end }}
+
+    {{ template "chrome/footer.html" }}
+
+
+Notice how the project/single.html template uses an additional parameter unique
+to this template. This doesn't need to be defined ahead of time. If the key is
+present in the front matter than it can be used in the template.
--- /dev/null
+++ b/docs/content/layout/go-templates.md
@@ -1,0 +1,15 @@
+---
+title: "Go Templates"
+date: "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 experience that it is just the right amount of logic to be able to
+create a good static website.
+
+This is a brief primer on using go templates. The [golang
+docs](http://golang.org/pkg/html/template/) provide more details.
+
+
+
--- /dev/null
+++ b/docs/content/layout/homepage.md
@@ -1,0 +1,50 @@
+---
+title: "Homepage Templates"
+date: "2013-07-01"
+---
+
+Home pages are of the type "node" and have all the [node
+variables](/layout/variables/) available to use in the templates.
+
+*This is the only required template for building a site and useful when
+bootstrapping a new site and template.*
+
+In addition to the standard node variables, the homepage has access to
+all site content accessible from .Data.Pages
+
+
+    ▾ layouts/
+        index.html
+
+
+## example index.html
+This content template is used for [spf13.com](http://spf13.com).
+It makes use of [chrome templates](/layout/chrome)
+
+    <!DOCTYPE html>
+    <html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
+    <head>
+        <meta charset="utf-8">
+
+        {{ template "chrome/meta.html" . }}
+
+        <base href="{{ .Site.BaseUrl }}">
+        <title>{{ .Site.Title }}</title>
+        <link rel="canonical" href="{{ .Permalink }}">
+        <link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Site.Title }}" />
+
+        {{ template "chrome/head_includes.html" . }}
+    </head>
+    <body lang="en">
+
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+        {{ range .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
--- /dev/null
+++ b/docs/content/layout/index.md
@@ -1,0 +1,122 @@
+---
+title: "Index Templates"
+date: "2013-07-01"
+---
+
+An index template is any template that will be used to render multiple pieces of
+content (with the exception of the [homepage](/layout/homepage) which has a
+dedicated template).
+
+We are using the term index in it's truest sense, a sequential arrangement of
+material, especially in alphabetical or numerical order. In the case of Hugo
+each index will render the content in newest first order based on the date
+provided in the [front matter](/content/front-matter).
+
+index pages are of the type "node" and have all the [node
+variables](/layout/variables/) available to use in the templates.
+All index templates live in the layouts/indexes directory. There are 3 different
+kinds of indexes that Hugo can produce.
+
+1. A listing of all the content for a given [section](/content/sections)
+2. A listing of all the content for a given [index](/extras/indexes)
+3. A listing of listings... [meta index](/extras/indexes)
+
+It's critical that the name of the index template matches either:
+
+1. The section name
+2. The index singular name
+3. "indexes"
+
+The following illustrates the location of one of each of these types.
+
+    ▾ layouts/
+      ▾ indexes/
+          indexes.html
+          post.html
+          tag.html
+
+## Example section template (post.html)
+This content template is used for [spf13.com](http://spf13.com).
+It makes use of [chrome templates](/layout/chrome). All examples use a
+[view](/layout/views/) called either "li" or "summary" which this example site
+defined.
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+            <ul id="list">
+                {{ range .Data.Pages }}
+                    {{ .Render "li"}}
+                {{ end }}
+            </ul>
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+## Example index template (tag.html)
+This content template is used for [spf13.com](http://spf13.com).
+It makes use of [chrome templates](/layout/chrome). All examples use a
+[view](/layout/views/) called either "li" or "summary" which this example site
+defined.
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+        {{ range .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+
+## Example listing of indexes template (indexes.html)
+This content template is used for [spf13.com](http://spf13.com).
+It makes use of [chrome templates](/layout/chrome). The list of indexes
+templates cannot use a [content view](/layout/views) as they don't display the content, but
+rather information about the content.
+
+This particular template lists all of the Tags used on
+[spf13.com](http://spf13.com) and provides a count for the number of pieces of
+content tagged with each tag.
+
+This example demonstrates two different approaches. The first uses .Data.Index and
+the latter uses .Data.OrderedIndex. .Data.Index is alphabetical by key name, while
+.Data.Orderedindex is ordered by the quantity of content assigned to that particular
+index key.  In practice you would only use one of these approaches.
+
+    {{ template "chrome/header.html" . }}
+    {{ template "chrome/subheader.html" . }}
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+
+       <ul>
+       {{ $data := .Data }}
+        {{ range $key, $value := .Data.Index }}
+        <li><a href="{{ $data.Plural }}/{{ $key | urlize }}"> {{ $key }} </a> {{ len $value }} </li>
+        {{ end }}
+       </ul>
+      </div>
+
+       <ul>
+        {{ range $data.OrderedIndex }}
+        <li><a href="{{ $data.Plural }}/{{ .Name | urlize }}"> {{ .Name }} </a> {{ .Count }} </li>
+        {{ end }}
+       </ul>
+    </section>
+
+    {{ template "chrome/footer.html" }}
+
+
+
+
--- /dev/null
+++ b/docs/content/layout/rss.md
@@ -1,0 +1,47 @@
+---
+title: "RSS (feed) Templates"
+date: "2013-07-01"
+---
+
+A single RSS template is used to generate all of the RSS content for the entire
+site.
+
+RSS pages are of the type "node" and have all the [node
+variables](/layout/variables/) available to use in the templates.
+
+In addition to the standard node variables, the homepage has access to
+all site content accessible from .Data.Pages
+
+    ▾ layouts/
+        rss.xml
+
+## rss.xml
+This rss template is used for [spf13.com](http://spf13.com). It adheres to the
+ATOM 2.0 Spec.
+
+
+    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+      <channel>
+          <title>{{ .Title }} on {{ .Site.Title }} </title>
+        <link>{{ .Permalink }}</link>
+        <language>en-us</language>
+        <author>Steve Francia</author>
+        <rights>Copyright (c) 2008 - 2013, Steve Francia; all rights reserved.</rights>
+        <updated>{{ .Date }}</updated>
+        {{ range .Data.Pages }}
+        <item>
+          <title>{{ .Title }}</title>
+          <link>{{ .Permalink }}</link>
+          <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</pubDate>
+          <author>Steve Francia</author>
+          <guid>{{ .Permalink }}</guid>
+          <description>{{ .Content | html }}</description>
+        </item>
+        {{ end }}
+      </channel>
+    </rss>
+
+*Important: Hugo will automatically add the following header line to this file
+on render...please don't include this in the template as it's not valid HTML.*
+
+    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
--- /dev/null
+++ b/docs/content/layout/templates.md
@@ -1,0 +1,35 @@
+---
+title: "Templates"
+date: "2013-07-01"
+aliases: ["/doc/templates/"]
+---
+
+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 experience that it is just the right amount of logic to be able
+to create a good static website
+
+If you are new to go's templates the [go template primer](/layout/go-templates)
+is a great place to start.
+
+## Template roles
+
+There are 6 different kinds of templates that Hugo works with.
+
+### [Homepage](/layout/homepage/)
+The homepage of your site.
+
+### [RSS](/layout/rss/)
+Used to render all rss documents.
+
+### [Indexes](/layout/indexes)
+Page that list multiple pieces of content.
+
+### [Content](/layout/content)
+Templates to render a single piece of content.
+
+### [Views](/layout/views)
+Different ways of rendering each content type
+
+### [Chrome](/layout/chrome)
+Simply the decoration of your site.
--- /dev/null
+++ b/docs/content/layout/variables.md
@@ -1,0 +1,51 @@
+---
+title: "Variables"
+date: "2013-07-01"
+aliases: ["/doc/variables/"]
+---
+
+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.
+
+## Page Variables
+
+**.Title**  The title for the content.<br>
+**.Description** The description for the content.<br>
+**.Keywords** The meta keywords for this content.<br>
+**.Date** The date the content is published on.<br>
+**.Indexes** These will use the field name of the plural form of the index (see tags and categories above)<br>
+**.Permalink** The Permanent link for this page.<br>
+**.FuzzyWordCount** The approximate number of words in the content.<br>
+**.RSSLink** Link to the indexes' rss link <br>
+**.Prev** Pointer to the previous content (based on pub date)<br>
+**.Next** Pointer to the following content (based on pub date)<br>
+**.Site** See site variables below<br>
+**.Content** The content itself, defined below the front matter.<br>
+
+Any value defined in the front matter, including indexes will be made available under `.Params`.
+Take for example I'm using tags and categories as my indexes. The following would be how I would access them:
+
+**.Params.Tags** <br>
+**.Params.Categories** <br>
+
+## Node Variables
+In Hugo a node is any page not rendered directly by a content file. This
+includes indexes, lists and the homepage.
+
+**.Title**  The title for the content.<br>
+**.Date** The date the content is published on.<br>
+**.Data** The data specific to this type of node.<br>
+**.Permalink** The Permanent link for this node<br>
+**.Url** The relative url for this node.<br>
+**.RSSLink** Link to the indexes' rss link <br>
+**.Site** See site variables below<br>
+
+## Site Variables
+
+Also available is `.Site` which has the following:
+
+**.Site.BaseUrl** The base URL for the site as defined in the config.json file.<br>
+**.Site.Indexes** The names of the indexes of the site.<br>
+**.Site.LastChange** The date of the last change of the most recent content.<br>
+**.Site.Recent** Array of all content ordered by Date, newest first<br>
+
--- /dev/null
+++ b/docs/content/layout/views.md
@@ -1,0 +1,79 @@
+---
+title: "Content Views"
+date: "2013-07-01"
+---
+
+In addition to the [single content view](/layout/content/), Hugo can render alternative views of
+your content. These are especially useful in [index](/layout/index) templates.
+
+To create a new view simple create a template in each of your different content
+type directories with the view name. In the following example we have created a
+"li" view and a "summary" view for our two content types of post and project. As
+you can see these sit next to the [single content view](/layout/content)
+template "single.html"
+
+    ▾ layouts/
+      ▾ post/
+          li.html
+          single.html
+          summary.html
+      ▾ project/
+          li.html
+          single.html
+          summary.html
+
+Hugo also has support for a default content template to be used in the event
+that a specific template has not been provided for that type. The default type
+works the same as the other types but the directory must be called "_default".
+Content views can also be defined in the "_default" directory.
+
+
+    ▾ layouts/
+      ▾ _default/
+          li.html
+          single.html
+          summary.html
+
+
+Hugo will pass the entire page object to the view template. See [page
+variables](/layout/variables) for a complete list.
+
+## Example li.html
+This content template is used for [spf13.com](http://spf13.com).
+
+    <li>
+      <a href="{{ .Permalink }}">{{ .Title }}</a>
+      <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+
+## Example summary.html
+This content template is used for [spf13.com](http://spf13.com).
+
+    <article class="post">
+        <header>
+          <h2><a href='{{ .Permalink }}'> {{ .Title }}</a> </h2>
+          <div class="post-meta">{{ .Date.Format "Mon, Jan 2, 2006" }} - {{ .FuzzyWordCount }} Words </div>
+        </header>
+
+        {{ .Summary }}
+        <footer>
+            <a href='{{ .Permalink }}'><nobr>Read more →</nobr></a>
+        </footer>
+    </article>
+
+
+## Example render of view
+Using the summary view inside of another ([index](/layout/index)) template.
+
+    <section id="main">
+      <div>
+       <h1 id="title">{{ .Title }}</h1>
+        {{ range .Data.Pages }}
+            {{ .Render "summary"}}
+        {{ end }}
+      </div>
+    </section>
+
+In the above example you will notice that we have called .Render and passed in
+which view to render the content with. Render is a special function available on
+a content which tells the content to render itself with the provided view template.
--- /dev/null
+++ b/docs/content/meta/contributing.md
@@ -1,0 +1,45 @@
+---
+title: "Contributing to Hugo"
+date: "2013-07-01"
+aliases: ["/doc/contributing/"]
+---
+
+We welcome all contributions. If you want to contribute, all
+that is needed is simply fork Hugo, make changes and submit
+a pull request. If you prefer, pick something from the roadmap
+or contact [spf13](http://spf13.com) about what may make sense
+to do next.
+
+## Overview
+1. Fork it from https://github.com/spf13/hugo
+2. Create your feature branch (`git checkout -b my-new-feature`)
+3. Commit your changes (`git commit -am 'Add some feature'`)
+4. Push to the branch (`git push origin my-new-feature`)
+5. Create new Pull Request
+
+
+### Clone locally (for contributors):
+
+    git clone https://github.com/spf13/hugo
+    cd hugo
+    go get
+
+Because go expects all of your libraries to be found in either
+$GOROOT or $GOPATH, it's helpful to symlink the project to one
+of the following paths:
+
+ * ln -s /path/to/your/hugo $GOPATH/src/github.com/spf13/hugo
+ * ln -s /path/to/your/hugo $GOROOT/src/pkg/github.com/spf13/hugo
+
+### Running Hugo
+
+    cd /path/to/hugo
+    go install github.com/spf13/hugo/hugolibs
+    go run main.go
+
+### Building Hugo
+
+    cd /path/to/hugo
+    go build -o hugo main.go
+    mv hugo /usr/local/bin/
+
--- /dev/null
+++ b/docs/content/meta/contributors.md
@@ -1,0 +1,12 @@
+---
+title: "Contributors"
+date: "2013-07-01"
+aliases: ["/doc/contributors/"]
+---
+
+Hugo was built with love and golang by:
+
+* Steve Francia - [spf13](https://github.com/spf13)
+* Noah Campbell - [noahcampbell](https://github.com/noahcampbell)
+* [Many more](http://github.com/spf13/hugo/graphs/contributors)
+
--- /dev/null
+++ b/docs/content/meta/license.md
@@ -1,0 +1,76 @@
+---
+title: "License"
+date: "2013-07-01"
+aliases: ["/doc/license/", "/license/"]
+---
+
+Hugo is released under the Simple Public License.
+
+
+Simple Public License (SimPL-2.0)
+=================================
+
+Preamble
+--------
+
+This Simple Public License 2.0 (SimPL-2.0 for short) is a plain language
+implementation of GPL 2.0.  The words are different, but the goal is the
+same - to guarantee for all users the freedom to share and change
+software.  If anyone wonders about the meaning of the SimPL, they should
+interpret it as consistent with GPL 2.0.
+
+
+Simple Public License (SimPL) 2.0
+=================================
+
+The SimPL applies to the software's source and object code and comes
+with any rights that I have in it (other than trademarks). You agree to
+the SimPL by copying, distributing, or making a derivative work of the
+software.
+
+ You get the royalty free right to:
+
+-   Use the software for any purpose;
+-   Make derivative works of it (this is called a "Derived Work");
+-   Copy and distribute it and any Derived Work.
+
+If you distribute the software or a Derived Work, you must give back to
+the community by:
+
+-   Prominently noting the date of any changes you make;
+-   Leaving other people's copyright notices, warranty disclaimers, and
+    license terms in place;
+-   Providing the source code, build scripts, installation scripts, and
+    interface definitions in a form that is easy to get and best to
+    modify;
+-   Licensing it to everyone under SimPL, or substantially similar terms
+    (such as GPL 2.0), without adding further restrictions to the rights
+    provided;
+-   Conspicuously announcing that it is available under that license.
+
+There are some things that you must shoulder:
+
+-   You get NO WARRANTIES. None of any kind;
+-   If the software damages you in any way, you may only recover direct
+    damages up to the amount you paid for it (that is zero if you did
+    not pay anything). You may not recover any other damages, including
+    those called "consequential damages." (The state or country where
+    you live may not allow you to limit your liability in this way, so
+    this may not apply to you);
+
+The SimPL continues perpetually, except that your license rights end
+automatically if:
+
+-   You do not abide by the "give back to the community" terms (your
+    licensees get to keep their rights if they abide);
+-   Anyone prevents you from distributing the software under the terms
+    of the SimPL.
+
+License for the License
+-----------------------
+
+You may do anything that you want with the SimPL text; it's a license
+form to use in any way that you find helpful.  To avoid confusion,
+however, if you change the terms in any way then you may not call your
+license the Simple Public License or the SimPL (but feel free to
+acknowledge that your license is "based on the Simple Public License").
--- /dev/null
+++ b/docs/content/meta/release-notes.md
@@ -1,0 +1,35 @@
+---
+title: "Release Notes"
+date: "2013-07-01"
+aliases: ["/doc/release-notes/"]
+---
+
+* **0.9.0** HEAD
+  * Added support for aliases (redirects)
+  * Cleanup of how content organization is handled
+  * Support for top level pages (other than homepage)
+  * Loads of unit and performance tests
+  * Integration with travis ci
+  * Complete overhaul of the documentation site
+  * Full Windows support
+* **0.8.0** August 2, 2013
+  * Added support for pretty urls (filename/index.html vs filename.html)
+  * Hugo supports a destination directory
+  * Will efficiently sync content in static to destination directory
+  * Cleaned up options.. now with support for short and long options
+  * Added support for TOML
+  * Added support for YAML
+  * Added support for Previous & Next
+  * Added support for indexes for the indexes
+  * Better Windows compatibility
+  * Support for series
+  * Adding verbose output
+  * Loads of bugfixes
+* **0.7.0** July 4, 2013
+  * Hugo now includes a simple server
+  * First public release
+* **0.6.0** July 2, 2013
+  * Hugo includes an example documentation site which it builds
+* **0.5.0** June 25, 2013
+  * Hugo is quite usable and able to build spf13.com
+
--- /dev/null
+++ b/docs/content/meta/roadmap.md
@@ -1,0 +1,18 @@
+---
+title: "Roadmap"
+date: "2013-07-01"
+aliases: ["/doc/roadmap/"]
+---
+
+In no particular order, here is what we are working on:
+
+ * Pagination
+ * Support for top level pages (other than homepage)
+ * Better error handling
+ * Syntax highlighting
+ * Commands
+ * Actions (eg. hugo create page)
+ * Related Posts
+ * Support for other formats
+
+
--- /dev/null
+++ b/docs/content/overview/configuration.md
@@ -1,0 +1,58 @@
+---
+title: "Configuring Hugo"
+date: "2013-07-01"
+aliases: ["/doc/configuration/"]
+---
+
+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
+since the defaults used follow commonly used patterns.
+
+Hugo expects to find the config file in the root of the source directory and
+will look there first for a config.yaml file. If none is present it will
+then look for a config.json file, followed by a config.toml file.
+
+**Please note the field names must be all lowercase**
+
+## Examples
+
+The following is an example of a yaml config file with the default values:
+
+    ---
+    contentdir: "content"
+    layoutdir: "layouts"
+    publishdir: "public"
+    builddrafts: false
+    indexes:
+       category: "categories"
+       tag: "tags"
+    baseurl: "http://yoursite.com/"
+    ...
+
+
+The following is an example of a json config file with the default values:
+
+    {
+        "contentdir": "content",
+        "layoutdir": "layouts",
+        "publishdir": "public",
+        "builddrafts": false,
+        "indexes": {
+           "category": "categories",
+           "tag": "tags"
+        },
+        "baseurl": "http://yoursite.com/"
+    }
+
+
+The following is an example of a toml config file with the default values:
+
+    contentdir = "content"
+    layoutdir = "layouts"
+    publishdir = "public"
+    builddrafts = false
+    baseurl = "http://yoursite.com/"
+    [indexes]
+       category = "categories"
+       tag = "tags"
+
--- /dev/null
+++ b/docs/content/overview/installing.md
@@ -1,0 +1,47 @@
+---
+title: "Installing Hugo"
+date: "2013-07-01"
+aliases: ["/doc/installing/"]
+---
+
+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).
+We currently build for Windows, Linux, FreeBSD and OS X for x64
+and 386 architectures. 
+
+## Installing Hugo (binary)
+
+Installation is very easy. Simply download the appropriate version for your
+platform from [hugo releases](https://github.com/spf13/hugo/releases).
+Once downloaded it can be run from anywhere. You don't need to install
+it into a global location. This works well for shared hosts and other systems
+where you don't have a privileged account.
+
+Ideally you should install it somewhere in your path for easy use. `/usr/local/bin` 
+is the most probable location.
+
+*the Hugo executible has no external dependencies.*
+
+## Installing from source
+
+### Dependencies
+
+* Git
+* Go 1.1+
+* Mercurial
+* Bazaar
+
+### Get directly from Github:
+
+    go get github.com/spf13/hugo
+
+### Building Hugo
+
+    cd /path/to/hugo
+    go build -o hugo main.go
+    mv hugo /usr/local/bin/
+
+## Contributing
+
+Please see the [contributing guide](/doc/contributing)
--- /dev/null
+++ b/docs/content/overview/source-directory.md
@@ -1,0 +1,55 @@
+---
+title: "Source Directory Organization"
+date: "2013-07-01"
+aliases: ["/doc/source-directory/"]
+---
+
+Hugo takes a single directory and uses it as the input for creating a complete website.
+
+Hugo has a very small amount of configuration, while remaining highly customizable. 
+It accomplishes by assuming that you will only provide templates with the intent of
+using them.
+
+An example directory may look like:
+
+    .
+    ├── config.yaml
+    ├── content
+    |   ├── post
+    |   |   ├── firstpost.md
+    |   |   └── secondpost.md
+    |   └── quote
+    |   |   ├── first.md
+    |   |   └── second.md
+    ├── layouts
+    |   ├── chrome
+    |   |   ├── header.html
+    |   |   └── footer.html
+    |   ├── indexes
+    |   |   ├── category.html
+    |   |   ├── post.html
+    |   |   ├── quote.html
+    |   |   └── tag.html
+    |   ├── post
+    |   |   ├── li.html
+    |   |   ├── single.html
+    |   |   └── summary.html
+    |   ├── quote
+    |   |   ├── li.html
+    |   |   ├── single.html
+    |   |   └── summary.html
+    |   ├── shortcodes
+    |   |   ├── img.html
+    |   |   ├── vimeo.html
+    |   |   └── youtube.html
+    |   ├── index.html
+    |   └── rss.xml
+    └── static
+
+This directory structure tells us a lot about this site:
+
+1. the website intends to have two different types of content, posts and quotes.
+2. It will also apply two different indexes to that content, categories and tags.
+3. It will be displaying content in 3 different views, a list, a summary and a full page view.
+
+Included with the repository is this example site ready to be rendered.
--- /dev/null
+++ b/docs/content/overview/usage.md
@@ -1,0 +1,56 @@
+---
+title: "Using Hugo"
+date: "2013-07-01"
+aliases: ["/doc/usage/"]
+---
+
+Make sure either hugo is in your path or provide a path to it.
+
+    $ hugo --help
+    usage: hugo [flags] []
+      -b, --base-url="": hostname (and path) to the root eg. http://spf13.com/
+      -D, --build-drafts=false: include content marked as draft
+          --config="": config file (default is path/config.yaml|json|toml)
+      -d, --destination="": filesystem path to write files to
+      -h, --help=false: show this help
+          --port="1313": port to run web server on, default :1313
+      -S, --server=false: run a (very) simple web server
+      -s, --source="": filesystem path to read files relative from
+          --uglyurls=false: if true, use /filename.html instead of /filename/
+      -v, --verbose=false: verbose output
+          --version=false: which version of hugo
+      -w, --watch=false: watch filesystem for changes and recreate as needed
+
+## Common Usage Example:
+
+The most common use is probably to run hugo with your current
+directory being the input directory.
+
+
+    $ hugo
+    > X pages created
+    > Y indexes created
+      in 8 ms
+
+
+If you are working on things and want to see the changes
+immediately, tell Hugo to watch for changes. **It will
+recreate the site faster than you can tab over to
+your browser to view the changes.**
+
+    $ hugo -s ~/mysite --watch
+       Watching for changes. Press ctrl+c to stop
+       15 pages created
+       0 tags created
+       in 8 ms
+
+Hugo can even run a server and create your site at the same time!
+
+    $hugo --server -ws ~/mysite
+       Watching for changes. Press ctrl+c to stop
+       15 pages created
+       0 tags created
+       in 8 ms
+       Web Server is available at http://localhost:1313
+       Press ctrl+c to stop
+
--- /dev/null
+++ b/docs/layouts/_default/single.html
@@ -1,0 +1,4 @@
+{{ template "chrome/header.html" . }}
+          <h1>{{ .Title }}</h1>
+          {{ .Content }}
+{{ template "chrome/footer.html" . }}
--- a/docs/layouts/chrome/header.html
+++ b/docs/layouts/chrome/header.html
@@ -13,7 +13,10 @@
         <div class="span3">
           <div class="well" style="background-color: #222; color: #ccc;">
             <h1>Hugo</h1>
-            <p>A Fast and Flexible Static Site Generator built with love by <a href="http://spf13.com">spf13</a> in Go</p>
+            <p>A Fast and Flexible Static Site Generator 
+            built with love by <a href="http://spf13.com">spf13</a> and <a
+            href="http://github.com/spf13/hugo/graphs/contributors">friends</a>
+            in Go</p>
           </div>
         {{ template "chrome/menu.html" . }}
         </div>
--- a/docs/layouts/chrome/menu.html
+++ b/docs/layouts/chrome/menu.html
@@ -2,29 +2,40 @@
             <li> <a href="/">Home</a></li>
             <li class="divider"></li>
             <li class="nav-header">Getting Started</li>
-            <li> <a href="/doc/installing">Installing Hugo</a></li>
-            <li> <a href="/doc/usage">Usage</a> </li>
-            <li> <a href="/doc/configuration">Configuration</a></li>
-            <li> <a href="/doc/source-directory">Input Directory Layout</a></li>
+            <li> <a href="/overview/installing">Installing Hugo</a></li>
+            <li> <a href="/overview/usage">Usage</a> </li>
+            <li> <a href="/overview/configuration">Configuration</a></li>
+            <li> <a href="/overview/source-directory">Source Directory Layout</a></li>
             <li class="divider"></li>
             <li class="nav-header">Layout</li>
-            <li> <a href="/doc/templates">Templates</a></li>
-            <li> <a href="/doc/variables">Variables</a></li>
+            <li> <a href="/layout/templates">Overview</a></li>
+            <!--<li> <a href="/layout/go-templates">Go Templates</a></li>-->
+            <li> <a href="/layout/variables">Variables</a></li>
+            <li> <a href="/layout/homepage">Homepage</a></li>
+            <li> <a href="/layout/rss">RSS</a></li>
+            <li> <a href="/layout/index">Index</a></li>
+            <li> <a href="/layout/content">Content</a></li>
+            <li> <a href="/layout/views">Content Views</a></li>
+            <li> <a href="/layout/chrome">Chrome</a></li>
             <li class="divider"></li>
             <li class="nav-header">Content</li>
-            <li> <a href="/doc/organization">Organization</a></li>
-            <li> <a href="/doc/front-matter">Front Matter</a></li>
-            <li> <a href="/doc/example">Example</a></li>
+            <li> <a href="/content/organization">Organization</a></li>
+            <li> <a href="/content/sections">Sections</a></li>
+            <li> <a href="/content/types">Types</a></li>
+            <li> <a href="/content/front-matter">Front Matter</a></li>
+            <li> <a href="/content/example">Example</a></li>
             <li class="divider"></li>
             <li class="nav-header">Extras</li>
-            <li> <a href="/doc/shortcodes">ShortCodes</a></li>
-            <li> <a href="/doc/indexes">Indexes</a></li>
-            <li> <a href="/doc/aliases">Aliases</a></li>
+            <li> <a href="/extras/shortcodes">ShortCodes</a></li>
+            <li> <a href="/extras/aliases">Aliases</a></li>
+            <li> <a href="/extras/indexes">Indexes</a></li>
+            <li> <a href="/extras/indexes/category">Example Index - Category</a></li>
+            <!--<li> <a href="/extras/indexes/series">Example Index - Series</a></li>-->
             <li class="divider"></li>
             <li class="nav-header">Meta</li>
-            <li> <a href="/doc/release-notes">Release Notes</a></li>
-            <li> <a href="/doc/roadmap">Roadmap</a> </li>
-            <li> <a href="/doc/contributing">Contributing</a></li>
-            <li> <a href="/doc/contributors">Contributors</a></li>
-            <li> <a href="/doc/license">License</a></li>
+            <li> <a href="/meta/release-notes">Release Notes</a></li>
+            <li> <a href="/meta/roadmap">Roadmap</a> </li>
+            <li> <a href="/meta/contributing">Contributing</a></li>
+            <li> <a href="/meta/contributors">Contributors</a></li>
+            <li> <a href="/meta/license">License</a></li>
           </ul>
--- a/docs/layouts/doc/single.html
+++ /dev/null
@@ -1,4 +1,0 @@
-{{ template "chrome/header.html" . }}
-          <h1>{{ .Title }}</h1>
-          {{ .Content }}
-{{ template "chrome/footer.html" . }}
--- a/docs/layouts/index.html
+++ b/docs/layouts/index.html
@@ -51,4 +51,7 @@
               focus on writing great content.</p>
             </div>
           </div>
+          {{  range $key, $val := .Site.Recent }}
+                {{ $val.Title}}
+          {{ end }}
 {{ template "chrome/footer.html" }}