mirror of
https://github.com/gohugoio/hugo.git
synced 2026-09-02 03:32:38 +00:00
next: Cleanup after the big merge
This commit is contained in:
+27
-37
@@ -1,63 +1,53 @@
|
||||
baseurl = "/"
|
||||
canonifyurls = true
|
||||
# Pointing to this file
|
||||
config = "config.toml"
|
||||
enableGitInfo = true
|
||||
paginate= 100
|
||||
copyright = ""
|
||||
baseurl = "http://gohugo.io/"
|
||||
paginate = 100
|
||||
defaultContentLanguage = "en"
|
||||
# Set to true to keep url path preserve casing (eg, for sections)
|
||||
disablePathToLower = false
|
||||
# Allows use of emoji shorthand directly in content
|
||||
enableEmoji = true
|
||||
# Set the unicode character used for the "return" link in page footnotes.
|
||||
footnotereturnlinkcontents = "↩"
|
||||
# Create an array of files you don't want hugo to build
|
||||
ignoreFiles = []
|
||||
languageCode = "en-us"
|
||||
# Enable Logging
|
||||
log = true
|
||||
# Log Filepath (if set, logging enabled automatically)
|
||||
logFile = ""
|
||||
# This accepts yaml, toml, or json
|
||||
metaDataFormat = "yaml"
|
||||
# This intelligently adds an "s" to the titles of list pages
|
||||
pluralizelisttitles = false
|
||||
relativeURLs = true
|
||||
# Display memory and timing of different steps of the program
|
||||
stepAnalysis = true
|
||||
# This is the top-level, global site title
|
||||
title = "Hugo"
|
||||
title = "Hugo: A Fast and Flexible Website Generator"
|
||||
theme = "gohugoioTheme"
|
||||
|
||||
# Change this once you've created your theme
|
||||
googleAnalytics = "UA-7131036-4"
|
||||
|
||||
pluralizeListTitles = false
|
||||
|
||||
# We do redirects via Netlify's _redirects file, generated by Hugo (see "outputs" below).
|
||||
disableAliases = true
|
||||
|
||||
[outputs]
|
||||
home = [ "HTML", "RSS", "REDIR" ]
|
||||
|
||||
[mediaTypes]
|
||||
[mediaTypes."text/netlify"]
|
||||
suffix = ""
|
||||
delimiter = ""
|
||||
|
||||
[outputFormats]
|
||||
[outputFormats.REDIR]
|
||||
mediatype = "text/netlify"
|
||||
baseName = "_redirects"
|
||||
isPlainText = true
|
||||
notAlternative = true
|
||||
|
||||
# Set to true to convert mysite/section/ to mysite/section.html
|
||||
uglyURLs = false
|
||||
verbose = false
|
||||
verboseLog = false
|
||||
# Setting this to false will keep hugo from watching for changes during local development
|
||||
watch = true
|
||||
# Add GA Tracking Code Here. This leverages a built-in (ie, "internal") partial from HUGO: https://gohugo.io/extras/analytics#configuring-google-analytics
|
||||
googleAnalytics = "UA-76549364-1"
|
||||
|
||||
[social]
|
||||
twitter = "GoHugoIO"
|
||||
|
||||
|
||||
#CUSTOM PARAMS
|
||||
[params]
|
||||
description = "The world’s fastest framework for building websites"
|
||||
## Used for views in rendered HTML (i.e., rather than using the .Hugo variable)
|
||||
release = "0.20"
|
||||
release = "Hugo-Next"
|
||||
## Setting this to true will add a "noindex" to *EVERY* page on the site
|
||||
removefromexternalsearch = false
|
||||
## This is used when the BaseURL does not need to modified (eg, in share links or in prerender, prefetch, etc to control for relativeURLs setting); do *not* include trailing slash
|
||||
siteaddress = "https://hugodocs.info"
|
||||
## Gh repo for site footer (include trailing slash)
|
||||
ghrepo = "https://github.com/gohugoio/hugo/"
|
||||
ghrepo = "https://github.com/gohugoio/hugoDocs/"
|
||||
### Edit content repo (set to automatically enter "edit" mode; this is good for "improve this page" links)
|
||||
ghdocsrepo = "https://github.com/gohugoio/hugo/tree/master/docs"
|
||||
ghdocsrepo = "https://github.com/gohugoio/hugoDocs/tree/master/docs"
|
||||
## Gitter URL
|
||||
gitter = "https://gitter.im/spf13/hugo"
|
||||
## Discuss Forum URL
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/contributing/
|
||||
- /meta/contributing/
|
||||
lastmod: 2015-02-12
|
||||
date: 2013-07-01
|
||||
menu:
|
||||
main:
|
||||
parent: community
|
||||
next: /tutorials/automated-deployments
|
||||
prev: /community/mailing-list
|
||||
title: Contributing to Hugo
|
||||
weight: 30
|
||||
---
|
||||
|
||||
All contributions to Hugo are welcome. Whether you want to scratch an itch or simply contribute to the project, feel free to pick something from the [roadmap]({{< relref "meta/roadmap.md" >}}) or contact the dev team via the [Forums](https://discourse.gohugo.io/) or [Gitter](https://gitter.im/gohugoio/hugo) about what may make sense to do next.
|
||||
|
||||
You should 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:
|
||||
|
||||
* 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.
|
||||
* Run `make check` and ensure it succeeds. [Travis CI](https://travis-ci.org/gohugoio/hugo) and [Appveyor](https://ci.appveyor.com/project/gohugoio/hugo) will runs these checks and fail the build if `make check` fails.
|
||||
|
||||
## Contribution Overview
|
||||
|
||||
We wrote a [detailed guide]({{< relref "tutorials/how-to-contribute-to-hugo.md" >}}) for newcomers that guides you step by step to your first contribution. If you are more experienced, follow the guide below.
|
||||
|
||||
|
||||
# Building from source
|
||||
|
||||
## Vendored Dependencies
|
||||
|
||||
Hugo uses [govendor][] to vendor dependencies, but we don't commit the vendored packages themselves to the Hugo git repository.
|
||||
Therefore, a simple `go get` is not supported since `go get` is not vendor-aware.
|
||||
You **must use govendor** to fetch Hugo's dependencies.
|
||||
|
||||
## Fetch the Sources
|
||||
|
||||
go get github.com/kardianos/govendor
|
||||
govendor get github.com/gohugoio/hugo
|
||||
|
||||
## Running Hugo
|
||||
|
||||
cd $HOME/go/src/github.com/gohugoio/hugo
|
||||
go run main.go
|
||||
|
||||
## Building Hugo
|
||||
|
||||
cd $HOME/go/src/github.com/gohugoio/hugo
|
||||
make build
|
||||
# or to install to $HOME/go/bin:
|
||||
make install
|
||||
|
||||
|
||||
# Showcase additions
|
||||
|
||||
You got your new website running and it's powered by Hugo? Great. You can add your website with a few steps to the [showcase](/showcase/).
|
||||
|
||||
First, make sure that you created a [fork](https://help.github.com/articles/fork-a-repo/) of the [`hugoDocs`](https://github.com/gohugoio/hugodocs) repository on GitHub and cloned your fork on your local computer. **Next, create a separate branch for your additions**:
|
||||
|
||||
```
|
||||
# You can choose a different descriptive branch name if you like
|
||||
git checkout -b showcase-addition
|
||||
```
|
||||
|
||||
Let's create a new document that contains some metadata of your homepage. Replace `example` in the following examples with something unique like the name of your website. Inside the terminal enter the following commands:
|
||||
|
||||
```
|
||||
cd docs
|
||||
hugo new showcase/example.md
|
||||
```
|
||||
|
||||
You should find the new file at `content/showcase/example.md`. Open it in an editor. The file should contain a frontmatter with predefined variables like below:
|
||||
|
||||
```
|
||||
---
|
||||
date: 2016-02-12T21:01:18+01:00
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://spf13.com/
|
||||
sourceLink: https://github.com/spf13/spf13.com
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/spf13-tn.jpg
|
||||
title: example
|
||||
---
|
||||
```
|
||||
|
||||
Add at least values for `sitelink`, `title`, `description` and a path for `thumbnail`.
|
||||
|
||||
Furthermore, we need to create the thumbnail of your website. **It's important that the thumbnail has the required dimensions of 600px by 400px.** Give your thumbnail a name like `example-tn.png`. Save it under `static/img/`.
|
||||
|
||||
Check a last time that everything works as expected. Start Hugo's built-in server in order to inspect your local copy of the showcase in the browser:
|
||||
|
||||
hugo server
|
||||
|
||||
If everything looks fine, we are ready to commit your additions. For the sake of best practices, please make sure that your commit follows our [code contribution guideline](https://github.com/gohugoio/hugo#code-contribution-guideline).
|
||||
|
||||
git commit -m"Add example.com to the showcase"
|
||||
|
||||
Last but not least, we're ready to create a [pull request](https://github.com/gohugoio/hugoDocs/compare).
|
||||
|
||||
Don't forget to accept the contributor license agreement. Click on the yellow badge in the automatically added comment in the pull request.
|
||||
|
||||
[govendor]: https://github.com/kardianos/govendor
|
||||
@@ -1,91 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/example/
|
||||
lastmod: 2015-12-23
|
||||
date: 2013-07-01
|
||||
linktitle: Example
|
||||
menu:
|
||||
main:
|
||||
parent: content
|
||||
prev: /content/multilingual
|
||||
next: /content/using-index-md
|
||||
notoc: true
|
||||
title: Example Content File
|
||||
weight: 70
|
||||
---
|
||||
|
||||
Some things are better shown than explained. The following is a very basic example of a content file written in [Markdown](https://help.github.com/articles/github-flavored-markdown/):
|
||||
|
||||
**mysite/content/project/nitro.md → http://mysite.com/project/nitro.html**
|
||||
|
||||
With TOML front matter:
|
||||
|
||||
<pre><code class="language-toml">+++
|
||||
date = "2013-06-21T11:27:27-04:00"
|
||||
title = "Nitro: A quick and simple profiler for Go"
|
||||
description = "Nitro is a simple profiler for your Golang applications"
|
||||
tags = [ "Development", "Go", "profiling" ]
|
||||
topics = [ "Development", "Go" ]
|
||||
slug = "nitro"
|
||||
project_url = "https://github.com/spf13/nitro"
|
||||
+++
|
||||
</code><code class="language-markdown"># Nitro
|
||||
|
||||
Quick and easy performance analyzer library for [Go](http://golang.org/).
|
||||
|
||||
## Overview
|
||||
|
||||
Nitro is a quick and easy performance analyzer library for Go.
|
||||
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.
|
||||
</code></pre>
|
||||
|
||||
You may also use the equivalent YAML front matter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
lastmod: 2015-12-23
|
||||
date: "2013-06-21T11:27:27-04:00"
|
||||
title: "Nitro: A quick and simple profiler for Go"
|
||||
description: "Nitro is a simple profiler for your Go lang applications"
|
||||
tags: [ "Development", "Go", "profiling" ]
|
||||
topics: [ "Development", "Go" ]
|
||||
slug: "nitro"
|
||||
project_url: "https://github.com/spf13/nitro"
|
||||
---
|
||||
```
|
||||
|
||||
`nitro.md` would be rendered as follows:
|
||||
|
||||
> # Nitro
|
||||
>
|
||||
> Quick and easy performance analyzer library for [Go](http://golang.org/).
|
||||
>
|
||||
> ## Overview
|
||||
>
|
||||
> Nitro is a quick and easy performance analyzer library for Go.
|
||||
> 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.
|
||||
|
||||
The source `nitro.md` file is converted to HTML by the excellent
|
||||
[Blackfriday](https://github.com/russross/blackfriday) Markdown processor,
|
||||
which supports extended features found in the popular
|
||||
[GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/).
|
||||
@@ -1,49 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/supported-formats/
|
||||
lastmod: 2016-07-22
|
||||
date: 2016-07-22
|
||||
menu:
|
||||
main:
|
||||
parent: content
|
||||
prev: /content/summaries
|
||||
next: /content/multilingual
|
||||
title: Markdown Extras
|
||||
weight: 66
|
||||
toc: false
|
||||
---
|
||||
|
||||
Hugo provides some convenient markdown extensions.
|
||||
|
||||
## Task lists
|
||||
|
||||
Hugo supports GitHub styled task lists (TODO lists) for the Blackfriday renderer (md-files). See [Blackfriday config](/overview/configuration/#configure-blackfriday-rendering) for how to turn it off.
|
||||
|
||||
Example:
|
||||
|
||||
```markdown
|
||||
- [ ] a task list item
|
||||
- [ ] list syntax required
|
||||
- [ ] incomplete
|
||||
- [x] completed
|
||||
```
|
||||
|
||||
Renders as:
|
||||
|
||||
- [ ] a task list item
|
||||
- [ ] list syntax required
|
||||
- [ ] incomplete
|
||||
- [x] completed
|
||||
|
||||
|
||||
And produces this HTML:
|
||||
|
||||
```html
|
||||
|
||||
<ul class="task-list">
|
||||
<li><input type="checkbox" disabled="" class="task-list-item"> a task list item</li>
|
||||
<li><input type="checkbox" disabled="" class="task-list-item"> list syntax required</li>
|
||||
<li><input type="checkbox" disabled="" class="task-list-item"> incomplete</li>
|
||||
<li><input type="checkbox" checked="" disabled="" class="task-list-item"> completed</li>
|
||||
</ul>
|
||||
```
|
||||
@@ -1,232 +0,0 @@
|
||||
---
|
||||
date: 2016-01-02T21:21:00Z
|
||||
menu:
|
||||
main:
|
||||
parent: content
|
||||
prev: /content/markdown-extras
|
||||
next: /content/example
|
||||
title: Multilingual Mode
|
||||
weight: 68
|
||||
toc: true
|
||||
---
|
||||
Hugo supports multiple languages side-by-side (added in `Hugo 0.17`). Define the available languages in a `Languages` section in your top-level `config.toml` (or equivalent).
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
DefaultContentLanguage = "en"
|
||||
copyright = "Everything is mine"
|
||||
|
||||
[params.navigation]
|
||||
help = "Help"
|
||||
|
||||
[Languages]
|
||||
[Languages.en]
|
||||
title = "My blog"
|
||||
weight = 1
|
||||
[Languages.en.params]
|
||||
linkedin = "english-link"
|
||||
|
||||
[Languages.fr]
|
||||
copyright = "Tout est à moi"
|
||||
title = "Mon blog"
|
||||
weight = 2
|
||||
[Languages.fr.params]
|
||||
linkedin = "lien-francais"
|
||||
[Languages.fr.navigation]
|
||||
help = "Aide"
|
||||
|
||||
```
|
||||
|
||||
Anything not defined in a `[Languages]` block will fall back to the global
|
||||
value for that key (like `copyright` for the English (`en`) language in this example).
|
||||
|
||||
With the config above, all content, sitemap, RSS feeds, paginations
|
||||
and taxonomy pages will be rendered below `/` in English (your default content language), and below `/fr` in French.
|
||||
|
||||
When working with params in frontmatter pages, omit the `params` in the key for the translation.
|
||||
|
||||
If you want all of the languages to be put below their respective language code, enable `defaultContentLanguageInSubdir: true` in your configuration.
|
||||
|
||||
Only the obvious non-global options can be overridden per language. Examples of global options are `BaseURL`, `BuildDrafts`, etc.
|
||||
|
||||
Taxonomies and Blackfriday configuration can also be set per language, example:
|
||||
|
||||
```
|
||||
[Taxonomies]
|
||||
tag = "tags"
|
||||
|
||||
[blackfriday]
|
||||
angledQuotes = true
|
||||
hrefTargetBlank = true
|
||||
|
||||
[Languages]
|
||||
[Languages.en]
|
||||
weight = 1
|
||||
title = "English"
|
||||
[Languages.en.blackfriday]
|
||||
angledQuotes = false
|
||||
|
||||
[Languages.fr]
|
||||
weight = 2
|
||||
title = "Français"
|
||||
[Languages.fr.Taxonomies]
|
||||
plaque = "plaques"
|
||||
```
|
||||
|
||||
|
||||
### Translating your content
|
||||
|
||||
Translated articles are identified by the name of the content file.
|
||||
|
||||
Example of translated articles:
|
||||
|
||||
1. `/content/about.en.md`
|
||||
2. `/content/about.fr.md`
|
||||
|
||||
You can also have:
|
||||
|
||||
1. `/content/about.md`
|
||||
2. `/content/about.fr.md`
|
||||
|
||||
In which case the config variable `defaultContentLanguage` will be used to affect the default language `about.md`. This way, you can
|
||||
slowly start to translate your current content without having to rename everything.
|
||||
|
||||
If left unspecified, the value for `defaultContentLanguage` defaults to `en`.
|
||||
|
||||
By having the same _base file name_, the content pieces are linked together as translated pieces.
|
||||
|
||||
If you need distinct URLs per language you can set the slug in the non-default language file. Just define the custom slug for the french translation in your `/content/about.fr.md` file:
|
||||
|
||||
```
|
||||
---
|
||||
slug: "a-propos"
|
||||
---
|
||||
```
|
||||
|
||||
You will get both `/about/` and `/a-propos/` URLs in your build, properly linked as translated pieces.
|
||||
|
||||
### Link to translated content
|
||||
|
||||
To create a list of links to translated content, use a template similar to this:
|
||||
|
||||
```
|
||||
{{ if .IsTranslated }}
|
||||
<h4>{{ i18n "translations" }}</h4>
|
||||
<ul>
|
||||
{{ range .Translations }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">{{ .Lang }}: {{ .Title }}{{ if .IsPage }} ({{ i18n "wordCount" . }}){{ end }}</a>
|
||||
</li>
|
||||
{{ end}}
|
||||
</ul>
|
||||
{{ end }}
|
||||
```
|
||||
The above can be put in a `partial` and included in any template, be it for a content page or the home page. It will not print anything if there are no translations for a given page, or if it is -- in the case of the home page, section listing etc. -- a site with only one language.
|
||||
|
||||
The above also uses the `i18n` func, see [Translation of strings](#translation-of-strings).
|
||||
|
||||
### Translation of strings
|
||||
|
||||
Hugo uses [go-i18n](https://github.com/nicksnyder/go-i18n) to support string translations. Follow the link to find tools to manage your translation workflows.
|
||||
|
||||
Translations are collected from the `themes/[name]/i18n/` folder (built into the theme), as well as translations present in `i18n/` at the root of your project. In the `i18n`, the translations will be merged and take precedence over what is in the theme folder. Language files should be named according to RFC 5646 with names such as `en-US.toml`, `fr.toml`, etc.
|
||||
|
||||
From within your templates, use the `i18n` function like this:
|
||||
|
||||
```
|
||||
{{ i18n "home" }}
|
||||
```
|
||||
|
||||
This uses a definition like this one in `i18n/en-US.toml`:
|
||||
|
||||
```
|
||||
[home]
|
||||
other = "Home"
|
||||
```
|
||||
|
||||
Often you will want to use to the page variables in the translations strings. To do that, pass on the "." context when calling `i18n`:
|
||||
|
||||
```
|
||||
{{ i18n "wordCount" . }}
|
||||
```
|
||||
|
||||
This uses a definition like this one in `i18n/en-US.toml`:
|
||||
|
||||
```
|
||||
[wordCount]
|
||||
other = "This article has {{ .WordCount }} words."
|
||||
```
|
||||
An example of singular and plural form:
|
||||
|
||||
```
|
||||
[readingTime]
|
||||
one = "One minute read"
|
||||
other = "{{.Count}} minutes read"
|
||||
```
|
||||
And then in the template:
|
||||
|
||||
```
|
||||
{{ i18n "readingTime" .ReadingTime }}
|
||||
```
|
||||
To track down missing translation strings, run Hugo with the `--i18n-warnings` flag:
|
||||
|
||||
```bash
|
||||
hugo --i18n-warnings | grep i18n
|
||||
i18n|MISSING_TRANSLATION|en|wordCount
|
||||
```
|
||||
|
||||
### Menus
|
||||
|
||||
You can define your menus for each language independently. The [creation of a menu]({{< relref "extras/menus.md" >}}) works analogous to earlier versions of Hugo, except that they have to be defined in their language-specific block in the configuration file:
|
||||
|
||||
```toml
|
||||
defaultContentLanguage = "en"
|
||||
|
||||
[languages.en]
|
||||
weight = 0
|
||||
languageName = "English"
|
||||
|
||||
[[languages.en.menu.main]]
|
||||
url = "/"
|
||||
name = "Home"
|
||||
weight = 0
|
||||
|
||||
|
||||
[languages.de]
|
||||
weight = 10
|
||||
languageName = "Deutsch"
|
||||
|
||||
[[languages.de.menu.main]]
|
||||
url = "/"
|
||||
name = "Startseite"
|
||||
weight = 0
|
||||
```
|
||||
|
||||
The rendering of the main navigation works as usual. `.Site.Menus` will just contain the menu of the current language. Pay attention to the generation of the menu links. `absLangURL` takes care that you link to the correct locale of your website. Otherwise, both menu entries would link to the English version because it's the default content language that resides in the root directory.
|
||||
|
||||
```html
|
||||
<ul>
|
||||
{{- $currentPage := . -}}
|
||||
{{ range .Site.Menus.main -}}
|
||||
<li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
|
||||
<a href="{{ .URL | absLangURL }}">{{ .Name }}</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
|
||||
```
|
||||
|
||||
### Missing translations
|
||||
|
||||
If a string does not have a translation for the current language, Hugo will use the value from the default language. If no default value is set, an empty string will be shown.
|
||||
|
||||
While translating a Hugo site, it can be handy to have a visual indicator of missing translations. The `EnableMissingTranslationPlaceholders` config option will flag all untranslated strings with the placeholder `[i18n] identifier`, where `identifier` is the id of the missing translation.
|
||||
|
||||
**Remember: Hugo will generate your website with these placeholders. It might not be suited for production environments.**
|
||||
|
||||
### Multilingual Themes support
|
||||
|
||||
To support Multilingual mode in your themes, some considerations must be taken for the URLs in the templates. If there are more than one language, URLs must either come from the built-in `.Permalink` or `.URL`, be constructed with `relLangURL` or `absLangURL` template funcs -- or prefixed with `{{.LanguagePrefix }}`.
|
||||
|
||||
If there are more than one language defined, the`LanguagePrefix` variable will equal `"/en"` (or whatever your `CurrentLanguage` is). If not enabled, it will be an empty string, so it is harmless for single-language sites.
|
||||
@@ -1,27 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/supported-formats/
|
||||
lastmod: 2015-08-01
|
||||
date: 2015-08-01
|
||||
menu:
|
||||
main:
|
||||
parent: content
|
||||
next: /content/front-matter
|
||||
prev: /content/organization
|
||||
title: Supported Formats
|
||||
weight: 15
|
||||
toc: true
|
||||
---
|
||||
|
||||
Since 0.14, Hugo has defined a new concept called _external helpers_. It means that you can write your content using Asciidoc[tor], reStructuredText or Org-Mode. If you have files with associated extensions ([details](https://github.com/gohugoio/hugo/blob/77c60a3440806067109347d04eb5368b65ea0fe8/helpers/general.go#L65)), then Hugo will call external commands to generate the content (the exception being Org-Mode content, which is parsed natively).
|
||||
|
||||
This means that you will have to install the associated tool on your machine to be able to use those formats.
|
||||
|
||||
For example, for Asciidoc files, Hugo will try to call __asciidoctor__ or __asciidoc__ command.
|
||||
|
||||
To use those formats, just use the standard extension and the front matter exactly as you would do with natively supported _.md_ files.
|
||||
|
||||
Notes:
|
||||
|
||||
* as these are external commands, generation performance for that content will heavily depend on the performance of those external tools.
|
||||
* this feature is still in early stage, hence feedback is even more welcome.
|
||||
@@ -1,118 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/using-index-md/
|
||||
lastmod: 2017-02-22
|
||||
date: 2017-02-22
|
||||
linktitle: Using _index.md
|
||||
menu:
|
||||
main:
|
||||
parent: content
|
||||
prev: /content/example
|
||||
next: /themes/overview
|
||||
notoc: true
|
||||
title: Using _index.md
|
||||
weight: 70
|
||||
---
|
||||
# \_index.md and 'Everything is a Page'
|
||||
|
||||
As of version v0.18 Hugo now treats '[everything as a page](http://bepsays.com/en/2016/12/19/hugo-018/)'. This allows you to add content and frontmatter to any page - including List pages like [Sections](/content/sections/), [Taxonomies](/taxonomies/overview/), [Taxonomy Terms pages](/templates/terms/) and even to potential 'special case' pages like the [Home page](/templates/homepage/).
|
||||
|
||||
In order to take advantage of this behaviour you need to do a few things.
|
||||
|
||||
1. Create an \_index.md file that contains the frontmatter and content you would like to apply.
|
||||
|
||||
2. Place the \_index.md file in the correct place in the directory structure.
|
||||
|
||||
3. Ensure that the respective template is configured to display `{{ .Content }}` if you wish for the content of the \_index.md file to be rendered on the respective page.
|
||||
|
||||
## How \_index.md pages work
|
||||
|
||||
Before continuing it's important to know that this page must reference certain templates to describe how the \_index.md page will be rendered. Hugo has a multitude of possible templates that can be used and placed in various places (think theme templates for instance). For simplicity/brevity the default/top level template location will be used to refer to the entire range of places the template can be placed.
|
||||
|
||||
If this is confusing or you are unfamiliar with Hugo's template hierarchy, visit the various template pages listed below. You may need to find the 'active' template responsible for any particular page on your own site by going through the template hierarchy and matching it to your particular setup/theme you are using.
|
||||
|
||||
- [Home page template](/templates/homepage/)
|
||||
- [Content List templates](/templates/list/)
|
||||
- [Single Content templates](/templates/content/)
|
||||
- [Taxonomy Terms templates](/templates/terms/)
|
||||
|
||||
Now that you've got a handle on templates lets recap some Hugo basics to understand how to use an \_index.md file with a List page.
|
||||
|
||||
1. Sections and Taxonomies are 'List' pages, NOT single pages.
|
||||
2. List pages are rendered using the template hierarchy found in the [Content - List Template](/templates/list/) docs.
|
||||
3. The Home page, though technically a List page, can have [its own template](/templates/homepage/) at layouts/index.html rather than \_default/list.html. Many themes exploit this behaviour so you are likely to encounter this specific use case.
|
||||
4. Taxonomy terms pages are 'lists of metadata' not lists of content, so [have their own templates](/templates/terms/).
|
||||
|
||||
Let's put all this information together:
|
||||
|
||||
> **\_index.md files used in List pages, Terms pages or the Home page are NOT rendered as single pages or with Single Content templates.**
|
||||
|
||||
> **All pages, including List pages, can have frontmatter and frontmatter can have markdown content - meaning \_index.md files are the way to _provide_ frontmatter and content to the respective List/Terms/Home page.**
|
||||
|
||||
Here are a couple of examples to make it clearer...
|
||||
|
||||
| \_index.md location | Page affected | Rendered by |
|
||||
| ------------------- | ------------ | ----------- |
|
||||
| /content/post/\_index.md | site.com/post/ | /layouts/section/post.html |
|
||||
| /content/categories/hugo/\_index.md | site.com/categories/hugo/ | /layouts/taxonomy/hugo.html |
|
||||
|
||||
## Why \_index.md files are used
|
||||
|
||||
With a Single page such as a post it's possible to add the frontmatter and content directly into the .md page itself. With List/Terms/Home pages this is not possible so \_index.md files can be used to provide that frontmatter/content to them.
|
||||
|
||||
## How to display content from \_index.md files
|
||||
|
||||
From the information above it should follow that content within an \_index.md file won't be rendered in its own Single Page, instead it'll be made available to the respective List/Terms/Home page.
|
||||
|
||||
To **_actually render that content_** you need to ensure that the relevant template responsible for rendering the List/Terms/Home page contains (at least) `{{ .Content }}`.
|
||||
|
||||
This is the way to actually display the content within the \_index.md file on the List/Terms/Home page.
|
||||
|
||||
A very simple/naive example of this would be:
|
||||
|
||||
```html
|
||||
{{ partial "header.html" . }}
|
||||
<main>
|
||||
{{ .Content }}
|
||||
{{ range .Paginator.Pages }}
|
||||
{{ partial "summary.html" . }}
|
||||
{{ end }}
|
||||
{{ partial "pagination.html" . }}
|
||||
</main>
|
||||
{{ partial "sidebar.html" . }}
|
||||
{{ partial "footer.html" . }}
|
||||
```
|
||||
|
||||
You can see `{{ .Content }}` just after the `<main>` element. For this particular example, the content of the \_index.md file will show before the main list of summaries.
|
||||
|
||||
## Where to organise an \_index.md file
|
||||
|
||||
To add content and frontmatter to the home page, a section, a taxonomy or a taxonomy terms listing, add a markdown file with the base name \_index on the relevant place on the file system.
|
||||
|
||||
```bash
|
||||
└── content
|
||||
├── _index.md
|
||||
├── categories
|
||||
│ ├── _index.md
|
||||
│ └── photo
|
||||
│ └── _index.md
|
||||
├── post
|
||||
│ ├── _index.md
|
||||
│ └── firstpost.md
|
||||
└── tags
|
||||
├── _index.md
|
||||
└── hugo
|
||||
└── _index.md
|
||||
```
|
||||
|
||||
In the above example \_index.md pages have been added to each section/taxonomy.
|
||||
|
||||
An \_index.md file has also been added in the top level 'content' directory.
|
||||
|
||||
### Where to place \_index.md for the Home page
|
||||
|
||||
Hugo themes are designed to use the 'content' directory as the root of the website, so adding an \_index.md file here (like has been done in the example above) is how you would add frontmatter/content to the home page.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/redirects/
|
||||
- /doc/alias/
|
||||
- /doc/aliases/
|
||||
lastmod: 2015-12-23
|
||||
date: 2013-07-09
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/analytics
|
||||
prev: /taxonomies/methods
|
||||
title: Aliases
|
||||
---
|
||||
|
||||
For people migrating existing published content to Hugo, there's a good chance you need a mechanism to handle redirecting old URLs.
|
||||
|
||||
Luckily, redirects can be handled easily with _aliases_ in Hugo.
|
||||
|
||||
## Example
|
||||
|
||||
Given a post on your current Hugo site, with a path of:
|
||||
|
||||
``content/posts/my-awesome-blog-post.md``
|
||||
|
||||
... you create an "aliases" section in the frontmatter of your post, and add previous paths to that.
|
||||
|
||||
### TOML frontmatter
|
||||
|
||||
```toml
|
||||
+++
|
||||
...
|
||||
aliases = [
|
||||
"/posts/my-original-url/",
|
||||
"/2010/01/01/even-earlier-url.html"
|
||||
]
|
||||
...
|
||||
+++
|
||||
```
|
||||
|
||||
### YAML frontmatter
|
||||
|
||||
```yaml
|
||||
---
|
||||
...
|
||||
aliases:
|
||||
- /posts/my-original-url/
|
||||
- /2010/01/01/even-earlier-url.html
|
||||
...
|
||||
---
|
||||
```
|
||||
|
||||
Now when you visit any of the locations specified in aliases, _assuming the same site domain_, you'll be redirected to the page they are specified on.
|
||||
|
||||
## Important Behaviors
|
||||
|
||||
1. *Hugo makes no assumptions about aliases. They also don't change based
|
||||
on your UglyURLs setting. You need to provide absolute path to your webroot
|
||||
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.*
|
||||
|
||||
## Multilingual example
|
||||
|
||||
On [multilingual sites]({{< relref "content/multilingual.md" >}}), each translation of a post can have unique aliases. To use the same alias across multiple languages, prefix it with the language code.
|
||||
|
||||
In `/posts/my-new-post.es.md`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
aliases:
|
||||
- /es/posts/my-original-post/
|
||||
---
|
||||
```
|
||||
|
||||
## How Hugo Aliases Work
|
||||
|
||||
When aliases are specified, Hugo creates a physical folder structure to match the alias entry, and, an html file specifying the canonical URL for the page, and a redirect target.
|
||||
|
||||
Assuming a baseURL of `mysite.tld`, the contents of the html file will look something like:
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>http://mysite.tld/posts/my-original-url</title>
|
||||
<link rel="canonical" href="http://mysite.tld/posts/my-original-url"/>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="refresh" content="0; url=http://mysite.tld/posts/my-original-url"/>
|
||||
</head>
|
||||
</html>
|
||||
```
|
||||
|
||||
The `http-equiv="refresh"` line is what performs the redirect, in 0 seconds in this case.
|
||||
|
||||
## Customizing
|
||||
|
||||
You may customize this alias page by creating an alias.html template in the
|
||||
layouts folder of your site. In this case, the data passed to the template is
|
||||
|
||||
* Permalink - the link to the page being aliased
|
||||
* Page - the Page data for the page being aliased
|
||||
@@ -1,28 +0,0 @@
|
||||
---
|
||||
date: 2016-02-06
|
||||
linktitle: Analytics
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/builders
|
||||
prev: /extras/aliases
|
||||
title: Analytics in Hugo
|
||||
---
|
||||
|
||||
Hugo ships with prebuilt internal templates for Google Analytics tracking, including both synchronous and asynchronous tracking codes.
|
||||
|
||||
## Configuring Google Analytics
|
||||
|
||||
Provide your tracking id in your configuration file, e.g. config.yaml.
|
||||
|
||||
googleAnalytics = "UA-123-45"
|
||||
|
||||
## Example
|
||||
|
||||
Include the internal template in your templates like so:
|
||||
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
|
||||
For async include the async template:
|
||||
|
||||
{{ template "_internal/google_analytics_async.html" . }}
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-12-24
|
||||
date: 2014-05-26
|
||||
linktitle: Builders
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/comments
|
||||
prev: /extras/analytics
|
||||
title: Hugo Builders
|
||||
---
|
||||
|
||||
Hugo provides the functionality to quickly get a site, theme or page
|
||||
started.
|
||||
|
||||
|
||||
## New Site
|
||||
|
||||
Want to get a site built quickly?
|
||||
|
||||
{{< nohighlight >}}$ hugo new site <i>path/to/site</i>
|
||||
{{< /nohighlight >}}
|
||||
|
||||
Hugo will create all the needed directories and files to get started
|
||||
quickly.
|
||||
|
||||
Hugo will only touch the files and create the directories (in the right
|
||||
places), [configuration](/overview/configuration/) and content are up to
|
||||
you... but luckily we have builders for content (see below).
|
||||
|
||||
## New Theme
|
||||
|
||||
Want to design a new theme?
|
||||
|
||||
$ hugo new theme THEME_NAME
|
||||
|
||||
Run from your working directory, this will create a new theme with all
|
||||
the needed files in your themes directory. Hugo will provide you with a
|
||||
license and theme.toml file with most of the work done for you.
|
||||
|
||||
Follow the [Theme Creation Guide](/themes/creation/) once the builder is
|
||||
done.
|
||||
|
||||
## New Content
|
||||
|
||||
You will use this builder the most of all. Every time you want to create
|
||||
a new piece of content, the content builder will get you started right.
|
||||
|
||||
Leveraging [content archetypes](/content/archetypes/) the content builder
|
||||
will not only insert the current date and appropriate metadata, but it
|
||||
will pre-populate values based on the content type.
|
||||
|
||||
$ hugo new relative/path/to/content
|
||||
|
||||
This assumes it is being run from your working directory and the content
|
||||
path starts from your content directory. Now, Hugo watches your content directory by default and rebuilds your entire website if any change occurs.
|
||||
@@ -1,106 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/datafiles/
|
||||
lastmod: 2015-08-04
|
||||
date: 2015-01-22
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/datadrivencontent
|
||||
prev: /extras/robots-txt
|
||||
title: Data Files
|
||||
---
|
||||
|
||||
In addition to the [built-in variables](/templates/variables/) available from Hugo, you can specify your own custom data that can be accessed via templates or shortcodes.
|
||||
|
||||
Hugo supports loading data from [YAML](http://yaml.org/), [JSON](http://www.json.org/), and [TOML](https://github.com/toml-lang/toml) files located in the `data` directory.
|
||||
|
||||
**It even works with [LiveReload](/extras/livereload/).**
|
||||
|
||||
Data Files can also be used in [themes](/themes/overview/), but note: If the same `key` is used in both the main data folder and in the theme's data folder, the main one will win. So, for theme authors, for theme specific data items that shouldn't be overridden, it can be wise to prefix the folder structure with a namespace, e.g. `mytheme/data/mytheme/somekey/...`. To check if any such duplicate exists, run hugo with the `-v` flag, e.g. `hugo -v`.
|
||||
|
||||
## The Data Folder
|
||||
|
||||
The `data` folder is where you can store additional data for Hugo to use when generating your site. Data files aren't used to generate standalone pages - rather they're meant to supplement the content files. This feature can extend the content in case your frontmatter would grow immensely. Or perhaps you want to show a larger dataset in a template (see example below). In both cases it's a good idea to outsource the data in their own file.
|
||||
|
||||
These files must be YAML, JSON or TOML files (using either the `.yml`, `.yaml`, `.json` or `toml` extension) and the data will be accessible as a `map` in `.Site.Data`.
|
||||
|
||||
**The keys in this map will be a dot chained set of _path_, _filename_ and _key_ in file (if applicable).**
|
||||
|
||||
This is best explained with an example:
|
||||
|
||||
## Example: Jaco Pastorius' Solo Discography
|
||||
|
||||
[Jaco Pastorius](http://en.wikipedia.org/wiki/Jaco_Pastorius_discography) was a great bass player, but his solo discography is short enough to use as an example. [John Patitucci](http://en.wikipedia.org/wiki/John_Patitucci) is another bass giant.
|
||||
|
||||
The example below is a bit constructed, but it illustrates the flexibility of Data Files. It uses TOML as file format.
|
||||
|
||||
Given the files:
|
||||
|
||||
* `data/jazz/bass/jacopastorius.toml`
|
||||
* `data/jazz/bass/johnpatitucci.toml`
|
||||
|
||||
`jacopastorius.toml` contains the content below, `johnpatitucci.toml` contains a similar list:
|
||||
|
||||
```
|
||||
discography = [
|
||||
"1974 – Modern American Music … Period! The Criteria Sessions",
|
||||
"1974 – Jaco",
|
||||
"1976 - Jaco Pastorius",
|
||||
"1981 - Word of Mouth",
|
||||
"1981 - The Birthday Concert (released in 1995)",
|
||||
"1982 - Twins I & II (released in 1999)",
|
||||
"1983 - Invitation",
|
||||
"1986 - Broadway Blues (released in 1998)",
|
||||
"1986 - Honestly Solo Live (released in 1990)",
|
||||
"1986 - Live In Italy (released in 1991)",
|
||||
"1986 - Heavy'n Jazz (released in 1992)",
|
||||
"1991 - Live In New York City, Volumes 1-7.",
|
||||
"1999 - Rare Collection (compilation)",
|
||||
"2003 - Punk Jazz: The Jaco Pastorius Anthology (compilation)",
|
||||
"2007 - The Essential Jaco Pastorius (compilation)"
|
||||
]
|
||||
```
|
||||
|
||||
The list of bass players can be accessed via `.Site.Data.jazz.bass`, a single bass player by adding the filename without the suffix, e.g. `.Site.Data.jazz.bass.jacopastorius`.
|
||||
|
||||
You can now render the list of recordings for all the bass players in a template:
|
||||
|
||||
```
|
||||
{{ range $.Site.Data.jazz.bass }}
|
||||
{{ partial "artist.html" . }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
And then in `partial/artist.html`:
|
||||
|
||||
```
|
||||
<ul>
|
||||
{{ range .discography }}
|
||||
<li>{{ . }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
```
|
||||
|
||||
Discover a new favourite bass player? Just add another TOML-file.
|
||||
|
||||
## Example: Accessing named values in a Data File
|
||||
|
||||
Assuming you have the following YAML structure to your `User0123.yml` Data File located directly in `data/`
|
||||
|
||||
```
|
||||
Name: User0123
|
||||
"Short Description": "He is a **jolly good** fellow."
|
||||
Achievements:
|
||||
- "Can create a Key, Value list from Data File"
|
||||
- "Learns Hugo"
|
||||
- "Reads documentation"
|
||||
```
|
||||
|
||||
To render the `Short Description` in your `layout` File following code is required.
|
||||
|
||||
```
|
||||
<div>Short Description of {{.Site.Data.User0123.Name}}: <p>{{ index .Site.Data.User0123 "Short Description" | markdownify }}</p></div>
|
||||
```
|
||||
|
||||
Note the use of the `markdownify` template function. This will send the description through the Blackfriday Markdown rendering engine.
|
||||
@@ -1,54 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/gitinfo/
|
||||
lastmod: 2016-12-11
|
||||
date: 2016-12-11
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/livereload
|
||||
prev: /extras/datadrivencontent
|
||||
title: GitInfo
|
||||
---
|
||||
|
||||
Hugo provides a way to integrate Git data into your site.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. The Hugo site must be in a Git-enabled directory.
|
||||
1. The Git executable must be installed and in your system `PATH`.
|
||||
1. Enable the GitInfo feature in Hugo by using `--enableGitInfo` on the command
|
||||
line or by setting `enableGitInfo` to `true` in your site configuration.
|
||||
|
||||
## The GitInfo Object
|
||||
|
||||
The `GitInfo` object contains the following fields:
|
||||
|
||||
AbbreviatedHash
|
||||
: abbreviated commit hash, e.g. `866cbcc`
|
||||
|
||||
AuthorName
|
||||
: author name, respecting `.mailmap`
|
||||
|
||||
AuthorEmail
|
||||
: author email address, respecting `.mailmap`
|
||||
|
||||
AuthorDate
|
||||
: the author date
|
||||
|
||||
Hash
|
||||
: commit hash, e.g. `866cbccdab588b9908887ffd3b4f2667e94090c3`
|
||||
|
||||
Subject
|
||||
: commit message subject, e.g. `tpl: Add custom index function`
|
||||
|
||||
|
||||
## Other Considerations
|
||||
|
||||
The Git integrations should be fairly performant, but it does add some time to the build, which depends somewhat on the Git history size.
|
||||
|
||||
The accuracy of data depends on the underlying local git respository. If the local repository is a *shallow clone*, then any file that hasn't been modified in the truncated history will default to data in the oldest commit. In particular, if the respository has been cloned using `--depth=1` then every file will the exact same `GitInfo` data -- that of the only commit in the repository.
|
||||
|
||||
In particular, many CI/CD systems such as [travis-ci.org](https://travis-ci.org) default to a clone depth of 50 which is unlikely to be deep enough. You can explicitly add back the missing history using using `git fetch --unshallow` or [make the initial checkout deeper](https://docs.travis-ci.com/user/customizing-the-build#Git-Clone-Depth).
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
---
|
||||
lastmod: 2016-08-09
|
||||
date: 2014-05-26
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /extras/menus
|
||||
prev: /extras/gitinfo
|
||||
title: LiveReload
|
||||
---
|
||||
|
||||
Hugo may not be the first static site generator to utilize LiveReload
|
||||
technology, but it’s the first to do it right.
|
||||
|
||||
The combination of Hugo’s insane build speed and LiveReload make
|
||||
crafting your content pure joy. Virtually instantly after you hit save
|
||||
your rebuilt content will appear in your browser.
|
||||
|
||||
## Using LiveReload
|
||||
|
||||
Hugo comes with LiveReload built in. There are no additional packages to
|
||||
install. A common way to use Hugo while developing a site is to have
|
||||
Hugo run a server and watch for changes:
|
||||
|
||||
{{< nohighlight >}}$ hugo server
|
||||
{{< /nohighlight >}}
|
||||
|
||||
This will run a full functioning web server while simultaneously
|
||||
watching your file system for additions, deletions or changes within
|
||||
your:
|
||||
|
||||
* static files
|
||||
* content
|
||||
* data files
|
||||
* layouts
|
||||
* current theme
|
||||
* configuration files
|
||||
|
||||
Whenever anything changes, Hugo will rebuild the site while continuing to serve
|
||||
the content. As soon as the build is finished, it will tell the
|
||||
browser and silently reload the page. Because most Hugo builds are so
|
||||
fast they are barely noticeable, you merely need to glance at your open
|
||||
browser and you will see the change, already there.
|
||||
|
||||
This means that keeping the site open on a second monitor (or another
|
||||
half of your current monitor) allows you to see exactly what your
|
||||
content looks like, without even leaving your text editor.
|
||||
|
||||
## Disabling Watch
|
||||
|
||||
If for some reason you don't want the Hugo server's watch functionality,
|
||||
just do:
|
||||
|
||||
{{< nohighlight >}}$ hugo server --watch=false
|
||||
{{< /nohighlight >}}
|
||||
|
||||
## Disabling LiveReload
|
||||
|
||||
LiveReload works by injecting JavaScript into the pages Hugo generates,
|
||||
which creates a connection from the browser web socket client to the
|
||||
Hugo web socket server.
|
||||
|
||||
Awesome for development, but not something you would want to do in
|
||||
production. Since many people use `hugo server` in production to
|
||||
instantly display any updated content, we’ve made it easy to disable the
|
||||
LiveReload functionality:
|
||||
|
||||
{{< nohighlight >}}$ hugo server --disableLiveReload
|
||||
{{< /nohighlight >}}
|
||||
|
||||
## Notes
|
||||
|
||||
You must have a closing `</body>` tag for LiveReload to work.
|
||||
Hugo injects the LiveReload `<script>` before this tag.
|
||||
@@ -1,185 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/output-formats/
|
||||
- /doc/custom-output/
|
||||
date: 2017-03-22T08:20:13+01:00
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
title: Output Formats
|
||||
weight: 5
|
||||
toc: true
|
||||
---
|
||||
|
||||
Hugo `0.20` introduced the powerful feature **Custom Output Formats**; Hugo isn't just that "static HTML with an added RSS feed" anymore. _Say hello_ to calendars, e-book formats, Google AMP, and JSON search indexes, to name a few.
|
||||
|
||||
This page describes how to properly configure your site with the media types and output formats you need.
|
||||
|
||||
## Media Types
|
||||
|
||||
A [media type](https://en.wikipedia.org/wiki/Media_type) (also known as MIME type and content type) is a two-part identifier for file formats and format contents transmitted on the Internet.
|
||||
|
||||
This is the full set of built-in media types in Hugo:
|
||||
|
||||
{{< datatable "media" "types" "Type" "Suffix" >}}
|
||||
|
||||
**Note:**
|
||||
|
||||
* It is possible to add custom media types or change the defaults (if you, say, want to change the suffix to `asp` for `text/html`).
|
||||
* The `Suffix` is the value that will be used for URLs and filenames for that media type in Hugo.
|
||||
* The `Type` is the identifier that must be used when defining new `Output Formats` (see below).
|
||||
* The `Delimiter` defaults to ".", but can be changed or even blanked out to support, as an example, Netlify's `_redirect` files.
|
||||
* The full set of media types will be registered in Hugo's built-in development server to make sure they are recognized by the browser.
|
||||
|
||||
To add or modify a media type, define it in a `mediaTypes` section in your site config (either for all sites or for a given language).
|
||||
|
||||
Example in `config.toml`:
|
||||
|
||||
```toml
|
||||
[mediaTypes]
|
||||
[mediaTypes."text/enriched"]
|
||||
suffix = "enr"
|
||||
[mediaTypes."text/html"]
|
||||
suffix = "asp"
|
||||
```
|
||||
|
||||
The above example adds one new media type, `text/enriched`, and changes the suffix for the built-in `text/html` media type.
|
||||
|
||||
## Output Formats
|
||||
Given a media type and some additional configuration, you get an `Output Format`.
|
||||
|
||||
This is the full set of built-in output formats in Hugo:
|
||||
|
||||
{{< datatable "output" "formats" "Name" "MediaType" "Path" "BaseName" "Rel" "Protocol" "IsPlainText" "IsHTML" "NoUgly" "NotAlternative">}}
|
||||
|
||||
**Note:**
|
||||
|
||||
* A page can be output in as many output formats as you want, and you can have an infinite amount of output formats defined, as long as _they resolve to a unique path on the file system_. In the table above, the best example of this is `AMP` vs. `HTML`: We have given `AMP` a value for `Path` so it doesn't overwrite the `HTML` version, i.e. we can now have both `/index.html` and `/amp/index.html`.
|
||||
* The `MediaType` must match the `Type` of an already defined media type (see above).
|
||||
* You can define new or redefine built-in output formats (if you, as an example, want to put `AMP` pages in a different path).
|
||||
|
||||
To add or modify a media type, define it in a `outputFormats` section in your site config (either for all sites or for a given language).
|
||||
|
||||
Example in `config.toml`:
|
||||
|
||||
```toml
|
||||
[outputFormats.MyEnrichedFormat]
|
||||
mediaType = "text/enriched"
|
||||
baseName = "myindex"
|
||||
isPlainText = true
|
||||
protocol = "bep://"
|
||||
```
|
||||
|
||||
The above example is fictional, but if used for the home page on a site with `baseURL` `http://example.org`, it will produce a plain text home page with the URL `bep://example.org/myindex.enr`.
|
||||
|
||||
All the available configuration options for output formats and their default values:
|
||||
|
||||
Field | Description
|
||||
--- | ---
|
||||
**Name** | The output format identifier. This is used to define what output format(s) you want for your pages.
|
||||
**MediaType**|This must match the `Type` of a defined media type. |
|
||||
**Path** | Sub path to save the output files.
|
||||
**BaseName** | The base filename for the list filenames (home page etc.). **Default:** _index_.
|
||||
**Rel** | Can be used to create `rel` values in `link` tags. **Default:** _alternate_.
|
||||
**Protocol** | Will replace the "http://" or "https://" in your `baseURL` for this output format.
|
||||
**IsPlainText** | Use Go's plain text templates parser for the templates. **Default:** _false_.
|
||||
**IsHTML** | Used in situations only relevant for `HTML` type of formats, page aliases being one example.|
|
||||
**NoUgly** | If `uglyURLs` is enabled globally, this can be used to turn it off for a given output format. **Default:** _false_.
|
||||
**NotAlternative** | Enable if it doesn't make sense to include this format in an the `.AlternativeOutputFormats` format listing on `Page`, `CSS` being one good example. Note that we use the term "alternative" and not "alternate" here, as it does not necessarily replace the other format, it is an alternative representation. **Default:** _false_.
|
||||
|
||||
|
||||
## Output Formats for your pages
|
||||
|
||||
A `Page` in Hugo can be rendered to multiple representations on the file system: In its default configuration all will get an `HTML` page and some of them will get an `RSS` page (home page, sections etc.).
|
||||
|
||||
This can be changed by defining an `outputs` list of output formats in either the `Page` front matter or in the site configuration (either for all sites or per language).
|
||||
|
||||
Example from site config in `config.toml`:
|
||||
|
||||
```toml
|
||||
[outputs]
|
||||
home = [ "HTML", "AMP", "RSS"]
|
||||
page = [ "HTML"]
|
||||
```
|
||||
Note:
|
||||
|
||||
* The output definition is per `Page` `Kind`(`page`, `home`, `section`, `taxonomy`, `taxonomyTerm`).
|
||||
* The names used must match the `Name` of a defined `Output Format`.
|
||||
* Any `Kind` without a definition will get `HTML`.
|
||||
* These can be overriden per `Page` in front matter (see below).
|
||||
* When `outputs` is specified, only the formats defined in outputs will be rendered
|
||||
|
||||
A `Page` with `YAML` front matter defining some output formats for that `Page`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
date: "2016-03-19"
|
||||
outputs:
|
||||
- html
|
||||
- amp
|
||||
- json
|
||||
---
|
||||
```
|
||||
Note:
|
||||
|
||||
* The names used for the output formats are case insensitive.
|
||||
* The first output format in the list will act as the default.
|
||||
* The default output format is used when generating links to other pages in menus, etc.
|
||||
|
||||
## Link to Output Formats
|
||||
|
||||
`Page` has both `.OutputFormats` (all formats including the current) and `.AlternativeOutputFormats`, the latter useful for creating a `link rel` list in your `head` section:
|
||||
|
||||
```
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
|
||||
{{ end -}}
|
||||
```
|
||||
|
||||
Note that `.Permalink` on `RelPermalink` on `Page` will return the first output format defined for that page (usually `HTML` if nothing else is defined).
|
||||
|
||||
This is how you link to a given output format:
|
||||
|
||||
```
|
||||
{{ with .OutputFormats.Get "json" -}}
|
||||
<a href="{{ .Permalink }}">{{ .Name }}</a>
|
||||
{{- end }}
|
||||
```
|
||||
From content files, you can use the `ref` or `relref` shortcodes:
|
||||
|
||||
```
|
||||
[Neat]({{</* ref "blog/neat.md" "amp" */>}})
|
||||
[Who]({{</* relref "about.md#who" "amp" */>}})
|
||||
```
|
||||
|
||||
## Templates for your Output Formats
|
||||
|
||||
Of course, for a new Output Format to render anything useful, we need a template for it.
|
||||
|
||||
**The fundamental thing to understand about this is that we in `Hugo 0.20` now also look at Output Format´s `Name` and MediaType´s `Suffix` when we choose the templates to use to render a given `Page`.**
|
||||
|
||||
And with so many possible variations, this is best explained with some examples:
|
||||
|
||||
|
||||
{{< datatable "output" "layouts" "Example" "OutputFormat" "Suffix" "Template Lookup Order" >}}
|
||||
|
||||
**Note:**
|
||||
|
||||
* All of the above examples can use a base template, see [Blocks]({{< relref "templates/blocks.md" >}}).
|
||||
* All of the above examples can also include partials.
|
||||
|
||||
Hugo will now also detect the media type and output format of partials, if possible, and use that information to decide if the partial should be parsed as a plain text template or not.
|
||||
|
||||
Hugo will look for the name given, so you can name it whatever you want. But if you want it treated as plain text, you should use the file suffix and, if needed, the name of the Output Format (`[partial name].[OutputFormat].[suffix])`.
|
||||
|
||||
The partial below is a plain text template (Output Format is `CSV`, and since this is the only output format with the suffix `csv`, we don't need to include the Output Format's `Name`):
|
||||
|
||||
```
|
||||
{{ partial "mytextpartial.csv" . }}
|
||||
```
|
||||
|
||||
Also note that plain text partials can currently only be included in plain text templates, and vice versa. See [this issue](https://github.com/gohugoio/hugo/issues/3273) for some background.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/urls/
|
||||
lastmod: 2016-05-07
|
||||
date: 2014-01-03
|
||||
menu:
|
||||
main:
|
||||
parent: extras
|
||||
next: /community/mailing-list
|
||||
notoc: true
|
||||
prev: /extras/localfiles
|
||||
title: URLs
|
||||
---
|
||||
|
||||
## Pretty URLs
|
||||
|
||||
By default, Hugo creates content with 'pretty' URLs. For example,
|
||||
content created at `/content/extras/urls.md` will be rendered at
|
||||
`/public/extras/urls/index.html`, thus accessible from the browser
|
||||
at http://example.com/extras/urls/. No non-standard server-side
|
||||
configuration is required for these pretty URLs to work.
|
||||
|
||||
If you would like to have what we call "ugly URLs",
|
||||
e.g. http://example.com/extras/urls.html, you are in luck.
|
||||
Hugo supports the ability to create your entire site with ugly URLs.
|
||||
Simply add `uglyurls = true` to your site-wide `config.toml`,
|
||||
or use the `--uglyURLs=true` flag on the command line.
|
||||
|
||||
If you want a specific piece of content to have an exact URL, you can
|
||||
specify this in the front matter under the `url` key. See [Content
|
||||
Organization](/content/organization/) for more details.
|
||||
|
||||
## Canonicalization
|
||||
|
||||
By default, all relative URLs encountered in the input are left unmodified,
|
||||
e.g. `/css/foo.css` would stay as `/css/foo.css`,
|
||||
i.e. `canonifyURLs` defaults to `false`.
|
||||
|
||||
By setting `canonifyURLs` to `true`, all relative URLs would instead
|
||||
be *canonicalized* using `baseURL`. For example, assuming you have
|
||||
`baseURL = http://yoursite.example.com/` defined in the site-wide
|
||||
`config.toml`, the relative URL `/css/foo.css` would be turned into
|
||||
the absolute URL `http://yoursite.example.com/css/foo.css`.
|
||||
|
||||
Benefits of canonicalization include fixing all URLs to be absolute, which may
|
||||
aid with some parsing tasks. Note though that all real browsers handle this
|
||||
client-side without issues.
|
||||
|
||||
Benefits of non-canonicalization include being able to have resource inclusion
|
||||
be scheme-relative, so that http vs https can be decided based on how this
|
||||
page was retrieved.
|
||||
|
||||
> Note: In the May 2014 release of Hugo v0.11, the default value of `canonifyURLs` was switched from `true` to `false`, which we think is the better default and should continue to be the case going forward. So, please verify and adjust your website accordingly if you are upgrading from v0.10 or older versions.
|
||||
|
||||
To find out the current value of `canonifyURLs` for your website, you may use the handy `hugo config` command added in v0.13:
|
||||
|
||||
hugo config | grep -i canon
|
||||
|
||||
Or, if you are on Windows and do not have `grep` installed:
|
||||
|
||||
hugo config | FINDSTR /I canon
|
||||
|
||||
## Relative URLs
|
||||
|
||||
By default, all relative URLs are left unchanged by Hugo,
|
||||
which can be problematic when you want to make your site browsable from a local file system.
|
||||
|
||||
Setting `relativeURLs` to `true` in the site configuration will cause Hugo to rewrite all relative URLs to be relative to the current content.
|
||||
|
||||
For example, if the `/post/first/` page contained a link with a relative URL of `/about/`, Hugo would rewrite that URL to `../../about/`.
|
||||
@@ -1,149 +0,0 @@
|
||||
|
||||
---
|
||||
aliases:
|
||||
- /doc/installing/
|
||||
lastmod: 2016-01-04
|
||||
date: 2013-07-01
|
||||
menu:
|
||||
main:
|
||||
parent: getting started
|
||||
next: /overview/usage
|
||||
prev: /overview/quickstart
|
||||
title: Installing Hugo
|
||||
weight: 20
|
||||
---
|
||||
|
||||
Hugo is written in [Go][] with support for multiple platforms.
|
||||
|
||||
The latest release can be found at [Hugo Releases](https://github.com/gohugoio/hugo/releases).
|
||||
We currently provide pre-built binaries for
|
||||
<i class="fa fa-windows"></i> Windows,
|
||||
<i class="fa fa-linux"></i> Linux,
|
||||
<i class="fa freebsd-19px"></i> FreeBSD
|
||||
and <i class="fa fa-apple"></i> OS X (Darwin)
|
||||
for x64, i386 and ARM architectures.
|
||||
|
||||
Hugo may also be compiled from source wherever the Go compiler tool chain can run, e.g. for other operating systems including DragonFly BSD, OpenBSD, Plan 9 and Solaris. See http://golang.org/doc/install/source for the full set of supported combinations of target operating systems and compilation architectures.
|
||||
|
||||
## Installing Hugo (binary)
|
||||
|
||||
Installation is very easy. Simply download the appropriate version for your
|
||||
platform from [Hugo Releases](https://github.com/gohugoio/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.
|
||||
|
||||
On macOS, if you have [Homebrew](http://brew.sh/), installation is even
|
||||
easier: just run `brew install hugo`.
|
||||
|
||||
For a more detailed explanation follow the corresponding installation guides:
|
||||
|
||||
- [Installation on macOS]({{< relref "tutorials/installing-on-mac.md" >}})
|
||||
- [Installation on Windows]({{< relref "tutorials/installing-on-windows.md" >}})
|
||||
|
||||
### Installing Pygments (optional)
|
||||
|
||||
The Hugo executable has one *optional* external dependency for source code highlighting (Pygments).
|
||||
|
||||
If you want to have source code highlighting using the [highlight shortcode](/extras/highlighting/),
|
||||
you need to install the Python-based Pygments program. The procedure is outlined on the [Pygments home page](http://pygments.org/).
|
||||
|
||||
## Upgrading Hugo
|
||||
|
||||
Upgrading Hugo is as easy as downloading and replacing the executable you’ve
|
||||
placed in your `PATH`.
|
||||
|
||||
On macOS, if you have [Homebrew](http://brew.sh/), upgrading is even
|
||||
easier: just run `brew upgrade hugo`.
|
||||
|
||||
## Installing Hugo on Linux from native packages
|
||||
|
||||
### Arch Linux
|
||||
|
||||
You can install Hugo from the [Arch user repository](https://aur.archlinux.org/) on Arch Linux or derivatives such as Manjaro.
|
||||
|
||||
sudo pacman -S yaourt
|
||||
yaourt -S hugo
|
||||
|
||||
Be aware that Hugo is built from source. This means that additional tools like [Git](https://git-scm.com/) and [Go](https://golang.org/doc/install) will be installed as well.
|
||||
|
||||
### Debian and Ubuntu
|
||||
|
||||
Hugo has been included in Debian and Ubuntu since 2016, and thus installing Hugo is as simple as:
|
||||
|
||||
sudo apt install hugo
|
||||
|
||||
Pros:
|
||||
|
||||
* Native Debian/Ubuntu package maintained by Debian Developers
|
||||
* Pre-installed bash completion script and man pages for best interactive experience
|
||||
|
||||
Cons:
|
||||
|
||||
* Might not be the latest version, especially if you are using an older stable version (e.g., Ubuntu 16.04 LTS).
|
||||
Until backports and PPA are available, you may consider installing the Hugo snap package to get the latest version of Hugo, as described below.
|
||||
|
||||
### Fedora, CentOS and Red Hat
|
||||
|
||||
* https://copr.fedorainfracloud.org/coprs/daftaupe/hugo/ : updated as soon as possible after the official Hugo release.
|
||||
* https://copr.fedorainfracloud.org/coprs/spf13/Hugo/ (updated to Hugo v0.16)
|
||||
|
||||
See also [this discussion](https://discourse.gohugo.io/t/solved-fedora-copr-repository-out-of-service/2491).
|
||||
|
||||
## Alternate Installation Methods
|
||||
|
||||
### Snap Package
|
||||
|
||||
In any of the [Linux distributions that support snaps](http://snapcraft.io/docs/core/install):
|
||||
|
||||
snap install hugo
|
||||
|
||||
> Note: Hugo-as-a-snap can write only inside the user’s `$HOME` directory—and gvfs-mounted directories owned by the user—because of Snaps’ confinement and security model.
|
||||
> More information is also available [in this related GitHub issue](https://github.com/gohugoio/hugo/issues/3143).
|
||||
|
||||
### Docker Image (unofficial)
|
||||
|
||||
[Docker Hugo](https://hub.docker.com/r/felicianotech/docker-hugo/) is a Docker image that can be used for local development but more importantly, can be easily used for continuous integration builds of your Hugo site on [CircleCI](https://circleci.com/) or [Travis CI](https://travis-ci.org/). Source available on [GitHub](https://github.com/felicianotech/docker-hugo).
|
||||
|
||||
## Installing from source
|
||||
|
||||
### Prerequisite tools for downloading and building source code
|
||||
|
||||
* [Git](http://git-scm.com/)
|
||||
* [Go][] 1.8+
|
||||
* [govendor][]
|
||||
|
||||
### Vendored Dependencies
|
||||
|
||||
Hugo uses [govendor][] to vendor dependencies, but we don't commit the vendored packages themselves to the Hugo git repository.
|
||||
Therefore, a simple `go get` is not supported since `go get` is not vendor-aware.
|
||||
You **must use govendor** to fetch Hugo's dependencies.
|
||||
|
||||
### Fetch from GitHub
|
||||
|
||||
The commands below assume that you have [Go](https://golang.org/dl/) installed with your `$GOPATH` set.
|
||||
|
||||
go get github.com/kardianos/govendor
|
||||
govendor get github.com/gohugoio/hugo
|
||||
|
||||
`govendor get` will fetch Hugo and all its dependent libraries to
|
||||
`$GOPATH/src/github.com/gohugoio/hugo`, and compile everything into a final `hugo`
|
||||
(or `hugo.exe`) executable, which you will find sitting inside
|
||||
`$GOPATH/go/bin/`, all ready to go!
|
||||
|
||||
*Windows users: where you see the `$HOME` environment variable above, replace it with `%USERPROFILE%`.*
|
||||
|
||||
|
||||
*Note: For syntax highlighting using the [highlight shortcode](/extras/highlighting/),
|
||||
you need to install the Python-based [Pygments](http://pygments.org/) program.*
|
||||
|
||||
## Contributing
|
||||
|
||||
Please see the [contributing guide](/doc/contributing/) if you are interested in
|
||||
working with the Hugo source or contributing to the project in any way.
|
||||
|
||||
[Go]: http://golang.org/
|
||||
[govendor]: https://github.com/kardianos/govendor
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-04-24
|
||||
title: 0.20.3
|
||||
---
|
||||
|
||||
|
||||
|
||||
This is a bug-fix release with one important fix. But it also adds some harness around [GoReleaser](https://github.com/goreleaser/goreleaser) to automate the Hugo release process. Big thanks to [@caarlos0](https://github.com/caarlos0) for great and super-fast support fixing issues along the way.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 16619+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 458+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 156+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Enhancement
|
||||
|
||||
* Automate the Hugo release process [550eba64](https://github.com/gohugoio/hugo/commit/550eba64705725eb54fdb1042e0fb4dbf6f29fd0) [@bep](https://github.com/bep) [#3358](https://github.com/gohugoio/hugo/issues/3358)
|
||||
|
||||
## Fix
|
||||
|
||||
* Fix handling of zero-length files [9bf5c381](https://github.com/gohugoio/hugo/commit/9bf5c381b6b3e69d4d8dbfd7a40074ac44792bbf) [@bep](https://github.com/bep) [#3355](https://github.com/gohugoio/hugo/issues/3355)
|
||||
@@ -1,28 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-04-24T21:12:31+01:00
|
||||
title: 0.20.4
|
||||
---
|
||||
|
||||
|
||||
|
||||
This is the second bug-fix release of the day, fixing a couple of issues related to the new release scripts.
|
||||
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 16626+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 457+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 156+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Fixes
|
||||
|
||||
* Fix statically linked binaries [275bcf56](https://github.com/gohugoio/hugo/commit/275bcf566c7cb72367d4423cf4810319311ff680) [@munnerz](https://github.com/munnerz) [#3382](https://github.com/gohugoio/hugo/issues/3382)
|
||||
* Filename change in Hugo 0.20.3 binaries [#3385](https://github.com/gohugoio/hugo/issues/3385)
|
||||
* Fix version calculation [cb3c6b6f](https://github.com/gohugoio/hugo/commit/cb3c6b6f7670f85189a4a3637e7132901d1ed6e9) [@bep](https://github.com/bep)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-04-25
|
||||
title: 0.20.5
|
||||
---
|
||||
|
||||
|
||||
|
||||
This is a bug-fix release which fixes the version number of `0.20.4` (which wrongly shows up as `0.21-DEV`) ([#3388](https://github.com/gohugoio/hugo/issues/3388)).
|
||||
@@ -1,26 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-04-27
|
||||
title: 0.20.6
|
||||
---
|
||||
|
||||
|
||||
|
||||
There have been some [shouting on discuss.gohugo.io](https://discourse.gohugo.io/t/index-md-is-generated-in-subfolder-index-index-html-hugo-0-20/6338/15) about some broken sites after the release of Hugo `0.20`. This release reintroduces the old behaviour, making `/my-blog-post/index.md` work as expected.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 16675+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 456+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 156+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Fixes
|
||||
|
||||
* Avoid index.md in /index/index.html [#3396](https://github.com/gohugoio/hugo/issues/3396)
|
||||
* Make missing GitInfo a WARNING [b30ca4be](https://github.com/gohugoio/hugo/commit/b30ca4bec811dbc17e9fd05925544db2b75e0e49) [@bep](https://github.com/bep) [#3376](https://github.com/gohugoio/hugo/issues/3376)
|
||||
* Fix some of the fpm fields for deb [3bd1d057](https://github.com/gohugoio/hugo/commit/3bd1d0571d5f2f6bf0dc8f90a8adf2dbfcb2fdfd) [@anthonyfok](https://github.com/anthonyfok)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-05-22
|
||||
title: 0.21
|
||||
---
|
||||
|
||||
Hugo `0.21` brings full support for shortcodes per [Output Format](https://gohugo.io/extras/output-formats/) ([#3220](https://github.com/gohugoio/hugo/issues/3220)), the last vital piece of that puzzle. This is especially useful for `Google AMP` with its many custom media tags.
|
||||
|
||||
This release represents **126 contributions by 29 contributors** to the main Hugo code base. Since last main release Hugo has **gained 850 stars and 7 additional themes**.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 17156+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 457+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 163+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
[@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout to [@moorereason](https://github.com/moorereason), [@bogem](https://github.com/bogem), and [@munnerz](https://github.com/munnerz) for their ongoing contributions. And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
|
||||
|
||||
## Other Highlights
|
||||
|
||||
On a more technical side, [@moorereason](https://github.com/moorereason) and [@bep](https://github.com/bep) have introduced namespaces for Hugo's many template funcs ([#3042](https://github.com/gohugoio/hugo/issues/3042) ). There are so many now, and adding more into that big pile would be a sure path toward losing control. Now they are nicely categorised into namespaces with its own tests and examples, with an API that the documentation site can use to make sure it is correct and up-to-date.
|
||||
|
||||
## Notes
|
||||
|
||||
* The deprecated `.Extension`, `.Now` and `.TargetPath` will now `ERROR` [544f0a63](https://github.com/gohugoio/hugo/commit/544f0a6394b0e085d355e8217fc5bb3d96c12a98) [@bep](https://github.com/bep)
|
||||
* The config settings and flags `disable404`, `disableRSS`, `disableSitemap`, `disableRobotsTXT` are now deprecated. Use `disableKinds`. [5794a265](https://github.com/gohugoio/hugo/commit/5794a265b41ffdeebfd8485eecf65cf4088d49d6) [@bep](https://github.com/bep) [#3345](https://github.com/gohugoio/hugo/issues/3345)
|
||||
|
||||
## Enhancements
|
||||
|
||||
### Templates
|
||||
|
||||
* Log a WARNING on wrong usage of `IsSet` [38661c17](https://github.com/gohugoio/hugo/commit/38661c17bb8c31c9f31ee18f8eba5e3bfddd5574) [@moorereason](https://github.com/moorereason) [#3092](https://github.com/gohugoio/hugo/issues/3092)
|
||||
* Add support for ellipsed paginator navigator, making paginators with lots of pages more compact [b6ea492b](https://github.com/gohugoio/hugo/commit/b6ea492b7a6325d04d44eeb00a990a3a0e29e0c0) [@bep](https://github.com/bep) [#3466](https://github.com/gohugoio/hugo/issues/3466)
|
||||
* Add support for interfaces to `intersect` [f1c29b01](https://github.com/gohugoio/hugo/commit/f1c29b017bbd88e701cd5151dd186e868672ef89) [@moorereason](https://github.com/moorereason) [#1952](https://github.com/gohugoio/hugo/issues/1952)
|
||||
* Add `NumFmt` function [93b3b138](https://github.com/gohugoio/hugo/commit/93b3b1386714999d716e03b131f77234248f1724) [@moorereason](https://github.com/moorereason) [#1444](https://github.com/gohugoio/hugo/issues/1444)
|
||||
* Add template function namespaces [#3418](https://github.com/gohugoio/hugo/issues/3418) [#3042](https://github.com/gohugoio/hugo/issues/3042) [@moorereason](https://github.com/moorereason) [@bep](https://github.com/bep)
|
||||
* Add translation links to the default sitemap template [90d3fbf1](https://github.com/gohugoio/hugo/commit/90d3fbf1da93a279cfe994a226ae82cf5441deab) [@rayjolt](https://github.com/rayjolt) [#2569](https://github.com/gohugoio/hugo/issues/2569)
|
||||
* Allow text partials in HTML templates and the other way around [1cf29200](https://github.com/gohugoio/hugo/commit/1cf29200b4bb0a9c006155ec76759b7f4b1ad925) [@bep](https://github.com/bep) [#3273](https://github.com/gohugoio/hugo/issues/3273)
|
||||
|
||||
### Output
|
||||
|
||||
* Refactor site rendering with an "output format context". In this release, this is used for shortcode handling only, but this paves the way for future niceness [1e4d082c](https://github.com/gohugoio/hugo/commit/1e4d082cf5b92fedbc60b1b4f0e9d1ee6ec45e33) [@bep](https://github.com/bep) [#3397](https://github.com/gohugoio/hugo/issues/3397) [2bcbf104](https://github.com/gohugoio/hugo/commit/2bcbf104006e0ec03be4fd500f2519301d460f8c) [@bep](https://github.com/bep) [#3220](https://github.com/gohugoio/hugo/issues/3220)
|
||||
|
||||
|
||||
### Core
|
||||
|
||||
* Handle `shortcode` per `Output Format` [af72db80](https://github.com/gohugoio/hugo/commit/af72db806f2c1c0bf1dfe5832275c41eeba89906) [@bep](https://github.com/bep) [#3220](https://github.com/gohugoio/hugo/issues/3220)
|
||||
* Improve shortcode error message [58d9cbd3](https://github.com/gohugoio/hugo/commit/58d9cbd31bcf7c296a39860fd7e566d10faaff28) [@bep](https://github.com/bep)
|
||||
* Avoid `index.md` in `/index/index.html` [fea4fd86](https://github.com/gohugoio/hugo/commit/fea4fd86a324bf9679df23f8289887d91b42e919) [@bep](https://github.com/bep) [#3396](https://github.com/gohugoio/hugo/issues/3396)
|
||||
* Make missing `GitInfo` a `WARNING` [5ad2f176](https://github.com/gohugoio/hugo/commit/5ad2f17693a9860be76ef8089c8728d2b59d6b04) [@bep](https://github.com/bep) [#3376](https://github.com/gohugoio/hugo/issues/3376)
|
||||
* Prevent decoding `pageParam` in common cases [e98f885b](https://github.com/gohugoio/hugo/commit/e98f885b8af27f5473a89d31d0b1f02e61e8a5ec) [@bogem](https://github.com/bogem)
|
||||
* Ignore non-source files on partial rebuild [b5b6e81c](https://github.com/gohugoio/hugo/commit/b5b6e81c0269abf9b0f4bc6a127744a25344e5c6) [@xofyarg](https://github.com/xofyarg) [#3325](https://github.com/gohugoio/hugo/issues/3325)
|
||||
* Log `WARNING` only on unknown `/data` files [ab692e73](https://github.com/gohugoio/hugo/commit/ab692e73dea3ddfe979c88ee236cc394e47e82f1) [@bep](https://github.com/bep) [#3361](https://github.com/gohugoio/hugo/issues/3361)
|
||||
* Avoid processing the same notify event twice [3b677594](https://github.com/gohugoio/hugo/commit/3b67759495c9268c30e6ba2d8c7e3b75d52d2960) [@bep](https://github.com/bep)
|
||||
* Only show `rssURI` deprecation `WARNING` if it is actually set [cfd3af8e](https://github.com/gohugoio/hugo/commit/cfd3af8e691119461effa4385251b9d3818e2291) [@bep](https://github.com/bep) [#3319](https://github.com/gohugoio/hugo/issues/3319)
|
||||
|
||||
### Docs
|
||||
|
||||
* Add documentation on slug translation [635b3bb4](https://github.com/gohugoio/hugo/commit/635b3bb4eb873978c7d52e6c0cb85da0c4d25299) [@xavib](https://github.com/xavib)
|
||||
* Replace `cdn.mathjax.org` with `cdnjs.cloudflare.com` [4b637ac0](https://github.com/gohugoio/hugo/commit/4b637ac041d17b22187f5ccd0f65461f0065aaa9) [@takuti](https://github.com/takuti)
|
||||
* Add notes about some output format behaviour [162d3a58](https://github.com/gohugoio/hugo/commit/162d3a586d36cabf6376a76b096fd8b6414487ae) [@jpatters](https://github.com/jpatters)
|
||||
* Add `txtpen` as alternative commenting service [7cdc244a](https://github.com/gohugoio/hugo/commit/7cdc244a72de4c08edc0008e37aec83d945dccdf) [@rickyhan](https://github.com/rickyhan)
|
||||
|
||||
### Other
|
||||
|
||||
* Embed `Page` in `WeightedPage` [ebf677a5](https://github.com/gohugoio/hugo/commit/ebf677a58360126d8b9a1e98d086aa4279f53181) [@bep](https://github.com/bep) [#3435](https://github.com/gohugoio/hugo/issues/3435)
|
||||
* Improve the detection of untranslated strings [a40d1f6e](https://github.com/gohugoio/hugo/commit/a40d1f6ed2aedddc99725658993258cd557640ed) [@bogem](https://github.com/bogem) [#2607](https://github.com/gohugoio/hugo/issues/2607)
|
||||
* Make first letter of the Hugo commands flags' usage lowercase [f0f69d03](https://github.com/gohugoio/hugo/commit/f0f69d03c551acb8ac2eeedaad579cf0b596f9ef) [@bogem](https://github.com/bogem)
|
||||
* Import `Octopress` image tag in `Jekyll importer` [5f3ad1c3](https://github.com/gohugoio/hugo/commit/5f3ad1c31985450fab8d6772e9cbfcb57cf5cc53) [@buynov](https://github.com/buynov)
|
||||
|
||||
## Fixes
|
||||
|
||||
### Templates
|
||||
|
||||
* Do not lower case template names [6d2ea0f7](https://github.com/gohugoio/hugo/commit/6d2ea0f7d7e8a54b8edfc36e52ff74266c30dc27) [@bep](https://github.com/bep) [#3333](https://github.com/gohugoio/hugo/issues/3333)
|
||||
|
||||
### Output
|
||||
|
||||
* Fix output format mixup in example [10287263](https://github.com/gohugoio/hugo/commit/10287263f529181d3169668b044cb84e2e3b049a) [@bep](https://github.com/bep) [#3481](https://github.com/gohugoio/hugo/issues/3481)
|
||||
* Fix base theme vs project base template logic [077005e5](https://github.com/gohugoio/hugo/commit/077005e514b1ed50d84ceb90c7c72f184cb04521) [@bep](https://github.com/bep) [#3323](https://github.com/gohugoio/hugo/issues/3323)
|
||||
|
||||
### Core
|
||||
* Render `404` in default language only [154e18dd](https://github.com/gohugoio/hugo/commit/154e18ddb9ad205055d5bd4827c87f3f0daf499f) [@mitchchn](https://github.com/mitchchn) [#3075](https://github.com/gohugoio/hugo/issues/3075)
|
||||
* Fix `RSSLink` vs `RSS` `Output Format` [e682fcc6](https://github.com/gohugoio/hugo/commit/e682fcc62233b47cf5bdcaf598ac0657ef089471) [@bep](https://github.com/bep) [#3450](https://github.com/gohugoio/hugo/issues/3450)
|
||||
* Add default config for `ignoreFiles`, making that option work when running in server mode [42f4ce15](https://github.com/gohugoio/hugo/commit/42f4ce15a9d68053da36f9efcf7a7d975cc59559) [@chaseadamsio](https://github.com/chaseadamsio)
|
||||
* Fix output formats override when no outputs definition given [6e2f2dd8](https://github.com/gohugoio/hugo/commit/6e2f2dd8d3ca61c92a2ee8824fbf05cadef08425) [@bep](https://github.com/bep) [#3447](https://github.com/gohugoio/hugo/issues/3447)
|
||||
* Fix handling of zero-length files [0e87b18b](https://github.com/gohugoio/hugo/commit/0e87b18b66d2c8ba9e2abc429630cb03f5b093d6) [@bep](https://github.com/bep) [#3355](https://github.com/gohugoio/hugo/issues/3355)
|
||||
* Must recreate `Paginator` on live-reload [45c74526](https://github.com/gohugoio/hugo/commit/45c74526686f6a2afa02bcee767d837d6b9dd028) [@bep](https://github.com/bep) [#3315](https://github.com/gohugoio/hugo/issues/3315)
|
||||
|
||||
### Docs
|
||||
|
||||
* Fix incorrect path in `templates/list` [27e88154](https://github.com/gohugoio/hugo/commit/27e88154af2dd9af6d0523d6e67b612e6336f91c) [@MunifTanjim](https://github.com/MunifTanjim)
|
||||
* Fixed incorrect specification of directory structure [a28fbca6](https://github.com/gohugoio/hugo/commit/a28fbca6dcfa80b6541f5ef6c8c12cd1804ae9ed) [@TejasQ](https://github.com/TejasQ)
|
||||
* Fix `bash` command in `tutorials/github-pages-blog` [c9976155](https://github.com/gohugoio/hugo/commit/c99761555c014e4d041438d5d7e53a6cbaee4492) [@hansott](https://github.com/hansott)
|
||||
* Fix `.Data.Pages` range in example [b5e32eb6](https://github.com/gohugoio/hugo/commit/b5e32eb60993b4656918af2c959ae217a68c461e) [@hxlnt](https://github.com/hxlnt)
|
||||
|
||||
### Other
|
||||
|
||||
* Fix data race in live-reload close, avoiding some rare panics [355736ec](https://github.com/gohugoio/hugo/commit/355736ec357c81dfb2eb6851ee019d407090c5ec) [@bep](https://github.com/bep) [#2625](https://github.com/gohugoio/hugo/issues/2625)
|
||||
* Skip `.git` directories in file scan [94b5be67](https://github.com/gohugoio/hugo/commit/94b5be67fc73b87d114d94a7bb1a33ab997f30f1) [@bogem](https://github.com/bogem) [#3468](https://github.com/gohugoio/hugo/issues/3468)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-06-12
|
||||
title: 0.22
|
||||
---
|
||||
|
||||
|
||||
Hugo `0.22` brings **nested sections**, by popular demand and a long sought after feature ([#465](https://github.com/gohugoio/hugo/issues/465)). We are still low on documentation for this great feature, but [@bep](https://github.com/bep) has been kind enough to accompany his implementation with a [demo site](http://hugotest.bep.is/).
|
||||
|
||||
This release represents **58 contributions by 10 contributors** to the main Hugo code base. Since last release Hugo has **gained 420 stars and 2 additional themes.**
|
||||
|
||||
[@bep](https://github.com/bep) still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. But also a big shoutout to [@bogem](https://github.com/bogem), [@moorereason](https://github.com/moorereason), and [@onedrawingperday](https://github.com/onedrawingperday) for their ongoing contributions. And as always big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 17576+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 455+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 165+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Other Highlights
|
||||
|
||||
`.Site.GetPage` can now also be used to get regular pages ([#2844](https://github.com/gohugoio/hugo/issues/2844)):
|
||||
|
||||
```go
|
||||
{{ (.Site.GetPage "page" "blog" "mypost.md" ).Title }}
|
||||
```
|
||||
|
||||
Also, considerable work has been put into writing automated benchmark tests for the site builds, and we're happy to report that although this release comes with fundamental structural changes, this version is -- in general -- even faster than the previous. It’s quite a challenge to consistently add significant new functionality and simultaneously maintain the stellar performance Hugo is famous for.
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
`.Site.Sections` is replaced. We have reworked how sections work in Hugo, they can now be nested and are no longer taxonomies. If you use the old collection, you should get detailed upgrade instructions in the log when you run `hugo`. For more information, see this [demo site](http://hugotest.bep.is/).
|
||||
|
||||
## Enhancements
|
||||
|
||||
### Templates
|
||||
|
||||
* Add `uint` support to `In` [b82cd82f](https://github.com/gohugoio/hugo/commit/b82cd82f1198a371ed94bda7faafe22813f4cb29) [@moorereason](https://github.com/moorereason)
|
||||
* Support interfaces in `union` [204c3a9e](https://github.com/gohugoio/hugo/commit/204c3a9e32fcf6617ede978e35d3e2e89a5b491c) [@moorereason](https://github.com/moorereason) [#3411](https://github.com/gohugoio/hugo/issues/3411)
|
||||
* Add `uniq` function [e28d9aa4](https://github.com/gohugoio/hugo/commit/e28d9aa42c3429d22fe254e69e4605aaf1e684f3) [@adiabatic](https://github.com/adiabatic)
|
||||
* Handle `template.HTML` and friends in `ToInt` [4113693a](https://github.com/gohugoio/hugo/commit/4113693ac1b275f3a40aa5c248269340ef9b57f6) [@moorereason](https://github.com/moorereason) [#3308](https://github.com/gohugoio/hugo/issues/3308)
|
||||
|
||||
|
||||
### Core
|
||||
|
||||
* Make the `RSS feed` use the date for the node it represents [f1da5a15](https://github.com/gohugoio/hugo/commit/f1da5a15a37666ee59350d6600a8c14c1383f5bc) [@bep](https://github.com/bep) [#2708](https://github.com/gohugoio/hugo/issues/2708)
|
||||
* Enable `nested sections` [b3968939](https://github.com/gohugoio/hugo/commit/b39689393ccb8434d9a57658a64b77568c718e99) [@bep](https://github.com/bep) [#465](https://github.com/gohugoio/hugo/issues/465)
|
||||
* Add test for "no 404" in `sitemap` [8aaec644](https://github.com/gohugoio/hugo/commit/8aaec644a90d09bd7f079d35d382f76bb4ed35db) [@bep](https://github.com/bep) [#3563](https://github.com/gohugoio/hugo/issues/3563)
|
||||
* Support regular pages in `.Site.GetPage` [e0c2e798](https://github.com/gohugoio/hugo/commit/e0c2e798201f75ae6e9a81a7442355288c2d141b) [@bep](https://github.com/bep) [#2844](https://github.com/gohugoio/hugo/issues/2844)
|
||||
[#3082](https://github.com/gohugoio/hugo/issues/3082)
|
||||
|
||||
### Performance
|
||||
* Add site building benchmarks [8930e259](https://github.com/gohugoio/hugo/commit/8930e259d78cba4041b550cc51a7f40bc91d7c20) [@bep](https://github.com/bep) [#3535](https://github.com/gohugoio/hugo/issues/3535)
|
||||
* Add a cache to `GetPage` which makes it much faster [50d11138](https://github.com/gohugoio/hugo/commit/50d11138f3e18b545c15fadf52f7b0b744bf3e7c) [@bep](https://github.com/bep)
|
||||
* Speed up `GetPage` [fbb78b89](https://github.com/gohugoio/hugo/commit/fbb78b89df8ccef8f0ab26af00aa45d35c1ee2cf) [@bep](https://github.com/bep) [#3503](https://github.com/gohugoio/hugo/issues/3503)
|
||||
* Add BenchmarkFrontmatterTags [3d9c4f51](https://github.com/gohugoio/hugo/commit/3d9c4f513b0443648d7e88995e351df1739646d2) [@bep](https://github.com/bep) [#3464](https://github.com/gohugoio/hugo/issues/3464)
|
||||
* Add `benchSite.sh` to make it easy to run Hugo performance benchmarks [d74452cf](https://github.com/gohugoio/hugo/commit/d74452cfe8f69a85ec83e05481e16bebf199a5cb) [@bep](https://github.com/bep)
|
||||
* Cache language config [4aff2b6e](https://github.com/gohugoio/hugo/commit/4aff2b6e7409a308f30cff1825fec02991e0d56a) [@bep](https://github.com/bep)
|
||||
* Temporarily revert to BurntSushi for `TOML` front matter handling; it is currently much faster [0907a5c1](https://github.com/gohugoio/hugo/commit/0907a5c1c293755e6bf297246f07888448d81f8b) [@bep](https://github.com/bep) [#3541](https://github.com/gohugoio/hugo/issues/3541) [#3464](https://github.com/gohugoio/hugo/issues/3464)
|
||||
* Add a simple partitioned lazy cache [87203139](https://github.com/gohugoio/hugo/commit/87203139c38e0b992c96d7b8a23c7730649c68e5) [@bep](https://github.com/bep)
|
||||
|
||||
### Other
|
||||
|
||||
* Add `noindex` tag to HTML generated by Hugo aliases [d5ab7f08](https://github.com/gohugoio/hugo/commit/d5ab7f087d967b30e7de7d789e6ad3091b42f1f7) [@onedrawingperday](https://github.com/onedrawingperday)
|
||||
* Update Go versions [bde807bd](https://github.com/gohugoio/hugo/commit/bde807bd1e560fb4cc765c0fc22132db7f8a0801) [@bep](https://github.com/bep)
|
||||
* Remove the `rlimit` tweaking on `macOS` [bcd32f10](https://github.com/gohugoio/hugo/commit/bcd32f1086c8c604fb22a7496924e41cc46b1605) [@bep](https://github.com/bep) [#3512](https://github.com/gohugoio/hugo/issues/3512)
|
||||
|
||||
### Docs
|
||||
* Rewrite “Archetypes” article [@davidturnbull](https://github.com/davidturnbull) [#3543](https://github.com/gohugoio/hugo/pull/3543/)
|
||||
* Remove Unmaintaned Frontends from Tools. [f41f7282](https://github.com/gohugoio/hugo/commit/f41f72822251c9a31031fd5b3dda585c57c8b028) [@onedrawingperday](https://github.com/onedrawingperday)
|
||||
|
||||
## Fixes
|
||||
|
||||
### Core
|
||||
* Improve `live-reload` on directory structure changes making removal of directories or pasting new content directories into `/content` just work [fe901b81](https://github.com/gohugoio/hugo/commit/fe901b81191860b60e6fcb29f8ebf87baef2ee79) [@bep](https://github.com/bep) [#3570](https://github.com/gohugoio/hugo/issues/3570)
|
||||
* Respect `disableKinds=["sitemap"]` [69d92dc4](https://github.com/gohugoio/hugo/commit/69d92dc49cb8ab9276ab013d427ba2d9aaf9135d) [@bep](https://github.com/bep) [#3544](https://github.com/gohugoio/hugo/issues/3544)
|
||||
* Fix `disablePathToLower` regression [5be04486](https://github.com/gohugoio/hugo/commit/5be0448635fdf5fe6b1ee673e869f2b9baf1a5c6) [@bep](https://github.com/bep) [#3374](https://github.com/gohugoio/hugo/issues/3374)
|
||||
* Fix `ref`/`relref` issue with duplicate base filenames [612f6e3a](https://github.com/gohugoio/hugo/commit/612f6e3afe0510c31f70f3621f3dc8ba609dade4) [@bep](https://github.com/bep) [#2507](https://github.com/gohugoio/hugo/issues/2507)
|
||||
|
||||
### Docs
|
||||
|
||||
* Fix parameter name in `YouTube` shortcode section [37e37877](https://github.com/gohugoio/hugo/commit/37e378773fbc127863f2b7a389d5ce3a14674c73) [@zivbk1](https://github.com/zivbk1)
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-06-13
|
||||
title: 0.22.1
|
||||
---
|
||||
|
||||
|
||||
|
||||
Hugo `0.22.1` fixes a couple of issues reported after the [0.22 release](https://github.com/gohugoio/hugo/releases/tag/v0.22) Monday. Most importantly a fix for detecting regular subfolders below the root-sections.
|
||||
|
||||
Also, we forgot to adapt the `permalink settings` with support for nested sections, which made that feature less useful than it could be.
|
||||
|
||||
With this release you can configure **permalinks with sections** like this:
|
||||
|
||||
**First level only:**
|
||||
|
||||
```toml
|
||||
[permalinks]
|
||||
blog = ":section/:title"
|
||||
```
|
||||
|
||||
**Nested (all levels):**
|
||||
|
||||
```toml
|
||||
[permalinks]
|
||||
blog = ":sections/:title"
|
||||
```
|
||||
## Fixes
|
||||
|
||||
* Fix section logic for root folders with subfolders [a30023f5](https://github.com/gohugoio/hugo/commit/a30023f5cbafd06034807255181a5b7b17f3c25f) [@bep](https://github.com/bep) [#3586](https://github.com/gohugoio/hugo/issues/3586)
|
||||
* Support sub-sections in permalink settings [1f26420d](https://github.com/gohugoio/hugo/commit/1f26420d392a5ab4c7b7fe1911c0268b45d01ab8) [@bep](https://github.com/bep) [#3580](https://github.com/gohugoio/hugo/issues/3580)
|
||||
* Adjust rlimit to 64000 [ff54b6bd](https://github.com/gohugoio/hugo/commit/ff54b6bddcefab45339d8dc2b13776b92bdc04b9) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582)
|
||||
* Make error on setting rlimit a warning only [629e1439](https://github.com/gohugoio/hugo/commit/629e1439e819a7118ae483381d4634f16d3474dd) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582)
|
||||
* Revert: Remove the rlimit tweaking on macOS" [26aa06a3](https://github.com/gohugoio/hugo/commit/26aa06a3db57ab7134a900d641fa2976f7971520) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-06-16
|
||||
title: 0.23
|
||||
---
|
||||
|
||||
|
||||
Hugo `0.23` is mainly a release that handles all the small changes needed to get Hugo moved to a GitHub organisation: [gohugoio](https://github.com/gohugoio), but it also contains a couple of important fixes that makes this an update worth-while for all.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 17739+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 494+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 165+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Fixes
|
||||
|
||||
* Fix handling of duplicate footnotes [a9e551a1](https://github.com/gohugoio/hugo/commit/a9e551a100e60a603210ee083103dd73369d6a98) [@bep](https://github.com/bep) [#1912](https://github.com/gohugoio/hugo/issues/1912)
|
||||
* Add support for spaces in project folder for `GitInfo` #3533 #3552
|
||||
|
||||
## GitHub organisation related changes
|
||||
|
||||
* Update layout references to gohugoio/hugo [66d4850b](https://github.com/gohugoio/hugo/commit/66d4850b89db293dc58e828de784037f06c6c8dc) [@bep](https://github.com/bep)
|
||||
* Update content references to gohugoio/hugo [715ff1f8](https://github.com/gohugoio/hugo/commit/715ff1f87406edf27738c8c0f52fe185fa974ee8) [@bep](https://github.com/bep)
|
||||
* Add note on updates for rpm-based distros [52a0cea6](https://github.com/gohugoio/hugo/commit/52a0cea65de7b75ae1662abe3dec36fca3604617) [@daftaupe](https://github.com/daftaupe)
|
||||
* Update logo link in README [ccb8300d](https://github.com/gohugoio/hugo/commit/ccb8300d380636d75a39f4133284eb0109e836c3) [@bep](https://github.com/bep)
|
||||
* Remove docs building from CI builds [214dbdfb](https://github.com/gohugoio/hugo/commit/214dbdfb6f016d21415bc1ed511a37a084238878) [@bep](https://github.com/bep)
|
||||
* Adjust docs path [729be807](https://github.com/gohugoio/hugo/commit/729be8074bddb58c9111f32c55cc769e49cd0d5a) [@bep](https://github.com/bep)
|
||||
* Add docs as submodule [6cee0dfe](https://github.com/gohugoio/hugo/commit/6cee0dfe53899d433afc3c173a87d56265904cb0) [@bep](https://github.com/bep)
|
||||
* Update Gitter link in README [fbb25014](https://github.com/gohugoio/hugo/commit/fbb25014e1306ce7127d53e5fc4fc49867790336) [@bep](https://github.com/bep)
|
||||
* Change Windows build badge link, take #3 [86543d6a](https://github.com/gohugoio/hugo/commit/86543d6a50251b40540ebd0b851d45eb99d017c7) [@bep](https://github.com/bep)
|
||||
* Update Windows build link [e6ae32a0](https://github.com/gohugoio/hugo/commit/e6ae32a0ba75b9894418227e87391defbb1b3b49) [@bep](https://github.com/bep)
|
||||
* Update links in CONTRIBUTING.md due to the org transition [95386544](https://github.com/gohugoio/hugo/commit/95386544e858949a2baa414f395f30aaf66a6257) [@digitalcraftsman](https://github.com/digitalcraftsman)
|
||||
* Update source path in Dockerfile due to the org transition [7b99fb9f](https://github.com/gohugoio/hugo/commit/7b99fb9f1ca8381457afe9d8e953a388b8ada182) [@digitalcraftsman](https://github.com/digitalcraftsman)
|
||||
* Update clone folder in appveyor.yml due to the org transition [d531d17b](https://github.com/gohugoio/hugo/commit/d531d17b3be0b14faf4934611e01ac3289e37835) [@digitalcraftsman](https://github.com/digitalcraftsman)
|
||||
* Update import path in snapcraft.yaml due to the org transition [9266bf9d](https://github.com/gohugoio/hugo/commit/9266bf9d4c24592b875a7f6b92f761b4cea40879) [@digitalcraftsman](https://github.com/digitalcraftsman)
|
||||
* Run gofmt to get imports in line vs gohugoio/hugo [873a6f18](https://github.com/gohugoio/hugo/commit/873a6f18851bcda79d562ff6c02e1109e8e31a88) [@bep](https://github.com/bep)
|
||||
* Update Makefile vs gohugoio/hugo [f503d76a](https://github.com/gohugoio/hugo/commit/f503d76a3b2719bbb65ab9df5595d0dbc871fae9) [@bep](https://github.com/bep)
|
||||
* Update README to point to gohugoio/hugo [93643860](https://github.com/gohugoio/hugo/commit/93643860c9db10c6c32176b17cc83f1c317279bd) [@bep](https://github.com/bep)
|
||||
* Update examples to point to gohugoio/hugo [db46bcf8](https://github.com/gohugoio/hugo/commit/db46bcf82d060656d4bc731550e63ec9cf8576f2) [@bep](https://github.com/bep)
|
||||
* Update textual references in Go source to point to gohugoio/hugo [c17ad675](https://github.com/gohugoio/hugo/commit/c17ad675e8fcdb2db40fc50816b8f016bc14294c) [@bep](https://github.com/bep)
|
||||
* Update import paths to gohugoio/hugo [d8717cd4](https://github.com/gohugoio/hugo/commit/d8717cd4c74e80ea8e20adead9321412a2d76022) [@bep](https://github.com/bep)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-06-21
|
||||
title: 0.24
|
||||
---
|
||||
|
||||
|
||||
This is **The Revival of the Archetypes!**
|
||||
|
||||
> "A feature that could be the name of the next Indiana Jones movie deserves its own release," says [@bep](https://github.com/bep).
|
||||
|
||||
Hugo now handles the **archetype files as Go templates**. This means that the issues with sorting and lost comments are long gone. This also means that you will have to supply all values, including title and date. But this also opens up a lot of new windows.
|
||||
|
||||
A fictional example for the section `newsletter` and the archetype file `archetypes/newsletter.md`:
|
||||
|
||||
```markdown
|
||||
---
|
||||
title: "{{ replace .TranslationBaseName "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
||||
**Insert Lead paragraph here.**
|
||||
|
||||
<!--more-->
|
||||
|
||||
## New Cool Posts
|
||||
|
||||
{{ range first 10 ( where .Site.RegularPages "Type" "cool" ) }}
|
||||
* {{ .Title }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
And then create a new post with:
|
||||
|
||||
```bash
|
||||
hugo new newsletter/the-latest-cool.stuff.md
|
||||
```
|
||||
|
||||
**Note:** the site will only be built if the `.Site` is in use in the archetype file, and this can be time consuming for big sites.
|
||||
|
||||
**Hot Tip:** If you set the `newContentEditor` configuration variable to an editor on your `PATH`, the newly created article will be opened.
|
||||
|
||||
The above _newsletter type archetype_ illustrates the possibilities: The full Hugo `.Site` and all of Hugo's template funcs can be used in the archetype file.
|
||||
|
||||
**Also, Hugo now supports archetype files for all content formats, not just markdown.**
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 17839+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 493+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 166+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Notes
|
||||
|
||||
Archetype files now need to be complete, including `title` and `date`.
|
||||
|
||||
## Enhancements
|
||||
|
||||
* Support extension-less media types. The motivation behind this change is to support Netlify's `_redirects` files, so we can generate server-side redirects for the Hugo docs site. See [this commit](https://github.com/gohugoio/hugoDocs/commit/c1ab9894e8292e0a74c43bbca2263b1fb3840f9e) to see how we configured that. [0f40e1fa](https://github.com/gohugoio/hugo/commit/0f40e1fadfca2276f65adefa6d7d5d63aef9160a) [@bep](https://github.com/bep) [#3614](https://github.com/gohugoio/hugo/issues/3614)
|
||||
* Add `disableAliases` [516e6c6d](https://github.com/gohugoio/hugo/commit/516e6c6dc5733cdaf985317d58eedbc6ec0ef2f7) [@bep](https://github.com/bep) [#3613](https://github.com/gohugoio/hugo/issues/3613)
|
||||
* Support non-md files as archetype files [19f2e729](https://github.com/gohugoio/hugo/commit/19f2e729135af700c5d4aa06e7b3540e6d4847fd) [@bep](https://github.com/bep) [#3597](https://github.com/gohugoio/hugo/issues/3597) [#3618](https://github.com/gohugoio/hugo/issues/3618)
|
||||
* Identify extension-less text types as text [c43b512b](https://github.com/gohugoio/hugo/commit/c43b512b4700f76ac77f12d632bb030c3a241393) [@bep](https://github.com/bep) [#3614](https://github.com/gohugoio/hugo/issues/3614)
|
||||
* Add `.Site` to the archetype templates [662e12f3](https://github.com/gohugoio/hugo/commit/662e12f348a638a6fcc92a416ee7f7c2a7ef8792) [@bep](https://github.com/bep) [#1629](https://github.com/gohugoio/hugo/issues/1629)
|
||||
* Use archetype template as-is as a Go template [422057f6](https://github.com/gohugoio/hugo/commit/422057f60709696bbbd1c38c9ead2bf114d47e31) [@bep](https://github.com/bep) [#452](https://github.com/gohugoio/hugo/issues/452) [#1629](https://github.com/gohugoio/hugo/issues/1629)
|
||||
* Update links to new discuss URL [4aa12390](https://github.com/gohugoio/hugo/commit/4aa1239070bb9d4324d3582f3e809b702a59d3ac) [@bep](https://github.com/bep)
|
||||
|
||||
## Fixes
|
||||
|
||||
* Fix error handling for `JSON` front matter [fb53987a](https://github.com/gohugoio/hugo/commit/fb53987a4ff2acb9da8dec6ec7b11924d37352ce) [@bep](https://github.com/bep) [#3610](https://github.com/gohugoio/hugo/issues/3610)
|
||||
* Fix handling of quoted brackets in `JSON` front matter [3183b9a2](https://github.com/gohugoio/hugo/commit/3183b9a29d8adac962fbc73f79b04542f4c4c55d) [@bep](https://github.com/bep) [#3511](https://github.com/gohugoio/hugo/issues/3511)
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-06-24
|
||||
title: 0.24.1
|
||||
---
|
||||
|
||||
|
||||
|
||||
This release fixes some important **archetype-related regressions** from the recent Hugo 0.24-release.
|
||||
|
||||
## Fixes
|
||||
|
||||
* Fix archetype regression when no archetype file [4294dd8d](https://github.com/gohugoio/hugo/commit/4294dd8d9d22bd8107b7904d5389967da1f83f27) [@bep](https://github.com/bep) [#3626](https://github.com/gohugoio/hugo/issues/3626)
|
||||
* Preserve shortcodes in archetype templates [b63e4ee1](https://github.com/gohugoio/hugo/commit/b63e4ee198c875b73a6a9af6bb809589785ed589) [@bep](https://github.com/bep) [#3623](https://github.com/gohugoio/hugo/issues/3623)
|
||||
* Fix handling of timezones with positive UTC offset (e.g., +0800) in TOML [0744f81e](https://github.com/gohugoio/hugo/commit/0744f81ec00bb8888f59d6c8b5f57096e07e70b1) [@bep](https://github.com/bep) [#3628](https://github.com/gohugoio/hugo/issues/3628)
|
||||
|
||||
## Enhancements
|
||||
|
||||
* Create default archetype on new site [bfa336d9](https://github.com/gohugoio/hugo/commit/bfa336d96173377b9bbe2298dbd101f6a718c174) [@bep](https://github.com/bep) [#3626](https://github.com/gohugoio/hugo/issues/3626)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-07-07
|
||||
title: 0.25
|
||||
---
|
||||
|
||||
Hugo `0.25` is the **Kinder Surprise**: It automatically opens the page you're working on in the browser, it adds full `AND` and `OR` support in page queries, and you can now have templates per language.
|
||||
|
||||

|
||||
|
||||
If you start with `hugo server --navigateToChanged`, Hugo will navigate to the relevant page on save (see animated GIF). This is extremely useful for site-wide edits. Another very useful feature in this version is the added support for `AND` (`intersect`) and `OR` (`union`) filters when combined with `where`.
|
||||
|
||||
Example:
|
||||
|
||||
```go
|
||||
{{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }}
|
||||
{{ $pages := $pages | union (where .Site.RegularPages "Params.pinned" true) }}
|
||||
{{ $pages := $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }}
|
||||
```
|
||||
|
||||
The above fetches regular pages not of `page` or `about` type unless they are pinned. And finally, we exclude all pages with no `images` set in Page params.
|
||||
|
||||
This release represents **36 contributions by 12 contributors** to the main Hugo code base. [@bep](https://github.com/bep) still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. But also a big shoutout to [@yihui](https://github.com/yihui), [@anthonyfok](https://github.com/anthonyfok), and [@kropp](https://github.com/kropp) for their ongoing contributions. And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 18209+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 455+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 168+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Enhancements
|
||||
|
||||
### Templates
|
||||
|
||||
* Add `Pages` support to `intersect` (`AND`) and `union`(`ÒR`). This makes the `where` template func even more powerful. [ccdd08d5](https://github.com/gohugoio/hugo/commit/ccdd08d57ab64441e93d6861ae126b5faacdb92f) [@bep](https://github.com/bep) [#3174](https://github.com/gohugoio/hugo/issues/3174)
|
||||
* Add `math.Log` function. This is very handy for creating tag clouds. [34c56677](https://github.com/gohugoio/hugo/commit/34c566773a1364077e1397daece85b22948dc721) [@artem-sidorenko](https://github.com/artem-sidorenko)
|
||||
* Add `WebP` images support [8431c8d3](https://github.com/gohugoio/hugo/commit/8431c8d39d878c18c6b5463d9091a953608df10b) [@bep](https://github.com/bep) [#3529](https://github.com/gohugoio/hugo/issues/3529)
|
||||
* Only show post's own keywords in schema.org [da72805a](https://github.com/gohugoio/hugo/commit/da72805a4304a57362e8e79a01cc145767b027c5) [@brunoamaral](https://github.com/brunoamaral) [#2635](https://github.com/gohugoio/hugo/issues/2635)[#2646](https://github.com/gohugoio/hugo/issues/2646)
|
||||
* Simplify the `Disqus` template a little bit (#3655) [eccb0647](https://github.com/gohugoio/hugo/commit/eccb0647821e9db20ba9800da1b4861807cc5205) [@yihui](https://github.com/yihui)
|
||||
* Improve the built-in Disqus template (#3639) [2e1e4934](https://github.com/gohugoio/hugo/commit/2e1e4934b60ce8081a7f3a79191ed204f3098481) [@yihui](https://github.com/yihui)
|
||||
|
||||
### Output
|
||||
|
||||
* Support templates per site/language. This is for both regular templates and shortcode templates. [aa6b1b9b](https://github.com/gohugoio/hugo/commit/aa6b1b9be7c9d7322333893b642aaf8c7a5f2c2e) [@bep](https://github.com/bep) [#3360](https://github.com/gohugoio/hugo/issues/3360)
|
||||
|
||||
### Core
|
||||
|
||||
* Extend the sections API [a1d260b4](https://github.com/gohugoio/hugo/commit/a1d260b41a6673adef679ec4e262c5f390432cf5) [@bep](https://github.com/bep) [#3591](https://github.com/gohugoio/hugo/issues/3591)
|
||||
* Make `.Site.Sections` return the top level sections [dd9b1baa](https://github.com/gohugoio/hugo/commit/dd9b1baab0cb860a3eb32fd9043bac18cab3f9f0) [@bep](https://github.com/bep) [#3591](https://github.com/gohugoio/hugo/issues/3591)
|
||||
* Render `404.html` for all languages [41805dca](https://github.com/gohugoio/hugo/commit/41805dca9e40e9b0952e04d06074e6fc91140495) [@mitchchn](https://github.com/mitchchn) [#3598](https://github.com/gohugoio/hugo/issues/3598)
|
||||
|
||||
### Other
|
||||
|
||||
* Support human-readable `YAML` boolean values in `undraft` [1039356e](https://github.com/gohugoio/hugo/commit/1039356edf747f044c989a5bc0e85d792341ed5d) [@kropp](https://github.com/kropp)
|
||||
* `hugo import jekyll` support nested `_posts` directories [7ee1f25e](https://github.com/gohugoio/hugo/commit/7ee1f25e9ef3be8f99c171e8e7982f4f82c13e16) [@coderzh](https://github.com/coderzh) [#1890](https://github.com/gohugoio/hugo/issues/1890)[#1911](https://github.com/gohugoio/hugo/issues/1911)
|
||||
* Update `Dockerfile` and add Docker optimizations [118f8f7c](https://github.com/gohugoio/hugo/commit/118f8f7cf22d756d8a894ff93551974a806f2155) [@ellerbrock](https://github.com/ellerbrock)
|
||||
* Add Blackfriday `joinLines` extension support (#3574) [a5440496](https://github.com/gohugoio/hugo/commit/a54404968a4b36579797f2e7ff7f5eada94866d9) [@choueric](https://github.com/choueric)
|
||||
* add `--initial-header-level=2` to rst2html (#3528) [bfce30d8](https://github.com/gohugoio/hugo/commit/bfce30d85972c27c27e8a2caac9db6315f813298) [@frankbraun](https://github.com/frankbraun)
|
||||
* Support open "current content page" in browser [c825a731](https://github.com/gohugoio/hugo/commit/c825a7312131b4afa67ee90d593640dee3525d98) [@bep](https://github.com/bep) [#3643](https://github.com/gohugoio/hugo/issues/3643)
|
||||
* Make `--navigateToChanged` more robust on Windows [30e14cc3](https://github.com/gohugoio/hugo/commit/30e14cc31678ddc204b082ab362f86b6b8063881) [@anthonyfok](https://github.com/anthonyfok) [#3645](https://github.com/gohugoio/hugo/issues/3645)
|
||||
* Remove the docs submodule [31393f60](https://github.com/gohugoio/hugo/commit/31393f6024416ea1b2e61d1080dfd7104df36eda) [@bep](https://github.com/bep) [#3647](https://github.com/gohugoio/hugo/issues/3647)
|
||||
* Use `example.com` as homepage for new theme [aff1ac32](https://github.com/gohugoio/hugo/commit/aff1ac3235b6c075d01f7237addf44fecdd36d82) [@anthonyfok](https://github.com/anthonyfok)
|
||||
|
||||
## Fixes
|
||||
|
||||
### Templates
|
||||
|
||||
* Fix `in` function for JSON arrays [d12cf5a2](https://github.com/gohugoio/hugo/commit/d12cf5a25df00fa16c59f0b2ae282187a398214c) [@bep](https://github.com/bep) [#1468](https://github.com/gohugoio/hugo/issues/1468)
|
||||
|
||||
### Other
|
||||
|
||||
* Fix handling of `JSON` front matter with escaped quotes [e10e51a0](https://github.com/gohugoio/hugo/commit/e10e51a00827b9fdc1bee51439fef05afc529831) [@bep](https://github.com/bep) [#3661](https://github.com/gohugoio/hugo/issues/3661)
|
||||
* Fix typo in code comment [56d82aa0](https://github.com/gohugoio/hugo/commit/56d82aa025f4d2edb1dc6315132cd7ab52df649a) [@dvic](https://github.com/dvic)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
|
||||
---
|
||||
date: 2017-07-10
|
||||
title: 0.25.1
|
||||
---
|
||||
|
||||
|
||||
|
||||
This is a bug-fix release with a couple of important fixes.
|
||||
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 18277+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||
* 456+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||
* 170+ [themes](http://themes.gohugo.io/)
|
||||
|
||||
## Fixes
|
||||
|
||||
* Fix union when the first slice is empty [dbbc5c48](https://github.com/gohugoio/hugo/commit/dbbc5c4810a04ac06fad7500d88cf5c3bfe0c7fd) [@bep](https://github.com/bep) [#3686](https://github.com/gohugoio/hugo/issues/3686)
|
||||
* Navigate to changed on CREATE When working with content from IntelliJ IDE, like WebStorm, every file save is followed by two events: "RENAME" and then "CREATE". [7bcc1ce6](https://github.com/gohugoio/hugo/commit/7bcc1ce659710f2220b400ce3b76e50d2e48b241) [@miltador](https://github.com/miltador)
|
||||
* Final (!) fix for issue with escaped JSON front matter [7f82b41a](https://github.com/gohugoio/hugo/commit/7f82b41a24af0fd04d28fbfebf9254766a3c6e6f) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682)
|
||||
* Fix issue with escaped JSON front matter [84db6c74](https://github.com/gohugoio/hugo/commit/84db6c74a084d2b52117b999d4ec343cd3389a68) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
date: 2017-04-17
|
||||
aliases:
|
||||
- /doc/release-notes/
|
||||
- /meta/release-notes/
|
||||
title: Release Notes
|
||||
weight: 10
|
||||
---
|
||||
@@ -1,959 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- /doc/release-notes/
|
||||
- /meta/release-notes/
|
||||
date: 2017-04-16
|
||||
title: Older Release Notes
|
||||
---
|
||||
# **0.20.2** April 16th 2017
|
||||
|
||||
Hugo `0.20.2` adds support for plain text partials included into `HTML` templates. This was a side-effect of the big new [Custom Output Format](https://gohugo.io/extras/output-formats/) feature in `0.20`, and while the change was intentional and there was an ongoing discussion about fixing it in {{< gh 3273 >}}, it did break some themes. There were valid workarounds for these themes, but we might as well get it right.
|
||||
|
||||
The most obvious use case for this is inline `CSS` styles, which you now can do without having to name your partials with a `html` suffix.
|
||||
|
||||
A simple example:
|
||||
|
||||
In `layouts/partials/mystyles.css`:
|
||||
|
||||
```css
|
||||
body {
|
||||
background-color: {{ .Param "colors.main" }}
|
||||
}
|
||||
```
|
||||
|
||||
Then in `config.toml` (note that by using the `.Param` lookup func, we can override the color in a page's front matter if we want):
|
||||
|
||||
```toml
|
||||
[params]
|
||||
[params.colors]
|
||||
main = "green"
|
||||
text = "blue"
|
||||
```
|
||||
|
||||
And then in `layouts/partials/head.html` (or the partial used to include the head section into your layout):
|
||||
|
||||
```html
|
||||
<head>
|
||||
<style type="text/css">
|
||||
{{ partial "mystyles.css" . | safeCSS }}
|
||||
</style>
|
||||
</head>
|
||||
```
|
||||
|
||||
Of course, `0.20` also made it super-easy to create external `CSS` stylesheets based on your site and page configuration. A simple example:
|
||||
|
||||
Add "CSS" to your home page's `outputs` list, create the template `/layouts/index.css` using Go template syntax for the dynamic parts, and then include it into your `HTML` template with:
|
||||
|
||||
```html
|
||||
{{ with .OutputFormats.Get "css" }}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
|
||||
{{ end }}`
|
||||
```
|
||||
|
||||
|
||||
# **0.20.1** April 13th 2017
|
||||
Hugo `0.20.1` is a bug fix release, fixing some important regressions introduced in `0.20` a couple of days ago:
|
||||
|
||||
* Fix logic for base template in work dir vs in the theme {{< gh 3323 >}}
|
||||
* camelCased templates (partials, shortcodes etc.) not found {{< gh 3333 >}}
|
||||
* Live-reload fails with `_index.md` with paginator {{< gh 3315 >}}
|
||||
* `rssURI` WARNING always shown {{< gh 3319 >}}
|
||||
|
||||
See the [full list](https://github.com/gohugoio/hugo/milestone/16?closed=1).
|
||||
|
||||
# **0.20** April 10th 2017
|
||||
|
||||
Hugo `0.20` introduces the powerful and long sought after feature [Custom Output Formats]({{< ref "extras/output-formats.md" >}}); Hugo isn't just that "static HTML with an added RSS feed" anymore. *Say hello* to calendars, e-book formats, Google AMP, and JSON search indexes, to name a few ({{< gh 2828 >}}).
|
||||
|
||||
This release represents **over 180 contributions by over 30 contributors** to the main Hugo code base. Since last release Hugo has **gained 1100 stars, 20 new contributors and 5 additional themes.**
|
||||
|
||||
Hugo now has:
|
||||
|
||||
- 16300+ stars
|
||||
- 495+ contributors
|
||||
- 156+ themes
|
||||
|
||||
{{< gh "@bep" >}} still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. Also a big shoutout to {{< gh "@digitalcraftsman" >}} for his relentless work on keeping the documentation and the themes site in pristine condition, and {{< gh "@moorereason" >}} and {{< gh "@bogem" >}} for their ongoing contributions.
|
||||
|
||||
## Other Highlights
|
||||
|
||||
{{< gh "@bogem" >}} has also contributed TOML as an alternative and much simpler format for language/i18n files ({{< gh 3200 >}}). A feature you will appreciate when you start to work on larger translations.
|
||||
|
||||
Also, there have been some important updates in the Emacs Org-mode handling: {{< gh "@chaseadamsio" >}} has fixed the newline-handling ({{< gh 3126 >}}) and {{< gh "@clockoon" >}} has added basic footnote support.
|
||||
|
||||
Worth mentioning is also the ongoing work that {{< gh "@rdwatters" >}} and {{< gh "@budparr" >}} is doing to re-do the [gohugo.io](https://gohugo.io/) site, including a total restructuring and partial rewrite of the documentation. It is getting close to finished, and it looks fantastic!
|
||||
|
||||
## Notes
|
||||
* `RSS` description in the built-in template is changed from full `.Content` to `.Summary`. This is a somewhat breaking change, but is what most people expect from their RSS feeds. If you want full content, please provide your own RSS template.
|
||||
* The deprecated `.RSSlink` is now removed. Use `.RSSLink`.
|
||||
* `RSSUri` is deprecated and will be removed in a future Hugo version, replace it with an output format definition.
|
||||
* The deprecated `.Site.GetParam` is now removed, use `.Site.Param`.
|
||||
* Hugo does no longer append missing trailing slash to `baseURL` set as a command line parameter, making it consistent with how it behaves from site config. {{< gh 3262 >}}
|
||||
|
||||
## Enhancements
|
||||
|
||||
* Hugo `0.20` is built with Go 1.8.1.
|
||||
* Add `.Site.Params.mainSections` that defaults to the section with the most pages. Plan is to get themes to use this instead of the hardcoded `blog` in `where` clauses. {{< gh 3206 >}}
|
||||
* File extension is now configurable. {{< gh 320 >}}
|
||||
* Impove `markdownify` template function performance. {{< gh 3292 >}}
|
||||
* Add taxonomy terms' pages to `.Data.Pages` {{< gh 2826 >}}
|
||||
* Change `RSS` description from full `.Content` to `.Summary`.
|
||||
* Ignore "." dirs in `hugo --cleanDestinationDir` {{< gh 3202 >}}
|
||||
* Allow `jekyll import` to accept both `2006-01-02` and `2006-1-2` date format {{< gh 2738 >}}
|
||||
* Raise the default `rssLimit` {{< gh 3145 >}}
|
||||
* Unify section list vs single template lookup order {{< gh 3116 >}}
|
||||
* Allow `apply` to be used with the built-in Go template funcs `print`, `printf` and `println`. {{< gh 3139 >}}
|
||||
|
||||
## Fixes
|
||||
* Fix deadlock in `getJSON` {{< gh 3211 >}}
|
||||
* Make sure empty terms pages are created. {{< gh 2977 >}}
|
||||
* Fix base template lookup order for sections {{< gh 2995 >}}
|
||||
* `URL` fixes:
|
||||
* Fix pagination URLs with `baseURL` with sub-root and `canonifyUrls=false` {{< gh 1252 >}}
|
||||
* Fix pagination URL for resources with "." in name {{< gh 2110 >}} {{< gh 2374 >}} {{< gh 1885 >}}
|
||||
* Handle taxonomy names with period {{< gh 3169 >}}
|
||||
* Handle `uglyURLs` ambiguity in `Permalink` {{< gh 3102 >}}
|
||||
* Fix `Permalink` for language-roots wrong when `uglyURLs` is `true` {{< gh 3179 >}}
|
||||
* Fix misc case issues for `URLs` {{< gh 1641 >}}
|
||||
* Fix for taxonomies URLs when `uglyUrls=true` {{< gh 1989 >}}
|
||||
* Fix empty `RSSLink` for list pages with content page. {{< gh 3131 >}}
|
||||
* Correctly identify regular pages on the form "my_index_page.md" {{< gh 3234 >}}
|
||||
* `Exit -1` on `ERROR` in global logger {{< gh 3239 >}}
|
||||
* Document hugo `help command` {{< gh 2349 >}}
|
||||
* Fix internal `Hugo` version handling for bug fix releases. {{< gh 3025 >}}
|
||||
* Only return `RSSLink` for pages that actually have a RSS feed. {{< gh 1302 >}}
|
||||
|
||||
|
||||
# **0.19** February 27th 2017
|
||||
|
||||
We're happy to announce the first release of Hugo in 2017.
|
||||
|
||||
This release represents **over 180 contributions by over 50 contributors** to the main Hugo code base. Since last release Hugo has **gained 1450 stars, 35 new contributors and 15 additional themes.**
|
||||
|
||||
Hugo now has:
|
||||
|
||||
- 15200+ stars
|
||||
- 470+ contributors
|
||||
- 151+ themes
|
||||
|
||||
Furthermore, Hugo has its own Twitter account ([@gohugoio](https://twitter.com/gohugoio)) where we share bite-sized news and themes from the Hugo community.
|
||||
|
||||
{{< gh "@bep" >}} leads the Hugo development and once again contributed a significant amount of additions. Also a big shoutout to {{< gh "@chaseadamsio" >}} for the Emacs Org-mode support, {{< gh "@digitalcraftsman" >}} for his relentless work on keeping the documentation and the themes site in pristine condition, {{< gh "@fj" >}}for his work on revising the `params` handling in Hugo, and {{< gh "@moorereason" >}} and {{< gh "@bogem" >}} for their ongoing contributions.
|
||||
|
||||
## Highlights
|
||||
Hugo `0.19` brings native Emacs Org-mode content support ({{<gh 1483>}}), big thanks to {{< gh "@chaseadamsio" >}}.
|
||||
|
||||
Also, a considerably amount of work have been put into cleaning up the Hugo source code, in an issue titled [Refactor the globals out of site build](https://github.com/gohugoio/hugo/issues/2701). This is not immediately visible to the Hugo end user, but will speed up future development.
|
||||
|
||||
Hugo `0.18` was bringing full-parallel page rendering, so workarounds depending on rendering order did not work anymore, and pages with duplicate target paths (common examples would be `/index.md` or `/about/index.md`) would now conflict with the home page or the section listing.
|
||||
|
||||
With Hugo `0.19`, you can control this behaviour by turning off page types you do not want ({{<gh 2534 >}}). In its most extreme case, if you put the below setting in your `config.toml`, you will get **nothing!**:
|
||||
|
||||
```
|
||||
disableKinds = ["page", "home", "section", "taxonomy", "taxonomyTerm", "RSS", "sitemap", "robotsTXT", "404"]
|
||||
```
|
||||
## Other New Features
|
||||
|
||||
* Add ability to sort pages by frontmatter parameters, enabling easy custom "top 10" page lists. {{<gh 3022 >}}
|
||||
* Add `truncate` template function {{<gh 2882 >}}
|
||||
* Add `now` function, which replaces the now deprecated `.Now` {{<gh 2859 >}}
|
||||
* Make RSS item limit configurable {{<gh 3035 >}}
|
||||
|
||||
## Enhancements
|
||||
* Enhance `.Param` to permit arbitrarily nested parameter references {{<gh 2598 >}}
|
||||
* Use `Page.Params` more consistently when adding metadata {{<gh 3033 >}}
|
||||
* The `sectionPagesMenu` feature ("Section menu for the lazy blogger") is now integrated with the section content pages. {{<gh 2974 >}}
|
||||
* Hugo `0.19` is compiled with Go 1.8!
|
||||
* Make template funcs like `findRE` and friends more liberal in what argument types they accept {{<gh 3018 >}} {{<gh 2822 >}}
|
||||
* Improve generation of OpenGraph date tags {{<gh 2979 >}}
|
||||
|
||||
## Notes
|
||||
|
||||
* `sourceRelativeLinks` is now deprecated and will be removed in Hugo `0.21` if no one is stepping up to the plate and fixes and maintains this feature. {{<gh 3028 >}}
|
||||
|
||||
## Fixes
|
||||
* Fix `.Site.LastChange` on sites where the default sort order is not chronological. {{<gh 2909 >}}
|
||||
* Fix regression of `.Truncated` evaluation in manual summaries. {{<gh 2989 >}}
|
||||
* Fix `preserveTaxonomyNames` regression {{<gh 3070 >}}
|
||||
* Fix issue with taxonomies when only some have content page {{<gh 2992 >}}
|
||||
* Fix instagram shortcode panic on invalid ID {{<gh 3048 >}}
|
||||
* Fix subtle data race in `getJSON` {{<gh 3045 >}}
|
||||
* Fix deadlock in cached partials {{<gh 2935 >}}
|
||||
* Avoid double-encoding of paginator URLs {{<gh 2177 >}}
|
||||
* Allow tilde in URLs {{<gh 2177 >}}
|
||||
* Fix `.Site.Pages` handling on live reloads {{<gh 2869 >}}
|
||||
* `UniqueID` now correctly uses the fill file path from the content root to calculate the hash, and is finally ... unique!
|
||||
* Discard current language based on `.Lang()`, go get translations correct for paginated pages. {{<gh 2972 >}}
|
||||
* Fix infinite loop in template AST handling for recursive templates {{<gh 2927 >}}
|
||||
* Fix issue with watching when config loading fails {{<gh 2603 >}}
|
||||
* Correctly flush the imageConfig on live-reload {{<gh 3016 >}}
|
||||
* Fix parsing of TOML arrays in frontmatter {{<gh 2752 >}}
|
||||
|
||||
## Docs
|
||||
* Add tutorial "How to use Google Firebase to host a Hugo site" {{<gh 3007 >}}
|
||||
* Improve documentation for menu rendering {{<gh 3056 >}}
|
||||
* Revise GitHub Pages deployment tutorial {{<gh 2930 >}}
|
||||
|
||||
# **0.18.1** December 30th 2016
|
||||
|
||||
Hugo 0.18.1 is a bug fix release fixing some issues introduced in Hugo 0.18:
|
||||
|
||||
* Fix 32-bit binaries {{<gh 2847 >}}
|
||||
* Fix issues with `preserveTaxonomyNames` {{<gh 2809 >}}
|
||||
* Fix `.URL` for taxonomy pages when `uglyURLs=true` {{<gh 2819 >}}
|
||||
* Fix `IsTranslated` and `Translations` for node pages {{<gh 2812 >}}
|
||||
* Make template error messages more verbose {{<gh 2820 >}}
|
||||
|
||||
# **0.18.0** December 19th 2016
|
||||
|
||||
Today, we're excited to release the much-anticipated Hugo 0.18!
|
||||
|
||||
We're heading towards the end of the year 2016, and we can look back on three releases and a steady growing community around the project.
|
||||
This release includes **over 220 contributions by nearly 50 contributors** to the main codebase.
|
||||
Since the last release, Hugo has **gained 1750 stars and 27 additional themes**.
|
||||
|
||||
Hugo now has:
|
||||
|
||||
- 13750+ stars
|
||||
- 408+ contributors
|
||||
- 137+ themes
|
||||
|
||||
{{< gh "@bep" >}} once again took the lead of Hugo and contributed a significant amount of additions.
|
||||
Also a big shoutout to {{< gh "@digitalcraftsman" >}} for his relentless work on keeping the documentation and the themes site in pristine condition,
|
||||
and also a big thanks to {{< gh "@moorereason" >}} and {{< gh "@bogem" >}} for their contributions.
|
||||
|
||||
We wish you all a Merry Christmas and a Happy New Year.<br>
|
||||
*The Hugo team*
|
||||
|
||||
## Highlights
|
||||
|
||||
The primary new feature in Hugo 0.18 is that every piece of content is now a `Page` ({{<gh 2297>}}).
|
||||
This means that every page, including the home page, can have a content file with frontmatter.
|
||||
Not only is this a much simpler model to understand, it is also faster and paved the way for several important new features:
|
||||
|
||||
* Enable proper titles for Nodes {{<gh 1051>}}
|
||||
* Sitemap.xml should include nodes, as well as pages {{<gh 1303>}}
|
||||
* Document homepage content workaround {{<gh 2240>}}
|
||||
* Allow home page to be easily authored in markdown {{<gh 720>}}
|
||||
* Minimalist website with homepage as content {{<gh 330>}}
|
||||
|
||||
Hugo again continues its trend of each release being faster than the last. It's quite a challenge to consistently add significant new functionality and simultaneously dramatically improve performance. Running [this benchmark]( https://github.com/bep/hugo-benchmark) with [these sites](https://github.com/bep/hugo-benchmark/tree/master/sites) (renders to memory) shows about 60% reduction in time spent and 30% reduction in memory usage compared to Hugo 0.17.
|
||||
|
||||
## Other New Features
|
||||
|
||||
* Every `Page` now has a `Kind` property. Since everything is a `Page` now, the `Kind` is used to differentiate different kinds of pages.
|
||||
Possible values are `page`, `home`, `section`, `taxonomy`, and `taxonomyTerm`.
|
||||
(Internally, we also define `RSS`, `sitemap`, `robotsTXT`, and `404`, but those have no practical use for end users at the moment since they are not included in any collections.)
|
||||
* Add a `GitInfo` object to `Page` if `enableGitInfo` is set. It then also sets `Lastmod` for the given `Page` to the author date provided by Git. {{<gh 2291>}}
|
||||
* Implement support for alias templates {{<gh 2533 >}}
|
||||
* New template functions:
|
||||
* Add `imageConfig` function {{<gh 2677>}}
|
||||
* Add `sha256` function {{<gh 2762>}}
|
||||
* Add `partialCached` template function {{<gh 1368>}}
|
||||
* Add shortcode to display Instagram images {{<gh 2690>}}
|
||||
* Add `noChmod` option to disable perm sync {{<gh 2749>}}
|
||||
* Add `quiet` build mode {{<gh 1218>}}
|
||||
|
||||
## Notices
|
||||
|
||||
* `.Site.Pages` will now contain *several kinds of pages*, including regular pages, sections, taxonomies, and the home page.
|
||||
If you want a specific kind of page, you can filter it with `where` and `Kind`.
|
||||
`.Site.RegularPages` is a shortcut to the page collection you have been used to getting.
|
||||
* `RSSlink` is now deprecated. Use `RSSLink` instead.
|
||||
Note that in Hugo 0.17 both of them existed, so there is a fifty-fifty chance you will not have to do anything
|
||||
(if you use a theme, the chance is close to 0), and `RSSlink` will still work for two Hugo versions.
|
||||
|
||||
## Fixes
|
||||
|
||||
* Revise the `base` template lookup logic so it now better matches the behavior of regular templates, making it easier to override the master templates from the theme {{<gh 2783>}}
|
||||
* Add workaround for `block` template crash.
|
||||
Block templates are very useful, but there is a bug in Go 1.6 and 1.7 which makes the template rendering crash if you use the block template in more complex scenarios.
|
||||
This is fixed in the upcoming Go 1.8, but Hugo adds a temporary workaround in Hugo 0.18. {{<gh 2549>}}
|
||||
* All the `Params` configurations are now case insensitive {{<gh 1129>}} {{<gh 2590>}} {{<gh 2615>}}
|
||||
* Make RawContent raw again {{<gh 2601>}}
|
||||
* Fix archetype title and date handling {{<gh 2750>}}
|
||||
* Fix TOML archetype parsing in `hugo new` {{<gh 2745>}}
|
||||
* Fix page sorting when weight is zero {{<gh 2673>}}
|
||||
* Fix page names that contain dot {{<gh 2555>}}
|
||||
* Fix RSS Title regression {{<gh 2645>}}
|
||||
* Handle ToC before handling shortcodes {{<gh 2433>}}
|
||||
* Only watch relevant themes dir {{<gh 2602>}}
|
||||
* Hugo new content creates TOML slices with closing bracket on new line {{<gh 2800>}}
|
||||
|
||||
|
||||
## Improvements
|
||||
|
||||
* Add page information to error logging in rendering {{<gh 2570>}}
|
||||
* Deprecate `RSSlink` in favor of `RSSLink`
|
||||
* Make benchmark command more useful {{<gh 2432>}}
|
||||
* Consolidate the `Param` methods {{<gh 2590>}}
|
||||
* Allow to set cache dir in config file
|
||||
* Performance improvements:
|
||||
* Avoid repeated Viper loads of `sectionPagesMenu` {{<gh 2728>}}
|
||||
* Avoid reading from Viper for path and URL funcs {{<gh 2495>}}
|
||||
* Add `partialCached` template function. This can be a significant performance boost if you have complex partials that does not need to be rerendered for every page. {{<gh 1368>}}
|
||||
|
||||
## Documentation Updates
|
||||
|
||||
* Update roadmap {{<gh 2666>}}
|
||||
* Update multilingual example {{<gh 2417>}}
|
||||
* Add a "Deployment with rsync" tutorial page {{<gh 2658>}}
|
||||
* Refactor `/docs` to use the `block` keyword {{<gh 2226>}}
|
||||
|
||||
|
||||
## **0.17.0** October 7th 2016
|
||||
|
||||
Hugo is going global with our 0.17 release. We put a lot of thought into how we could extend Hugo
|
||||
to support multilingual websites with the most simple and elegant experience. Hugo's multilingual
|
||||
capabilities rival the best web and documentation software, but Hugo's experience is unmatched.
|
||||
If you have a single language website, the simple Hugo experience you already love is unchanged.
|
||||
Adding additional languages to your website is simple and straightforward. Hugo has been completely
|
||||
internally rewritten to be multilingual aware with translation and internationalization features
|
||||
embedded throughout Hugo.
|
||||
|
||||
Hugo continues its trend of each release being faster than the last. It's quite a challenge to consistently add
|
||||
significant new functionality and simultaneously dramatically improve performance. {{<gh "@bep">}} has made it
|
||||
his personal mission to apply the Go mantra of "Enable more. Do less" to Hugo. Hugo's consistent improvement
|
||||
is a testament to his brilliance and his dedication to his craft. Hugo additionally benefits from the
|
||||
performance improvements from the Go team in the Go 1.7 release.
|
||||
|
||||
This release represents **over 300 contributions by over 70 contributors** to
|
||||
the main Hugo code base. Since last release Hugo has **gained 2000 stars, 50 new
|
||||
contributors and 20 additional themes.**
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 12,000 stars on GitHub
|
||||
* 370+ contributors
|
||||
* 110+ themes
|
||||
|
||||
{{<gh "@bep" >}} continues to lead the project with the lionshare of contributions
|
||||
and reviews. A special thanks to {{<gh "@bep" >}} and {{<gh "@abourget" >}} for their
|
||||
considerable work on multilingual support.
|
||||
|
||||
A big welcome to newcomers {{<gh "@MarkDBlackwell" >}}, {{<gh "@bogem" >}} and
|
||||
{{<gh "@g3wanghc" >}} for their critical contributions.
|
||||
|
||||
### Highlights
|
||||
|
||||
**Multilingual Support:**
|
||||
Hugo now supports multiple languages side-by-side. A single site can now have multiple languages rendered with
|
||||
full support for translation and i18n.
|
||||
|
||||
**Performance:**
|
||||
Hugo is faster than ever! Hugo 0.17 is not only our fastest release, it's also the most efficient.
|
||||
Hugo 0.17 is **nearly twice as fast as Hugo 0.16** and uses about 10% less memory.
|
||||
This means that the same site will build in nearly half the time it took with Hugo 0.16.
|
||||
For the first time Hugo sites are averaging well under 1ms per rendered content.
|
||||
|
||||
**Docs overhaul:**
|
||||
This release really focused on improving the documentation. [Gohugo.io](http://gohugo.io) is
|
||||
more accurate and complete than ever.
|
||||
|
||||
**Support for macOS Sierra**
|
||||
|
||||
### New Features
|
||||
* Multilingual support {{<gh 2303>}}
|
||||
* Allow content expiration {{<gh 2137 >}}
|
||||
* New templates functions:
|
||||
* `querify` function to generate query strings inside templates {{<gh 2257>}}
|
||||
* `htmlEscape` and `htmlUnescape` template functions {{<gh 2287>}}
|
||||
* `time` converts a timestamp string into a time.Time structure {{<gh 2329>}}
|
||||
|
||||
### Enhancements
|
||||
|
||||
* Render the shortcodes as late as possible {{<gh 0xed0985404db4630d1b9d3ad0b7e41fb186ae0112>}}
|
||||
* Remove unneeded casts in page.getParam {{<gh 2186 >}}
|
||||
* Automatic page date fallback {{<gh 2239>}}
|
||||
* Enable safeHTMLAttr {{<gh 2234>}}
|
||||
* Add TODO list support for markdown {{<gh 2296>}}
|
||||
* Make absURL and relURL accept any type {{<gh 2352>}}
|
||||
* Suppress 'missing static' error {{<gh 2344>}}
|
||||
* Make summary, wordcount etc. more efficient {{<gh 2378>}}
|
||||
* Better error reporting in `hugo convert` {{<gh 2440>}}
|
||||
* Reproducible builds thanks to govendor {{<gh 2461>}}
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix shortcode in markdown headers {{<gh 2210 >}}
|
||||
* Explicitly bind livereload to hugo server port {{<gh 2205>}}
|
||||
* Fix Emojify for certain text patterns {{<gh 2198>}}
|
||||
* Normalize file name to NFC {{<gh 2259>}}
|
||||
* Ignore emacs temp files {{<gh 2266>}}
|
||||
* Handle symlink change event {{<gh 2273>}}
|
||||
* Fix panic when using URLize {{<gh 2274>}}
|
||||
* `hugo import jekyll`: Fixed target path location check {{<gh 2293>}}
|
||||
* Return all errors from casting in templates {{<gh 2356>}}
|
||||
* Fix paginator counter on x86-32 {{<gh 2420>}}
|
||||
* Fix half-broken self-closing shortcodes {{<gh 2499>}}
|
||||
|
||||
****
|
||||
|
||||
## **0.16.0** June 6th 2016
|
||||
|
||||
Hugo 0.16 is our best and biggest release ever. The Hugo community has
|
||||
outdone itself with continued performance improvements,
|
||||
[beautiful themes](http://themes.gohugo.io) for all types of sites from project
|
||||
sites to documentation to blogs to portfolios, and increased stability.
|
||||
|
||||
This release represents **over 550 contributions by over 110 contributors** to
|
||||
the main Hugo code base. Since last release Hugo has **gained 3500 stars, 90
|
||||
contributors and 23 additional themes.**
|
||||
|
||||
This release celebrates 3 years since {{< gh "@spf13" >}} wrote the first lines
|
||||
of Hugo. During those 3 years Hugo has accomplished some major milestones
|
||||
including...
|
||||
|
||||
* 10,000+ stars on GitHub
|
||||
* 320+ contributors
|
||||
* 90+ themes
|
||||
* 1000s of happy websites
|
||||
* Many subprojects like {{< gh "@spf13/cobra">}}, {{< gh "@spf13/viper">}} and
|
||||
{{< gh "@spf13/afero">}} which have experienced broad usage across the Go
|
||||
ecosystem.
|
||||
|
||||
{{< gh "@bep" >}} led the development of Hugo for the 3rd consecutive release
|
||||
with nearly half of the contributions to 0.16 in addition to his considerable
|
||||
contributions as lead maintainer. {{< gh "@anthonyfok" >}}, {{< gh
|
||||
"@DigitalCraftsman" >}}, {{< gh "@MooreReason" >}} all made significant
|
||||
contributions. A special thanks to {{< gh "@abourget " >}} for his considerable
|
||||
work on multilingual support. Due to its broad impact we wanted to spend more
|
||||
time testing it and it will be included in Hugo's next release.
|
||||
|
||||
### Highlights
|
||||
|
||||
**Partial Builds:** Prior to this release Hugo would always reread and rebuild
|
||||
the entire site. This release introduces support for reactive site building
|
||||
while watching (`hugo server`). Hugo will watch the filesystem for changes and
|
||||
only re-read the changed files. Depending on the files change Hugo will
|
||||
intelligently re-render only the needed portion of the site. Performance gains
|
||||
depend on the operation performed and size of the site. In our testing build
|
||||
times decreased anywhere from 10% to 99%.
|
||||
|
||||
**Template Improvements:** Template improvements continue to be a mainstay of each Hugo release. Hugo 0.16 adds support for the new `block` keyword introduced in Go 1.6 -- think base templates with default sections -- as well as many new template functions.
|
||||
|
||||
**Polish:** As Hugo matures releases will inevitably contain fewer huge new features. This release represents hundreds of small improvements across ever facet of Hugo which will make for a much better experience for all of our users. Worth mentioning here is the curious bug where live reloading didn't work in some editors on OS X, including the popular TextMate 2. This is now fixed. Oh, and now any error will exit with an error code, a big thing for automated deployments.
|
||||
|
||||
### New Features
|
||||
* Support reading configuration variables from the OS environment {{<gh 2090 >}}
|
||||
* Add emoji support {{<gh 1892>}}
|
||||
* Add `themesDir` option to configuration {{<gh 1556>}}
|
||||
* Add support for Go 1.6 `block` keyword in templates {{<gh 1832>}}
|
||||
* Partial static sync {{<gh 1644>}}
|
||||
* Source file based relative linking (a la GitHub) {{<gh 0x0f6b334b6715253b030c4e783b88e911b6e53e56>}}
|
||||
* Add `ByLastmod` sort function to pages. {{<gh 0xeb627ca16de6fb5e8646279edd295a8bf0f72bf1 >}}
|
||||
* New templates functions:
|
||||
* `readFile` {{<gh 1551 >}}
|
||||
* `countwords` and `countrunes` {{<gh 1440>}}
|
||||
* `default` {{<gh 1943>}}
|
||||
* `hasPrefix` {{<gh 1243>}}
|
||||
* `humanize` {{<gh 1818>}}
|
||||
* `jsonify` {{<gh 0x435e996c4fd48e9009ffa9f83a19fb55f0777dbd>}}
|
||||
* `md5` and `sha1` {{<gh 1932>}}
|
||||
* `replaceRE` {{<gh 1845>}}
|
||||
* `findRE` {{<gh 2048>}}
|
||||
* `shuffle` {{<gh 1942>}}
|
||||
* `slice` {{<gh 1902>}}
|
||||
* `plainify` {{<gh 1915>}}
|
||||
|
||||
### Enhancements
|
||||
|
||||
* Hugo now exits with error code on any error. This is a big thing for
|
||||
automated deployments. {{<gh 740 >}}
|
||||
* Print error when `/index.html` is zero-length {{<gh 947>}}
|
||||
* Enable dirname and filename bash autocompletion for more flags {{<gh
|
||||
0x666ddd237791b56fd048992dca9a27d1af50a10e>}}
|
||||
* Improve error handling in commands {{<gh 1502>}}
|
||||
* Add sanity checks for `hugo import jekyll` {{<gh 1625 >}}
|
||||
* Add description to `Page.Params` {{<gh 1484>}}
|
||||
* Add async version of Google Analytics internal template {{<gh 1711>}}
|
||||
* Add autostart option to YouTube shortcode {{<gh 1784>}}
|
||||
* Set Date and Lastmod for main home page {{<gh 1903>}}
|
||||
* Allow URL with extension in frontmatter {{<gh 1923>}}
|
||||
* Add list support in Scratch {{<gh
|
||||
0xeaba04e82bdfc5d4c29e970f11b4aab9cc0efeaa>}}
|
||||
* Add file option to gist shortcode {{<gh 1955>}}
|
||||
* Add config layout and content directory CLI options {{<gh 1698>}}
|
||||
* Add boolean value comparison to `where` template function {{<gh
|
||||
0xf3c74c9db484c8961e70cb3458f9e41e7832fa12>}}
|
||||
* Do not write to to cache when `ignoreCache` is set {{<gh 2067>}}
|
||||
* Add option to disable rendering of 404 page {{<gh 2037>}}
|
||||
* Mercurial is no longer needed to build Hugo {{<gh 2062 >}}
|
||||
* Do not create `robots.txt` by default {{<gh 2049>}}
|
||||
* Disable syntax guessing for PygmentsCodeFences by default. To enable syntax
|
||||
guessing again, add the following to your config file:
|
||||
`PygmentsCodeFencesGuessSyntax = true` {{<gh 2034>}}
|
||||
* Make `ByCount` sort consistently {{<gh 1930>}}
|
||||
* Add `Scratch` to shortcode {{<gh 2000>}}
|
||||
* Add support for symbolic links for content, layout, static, theme {{<gh 1855 >}}
|
||||
* Add '+' as one of the valid characters in URLs specified in the front matter
|
||||
{{<gh 1290 >}}
|
||||
* Make alias redirect output URLs relative when `RelativeURLs = true` {{<gh 2093 >}}
|
||||
* Hugo injects meta generator tag on homepage if missing {{<gh 2182 >}}
|
||||
|
||||
### Fixes
|
||||
* Fix file change watcher for TextMate 2 and friends on OS X {{<gh 1053 >}}
|
||||
* Make dynamic reloading of config file reliable on all platform {{<gh 1684 >}}
|
||||
* Hugo now works on Linux/arm64 {{<gh 1772 >}}
|
||||
* `plainIDAnchors` now defaults to `true` {{<gh 2057>}}
|
||||
* Win32 and ARM builds fixed {{<gh 1716>}}
|
||||
* Copy static dir files without theme's static dir {{<gh 1656>}}
|
||||
* Make `noTimes` command flag work {{<gh 1657>}}
|
||||
* Change most global CLI flags into local ones {{<gh 1624>}}
|
||||
* Remove transformation of menu URLs {{<gh 1239>}}
|
||||
* Do not fail on unknown Jekyll file {{<gh 1705>}}
|
||||
* Use absolute path when editing with editor {{<gh 1589>}}
|
||||
* Fix hugo server "Watching for changes" path display {{<gh 1721>}}
|
||||
* Do not strip special characters out of URLs {{<gh 1292>}}
|
||||
* Fix `RSSLink` when uglyURLs are enabled {{<gh 175>}}
|
||||
* Get BaseURL from viper in server mode {{<gh 1821>}}
|
||||
* Fix shortcode handling in RST {{<gh 1904>}}
|
||||
* Use default sitemap configuration for homepage {{<gh 1304>}}
|
||||
* Exit if specific port is unavailable in server mode {{<gh 1901>}}
|
||||
* Fix regression in "section menus for lazy blogger" {{<gh 2065>}}
|
||||
|
||||
****
|
||||
|
||||
## **0.15.0** November 25, 2015
|
||||
|
||||
The v0.15.0 Hugo release brings a lot of polish to Hugo. Exactly 6 months after
|
||||
the 0.14 release, Hugo has seen massive growth and changes. Most notably, this
|
||||
is Hugo's first release under the Apache 2.0 license. With this license change
|
||||
we hope to expand the great community around Hugo and make it easier for our
|
||||
many users to contribute. This release represents over **377 contributions by
|
||||
87 contributors** to the main Hugo repo and hundreds of improvements to the
|
||||
libraries Hugo uses. Hugo also launched a [new theme
|
||||
showcase](http://themes.gohugo.io) and participated in
|
||||
[Hacktoberfest](https://hacktoberfest.digitalocean.com).
|
||||
|
||||
Hugo now has:
|
||||
|
||||
* 6700 (+2700) stars on GitHub
|
||||
* 235 (+75) contributors
|
||||
* 65 (+30) themes
|
||||
|
||||
|
||||
**Template Improvements:** This release takes Hugo to a new level of speed and
|
||||
usability. Considerable work has been done adding features and performance to
|
||||
the template system which now has full support of Ace, Amber and Go Templates.
|
||||
|
||||
**Hugo Import:** Have a Jekyll site, but dreaming of porting it to Hugo? This
|
||||
release introduces a new `hugo import jekyll`command that makes this easier
|
||||
than ever.
|
||||
|
||||
**Performance Improvements:** Just when you thought Hugo couldn't get any faster,
|
||||
Hugo continues to improve in speed while adding features. Notably Hugo 0.15
|
||||
introduces the ability to render and serve directly from memory resulting in
|
||||
30%+ lower render times.
|
||||
|
||||
Huge thanks to all who participated in this release. A special thanks to
|
||||
{{< gh "@bep" >}} who led the development of Hugo this release again,
|
||||
{{< gh "@anthonyfok" >}},
|
||||
{{< gh "@eparis" >}},
|
||||
{{< gh "@tatsushid" >}} and
|
||||
{{< gh "@DigitalCraftsman" >}}.
|
||||
|
||||
|
||||
### New features
|
||||
* new `hugo import jekyll` command. {{< gh 1469 >}}
|
||||
* The new `Param` convenience method on `Page` and `Node` can be used to get the most specific parameter value for a given key. {{< gh 1462 >}}
|
||||
* Several new information elements have been added to `Page` and `Node`:
|
||||
* `RuneCount`: The number of [runes](http://blog.golang.org/strings) in the content, excluding any whitespace. This may be a good alternative to `.WordCount` for Japanese and other CJK languages where a word-split by spaces makes no sense. {{< gh 1266 >}}
|
||||
* `RawContent`: Raw Markdown as a string. One use case may be of embedding remarkjs.com slides.
|
||||
* `IsHome`: tells the truth about whether you're on the home page or not.
|
||||
|
||||
### Improvements
|
||||
* `hugo server` now builds ~30%+ faster by rendering to memory instead of disk. To get the old behavior, start the server with `--renderToDisk=true`.
|
||||
* Hugo now supports dynamic reloading of the config file when watching.
|
||||
* We now use a custom-built `LazyFileReader` for reading file contents, which means we don't read media files in `/content` into memory anymore -- and file reading is now performed in parallel on multicore PCs. {{< gh 1181 >}}
|
||||
* Hugo is now built with `Go 1.5` which, among many other improvements, have fixed the last known data race in Hugo. {{< gh 917 >}}
|
||||
* Paginator now also supports page groups. {{< gh 1274 >}}
|
||||
* Markdown improvements:
|
||||
* Hugo now supports GitHub-flavoured markdown code fences for highlighting for `md`-files (Blackfriday rendered markdown) and `mmark` files (MMark rendered markdown). {{< gh 362 1258 >}}
|
||||
* Several new Blackfriday options are added:
|
||||
* Option to disable Blackfriday's `Smartypants`.
|
||||
* Option for Blackfriday to open links in a new window/tab. {{< gh 1220 >}}
|
||||
* Option to disable Blackfriday's LaTeX style dashes {{< gh 1231 >}}
|
||||
* Definition lists extension support.
|
||||
* `Scratch` now has built-in `map` support.
|
||||
* We now fall back to `link title` for the default page sort. {{< gh 1299 >}}
|
||||
* Some notable new configuration options:
|
||||
* `IgnoreFiles` can be set with a list of Regular Expressions that matches files to be ignored during build. {{< gh 1189 >}}
|
||||
* `PreserveTaxonomyNames`, when set to `true`, will preserve what you type as the taxonomy name both in the folders created and the taxonomy `key`, but it will be normalized for the URL. {{< gh 1180 >}}
|
||||
* `hugo gen` can now generate man files, bash auto complete and markdown documentation
|
||||
* Hugo will now make suggestions when a command is mistyped
|
||||
* Shortcodes now have a boolean `.IsNamedParams` property. {{< gh 1597 >}}
|
||||
|
||||
### New Template Features
|
||||
* All template engines:
|
||||
* The new `dict` function that could be used to pass maps into a template. {{< gh 1463 >}}
|
||||
* The new `pluralize` and `singularize` template funcs.
|
||||
* The new `base64Decode` and `base64Encode` template funcs.
|
||||
* The `sort` template func now accepts field/key chaining arguments and pointer values. {{< gh 1330 >}}
|
||||
* Several fixes for `slicestr` and `substr`, most importantly, they now have full `utf-8`-support. {{< gh 1190 1333 1347 >}}
|
||||
* The new `last` template function allows the user to select the last `N` items of a slice. {{< gh 1148 >}}
|
||||
* The new `after` func allows the user to select the items after the `Nth` item. {{< gh 1200 >}}
|
||||
* Add `time.Time` type support to the `where`, `ge`, `gt`, `le`, and `lt` template functions.
|
||||
* It is now possible to use constructs like `where Values ".Param.key" nil` to filter pages that doesn't have a particular parameter. {{< gh 1232 >}}
|
||||
* `getJSON`/`getCSV`: Add retry on invalid content. {{< gh 1166 >}}
|
||||
* The new `readDir` func lists local files. {{< gh 1204 >}}
|
||||
* The new `safeJS` function allows the embedding of content into JavaScript contexts in Go templates.
|
||||
* Get the main site RSS link from any page by accessing the `.Site.RSSLink` property. {{< gh 1566 >}}
|
||||
* Ace templates:
|
||||
* Base templates now also works in themes. {{< gh 1215 >}}.
|
||||
* And now also on Windows. {{< gh 1178 >}}
|
||||
* Full support for Amber templates including all template functions.
|
||||
* A built-in template for Google Analytics. {{< gh 1505 >}}
|
||||
* Hugo is now shipped with new built-in shortcodes: {{< gh 1576 >}}
|
||||
* `youtube` for YouTube videos
|
||||
* `vimeo` for Vimeo videos
|
||||
* `gist` for GitHub gists
|
||||
* `tweet` for Twitter Tweets
|
||||
* `speakerdeck` for Speakerdeck slides
|
||||
|
||||
|
||||
### Bugfixes
|
||||
* Fix data races in page sorting and page reversal. These operations are now also cached. {{< gh 1293 >}}
|
||||
* `page.HasMenuCurrent()` and `node.HasMenuCurrent()` now work correctly in multi-level nested menus.
|
||||
* Support `Fish and Chips` style section titles. Previously, this would end up as `Fish And Chips`. Now, the first character is made toupper, but the rest are preserved as-is. {{< gh 1176 >}}
|
||||
* Hugo now removes superfluous p-tags around shortcodes. {{< gh 1148 >}}
|
||||
|
||||
### Notices
|
||||
* `hugo server` will watch by default now.
|
||||
* Some fields and methods were deprecated in `0.14`. These are now removed, so the error message isn't as friendly if you still use the old values. So please change:
|
||||
* `getJson` to `getJSON`, `getCsv` to `getCSV`, `safeHtml` to
|
||||
`safeHTML`, `safeCss` to `safeCSS`, `safeUrl` to `safeURL`, `Url` to `URL`,
|
||||
`UrlPath` to `URLPath`, `BaseUrl` to `BaseURL`, `Recent` to `Pages`.
|
||||
|
||||
### Known Issues
|
||||
|
||||
Using the Hugo v0.15 32-bit Windows or ARM binary, running `hugo server` would crash or hang due to a [memory alignment issue](https://golang.org/pkg/sync/atomic/#pkg-note-BUG) in [Afero](https://github.com/spf13/afero). The bug was discovered shortly after the v0.15.0 release and has since been [fixed](https://github.com/spf13/afero/pull/23) by {{< gh "@tpng" >}}. If you encounter this bug, you may either compile Hugo v0.16-DEV from source, or use the following solution/workaround:
|
||||
|
||||
* **64-bit Windows users: Please use [hugo_0.15_windows_amd64.zip](https://github.com/gohugoio/hugo/releases/download/v0.15/hugo_0.15_windows_amd64.zip)** (amd64 == x86-64). It is only the 32-bit hugo_0.15_windows_386.zip that crashes/hangs (see {{< gh 1621 >}} and {{< gh 1628 >}}).
|
||||
* **32-bit Windows and ARM users: Please run `hugo server --renderToDisk` as a workaround** until Hugo v0.16 is released (see [“hugo server” returns runtime error on armhf](https://discourse.gohugo.io/t/hugo-server-returns-runtime-error-on-armhf/2293) and {{< gh 1716 >}}).
|
||||
|
||||
----
|
||||
|
||||
## **0.14.0** May 25, 2015
|
||||
|
||||
The v0.14.0 Hugo release brings of the most demanded features to Hugo. The
|
||||
foundation of Hugo is stabilizing nicely and a lot of polish has been added.
|
||||
We’ve expanded support for additional content types with support for AsciiDoc,
|
||||
Restructured Text, HTML and Markdown. Some of these types depend on external
|
||||
libraries as there does not currently exist native support in Go. We’ve tried
|
||||
to make the experience as seamless as possible. Look for more improvements here
|
||||
in upcoming releases.
|
||||
|
||||
A lot of work has been done to improve the user experience, with extra polish
|
||||
to the Windows experience. Hugo errors are more helpful overall and Hugo now
|
||||
can detect if it’s being run in Windows Explorer and provide additional
|
||||
instructions to run it via the command prompt.
|
||||
|
||||
The Hugo community continues to grow. Hugo has over 4000 stars on github, 165
|
||||
contributors, 35 themes and 1000s of happy users. It is now the 5th most
|
||||
popular static site generator (by Stars) and has the 3rd largest contributor
|
||||
community.
|
||||
|
||||
This release represents over **240 contributions by 36 contributors** to the main
|
||||
Hugo codebase.
|
||||
|
||||
Big shout out to {{< gh "@bep" >}} who led the development of Hugo
|
||||
this release, {{< gh "@anthonyfok" >}},
|
||||
{{< gh "@eparis" >}},
|
||||
{{< gh "@SchumacherFM" >}},
|
||||
{{< gh "@RickCogley" >}} &
|
||||
{{< gh "@mdhender" >}} for their significant contributions
|
||||
and {{< gh "@tatsushid" >}} for his continuous improvements
|
||||
to the templates. Also a big thanks to all the theme creators. 11 new themes
|
||||
have been added since last release and the [hugoThemes repo now has previews of
|
||||
all of
|
||||
them](https://github.com/gohugoio/hugoThemes/blob/master/README.md#theme-list).
|
||||
|
||||
Hugo also depends on a lot of other great projects. A big thanks to all of our dependencies including:
|
||||
[cobra](https://github.com/spf13/cobra),
|
||||
[viper](https://github.com/spf13/viper),
|
||||
[blackfriday](https://github.com/russross/blackfriday),
|
||||
[pflag](https://github.com/spf13/pflag),
|
||||
[HugoThemes](https://github.com/gohugoio/hugothemes),
|
||||
[BurntSushi](https://github.com/BurntSushi/toml),
|
||||
[goYaml](https://github.com/go-yaml/yaml/tree/v2), and the Go standard library.
|
||||
|
||||
## New features
|
||||
* Support for all file types in content directory.
|
||||
* If dedicated file type handler isn’t found it will be copied to the destination.
|
||||
* Add `AsciiDoc` support using external helpers.
|
||||
* Add experimental support for [`Mmark`](https://github.com/miekg/mmark) markdown processor
|
||||
* Bash autocomplete support via `genautocomplete` command
|
||||
* Add section menu support for a [Section Menu for "the Lazy Blogger"]({{< relref "extras/menus.md#section-menu-for-the-lazy-blogger" >}})
|
||||
* Add support for `Ace` base templates
|
||||
* Adding `RelativeURLs = true` to site config will now make all the relative URLs relative to the content root.
|
||||
* New template functions:
|
||||
* `getenv`
|
||||
* The string functions `substr` and `slicestr`
|
||||
* `seq`, a sequence generator very similar to its Gnu counterpart
|
||||
* `absURL` and `relURL`, both of which takes the `BaseURL` setting into account
|
||||
|
||||
## Improvements
|
||||
* Highlighting with `Pygments` is now cached to disk -- expect a major speed boost if you use it!
|
||||
* More Pygments highlighting options, including `line numbers`
|
||||
* Show help information to Windows users who try to double click on `hugo.exe`.
|
||||
* Add `bind` flag to `hugo server` to set the interface to which the server will bind
|
||||
* Add support for `canonifyURLs` in `srcset`
|
||||
* Add shortcode support for HTML (content) files
|
||||
* Allow the same `shortcode` to be used with or without inline content
|
||||
* Configurable RSS output filename
|
||||
|
||||
## Bugfixes
|
||||
* Fix panic with paginator and zero pages in result set.
|
||||
* Fix crossrefs on Windows.
|
||||
* Fix `eq` and `ne` template functions when used with a raw number combined with the result of `add`, `sub` etc.
|
||||
* Fix paginator with uglyURLs
|
||||
* Fix {{< gh 998 >}}, supporting UTF8 characters in Permalinks.
|
||||
|
||||
## Notices
|
||||
* To get variable and function names in line with the rest of the Go community,
|
||||
a set of variable and function names has been deprecated: These will still
|
||||
work in 0.14, but will be removed in 0.15. What to do should be obvious by
|
||||
the build log; `getJson` to `getJSON`, `getCsv` to `getCSV`, `safeHtml` to
|
||||
`safeHTML`, `safeCss` to `safeCSS`, `safeUrl` to `safeURL`, `Url` to `URL`,
|
||||
`UrlPath` to `URLPath`, `BaseUrl` to `BaseURL`, `Recent` to `Pages`,
|
||||
`Indexes` to `Taxonomies`.
|
||||
|
||||
|
||||
----
|
||||
|
||||
## **0.13.0** Feb 21, 2015
|
||||
|
||||
The v0.13.0 release is the largest Hugo release to date. The release introduced
|
||||
some long sought after features (pagination, sequencing, data loading, tons of
|
||||
template improvements) as well as major internal improvements. In addition to
|
||||
the code changes, the Hugo community has grown significantly and now has over
|
||||
3000 stars on github, 134 contributors, 24 themes and 1000s of happy users.
|
||||
|
||||
This release represents **448 contributions by 65 contributors**
|
||||
|
||||
A special shout out to {{< gh "@bep" >}} and
|
||||
{{< gh "@anthonyfok" >}} for their new role as Hugo
|
||||
maintainers and their tremendous contributions this release.
|
||||
|
||||
### New major features
|
||||
* Support for [data files](/extras/datafiles/) in [YAML](http://yaml.org/),
|
||||
[JSON](http://www.json.org/), or [TOML](https://github.com/toml-lang/toml)
|
||||
located in the `data` directory ({{< gh 885 >}})
|
||||
* Support for [dynamic content](/extras/dynamiccontent/) by loading JSON & CSV
|
||||
from remote sources via GetJson and GetCsv in short codes or other layout
|
||||
files ({{< gh 748 >}})
|
||||
* [Pagination support](/extras/pagination/) for home page, sections and
|
||||
taxonomies ({{< gh 750 >}})
|
||||
* Universal sequencing support
|
||||
* A new, generic Next/Prev functionality is added to all lists of pages
|
||||
(sections, taxonomies, etc.)
|
||||
* Add in-section [Next/Prev](/templates/variables/) content pointers
|
||||
* `Scratch` -- [a "scratchpad"](/extras/scratch) for your node- and page-scoped
|
||||
variables
|
||||
* [Cross Reference](/extras/crossreferences/) support to easily link documents
|
||||
together with the ref and relref shortcodes.
|
||||
* [Ace](http://ace.yoss.si/) template engine support ({{< gh 541 >}})
|
||||
* A new [shortcode](/extras/shortcodes/) token of `{{</* */>}}` (raw HTML)
|
||||
alongside the existing `{{%/* */%}}` (Markdown)
|
||||
* A top level `Hugo` variable (on Page & Node) is added with various build
|
||||
information
|
||||
* Several new ways to order and group content:
|
||||
* `ByPublishDate`
|
||||
* `GroupByPublishDate(format, order)`
|
||||
* `GroupByParam(key, order)`
|
||||
* `GroupByParamDate(key, format, order)`
|
||||
* Hugo has undergone a major refactoring, with a new handler system and a
|
||||
generic file system. This sounds and is technical, but will pave the way for
|
||||
new features and make Hugo even speedier
|
||||
|
||||
### Notable enhancements to existing features
|
||||
|
||||
* The [shortcode](/extras/shortcodes/) handling is rewritten for speed and
|
||||
better error messages.
|
||||
* Several improvements to the [template functions](/templates/functions/):
|
||||
* `where` is now even more powerful and accepts SQL-like syntax with the
|
||||
operators `==`, `eq`; `!=`, `<>`, `ne`; `>=`, `ge`; `>`, `gt`; `<=`,
|
||||
`le`; `<`, `lt`; `in`, `not in`
|
||||
* `where` template function now also accepts dot chaining key argument
|
||||
(e.g. `"Params.foo.bar"`)
|
||||
* New template functions:
|
||||
* `apply`
|
||||
* `chomp`
|
||||
* `delimit`
|
||||
* `sort`
|
||||
* `markdownify`
|
||||
* `in` and `intersect`
|
||||
* `trim`
|
||||
* `replace`
|
||||
* `dateFormat`
|
||||
* Several [configurable improvements related to Markdown
|
||||
rendering](/overview/configuration/#configure-blackfriday-rendering:a66b35d20295cb764719ac8bd35837ec):
|
||||
* Configuration of footnote rendering
|
||||
* Optional support for smart angled quotes, e.g. `"Hugo"` → «Hugo»
|
||||
* Enable descriptive header IDs
|
||||
* URLs in XML output is now correctly canonified ({{< gh 725 728 >}}, and part
|
||||
of {{< gh 789 >}})
|
||||
|
||||
### Other improvements
|
||||
|
||||
* Internal change to use byte buffer pool significantly lowering memory usage
|
||||
and providing measurable performance improvements overall
|
||||
* Changes to docs:
|
||||
* A new [Troubleshooting](/troubleshooting/overview/) section is added
|
||||
* It's now searchable through Google Custom Search ({{< gh 753 >}})
|
||||
* Some new great tutorials:
|
||||
* [Automated deployments with
|
||||
Wercker](/tutorials/automated-deployments/)
|
||||
* [Creating a new theme](/tutorials/creating-a-new-theme/)
|
||||
* [`hugo new`](/content/archetypes/) now copies the content in addition to the front matter
|
||||
* Improved unit test coverage
|
||||
* Fixed a lot of Windows-related path issues
|
||||
* Improved error messages for template and rendering errors
|
||||
* Enabled soft LiveReload of CSS and images ({{< gh 490 >}})
|
||||
* Various fixes in RSS feed generation ({{< gh 789 >}})
|
||||
* `HasMenuCurrent` and `IsMenuCurrent` is now supported on Nodes
|
||||
* A bunch of [bug fixes](https://github.com/gohugoio/hugo/commits/master)
|
||||
|
||||
----
|
||||
|
||||
## **0.12.0** Sept 1, 2014
|
||||
|
||||
A lot has happened since Hugo v0.11.0 was released. Most of the work has been
|
||||
focused on polishing the theme engine and adding critical functionality to the
|
||||
templates.
|
||||
|
||||
This release represents over 90 code commits from 28 different contributors.
|
||||
|
||||
* 10 [new themes](https://github.com/gohugoio/hugoThemes) created by the community
|
||||
* Fully themable [Partials](/templates/partials/)
|
||||
* [404 template](/templates/404/) support in themes
|
||||
* [Shortcode](/extras/shortcodes/) support in themes
|
||||
* [Views](/templates/views/) support in themes
|
||||
* Inner [shortcode](/extras/shortcodes/) content now treated as Markdown
|
||||
* Support for header ids in Markdown (# Header {#myid})
|
||||
* [Where](/templates/list/) template function to filter lists of content, taxonomies, etc.
|
||||
* [GroupBy](/templates/list/) & [GroupByDate](/templates/list/) methods to group pages
|
||||
* Taxonomy [pages list](/taxonomies/methods/) now sortable, filterable, limitable & groupable
|
||||
* General cleanup to taxonomies & documentation to make it more clear and consistent
|
||||
* [Showcase](/showcase/) returned and has been expanded
|
||||
* Pretty links now always have trailing slashes
|
||||
* [BaseUrl](/overview/configuration/) can now include a subdirectory
|
||||
* Better feedback about draft & future post rendering
|
||||
* A variety of improvements to [the website](http://gohugo.io/)
|
||||
|
||||
----
|
||||
|
||||
## **0.11.0** May 28, 2014
|
||||
|
||||
This release represents over 110 code commits from 29 different contributors.
|
||||
|
||||
* Considerably faster... about 3 - 4x faster on average
|
||||
* [LiveReload](/extras/livereload/). Hugo will automatically reload the browser when the build is complete
|
||||
* Theme engine w/[Theme Repository](https://github.com/gohugoio/hugoThemes)
|
||||
* [Menu system](/extras/menus/) with support for active page
|
||||
* [Builders](/extras/builders/) to quickly create a new site, content or theme
|
||||
* [XML sitemap](/templates/sitemap/) generation
|
||||
* [Integrated Disqus](/extras/comments/) support
|
||||
* Streamlined [template organization](/templates/overview/)
|
||||
* [Brand new docs site](http://gohugo.io/)
|
||||
* Support for publishDate which allows for posts to be dated in the future
|
||||
* More [sort](/content/ordering/) options
|
||||
* Logging support
|
||||
* Much better error handling
|
||||
* More informative verbose output
|
||||
* Renamed Indexes > [Taxonomies](/taxonomies/overview/)
|
||||
* Renamed Chrome > [Partials](/templates/partials/)
|
||||
|
||||
----
|
||||
|
||||
## **0.10.0** March 1, 2014
|
||||
|
||||
This release represents over 110 code commits from 29 different contributors.
|
||||
|
||||
* [Syntax highlighting](/extras/highlighting/) powered by pygments (**slow**)
|
||||
* Ability to [sort content](/content/ordering/) many more ways
|
||||
* Automatic [table of contents](/extras/toc/) generation
|
||||
* Support for Unicode URLs, aliases and indexes
|
||||
* Configurable per-section [permalink](/extras/permalinks/) pattern support
|
||||
* Support for [paired shortcodes](/extras/shortcodes/)
|
||||
* Shipping with some [shortcodes](/extras/shortcodes/) (highlight & figure)
|
||||
* Adding [canonify](/extras/urls/) option to keep urls relative
|
||||
* A bunch of [additional template functions](/layout/functions/)
|
||||
* Watching very large sites now works on Mac
|
||||
* RSS generation improved. Limited to 50 items by default, can limit further in [template](/layout/rss/)
|
||||
* Boolean params now supported in [frontmatter](/content/front-matter/)
|
||||
* Launched website [showcase](/showcase/). Show off your own hugo site!
|
||||
* A bunch of [bug fixes](https://github.com/gohugoio/hugo/commits/master)
|
||||
|
||||
----
|
||||
|
||||
## **0.9.0** November 15, 2013
|
||||
|
||||
This release represents over 220 code commits from 22 different contributors.
|
||||
|
||||
* New [command based interface](/overview/usage/) similar to git (`hugo server -s ./`)
|
||||
* Amber template support
|
||||
* [Aliases](/extras/aliases/) (redirects)
|
||||
* Support for top level pages (in addition to homepage)
|
||||
* Complete overhaul of the documentation site
|
||||
* Full Windows support
|
||||
* Better index support including [ordering by content weight](/content/ordering/)
|
||||
* Add params to site config, available in .Site.Params from templates
|
||||
* Friendlier json support
|
||||
* Support for html & xml content (with frontmatter support)
|
||||
* Support for [summary](/content/summaries/) content divider (<code><!--more--></code>)
|
||||
* HTML in [summary](/content/summaries/) (when using divider)
|
||||
* Added ["Minutes to Read"](/layout/variables/) functionality
|
||||
* Support for a custom 404 page
|
||||
* Cleanup of how content organization is handled
|
||||
* Loads of unit and performance tests
|
||||
* Integration with travis ci
|
||||
* Static directory now watched and copied on any addition or modification
|
||||
* Support for relative permalinks
|
||||
* Fixed watching being triggered multiple times for the same event
|
||||
* Watch now ignores temp files (as created by Vim)
|
||||
* Configurable number of posts on [homepage](/layout/homepage/)
|
||||
* [Front matter](/content/front-matter/) supports multiple types (int, string, date, float)
|
||||
* Indexes can now use a default template
|
||||
* Addition of truncated bool to content to determine if should show 'more' link
|
||||
* Support for [linkTitles](/layout/variables/)
|
||||
* Better handling of most errors with directions on how to resolve
|
||||
* Support for more date / time formats
|
||||
* Support for go 1.2
|
||||
* Support for `first` in templates
|
||||
|
||||
----
|
||||
|
||||
## **0.8.0** August 2, 2013
|
||||
|
||||
This release represents over 65 code commits from 6 different contributors.
|
||||
|
||||
* 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
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2016-05-03T17:20:59+09:00
|
||||
description: "Personal blog of Masashi Tsuru"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://2626.info/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/2626info-tn.png
|
||||
title: 2626.info
|
||||
---
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-01-27
|
||||
date: 2014-02-03T20:00:00Z
|
||||
description: Ant Zucaro's Blog
|
||||
license: GPL
|
||||
licenseLink: ""
|
||||
sitelink: http://antzucaro.com/
|
||||
sourceLink: https://github.com/antzucaro/az.com
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- foundation
|
||||
thumbnail: /img/antzucaro-tn.jpg
|
||||
title: Ant Zucaro
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2016-04-26
|
||||
date: 2016-04-26T13:33:33Z
|
||||
description: Appernetic.io blog
|
||||
license: MIT
|
||||
licenseLink: https://github.com/appernetic/hugo-bootstrap-premium/blob/master/LICENSE.md
|
||||
sitelink: https://blog.appernetic.io/
|
||||
sourceLink: https://github.com/appernetic/hugo-bootstrap-premium
|
||||
tags:
|
||||
- company
|
||||
- blog
|
||||
- bootstrap
|
||||
thumbnail: /img/apperneticioblog.png
|
||||
title: Appernetic
|
||||
---
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-11-20
|
||||
date: 2015-11-20T01:46:33-06:00
|
||||
description: "Arrested DevOps is a podcast focusing on trends in the DevOps space"
|
||||
license: "apache2"
|
||||
licenseLink: "https://github.com/arresteddevops/ado-hugo/blob/master/LICENSE.md"
|
||||
sitelink: https://www.arresteddevops.com/
|
||||
sourceLink: https://github.com/arresteddevops/ado-hugo
|
||||
tags:
|
||||
- podcast
|
||||
- bootstrap
|
||||
thumbnail: /img/arresteddevops-tn.png
|
||||
title: arresteddevops
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-01-27
|
||||
date: 2014-01-22T07:32:00Z
|
||||
description: ""
|
||||
license: CC-BY-SA
|
||||
licenseLink: ""
|
||||
sitelink: http://andrewcodispoti.com/
|
||||
sourceLink: https://gitlab.com/acodispo/andrewcodispoti-com
|
||||
tags:
|
||||
- personal
|
||||
- bootstrap
|
||||
thumbnail: /img/asc-tn.jpg
|
||||
title: Andrew S Codispoti
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2016-07-31T11:22:32+03:00
|
||||
description: "Personal website"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://romansilin.com/
|
||||
sourceLink: https://github.com/astrochili/astrochili.github.io
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/astrochili-tn.png
|
||||
title: Roman Silin
|
||||
---
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2016-04-23T13:23:00Z
|
||||
description: "web applications"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://aydos.com/
|
||||
tags:
|
||||
- web applications
|
||||
thumbnail: /img/aydoscom.png
|
||||
title: aydos.com
|
||||
---
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2016-11-17T12:27:18+05:30
|
||||
description: "Dr. Bala Ramadurai, Professor & Consultant in Innovation, Design Thinking and Tech Forecasting"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://balaramadurai.net
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/balaramadurai-net-tn.jpg
|
||||
title: Dr. Bala Ramadurai | Professor & Consultant in Innovation, Design Thinking and Tech Forecasting
|
||||
---
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2016-04-15T14:14:28+01:00
|
||||
description: "Barricade is an early warning system against hackers."
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://barricade.io
|
||||
tags:
|
||||
- company
|
||||
- security
|
||||
thumbnail: /img/barricade-tn.png
|
||||
title: Barricade
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-05-26
|
||||
date: 2013-11-01T07:32:00Z
|
||||
description: "bep's blog"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://bepsays.com/
|
||||
sourceLink: "https://github.com/bep/bepsays.com"
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/bepsays-tn.png
|
||||
title: bepsays.com
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2017-03-15T07:32:00Z
|
||||
description: "Bharath M. Palavalli"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://bharathpalavalli.com
|
||||
sourceLink: https://github.com/bmp/bharathmp-hugo/tree/gh-pages
|
||||
tags:
|
||||
- personal
|
||||
- website
|
||||
thumbnail: /img/bharathpalavalli-tn.png
|
||||
title: bharathpalavalli.com
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-10-27
|
||||
date: 2015-10-27T09:02:00Z
|
||||
description: bugtrackers.io provides stories of digital crafters. It shows people behind bits, pixels and bug reports. bugtrackers.io is your resource for web development.
|
||||
sitelink: https://www.bugtrackers.io/
|
||||
tags:
|
||||
- blog
|
||||
- community
|
||||
- interviews
|
||||
thumbnail: /img/bugtrackersio-tn.jpg
|
||||
title: bugtrackers.io
|
||||
---
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
---
|
||||
date: 2017-02-11T10:30:00+02:00
|
||||
description: "German language GOLD REPORT. Tips, tricks, news & glossary on coins, bullion bars and precious-metals investments."
|
||||
sitelink: https://www.bullion-investor.com/report/
|
||||
tags:
|
||||
- 'gold price'
|
||||
- blog
|
||||
- coins
|
||||
- deutschland
|
||||
- finance
|
||||
- germany
|
||||
- gold
|
||||
- investment
|
||||
- news
|
||||
- numismatics
|
||||
- palladium
|
||||
- platinum
|
||||
- report
|
||||
- silver
|
||||
thumbnail: /img/bullion-investor-com.png
|
||||
title: GOLDREPORT — Gold, Silver & Numismatics News
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-11-30
|
||||
date: 2015-12-01T04:20:00Z
|
||||
description: "Camunda BPM Team Blog"
|
||||
license: "Apache 2.0"
|
||||
licenseLink: "https://github.com/camunda/blog.camunda.org#license"
|
||||
sitelink: http://blog.camunda.org/
|
||||
sourceLink: https://github.com/camunda/blog.camunda.org
|
||||
tags:
|
||||
- company
|
||||
- blog
|
||||
thumbnail: /img/camunda-blog.png
|
||||
title: Camunda Blog
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-11-30
|
||||
date: 2015-12-01T04:20:00Z
|
||||
description: "Camunda BPM Documentation"
|
||||
license: MIT
|
||||
licenseLink: "https://github.com/camunda/camunda-docs-theme#licence"
|
||||
sitelink: http://docs.camunda.org/
|
||||
sourceLink: https://github.com/camunda/camunda-docs-theme
|
||||
tags:
|
||||
- company
|
||||
- documentation
|
||||
thumbnail: /img/camunda-docs.png
|
||||
title: Camunda Docs
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2017-05-13T11:00:00Z
|
||||
description: "Tools, guides, and interactive resources for growers of all carnivorous plant species."
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://www.carnivorousplants.co.uk/
|
||||
tags:
|
||||
- blog
|
||||
- education
|
||||
thumbnail: /img/carnivorousplants-tn.png
|
||||
title: CarnivorousPlants.co.uk
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2016-02-17T15:19:08+01:00
|
||||
description: "Overview and comparison of CDNs, their features and prices"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://www.cdnoverview.com/
|
||||
tags:
|
||||
- bootstrap
|
||||
- portfolio
|
||||
- tech
|
||||
thumbnail: /img/cdnoverview-tn.png
|
||||
title: cdnoverview.com
|
||||
---
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-08-21
|
||||
date: 2015-08-23
|
||||
description: Chinese grammar lessons
|
||||
sitelink: https://www.chineseboost.com/grammar/
|
||||
sourceLink: https://github.com/hughgrigg/chineseboost-articles
|
||||
tags:
|
||||
- learning
|
||||
- education
|
||||
thumbnail: /img/chinese-grammar-tn.png
|
||||
title: Chinese Grammar
|
||||
---
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-12-19
|
||||
date: 2014-08-26T11:20:02-04:00
|
||||
description: "chingli’s personal blog"
|
||||
sitelink: http://www.chingli.com/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/chingli-tn.jpg
|
||||
title: <span lang="zh-CN">青砾</span> (chingli)
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2016-04-14
|
||||
date: 2015-07-08T14:02:16+02:00
|
||||
description: "personal blog and portfolio of Samuel Debruyn"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://chipsncookies.com
|
||||
sourceLink: https://github.com/SamuelDebruyn/chipsncookies-site
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/chipsncookies-tn.png
|
||||
title: Chips 'n' Cookies
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
lastmod: 2017-06-30
|
||||
date: 2016-10-16T13:30:47-04:00
|
||||
description: "Personal site"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://www.christianmendoza.me/
|
||||
sourceLink: https://github.com/christianmendoza/christianmendoza.me
|
||||
tags:
|
||||
- personal
|
||||
- profile
|
||||
thumbnail: /img/christianmendoza-tn.jpg
|
||||
title: christianmendoza.me
|
||||
---
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2016-09-05T23:23:18+02:00
|
||||
description: "Cinegy Open documentation project"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://open.cinegy.com/
|
||||
sourceLink:
|
||||
tags:
|
||||
- documentation
|
||||
thumbnail: /img/cinegyopen-tn.png
|
||||
title: Cinegy Open
|
||||
---
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2016-10-21T12:37:00+02:00
|
||||
description: "Online Acquiring · Accept Visa & MasterCard within 1-3 days"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://www.clearhaus.com/
|
||||
tags:
|
||||
- company
|
||||
- fintech
|
||||
- payments
|
||||
- acquirer
|
||||
thumbnail: /img/clearhaus-tn.png
|
||||
title: Clearhaus
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-01-27
|
||||
date: 2014-03-27T09:45:00Z
|
||||
description: CloudShark Appliance homepage and documentation
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://appliance.cloudshark.org/
|
||||
tags:
|
||||
- company
|
||||
- documentation
|
||||
- foundation
|
||||
thumbnail: /img/cloudshark-tn.jpg
|
||||
title: CloudShark
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-12-23
|
||||
date: 2015-12-23T11:42:00+01:00
|
||||
description: blog, portfolio
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://blog.kulman.sk/
|
||||
sourceLink: https://github.com/igorkulman/coding-journal
|
||||
tags:
|
||||
- blog
|
||||
- portfolio
|
||||
thumbnail: /img/codingjournal-tn.png
|
||||
title: Coding Journal
|
||||
---
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-02-11
|
||||
date: 2015-02-11T13:21:27+11:00
|
||||
description: "consequently.org, Greg Restall's personal website"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://consequently.org
|
||||
sourceLink: "https://github.com/consequently/consequently-hugo"
|
||||
tags:
|
||||
- academic
|
||||
- blog
|
||||
- kube
|
||||
thumbnail: /img/consequently.jpg
|
||||
title: consequently.org
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2016-07-25T13:45:09-04:00
|
||||
description: "CompilED is a collection of reflections and comments by the software developers at Columbia’s Center for Teaching and Learning (CTL). These views are rooted in our professional and personal experiences developing educational technology."
|
||||
license: "Creative Commons Attribution-ShareAlike 3.0 United States."
|
||||
licenseLink: "https://creativecommons.org/licenses/by-sa/3.0/us/"
|
||||
sitelink: https://compiled.ctl.columbia.edu/
|
||||
tags:
|
||||
- edtech
|
||||
- technology
|
||||
- blog
|
||||
thumbnail: /img/ctlcompiled-tn.png
|
||||
title: CompilED at CTL
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2014-08-26
|
||||
date: 2014-08-26T10:55:23-04:00
|
||||
description: ""
|
||||
license: MIT
|
||||
licenseLink: ""
|
||||
sitelink: http://danmux.com/
|
||||
sourceLink: https://github.com/danmux/danmux-hugo
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/danmux-tn.jpg
|
||||
title: Danmux
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2016-02-04T18:30:07-05:00
|
||||
description: "Professional website at datapipelinearchitect.com"
|
||||
sitelink: http://datapipelinearchitect.com/
|
||||
tags:
|
||||
- company
|
||||
- tech
|
||||
- blog
|
||||
- website
|
||||
thumbnail: /img/datapipelinearchitect-tn.jpg
|
||||
title: Data Pipeline Architect
|
||||
---
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-05-25
|
||||
date: 2013-11-01T07:32:00Z
|
||||
description: ""
|
||||
license: MIT
|
||||
licenseLink: ""
|
||||
sitelink: http://davidepetilli.com
|
||||
tags:
|
||||
- personal
|
||||
- photography
|
||||
- portfolio
|
||||
- blog
|
||||
thumbnail: /img/davidepetilli-tn.jpg
|
||||
title: Davide Petilli
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
date: 2016-02-03T11:49:07-05:00
|
||||
description: "Personal website for David Allen"
|
||||
license: "MIT"
|
||||
licenseLink: "https://opensource.org/licenses/MIT"
|
||||
sitelink: http://davidrallen.com/
|
||||
sourceLink: https://github.com/doctorallen/davidrallen.com
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- tech
|
||||
thumbnail: /img/davidrallen-tn.png
|
||||
title: David Allen
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2016-09-10T07:07:39+02:00
|
||||
description: "David Yates"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://davidyat.es/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/davidyates-tn.png
|
||||
title: David Yates
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
date: 2017-01-02T07:32:00Z
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://dbzman-online.eu/
|
||||
sourceLink: https://github.com/Dbzman/dbzman-online.eu
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- portfolio
|
||||
thumbnail: /img/dbzman-online-tn.png
|
||||
title: Dbzman-Online
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2014-08-26
|
||||
date: 2014-08-26T11:31:02-04:00
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://devmonk.com/
|
||||
sourceLink: https://github.com/peteraba/devmonk.com
|
||||
tags:
|
||||
- educational
|
||||
- video
|
||||
thumbnail: /img/devmonk-tn.jpg
|
||||
title: devmonk
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2016-10-19T16:52:28+02:00
|
||||
description: "Personal blog"
|
||||
license: "CC BY-NC 4.0"
|
||||
licenseLink: ""
|
||||
sitelink: http://dmitriid.com/
|
||||
sourceLink: https://github.com/dmitriid/dmitriid.com
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/dmitriid.com.png
|
||||
title: dmitriid.com
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
lastmod: 2016-01-09
|
||||
date: 2016-01-09T01:00:10Z
|
||||
description: Personal homepage
|
||||
sitelink: https://emilyhorsman.com/
|
||||
sourceLink: https://github.com/emilyhorsman/buttercup
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/emilyhorsman.com-tn.jpg
|
||||
title: emilyhorsman.com
|
||||
---
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
date: 2017-03-07T07:32:00Z
|
||||
description: "Indian Recipes Blog"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://enjoyable.recipes/
|
||||
sourceLink: https://github.com/shubhojyoti/enjoyablerecipes-hugo
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- recipes
|
||||
- zurb-foundation
|
||||
thumbnail: /img/enjoyablerecipes-tn.png
|
||||
title: Enjoyable Recipes
|
||||
---
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
date: 2017-04-02T07:32:00Z
|
||||
description: "Personal blog of Enrique Saez Gil - esaezgil"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://esaezgil.com
|
||||
sourceLink: https://github.com/esaezgil/esaezgil.github.io
|
||||
tags:
|
||||
- personal
|
||||
- technical blog
|
||||
- software
|
||||
- open source
|
||||
thumbnail: /img/esaezgil_com-tn.png
|
||||
title: esaezgil.com
|
||||
---
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-08-08
|
||||
date: 2015-07-07T04:32:00Z
|
||||
description: Tokyo IT service provider eSolia Inc's Hugo-powered website.
|
||||
license: MIT
|
||||
licenseLink: ""
|
||||
sitelink: http://esolia.com/
|
||||
sourceLink: https://github.com/eSolia/eSolia
|
||||
tags:
|
||||
- company
|
||||
- esolia
|
||||
- rickcogley
|
||||
- japan
|
||||
thumbnail: /img/esolia_com-tn.png
|
||||
title: eSolia.com
|
||||
---
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-08-08
|
||||
date: 2015-07-07T04:32:00Z
|
||||
description: Tokyo IT service provider eSolia Inc's eSolia.pro blog site, powered by Hugo.
|
||||
license: MIT
|
||||
licenseLink: ""
|
||||
sitelink: http://esolia.pro/
|
||||
sourceLink: https://github.com/eSolia/eSolia.pro
|
||||
tags:
|
||||
- company
|
||||
- esolia
|
||||
- rickcogley
|
||||
- japan
|
||||
thumbnail: /img/esolia_pro-tn.png
|
||||
title: eSolia.pro
|
||||
---
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
date: 2016-10-15T23:30:59+09:00
|
||||
description: "User guide for euire Desk"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://docs.eurie.io
|
||||
tags:
|
||||
- documentation
|
||||
thumbnail: /img/docs.eurie.io-tn.png
|
||||
title: eurie Desk docs
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2016-03-01
|
||||
date: 2016-03-01T12:38:00Z
|
||||
description: Fabio Alessandro Locati personal blog.
|
||||
license: AGPLv3
|
||||
licenseLink: ""
|
||||
sitelink: http://fale.io/
|
||||
sourceLink: https://github.com/fale/fale.io
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/fale-tn.png
|
||||
title: fale.io
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2017-03-31T22:36:12+03:00
|
||||
description: "Multilingual website. Size 20GB, build time 25 mins. Cloudflare, s3, bootstrap 4"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://firstname.club
|
||||
sourceLink:
|
||||
tags:
|
||||
- data
|
||||
- website
|
||||
thumbnail: /img/firstnameclub.png
|
||||
title: firstname club
|
||||
---
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2016-10-17T16:19:24+08:00
|
||||
description: "a personal blog"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://fixatom.com/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/fixatom-tn.png
|
||||
title: Atom
|
||||
---
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2017-05-24T06:19:40Z
|
||||
description: "Official company website"
|
||||
sitelink: https://furqansoftware.com/
|
||||
tags:
|
||||
- company
|
||||
- website
|
||||
- blog
|
||||
- tech
|
||||
thumbnail: /img/furqansoftware-tn.png
|
||||
title: Furqan Software
|
||||
---
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-09-08
|
||||
date: 2014-08-26T19:40:00-04:00
|
||||
description: Multilingual, community documentation and blog site
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://www.fxsitecompat.com/
|
||||
sourceLink: https://github.com/fxsitecompat/www.fxsitecompat.com
|
||||
tags:
|
||||
- community
|
||||
- documentation
|
||||
- translation
|
||||
thumbnail: /img/fxsitecompat-tn.png
|
||||
title: Firefox Site Compatibility
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
date: 2016-02-13T21:47:27+01:00
|
||||
description: "Projects, music and drawings, the personal web page of Gustav Näslund"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://www.gntech.se/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- projects
|
||||
- music
|
||||
- drawings
|
||||
thumbnail: /img/gntech-tn.png
|
||||
title: gntech.se
|
||||
---
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-05-25
|
||||
date: 2013-11-01T07:32:00Z
|
||||
description: ""
|
||||
license: MIT
|
||||
licenseLink: ""
|
||||
sitelink: http://getgb.io
|
||||
tags:
|
||||
- project
|
||||
thumbnail: /img/gogb-tn.jpg
|
||||
title: GoGB
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-11-20
|
||||
date: 2015-11-20T20:46:00Z
|
||||
description: "Code for Go in 5 Minutes Screencasts"
|
||||
license: "Apache License 2.0"
|
||||
licenseLink: "https://github.com/arschles/go-in-5-minutes/blob/master/LICENSE"
|
||||
sitelink: http://www.goin5minutes.com/
|
||||
sourceLink: https://github.com/arschles/go-in-5-minutes/tree/master/www
|
||||
tags:
|
||||
- screencasts
|
||||
thumbnail: /img/goin5minutes-tn.png
|
||||
title: Go in 5 minutes
|
||||
---
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
date: 2016-03-05T14:30:21+01:00
|
||||
description: "Personal profile page of Horst Gutmann"
|
||||
sitelink: http://h10n.me/
|
||||
sourceLink: https://github.com/zerok/h10n.me
|
||||
tags:
|
||||
- personal
|
||||
- profile
|
||||
thumbnail: /img/h10n.me-tn.png
|
||||
title: h10n.me
|
||||
---
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2017-01-02T07:32:00Z
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://heimatverein-niederjosbach.de/
|
||||
sourceLink: https://github.com/Dbzman/heimatverein-niederjosbach.de
|
||||
tags:
|
||||
- association
|
||||
- gallery
|
||||
thumbnail: /img/heimatverein-niederjosbach-tn.png
|
||||
title: Niederjosbacher Heimat- und Geschichtsverein 2007 e.V.
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2017-06-22T07:32:00Z
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://horeaporutiu.github.io/
|
||||
sourceLink: https://github.com/horeaporutiu/hugo-horeaporutiu
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/horeaporutiu-tn.jpg
|
||||
title: horeaporutiu.github.io
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-01-27
|
||||
date: 2013-07-01T07:32:00Z
|
||||
description: This site
|
||||
license: Simpl
|
||||
licenseLink: ""
|
||||
sitelink: http://gohugo.io/
|
||||
sourceLink: https://github.com/gohugoio/hugo/tree/master/docs
|
||||
tags:
|
||||
- documentation
|
||||
- bootstrap
|
||||
thumbnail: /img/hugo-tn.jpg
|
||||
title: Hugo
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
date: 2017-07-01T01:11:00Z
|
||||
description: "The Invincible: The tale of a disillusioned prince"
|
||||
license: "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"
|
||||
licenseLink: "https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode"
|
||||
sitelink: https://invincible.site/
|
||||
sourceLink: https://github.com/shazic/the_invincible
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- graphic novel
|
||||
thumbnail: /img/invincible-tn.jpg
|
||||
title: Invincible
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2017-01-28T12:04:00Z
|
||||
description: InVision Engineering Blog
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://engineering.invisionapp.com
|
||||
tags:
|
||||
- company
|
||||
- blog
|
||||
- engineering
|
||||
thumbnail: /img/invision-tn.png
|
||||
title: InVision Engineering Blog
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
date: 2016-06-06T14:42:59-04:00
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://jamescampbell.us/
|
||||
sourceLink: https://github.com/jamesacampbell/causes-and-effects-hugo
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/jamescampbell-tn.png
|
||||
title: jamescampbell.us
|
||||
---
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2017-07-09T07:32:00Z
|
||||
description: "Personal website of Jonathan Beebe, front-end developer from California."
|
||||
sitelink: https://jonbeebe.net/
|
||||
tags:
|
||||
- personal
|
||||
- development
|
||||
- blog
|
||||
thumbnail: /img/jonbeebe.net-thumbnail.png
|
||||
title: "Jonathan Beebe"
|
||||
---
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2016-02-11T23:41:27+01:00
|
||||
description: "Personal web site and blog of digital director Jorgen Nilsson"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://jorgennilsson.com/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/jorgennilsson-tn.png
|
||||
title: jorgennilsson.com
|
||||
---
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-01-27
|
||||
date: 2014-02-27T20:35:00Z
|
||||
description: Kieran Healy's Website
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://kieranhealy.org/
|
||||
sourceLink: https://github.com/kjhealy/kieranhealy.hugo
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- academic
|
||||
thumbnail: /img/kjhealy-tn.jpg
|
||||
title: Kieran Healy
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
date: 2016-05-15T23:18:16+02:00
|
||||
description: "klingt.net is the personal homepage of Andreas Linz."
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://klingt.net/
|
||||
sourceLink: https://github.com/klingtnet/klingt.net
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
- programming
|
||||
thumbnail: /img/klingt-net-tn.png
|
||||
title: klingt net
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-01-27
|
||||
date: 2014-11-01T07:32:00Z
|
||||
description: Corporate Site for Launchcode Software Studios
|
||||
license: Copyright Launchcode Software Studios
|
||||
licenseLink: ""
|
||||
sitelink: http://www.launchcode5.com/
|
||||
sourceLink: https://github.com/Launchcode5/launchcode5.com
|
||||
tags:
|
||||
- bootstrap
|
||||
thumbnail: /img/launchcode-tn.jpg
|
||||
title: Launchcode Software Studios
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
lastmod: 2016-01-24
|
||||
date: 2016-01-24T16:10:00Z
|
||||
description: Site of author Lee Penney
|
||||
license: MIT
|
||||
licenseLink: ""
|
||||
sitelink: http://leepenney.com/
|
||||
tags:
|
||||
- personal
|
||||
- website
|
||||
thumbnail: /img/leepenney-tn.jpg
|
||||
title: Lee Penney
|
||||
---
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
date: 2016-07-24T00:00:00+08:00
|
||||
description: "Leow Kah Man - Tech Blog"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: https://www.leowkahman.com/
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/leowkahman-tn.png
|
||||
title: Leow Kah Man - Tech Blog
|
||||
---
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2014-08-26
|
||||
date: 2014-08-25T18:59:30-04:00
|
||||
description: Alexandr Morozov
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://lk4d4.darth.io/
|
||||
sourceLink: https://github.com/LK4D4/lk4d4.darth.io
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/lk4d4-tn.jpg
|
||||
title: lk4d4.darth.io
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-11-15
|
||||
date: 2015-11-15T11:20:00-08:00
|
||||
description: "Losslesslife covers everything high-end and audiophile headphones. Headphones and headphone amplifiers, accessories, how-to guides, and reviews."
|
||||
sitelink: http://pages.losslesslife.com/
|
||||
tags:
|
||||
- headphones
|
||||
- electronics
|
||||
- technical
|
||||
- reviews
|
||||
- education
|
||||
- audiophile
|
||||
thumbnail: /img/losslesslife-tn.png
|
||||
title: LosslessLife
|
||||
---
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2017-03-12T13:14:14+08:00
|
||||
description: "Personal blog of Rosen Lu"
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://lucumt.info/posts
|
||||
sourceLink: https://github.com/lucumt/ghblog
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/lucumt.info.png
|
||||
title: 飞狐的部落格
|
||||
---
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
lastmod: 2015-06-20
|
||||
date: 2015-06-20
|
||||
description: ""
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://mariosanchez.org/
|
||||
sourceLink: https://github.com/mariobox/Hugo-Source
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/mariosanchez-tn.jpg
|
||||
title: mariosanchez.org
|
||||
---
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
date: 2016-06-13T19:38:56-04:00
|
||||
description: "Free Open Source Document Management System"
|
||||
license: "Apache 2.0"
|
||||
licenseLink: ""
|
||||
sitelink: http://www.mayan-edms.com/
|
||||
sourceLink: https://gitlab.com/mayan-edms/website
|
||||
tags:
|
||||
- paperless
|
||||
- floss
|
||||
thumbnail: /img/mayan-edms-tn.png
|
||||
title: Mayan EDMS
|
||||
---
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
lastmod: 2014-08-26
|
||||
date: 2014-08-26T11:47:11-04:00
|
||||
description: ""
|
||||
license: Simpl-2.0
|
||||
licenseLink: ""
|
||||
sitelink: http://michaelwhatcott.com/
|
||||
sourceLink: https://bitbucket.org/mdwhatcott/michaelwhatcott.com-boilerplate/src
|
||||
tags:
|
||||
- personal
|
||||
- blog
|
||||
thumbnail: /img/michaelwhatcott-tn.jpg
|
||||
title: michaelwhatcott
|
||||
---
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
date: 2016-03-09T14:14:16-05:00
|
||||
description: "The MongoDB Engineering Journal -- for builders, by builders."
|
||||
license: ""
|
||||
licenseLink: ""
|
||||
sitelink: http://engineering.mongodb.com/
|
||||
tags:
|
||||
- engineering
|
||||
- blog
|
||||
thumbnail: /img/mongodb-eng-tn.png
|
||||
title: The Mongodb Engineering Journal
|
||||
---
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user