2013-07-06 19:36:30 -04:00
---
2014-05-29 18:42:05 -04:00
aliases:
- /doc/configuration/
date: 2013-07-01
linktitle: Configuration
2014-04-23 03:00:11 -04:00
menu:
main:
2014-05-29 18:42:05 -04:00
parent: getting started
next: /overview/source-directory
notoc: true
prev: /overview/usage
title: Configuring Hugo
weight: 40
2013-07-08 17:57:01 -04:00
---
2013-07-04 11:32:55 -04:00
The directory structure and templates provide the majority of the
2014-09-03 00:12:26 -04:00
configuration for a site. In fact, a config file isn't even needed for many
2014-05-27 18:32:57 -04:00
websites since the defaults follow commonly used patterns.
2013-07-04 11:32:55 -04:00
2013-07-11 22:04:57 -04:00
Hugo expects to find the config file in the root of the source directory and
2014-09-03 00:12:26 -04:00
will look there first for a `config.toml` file. If none is present, it will
2014-05-27 18:32:57 -04:00
then look for a `config.yaml` file, followed by a `config.json` file.
2013-07-06 22:31:43 -04:00
2014-05-27 18:32:57 -04:00
The config file is a site-wide config. The config file provides directions to
hugo on how to build the site as well as site-wide parameters and menus.
2013-07-11 22:04:57 -04:00
## Examples
2014-05-27 18:32:57 -04:00
The following is an example of a typical yaml config file:
2014-05-15 09:58:55 -04:00
---
baseurl: "http://yoursite.example.com/"
...
2013-07-11 22:04:57 -04:00
2015-01-05 05:37:47 -05:00
The following is an example of a toml config file with some of the default values. Values under `[params]` will populate the `.Site.Params` variable for use in templates:
2013-07-11 22:04:57 -04:00
2013-08-05 14:14:40 -04:00
contentdir = "content"
2013-07-11 22:04:57 -04:00
layoutdir = "layouts"
publishdir = "public"
builddrafts = false
2013-11-18 18:31:02 -05:00
baseurl = "http://yoursite.example.com/"
2014-01-03 18:36:53 -05:00
canonifyurls = true
2014-09-26 23:44:09 -04:00
2013-07-11 22:04:57 -04:00
[indexes]
2015-01-05 05:37:47 -05:00
category = "categories"
tag = "tags"
[params]
description = "Tesla's Awesome Hugo Site"
author = "Nikola Tesla"
2013-07-11 22:04:57 -04:00
2013-11-18 18:31:02 -05:00
Here is a yaml configuration file which sets a few more options
2014-05-15 09:58:55 -04:00
---
baseurl: "http://yoursite.example.com/"
title: "Yoyodyne Widget Blogging"
2014-09-26 23:44:09 -04:00
footnotereturnlinkcontents: "↩"
2014-05-15 09:58:55 -04:00
permalinks:
post: /:year/:month/:title/
params:
Subtitle: "Spinning the cogs in the widgets"
AuthorName: "John Doe"
GitHubUser: "spf13"
ListOfFoo:
- "foo1"
- "foo2"
SidebarRecentLimit: 5
...
2014-05-27 18:32:57 -04:00
2014-12-26 10:04:49 -05:00
## Configure Blackfriday rendering
[Blackfriday ](https://github.com/russross/blackfriday ) is the [Markdown ](http://daringfireball.net/projects/markdown/ ) rendering engine used in Hugo. The Blackfriday configuration in Hugo is mostly a set of sane defaults that should fit most use cases.
2015-01-09 13:51:15 -05:00
But Hugo does expose some options---as listed in the table below, matched with the corresponding flag in the [Blackfriday source ](https://github.com/russross/blackfriday/blob/master/html.go ):
< table class = "table table-bordered" >
< thead >
< tr >
< th > Flag< / th > < th > Default< / th > < th > Blackfriday flag< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < code > angledQuotes< / code > < / td >
< td > < code > false< / code > < / td >
< td > < code > HTML_SMARTYPANTS_ANGLED_QUOTES< / code > < / td >
< / tr >
< tr >
< td class = "purpose-title" > Purpose:< / td >
2015-01-18 15:25:20 -05:00
< td class = "purpose-description" colspan = "2" > Enable smart angled double quotes < small > (e.g. < code > "Hugo"< / code > renders to «Hugo» instead of “Hugo”)< / small > < / td >
2015-01-09 13:51:15 -05:00
< / tr >
< tr >
< td > < code > plainIdAnchors< / code > < / td >
< td > < code > false< / code > < / td >
< td > < code > FootnoteAnchorPrefix< / code > and < code > HeaderIDSuffix< / code > < / td >
< / tr >
< tr >
< td class = "purpose-title" > Purpose:< / td >
2015-01-18 15:25:20 -05:00
< td class = "purpose-description" colspan = "2" > If < code > true< / code > , then header and footnote IDs are generated without the document ID < small > (e.g. < code > #my-header< / code > instead of < code > #my-header:bec3ed8ba720b9073ab75abcf3ba5d97< / code > )< / small > < / td >
2015-01-09 13:51:15 -05:00
< / tr >
< / tbody >
< / table >
2014-12-26 10:04:49 -05:00
2015-01-18 15:25:20 -05:00
**Note** that these flags must be grouped under the `blackfriday` key and can be set on **both site and page level** . If set on page, it will override the site setting. Example:
2014-12-26 10:04:49 -05:00
2015-01-18 15:25:20 -05:00
< table class = "table" >
< tr >
< th > TOML< / th > < th > YAML< / th >
< / tr >
< tr >
< td > < pre > < code > [blackfriday]
angledQuotes = true
plainIdAnchors = true
< / code > < / pre > < / td >
< td > < pre > < code > blackfriday:
angledQuotes: true
plainIdAnchors: true
< / code > < / pre > < / td >
< / tr >
< / table >
2014-12-26 10:04:49 -05:00
2014-08-15 14:39:12 -04:00
## Notes
2015-01-09 13:51:15 -05:00
Config changes are not reflected with [LiveReload ](/extras/livereload ).
2014-08-15 14:39:12 -04:00
Please restart `hugo server --watch` whenever you make a config change.