ref: 2ff108fcb7059dd9b73526b1bfce42b43579fc25
parent: 13b5c10dd727ab8cc4b71e3c3bd79884890d3237
author: spf13 <[email protected]>
date: Fri Jan 10 16:19:19 EST 2014
Add highlighting of code in documentation and clean up a bunch of the docs.
--- a/docs/content/community/hall-of-fame.md
+++ b/docs/content/community/hall-of-fame.md
@@ -11,8 +11,8 @@
-| **Site** | **Source** | **License** |
-| -------------------------------------------- | ----------------------------------------------------- | -----------: |
-| [hugo](http://hugo.spf13.com) | [source](http://github.com/spf13/hugo/docs) | SIMPL |
-| [spf13](http://spf13.com) | [source](http://github.com/spf13/spf13.com) | MIT |
-| [Chimera Art Space](http://chimeraarts.org) | [source](https://github.com/chimera/chimeraarts.org) | CC-SA |
+| **Site** | **Source** | **License** |
+| ------------------------------------------------ | ----------------------------------------------------- | -----------: |
+| [hugo](http://hugo.spf13.com) | [source](http://github.com/spf13/hugo/docs) | SIMPL |
+| [spf13](http://spf13.com) | [source](http://github.com/spf13/spf13.com) | MIT |
+| [Chimera Art Space](http://chimeraarts.org) | [source](https://github.com/chimera/chimeraarts.org) | CC-SA |
--- a/docs/content/community/mailing-list.md
+++ b/docs/content/community/mailing-list.md
@@ -7,12 +7,12 @@
Hugo has two mailing lists:
-### Announcements
+## Announcements
Very low traffic. Only releases will be emailed here.
https://groups.google.com/forum/#!forum/hugo-announce
-### Discussion
+## Discussion
For all questions and discussions:
https://groups.google.com/forum/#!forum/hugo-discuss
@@ -19,16 +19,16 @@
# Other Resources
-### GoNuts
+## GoNuts
For general go questions or discussion please refer to the go mailing list.
https://groups.google.com/forum/#!forum/golang-nuts
-### Github Issues
+## Github Issues
https://github.com/spf13/hugo/issues
Hugo doesn't have it's own twitter handle, but feel free to tweet [@spf13](http://twitter.com/spf13).
--- a/docs/content/content/example.md
+++ b/docs/content/content/example.md
@@ -11,34 +11,36 @@
**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"
- ---
+{{% highlight yaml %}}
+---
+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
+# Nitro
- Quick and easy performance analyzer library for golang.
+Quick and easy performance analyzer library for golang.
- ## Overview
+## 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.
+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
+## Implementing Nitro
- Using Nitro is simple. First use go get to install the latest version
- of the library.
+Using Nitro is simple. First use go get to install the latest version
+of the library.
- $ go get github.com/spf13/nitro
+ $ go get github.com/spf13/nitro
- Next include nitro in your application.
+Next include nitro in your application.
+{{% /highlight %}}
--- a/docs/content/content/front-matter.md
+++ b/docs/content/content/front-matter.md
@@ -17,36 +17,41 @@
### 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
+{{% highlight yaml %}}
+---
+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
+{{% /highlight %}}
### 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
+{{% highlight yaml %}}
++++
+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
+{{% /highlight %}}
### JSON Example
- {
+{{% highlight json %}}
+{
"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" ],
@@ -56,31 +61,33 @@
"VIM"
],
"slug": "spf13-vim-3-0-release-and-new-website",
- }
- Content of the file goes Here
+}
+Content of the file goes Here
+{{% /highlight %}}
-### Variables
+## 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
+### 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)
+* **title** The title for the content
+* **description** The description for the content
+* **date** The date the content will be sorted by
+* **indexes** These will use the field name of the plural form of the index (see tags and categories above)
-#### Optional
+### 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.*
+* **redirect** Mark the post as a redirect post
+* **draft** If true the content will not be rendered unless hugo is called with --build-drafts
+* **type** The type of the content (will be derived from the directory automatically if unset)
+* **markup** (Experimental) Specify "rst" for reStructuredText (requires
+ `rst2html`,) or "md" (default) for the Markdown
+* **slug** The token to appear in the tail of the url
+ *or*<br>
+* **url** The full path to the content from the web root.<br>
+
+*If neither slug or url is present the filename will be used.*
--- a/docs/content/content/ordering.md
+++ b/docs/content/content/ordering.md
@@ -10,7 +10,7 @@
By default, content is ordered by weight, then by date with the most recent date first.
-_Both the date and weight fields are optional._
+_Both the date and weight fields are optional._
Unweighted pages appear at the end of the list.
If no weights are provided (or if weights are the same) date will be used to sort. If neither are provided
@@ -29,50 +29,60 @@
## Order by Weight -> Date (default)
- {{ range .Data.Pages }}
- <li>
- <a href="{{ .Permalink }}">{{ .Title }}</a>
- <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
- </li>
- {{ end }}
+{{% highlight html %}}
+{{ range .Data.Pages }}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{ end }}
+{{% /highlight %}}
## Order by Weight -> Date
- {{ range .Data.Pages.ByWeight }}
- <li>
- <a href="{{ .Permalink }}">{{ .Title }}</a>
- <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
- </li>
- {{ end }}
+{{% highlight html %}}
+{{ range .Data.Pages.ByWeight }}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{ end }}
+{{% /highlight %}}
## Order by Date
- {{ range .Data.Pages.ByDate }}
- <li>
- <a href="{{ .Permalink }}">{{ .Title }}</a>
- <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
- </li>
- {{ end }}
+{{% highlight html %}}
+{{ range .Data.Pages.ByDate }}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{ end }}
+{{% /highlight %}}
## Order by Length
- {{ range .Data.Pages.ByLength }}
- <li>
- <a href="{{ .Permalink }}">{{ .Title }}</a>
- <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
- </li>
- {{ end }}
+{{% highlight html %}}
+{{ range .Data.Pages.ByLength }}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{ end }}
+{{% /highlight %}}
## Reverse Order
Can be applied to any of the above. Using Date for an example.
- {{ range .Data.Pages.ByDate.Reverse }}
- <li>
- <a href="{{ .Permalink }}">{{ .Title }}</a>
- <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
- </li>
- {{ end }}
+{{% highlight html %}}
+{{ range .Data.Pages.ByDate.Reverse }}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{ end }}
+{{% /highlight %}}
## Ordering Content Within Indexes
--- a/docs/content/content/organization.md
+++ b/docs/content/content/organization.md
@@ -20,13 +20,13 @@
.
└── content
├── post
- | ├── firstpost.md // <- http://site.com/post/firstpost/
+ | ├── firstpost.md // <- http://1.com/post/firstpost/
| ├── happy
- | | └── happiness.md // <- http://site.com/post/happy/happiness/
- | └── secondpost.md // <- http://site.com/post/secondpost/
+ | | └── ness.md // <- http://1.com/post/happy/ness/
+ | └── secondpost.md // <- http://1.com/post/secondpost/
└── quote
- ├── first.md // <- http://site.com/quote/first/
- └── second.md // <- http://site.com/quote/second/
+ ├── first.md // <- http://1.com/quote/first/
+ └── second.md // <- http://1.com/quote/second/
**Here's the same organization run with hugo -\-uglyurls**
@@ -33,13 +33,13 @@
.
└── content
├── post
- | ├── firstpost.md // <- http://site.com/post/firstpost.html
+ | ├── firstpost.md // <- http://1.com/post/firstpost.html
| ├── happy
- | | └── happiness.md // <- http://site.com/post/happy/happiness.html
- | └── secondpost.md // <- http://site.com/post/secondpost.html
+ | | └── ness.md // <- http://1.com/post/happy/ness.html
+ | └── secondpost.md // <- http://1.com/post/secondpost.html
└── quote
- ├── first.md // <- http://site.com/quote/first.html
- └── second.md // <- http://site.com/quote/second.html
+ ├── first.md // <- http://1.com/quote/first.html
+ └── second.md // <- http://1.com/quote/second.html
## Destinations
@@ -55,28 +55,28 @@
The following items are defined in order, latter items in the list will override
earlier settings.
-#### filename
+### 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
+### slug
Defined in the front matter, the slug can take the place of the filename for the
destination.
-#### filepath
+### filepath
The actual path to the file on disk. Destination will create the destination
with the same path. Includes [section](/content/sections).
-#### section
+### 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
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
+### 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
@@ -135,23 +135,23 @@
-section = which type the content is by default
- based on content location
- front matter overrides
+**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
+**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
+**path** = section + path to file exluding slug
+* based on path to content location
-url = relative url
- defined in front matter
- overrides all the above
+**url** = relative url
+* defined in front matter
+* overrides all the above
--- a/docs/content/content/sections.md
+++ b/docs/content/content/sections.md
@@ -15,13 +15,13 @@
.
└── content
├── post
- | ├── firstpost.md // <- http://site.com/post/firstpost/
+ | ├── firstpost.md // <- http://1.com/post/firstpost/
| ├── happy
- | | └── happiness.md // <- http://site.com/post/happy/happiness/
- | └── secondpost.md // <- http://site.com/post/secondpost/
+ | | └── ness.md // <- http://1.com/post/happy/ness/
+ | └── secondpost.md // <- http://1.com/post/secondpost/
└── quote
- ├── first.md // <- http://site.com/quote/first/
- └── second.md // <- http://site.com/quote/second/
+ ├── first.md // <- http://1.com/quote/first/
+ └── second.md // <- http://1.com/quote/second/
## Sections and Types
--- a/docs/content/content/types.md
+++ b/docs/content/content/types.md
@@ -20,16 +20,16 @@
It is essential to provide the single render view template as well as a
list view template.
-**Step 1:**
+### Step 1:
Create a directory with the name of the type in layouts.Type is always singular. *Eg /layouts/post*.
-**Step 2:**
+### Step 2:
Create a file called single.html inside your directory. *Eg /layouts/post/single.html*.
-**Step 3:**
+### Step 3:
Create a file with the same name as your directory in /layouts/indexes/. *Eg /layouts/indexes/post.html*.
-**Step 4:**
+### 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
--- a/docs/content/extras/aliases.md
+++ b/docs/content/extras/aliases.md
@@ -16,12 +16,13 @@
## Example
**content/posts/my-awesome-blog-post.md**
-
- ---
- aliases:
- - /posts/my-original-url/
- - /2010/even-earlier-url.html
- ---
+{{% highlight yaml %}}
+---
+aliases:
+ - /posts/my-original-url/
+ - /2010/even-earlier-url.html
+---
+{{% /highlight %}}
Now when you go to any of the aliases locations they
will redirect to the page.
--- a/docs/content/extras/shortcodes.md
+++ b/docs/content/extras/shortcodes.md
@@ -6,33 +6,73 @@
groups_weight: 10
---
-Because Hugo uses markdown for its 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.
+Because Hugo uses markdown for its simple content format, however there's a lot of things that
+markdown doesn't support well.
-However we cannot accept being constrained by our simple format. Also unacceptable is writing raw
+We are unwilling to 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.
+To avoid both of these limitations Hugo created shortcodes.
-### What is a shortcode?
-A shortcode is a simple snippet inside a markdown file that Hugo will render using a template.
+## What is a shortcode?
+A shortcode is a simple snippet inside a markdown file that Hugo will render using a predefined template.
-Short codes are designated by the opening and closing characters of '{{%' 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.
+An example of a shortcode would be `{{% video http://urlToVideo %}}`
+Shortcodes are created by placing a template file in `layouts/shortcodes/`. The
+name of the file becomes the name of the shortcode (without the extension).
+
+In your content files a shortcode can be called by using '{{% name parameters
+%}}' respectively. Shortcodes are space delimited (parameters with spaces
+can be quoted).
+
+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*
+Lastly like HTML, shortcodes can be singular or paired. An example of a paired
+shortcode would be:
- {{ % youtube 09jf3ow9jfw %}}
+ {{% code_highlight %}} A bunch of code here {{% /code_highlight %}}
+Shortcodes are paired with an opening shortcode identical to a single shortcode
+and a closing shortcode.
+
+## 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 }}
+
+For paired shortcodes the variable .Inner is available which contains all of
+the content between the opening and closing shortcodes. **Simply using this
+variable is the only difference between single and paired shortcodes.**
+
+## Single Positional Example: youtube
+
+ {{% youtube 09jf3ow9jfw %}}
+
Would load the template /layouts/shortcodes/youtube.html
<div class="embed video-player">
@@ -50,7 +90,7 @@
</iframe>
</div>
-### Example: image with caption
+## Single Named Example: image with caption
*Example has an extra space so Hugo doesn't actually render it*
{{ % img src="/media/spf13.jpg" title="Steve Francia" %}}
@@ -85,23 +125,29 @@
</figcaption>
</figure>
+## Paired Example: Highlight
+*Hugo already ships with the highlight shortcode*
-### Creating a shortcode
+*Example has an extra space so Hugo doesn't actually render it*.
-All that you need to do to create a shortcode is place a template in the layouts/shortcodes directory.
+ {{% highlight html %}}
+ <html>
+ <body> This HTML </body>
+ </html>
+ {{% /highlight %}}
-The template name will be the name of the shortcode.
+The template for this utilizes the following code (already include in hugo)
-**Inside the template**
+ {{ $lang := index .Params 0 }}{{ highlight .Inner $lang }}
-To access a parameter by either position or name the index method can be used.
+And will be rendered as:
- {{ index .Params 0 }}
- or
- {{ index .Params "class" }}
+ <div class="highlight" style="background: #272822"><pre style="line-height: 125%"><span style="color: #f92672"><html></span>
+ <span style="color: #f92672"><body></span> This HTML <span style="color: #f92672"></body></span>
+ <span style="color: #f92672"></html></span>
+ </pre></div>
-To check if a parameter has been provided use the isset method provided by Hugo.
+Please notice that this template makes use of a hugo specific template function
+called highlight which uses pygments to add the highlighting code.
- {{ if isset .Params "class"}} class="{{ index .Params "class"}}" {{ end }}
-
-
+More shortcode examples can be found at [spf13.com](https://github.com/spf13/spf13.com/tree/master/layouts/shortcodes)
--- a/docs/content/indexes/category.md
+++ b/docs/content/indexes/category.md
@@ -15,31 +15,35 @@
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"
- ---
+{{% highlight yaml %}}
+---
+indexes:
+category: "categories"
+baseurl: "http://spf13.com/"
+title: "Steve Francia is spf13.com"
+---
+{{% /highlight %}}
### /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/.
+In the case of categories, this will render the content for /categories/`CATEGORYNAME`/.
- {{ template "chrome/header.html" . }}
- {{ template "chrome/subheader.html" . }}
+{{% highlight html %}}
+{{ 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>
+<section id="main">
+<div>
+<h1 id="title">{{ .Title }}</h1>
+{{ range .Data.Pages }}
+{{ .Render "summary"}}
+{{ end }}
+</div>
+</section>
- {{ template "chrome/footer.html" }}
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
### Assigning indexes to content
@@ -46,13 +50,15 @@
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"
- }
+{{% highlight json %}}
+{
+ "title": "Hugo: A fast and flexible static site generator",
+ "categories": [
+ "Development",
+ "golang",
+ "Blogging"
+ ],
+ "slug": "hugo"
+}
+{{% /highlight %}}
--- a/docs/content/indexes/displaying.md
+++ b/docs/content/indexes/displaying.md
@@ -5,9 +5,9 @@
groups: ["indexes"]
groups_weight: 20
---
-# For Content
-### Index values assigned to this content
+## Rendering index values assigned to this content
+
Within your content templates you may wish to display
the indexes that that piece of content is assigned to.
@@ -16,31 +16,34 @@
each content piece are located in the usual place
(.Params.`plural`)
-#### Example
+### Example
- <ul id="tags">
- {{ range .Params.tags }}
- <li><a href="tags/{{ . | urlize }}">{{ . }}</a> </li>
- {{ end }}
- </ul>
+{{% highlight html %}}
+<ul id="tags">
+ {{ range .Params.tags }}
+ <li><a href="tags/{{ . | urlize }}">{{ . }}</a> </li>
+ {{ end }}
+</ul>
+{{% /highlight %}}
-# Anywhere
-### Displaying all keys for an index
+## Rendering a Site's Indexes
-If you wish to display the list of all keys for an index you can
-find retrieve them from the `.Site` variable.
+If you wish to display the list of all keys for an index you can find retrieve
+them from the `.Site` variable which is available on every page.
This may take the form of a tag cloud, a menu or simply a list.
The following example displays all tag keys:
-#### Example
+### Example
- <ul id="all-tags">
- {{ range .Site.Indexes.tags }}
- <li><a href="/tags/{{ .Name | urlize }}">{{ .Name }}</a></li>
- {{ end }}
- </ul>
+{{% highlight html %}}
+<ul id="all-tags">
+ {{ range .Site.Indexes.tags }}
+ <li><a href="/tags/{{ .Name | urlize }}">{{ .Name }}</a></li>
+ {{ end }}
+</ul>
+{{% /highlight %}}
## Creating a menu based on indexes
@@ -53,57 +56,64 @@
`{{ template "chrome/menu.html" . }}` syntax.
+
+### Example complete menu.html file
This example will list all indexes, each of their keys and all the content assigned to each key.
-#### Example complete menu.html file
- <section id="menu">
- <ul>
- {{ range $indexname, $index := .Site.Indexes }}
- <li><a href="/{{ $indexname | urlize }}">{{ $indexname }}</a>
- <ul>
- {{ range $key, $value := $index }}
- <li> {{ $key }} </li>
- <ul>
- {{ range $value.Pages }}
- <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
- {{ end }}
- </ul>
- {{ end }}
- </ul>
- </li>
- {{ end }}
- </ul>
- </section>
+{{% highlight html %}}
+<section id="menu">
+ <ul>
+ {{ range $indexname, $index := .Site.Indexes }}
+ <li><a href="/{{ $indexname | urlize }}">{{ $indexname }}</a>
+ <ul>
+ {{ range $key, $value := $index }}
+ <li> {{ $key }} </li>
+ <ul>
+ {{ range $value.Pages }}
+ <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
+ {{ end }}
+ </ul>
+ {{ end }}
+ </ul>
+ </li>
+ {{ end }}
+ </ul>
+</section>
+{{% /highlight %}}
-
+### menu.html using a single index
It is more likely that you would want to use a single index for navigation.
In this example we are using the `groups` index for our menu.
-#### Example menu.html file using a single index
- <section id="menu">
+{{% highlight html %}}
+<section id="menu">
+ <ul>
+ {{ range $key, $index := .Site.Indexes.groups }}
+ <li> {{ $key }} </li>
<ul>
- {{ range $key, $index := .Site.Indexes.groups }}
- <li> {{ $key }} </li>
- <ul>
- {{ range $index.Pages }}
- <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
- {{ end }}
- </ul>
+ {{ range $index.Pages }}
+ <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
{{ end }}
</ul>
- </section>
+ {{ end }}
+ </ul>
+</section>
+{{% /highlight %}}
-Or order the keys by Popularity
-#### Example menu.html file using a single index
- <section id="menu">
+
+### menu.html using a single index ordered by Popularity
+
+{{% highlight html %}}
+<section id="menu">
+ <ul>
+ {{ range .Site.Indexes.groups.ByCount }}
+ <li> {{ .Name }} </li>
<ul>
- {{ range .Site.Indexes.groups.ByCount }}
- <li> {{ .Name }} </li>
- <ul>
- {{ range .Pages }}
- <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
- {{ end }}
- </ul>
+ {{ range .Pages }}
+ <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
{{ end }}
</ul>
- </section>
+ {{ end }}
+ </ul>
+</section>
+{{% /highlight %}}
--- a/docs/content/indexes/lists.md
+++ b/docs/content/indexes/lists.md
@@ -8,7 +8,7 @@
---
An index list is a list of all the keys that are contained in the index. When a
-template is present, this will be rendered at /IndexPlural/
+template is present, this will be rendered at `/IndexPlural/`
Hugo also supports creating pages that list your values for each index along
with the number of content items associated with the index key. These are
@@ -22,44 +22,46 @@
number of content assigned to that key or alphabetically.
-#### Example indexes.html file (alphabetical)
+### Example indexes.html file (alphabetical)
- {{ template "chrome/header.html" . }}
- {{ template "chrome/subheader.html" . }}
+{{% highlight html %}}
+{{ 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.Alphabetical }}
- <li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
- {{ end }}
- </ul>
- </div>
- </section>
+<section id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ <ul>
+ {{ $data := .Data }}
+ {{ range $key, $value := .Data.Index.Alphabetical }}
+ <li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
+ {{ end }}
+ </ul>
+ </div>
+</section>
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
- {{ template "chrome/footer.html" }}
+### Example indexes.html file (ordered)
+{{% highlight html %}}
+{{ template "chrome/header.html" . }}
+{{ template "chrome/subheader.html" . }}
-#### Example indexes.html file (ordered)
+<section id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ <ul>
+ {{ $data := .Data }}
+ {{ range $key, $value := .Data.Index.ByCount }}
+ <li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
+ {{ end }}
+ </ul>
+ </div>
+</section>
- {{ 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.ByCount }}
- <li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
- {{ end }}
- </ul>
- </div>
- </section>
-
- {{ template "chrome/footer.html" }}
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
### Variables available to list of indexes pages.
--- a/docs/content/indexes/ordering.md
+++ b/docs/content/indexes/ordering.md
@@ -17,21 +17,25 @@
### Order Alphabetically Example:
- <ul>
- {{ $data := .Data }}
- {{ range $key, $value := .Data.Index.Alphabetical }}
- <li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
- {{ end }}
- </ul>
+{{% highlight html %}}
+<ul>
+{{ $data := .Data }}
+{{ range $key, $value := .Data.Index.Alphabetical }}
+<li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
+{{ end }}
+</ul>
+{{% /highlight %}}
### Order by Popularity Example:
- <ul>
- {{ $data := .Data }}
- {{ range $key, $value := .Data.Index.ByCount }}
- <li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
- {{ end }}
- </ul>
+{{% highlight html %}}
+<ul>
+{{ $data := .Data }}
+{{ range $key, $value := .Data.Index.ByCount }}
+<li><a href="{{ $data.Plural }}/{{ $value.Name | urlize }}"> {{ $value.Name }} </a> {{ $value.Count }} </li>
+{{ end }}
+</ul>
+{{% /highlight %}}
[See Also Index Lists](/indexes/lists/)
--- a/docs/content/indexes/overview.md
+++ b/docs/content/indexes/overview.md
@@ -1,5 +1,5 @@
---
-title: "Index Overview"
+title: "Indexes"
date: "2013-07-01"
aliases: ["/doc/indexes/", "/extras/indexes"]
linktitle: "Overview"
@@ -17,9 +17,9 @@
It's important to understand what Indexes do. At it's most basic form an index
is simply a map of a key to a list of content values.
-In the hugo internals this is stored as Site.Indexes[Plural][key][]pages.
+In the hugo internals this is stored as `Site.Indexes[Plural][key][]pages`.
For example all the content tagged with GoLang would be found at
-Site.Indexes["tags"]["golang"].
+`Site.Indexes["tags"]["golang"]`.
For a
more complete example see the source of [this docs site](http://github.com/spf13/hugo/docs/).
@@ -35,17 +35,18 @@
support only a few languages, so instead we've opted for user defined
pluralization.
-**config.yaml**
+### config.yaml
- ---
- indexes:
- tag: "tags"
- category: "categories"
- baseurl: "http://spf13.com/"
- title: "Steve Francia is spf13.com"
- ---
+{{% highlight yaml %}}
+---
+indexes:
+ tag: "tags"
+ category: "categories"
+baseurl: "http://spf13.com/"
+title: "Steve Francia is spf13.com"
+---
+{{% /highlight %}}
-
## Assigning index values to content
Once an index is defined at the site level, any piece of content
@@ -57,19 +58,22 @@
**Index values are case insensitive**
-#### Example
- {
- "title": "Hugo: A fast and flexible static site generator",
- "tags": [
- "Development",
- "golang",
- "fast",
- "Blogging"
- ],
- "categories" : [
- "Development"
- ]
- "slug": "hugo",
- "project_url": "http://github.com/spf13/hugo"
- }
+### Example
+
+{{% highlight json %}}
+{
+ "title": "Hugo: A fast and flexible static site generator",
+ "tags": [
+ "Development",
+ "golang",
+ "fast",
+ "Blogging"
+ ],
+ "categories" : [
+ "Development"
+ ]
+ "slug": "hugo",
+ "project_url": "http://github.com/spf13/hugo"
+}
+{{% /highlight %}}
--- a/docs/content/indexes/templates.md
+++ b/docs/content/indexes/templates.md
@@ -14,7 +14,7 @@
## 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/.
+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
@@ -26,7 +26,7 @@
The template will be provided Data about the index.
-### Variables
+## Variables
The following variables are available to the index template:
@@ -37,19 +37,19 @@
**.Data.Pages** The content that is assigned this index.<br>
**.Data.`singular`** The index itself.<br>
-#### Example
+## Example
+{{% highlight html %}}
+{{ template "chrome/header.html" . }}
+{{ template "chrome/subheader.html" . }}
- {{ 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>
- <section id="main">
- <div>
- <h1 id="title">{{ .Title }}</h1>
- {{ range .Data.Pages }}
- {{ .Render "summary"}}
- {{ end }}
- </div>
- </section>
-
- {{ template "chrome/footer.html" }}
-
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
--- a/docs/content/layout/chrome.md
+++ b/docs/content/layout/chrome.md
@@ -30,53 +30,56 @@
## 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">
+{{% highlight html %}}
+<!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" . }}
+ {{ 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 }}
+ <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">
+ {{ template "chrome/head_includes.html" . }}
+</head>
+<body lang="en">
+{{% /highlight %}}
-
## example footer.html
This header template is used for [spf13.com](http://spf13.com).
- <footer>
- <div>
- <p>
- © 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">
+{{% highlight html %}}
+<footer>
+ <div>
+ <p>
+ © 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']);
+ 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);
- })();
+ (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>
+</script>
+</body>
+</html>
+{{% /highlight %}}
**For examples of referencing these templates, see [content
templates](/layout/content/) and [homepage templates](/layout/homepage/)**
--- a/docs/content/layout/homepage.md
+++ b/docs/content/layout/homepage.md
@@ -12,7 +12,8 @@
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
+all site content accessible from .Data.Pages . Details on how to use this
+list of pages can be found in [Lists](/indexes/lists/)
▾ layouts/
@@ -21,32 +22,35 @@
## 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">
+It makes use of [chrome templates](/layout/chrome) and uses a [List](/indexes/lists/)
- {{ template "chrome/meta.html" . }}
+{{% highlight html %}}
+<!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">
- <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/meta.html" . }}
- {{ template "chrome/head_includes.html" . }}
- </head>
- <body lang="en">
+ <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/subheader.html" . }}
+ {{ template "chrome/head_includes.html" . }}
+</head>
+<body lang="en">
- <section id="main">
- <div>
- {{ range first 10 .Data.Pages }}
- {{ .Render "summary"}}
- {{ end }}
- </div>
- </section>
+{{ template "chrome/subheader.html" . }}
- {{ template "chrome/footer.html" }}
+<section id="main">
+ <div>
+ {{ range first 10 .Data.Pages }}
+ {{ .Render "summary"}}
+ {{ end }}
+ </div>
+</section>
+
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
--- a/docs/content/layout/indexes.md
+++ b/docs/content/layout/indexes.md
@@ -43,21 +43,23 @@
[view](/layout/views/) called either "li" or "summary" which this example site
defined.
- {{ template "chrome/header.html" . }}
- {{ template "chrome/subheader.html" . }}
+{{% highlight html %}}
+{{ 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>
+<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" }}
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
## Example index template (tag.html)
This content template is used for [spf13.com](http://spf13.com).
@@ -65,21 +67,22 @@
[view](/layout/views/) called either "li" or "summary" which this example site
defined.
- {{ template "chrome/header.html" . }}
- {{ template "chrome/subheader.html" . }}
+{{% highlight html %}}
+{{ 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>
+<section id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ {{ range .Data.Pages }}
+ {{ .Render "summary"}}
+ {{ end }}
+ </div>
+</section>
- {{ template "chrome/footer.html" }}
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
-
## 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
@@ -95,29 +98,31 @@
.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" . }}
+{{% highlight html %}}
+{{ template "chrome/header.html" . }}
+{{ template "chrome/subheader.html" . }}
- <section id="main">
- <div>
- <h1 id="title">{{ .Title }}</h1>
+<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>
+ {{ $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>
+ <ul>
+ {{ range $data.OrderedIndex }}
+ <li><a href="{{ $data.Plural }}/{{ .Name | urlize }}"> {{ .Name }} </a> {{ .Count }} </li>
+ {{ end }}
+ </ul>
+</section>
- {{ template "chrome/footer.html" }}
+{{ template "chrome/footer.html" }}
+{{% /highlight %}}
--- a/docs/content/layout/rss.md
+++ b/docs/content/layout/rss.md
@@ -21,27 +21,28 @@
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>
+{{% highlight xml %}}
+<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>
+{{% /highlight %}}
*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.*
--- a/docs/content/layout/templates.md
+++ b/docs/content/layout/templates.md
@@ -20,19 +20,19 @@
There are 6 different kinds of templates that Hugo works with.
### [Homepage](/layout/homepage/)
-The homepage of your site.
+The homepage of your site
### [RSS](/layout/rss/)
-Used to render all rss documents.
+Used to render all rss documents
### [Index](/layout/indexes)
-Page that list multiple pieces of content.
+Page that list multiple pieces of content
### [Content](/layout/content)
-Templates to render a single piece of content.
+Render a single piece of content
### [Views](/layout/views)
-Different ways of rendering each content type
+Different view of a single piece of content type
### [Chrome](/layout/chrome)
-Simply the decoration of your site.
+Support for the above templates
--- a/docs/content/layout/views.md
+++ b/docs/content/layout/views.md
@@ -43,38 +43,44 @@
## 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>
+{{% highlight html %}}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{% /highlight %}}
## 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>
+{{% highlight html %}}
+<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>
+{{ .Summary }}
+<footer>
+<a href='{{ .Permalink }}'><nobr>Read more →</nobr></a>
+</footer>
+</article>
+{{% /highlight %}}
## 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>
+{{% highlight html %}}
+<section id="main">
+<div>
+<h1 id="title">{{ .Title }}</h1>
+{{ range .Data.Pages }}
+{{ .Render "summary"}}
+{{ end }}
+</div>
+</section>
+{{% /highlight %}}
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/docs/content/meta/license.md
+++ b/docs/content/meta/license.md
@@ -8,13 +8,10 @@
Hugo is released under the Simple Public License.
+## Simple Public License (SimPL-2.0)
-Simple Public License (SimPL-2.0)
-=================================
+### Preamble
-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
@@ -22,8 +19,7 @@
interpret it as consistent with GPL 2.0.
-Simple Public License (SimPL) 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
@@ -68,8 +64,7 @@
- Anyone prevents you from distributing the software under the terms
of the SimPL.
-License for the License
------------------------
+## 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,
--- a/docs/content/meta/release-notes.md
+++ b/docs/content/meta/release-notes.md
@@ -6,7 +6,7 @@
groups_weight: 10
---
-* **0.9.0**
+## **0.9.0** November 15, 2013
* New command based interface similar to git (hugo server -s ./ )
* Amber template support
* Aliases (redirects)
@@ -38,7 +38,8 @@
* Support for go 1.2
* Support for `first` in templates
* Support for site per-section permalink pattern specifications
-* **0.8.0** August 2, 2013
+
+## **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
@@ -51,11 +52,14 @@
* Support for series
* Adding verbose output
* Loads of bugfixes
-* **0.7.0** July 4, 2013
+
+## **0.7.0** July 4, 2013
* Hugo now includes a simple server
* First public release
-* **0.6.0** July 2, 2013
+
+## **0.6.0** July 2, 2013
* Hugo includes an example documentation site which it builds
-* **0.5.0** June 25, 2013
+
+## **0.5.0** June 25, 2013
* Hugo is quite usable and able to build spf13.com
--- a/docs/content/overview/configuration.md
+++ b/docs/content/overview/configuration.md
@@ -20,34 +20,35 @@
## Examples
The following is an example of a yaml config file with the default values:
+{{% highlight yaml %}}
+---
+contentdir: "content"
+layoutdir: "layouts"
+publishdir: "public"
+builddrafts: false
+indexes:
+ category: "categories"
+ tag: "tags"
+baseurl: "http://yoursite.example.com/"
+...
+{{% /highlight %}}
- ---
- contentdir: "content"
- layoutdir: "layouts"
- publishdir: "public"
- builddrafts: false
- indexes:
- category: "categories"
- tag: "tags"
- baseurl: "http://yoursite.example.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.example.com/"
- }
+{{% highlight json %}}
+{
+ "contentdir": "content",
+ "layoutdir": "layouts",
+ "publishdir": "public",
+ "builddrafts": false,
+ "indexes": {
+ "category": "categories",
+ "tag": "tags"
+ },
+ "baseurl": "http://yoursite.example.com/"
+}
+{{% /highlight %}}
-
The following is an example of a toml config file with the default values:
contentdir = "content"
@@ -61,18 +62,19 @@
Here is a yaml configuration file which sets a few more options
- ---
- baseurl: "http://yoursite.example.com/"
- title: "Yoyodyne Widget Blogging"
- permalinks:
- post: /:year/:month/:title/
- params:
- Subtitle: "Spinning the cogs in the widgets"
- AuthorName: "John Doe"
- GitHubUser: "spf13"
- ListOfFoo:
- - "foo1"
- - "foo2"
- SidebarRecentLimit: 5
- ...
-
+{{% highlight yaml %}}
+---
+baseurl: "http://yoursite.example.com/"
+title: "Yoyodyne Widget Blogging"
+permalinks:
+ post: /:year/:month/:title/
+params:
+ Subtitle: "Spinning the cogs in the widgets"
+ AuthorName: "John Doe"
+ GitHubUser: "spf13"
+ ListOfFoo:
+ - "foo1"
+ - "foo2"
+ SidebarRecentLimit: 5
+...
+{{% /highlight %}}