2013-07-04 11:34:22 -04:00
# Hugo
2013-08-03 03:31:25 -04:00
A Fast and Flexible Static Site Generator built with love by [spf13 ](http://spf13.com )
2013-08-03 03:33:39 -04:00
and [friends ](http://github.com/spf13/hugo/graphs/contributors ) in Go.
2013-07-04 11:34:22 -04:00
2013-08-09 21:24:42 -04:00
[![Build Status ](https://travis-ci.org/spf13/hugo.png )](https://travis-ci.org/spf13/hugo)
2014-01-15 11:06:41 -05:00
[![wercker status ](https://app.wercker.com/status/1a0de7d703ce3b80527f00f675e1eb32 "wercker status" )](https://app.wercker.com/project/bykey/1a0de7d703ce3b80527f00f675e1eb32)
2013-08-09 21:24:42 -04:00
2013-07-04 11:34:22 -04:00
## Overview
2014-03-24 07:19:25 -04:00
Hugo is a static site generator written in Go. It is optimized for
2013-07-04 11:34:22 -04:00
speed, easy use and configurability. Hugo takes a directory with content and
2014-09-03 00:12:26 -04:00
templates and renders them into a full HTML website.
2013-07-04 11:34:22 -04:00
2014-09-03 00:12:26 -04:00
Hugo makes use of Markdown files with front matter for meta data.
2013-07-04 11:34:22 -04:00
2013-07-22 13:32:25 -04:00
A typical website of moderate size can be
2013-08-03 03:31:25 -04:00
rendered in a fraction of a second. A good rule of thumb is that Hugo
takes around 1 millisecond for each piece of content.
It is written to work well with any
2013-07-22 13:32:25 -04:00
kind of website including blogs, tumbles and docs.
2013-07-04 11:34:22 -04:00
2013-08-03 03:31:25 -04:00
**Complete documentation is available at [Hugo Documentation ](http://hugo.spf13.com ).**
2013-07-04 11:34:22 -04:00
# Getting Started
## Installing Hugo
2014-09-03 00:12:26 -04:00
Hugo is written in Go with support for Windows, Linux, FreeBSD and OS X.
2013-07-05 00:35:11 -04:00
2013-07-05 00:37:26 -04:00
The latest release can be found at [hugo releases ](https://github.com/spf13/hugo/releases ).
2014-09-03 00:12:26 -04:00
We currently build for Windows, Linux, FreeBSD and OS X for x64
and i386 architectures.
2013-07-05 00:35:11 -04:00
2013-07-24 11:47:58 -04:00
### Installing Hugo (binary)
2013-07-24 11:43:23 -04:00
2013-07-04 11:34:22 -04:00
Installation is very easy. Simply download the appropriate version for your
2014-09-03 00:12:26 -04:00
platform from [Hugo Releases ](https://github.com/spf13/hugo/releases ).
Once downloaded, it can be run from anywhere. You don't need to install
2013-07-05 00:35:11 -04:00
it into a global location. This works well for shared hosts and other systems
where you don't have a privileged account.
2013-07-04 11:34:22 -04:00
2014-09-03 00:12:26 -04:00
Ideally, you should install it somewhere in your path for easy use. `/usr/local/bin`
2013-07-04 11:34:22 -04:00
is the most probable location.
2014-03-19 08:22:06 -04:00
*The Hugo executable has no external dependencies.*
2013-07-04 11:34:22 -04:00
2013-07-24 11:47:58 -04:00
### Installing from source
2013-07-04 13:03:16 -04:00
2013-07-24 11:47:58 -04:00
#### Dependencies
2013-07-19 01:27:21 -04:00
2013-07-22 13:32:25 -04:00
* Git
* Go 1.1+
* Mercurial
2013-07-24 11:27:03 -04:00
* Bazaar
2013-07-22 13:32:25 -04:00
2013-07-24 11:47:58 -04:00
#### Clone locally (for contributors):
2013-07-22 13:32:25 -04:00
2013-07-04 13:03:16 -04:00
git clone https://github.com/spf13/hugo
cd hugo
2013-07-19 01:27:21 -04:00
go get
2013-07-04 13:03:16 -04:00
2014-09-03 00:12:26 -04:00
Because Go expects all of your libraries to be found in either $GOROOT or $GOPATH,
2013-07-24 11:43:23 -04:00
it's helpful to symlink the project to one of the following paths:
2014-09-03 00:12:26 -04:00
* `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`
2013-07-24 11:43:23 -04:00
2014-09-03 00:12:26 -04:00
#### Get directly from GitHub:
2013-07-24 11:43:23 -04:00
2013-08-03 03:31:25 -04:00
If you only want to build from source, it's even easier.
2013-07-24 11:27:03 -04:00
2014-09-03 00:12:26 -04:00
go get -v github.com/spf13/hugo
2013-07-04 13:03:16 -04:00
2013-07-24 11:47:58 -04:00
#### Building Hugo
2013-07-19 01:27:21 -04:00
2013-07-24 11:43:23 -04:00
cd /path/to/hugo
2013-07-19 01:27:21 -04:00
go build -o hugo main.go
2013-07-24 11:43:23 -04:00
mv hugo /usr/local/bin/
2013-07-04 13:03:16 -04:00
2013-08-03 03:31:25 -04:00
#### Running Hugo
2013-07-04 11:34:22 -04:00
2013-08-03 03:31:25 -04:00
cd /path/to/hugo
2014-03-08 22:17:17 -05:00
go install github.com/spf13/hugo/hugolib
2013-08-03 03:31:25 -04:00
go run main.go
2013-07-04 11:34:22 -04:00
2013-12-07 23:48:17 -05:00
#### Contribution Guidelines
We welcome your contributions. To make the process as seamless as possible, we ask for the following:
* Go ahead and fork the project and make your changes. We encourage pull requests to discuss code changes.
* When you're ready to create a pull request, be sure to:
2013-12-07 23:51:34 -05:00
* Have test cases for the new code. If you have questions about how to do it, please ask in your pull request.
* Run `go fmt`
* Squash your commits into a single commit. `git rebase -i` . It's okay to force update your pull request.
2014-09-03 00:12:26 -04:00
* Make sure `go test ./...` passes, and go build completes. Our Travis CI loop will catch most things that are missing. The exception: Windows. We run on Windows from time to time, but if you have access, please check on a Windows machine too.
2013-12-07 23:48:17 -05:00
2013-08-03 03:31:25 -04:00
**Complete documentation is available at [Hugo Documentation ](http://hugo.spf13.com ).**
2014-01-03 12:58:09 -05:00
[![Analytics ](https://ga-beacon.appspot.com/UA-7131036-6/hugo/readme )](https://github.com/igrigorik/ga-beacon)
[![Bitdeli Badge ](https://d2weczhvl823v0.cloudfront.net/spf13/hugo/trend.png )](https://bitdeli.com/free "Bitdeli Badge")