mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-07 11:05:58 +00:00
Merge commit 'd2ec1a06df8ab6b17ad05cb008d5701b40327d47'
This commit is contained in:
commit
1b9dc52ef5
38 changed files with 213 additions and 131 deletions
0
docs/.gitmodules
vendored
0
docs/.gitmodules
vendored
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo"
|
||||
slug: hugo
|
||||
url: /commands/hugo/
|
||||
|
@ -77,4 +77,4 @@ hugo [flags]
|
|||
* [hugo server](/commands/hugo_server/) - A high performance webserver
|
||||
* [hugo version](/commands/hugo_version/) - Print the version number of Hugo
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo benchmark"
|
||||
slug: hugo_benchmark
|
||||
url: /commands/hugo_benchmark/
|
||||
|
@ -70,4 +70,4 @@ hugo benchmark [flags]
|
|||
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo check"
|
||||
slug: hugo_check
|
||||
url: /commands/hugo_check/
|
||||
|
@ -35,4 +35,4 @@ Contains some verification checks
|
|||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo check ulimit](/commands/hugo_check_ulimit/) - Check system ulimit settings
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo check ulimit"
|
||||
slug: hugo_check_ulimit
|
||||
url: /commands/hugo_check_ulimit/
|
||||
|
@ -39,4 +39,4 @@ hugo check ulimit [flags]
|
|||
|
||||
* [hugo check](/commands/hugo_check/) - Contains some verification checks
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo config"
|
||||
slug: hugo_config
|
||||
url: /commands/hugo_config/
|
||||
|
@ -19,7 +19,8 @@ hugo config [flags]
|
|||
### Options
|
||||
|
||||
```
|
||||
-h, --help help for config
|
||||
-h, --help help for config
|
||||
-s, --source string filesystem path to read files relative from
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
@ -38,4 +39,4 @@ hugo config [flags]
|
|||
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo convert"
|
||||
slug: hugo_convert
|
||||
url: /commands/hugo_convert/
|
||||
|
@ -42,4 +42,4 @@ See convert's subcommands toJSON, toTOML and toYAML for more information.
|
|||
* [hugo convert toTOML](/commands/hugo_convert_totoml/) - Convert front matter to TOML
|
||||
* [hugo convert toYAML](/commands/hugo_convert_toyaml/) - Convert front matter to YAML
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo convert toJSON"
|
||||
slug: hugo_convert_toJSON
|
||||
url: /commands/hugo_convert_tojson/
|
||||
|
@ -42,4 +42,4 @@ hugo convert toJSON [flags]
|
|||
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo convert toTOML"
|
||||
slug: hugo_convert_toTOML
|
||||
url: /commands/hugo_convert_totoml/
|
||||
|
@ -42,4 +42,4 @@ hugo convert toTOML [flags]
|
|||
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo convert toYAML"
|
||||
slug: hugo_convert_toYAML
|
||||
url: /commands/hugo_convert_toyaml/
|
||||
|
@ -42,4 +42,4 @@ hugo convert toYAML [flags]
|
|||
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo env"
|
||||
slug: hugo_env
|
||||
url: /commands/hugo_env/
|
||||
|
@ -38,4 +38,4 @@ hugo env [flags]
|
|||
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo gen"
|
||||
slug: hugo_gen
|
||||
url: /commands/hugo_gen/
|
||||
|
@ -38,4 +38,4 @@ A collection of several useful generators.
|
|||
* [hugo gen doc](/commands/hugo_gen_doc/) - Generate Markdown documentation for the Hugo CLI.
|
||||
* [hugo gen man](/commands/hugo_gen_man/) - Generate man pages for the Hugo CLI
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo gen autocomplete"
|
||||
slug: hugo_gen_autocomplete
|
||||
url: /commands/hugo_gen_autocomplete/
|
||||
|
@ -56,4 +56,4 @@ hugo gen autocomplete [flags]
|
|||
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo gen chromastyles"
|
||||
slug: hugo_gen_chromastyles
|
||||
url: /commands/hugo_gen_chromastyles/
|
||||
|
@ -43,4 +43,4 @@ hugo gen chromastyles [flags]
|
|||
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo gen doc"
|
||||
slug: hugo_gen_doc
|
||||
url: /commands/hugo_gen_doc/
|
||||
|
@ -45,4 +45,4 @@ hugo gen doc [flags]
|
|||
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo gen man"
|
||||
slug: hugo_gen_man
|
||||
url: /commands/hugo_gen_man/
|
||||
|
@ -41,4 +41,4 @@ hugo gen man [flags]
|
|||
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo import"
|
||||
slug: hugo_import
|
||||
url: /commands/hugo_import/
|
||||
|
@ -37,4 +37,4 @@ Import requires a subcommand, e.g. `hugo import jekyll jekyll_root_path target_p
|
|||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo import jekyll](/commands/hugo_import_jekyll/) - hugo import from Jekyll
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo import jekyll"
|
||||
slug: hugo_import_jekyll
|
||||
url: /commands/hugo_import_jekyll/
|
||||
|
@ -41,4 +41,4 @@ hugo import jekyll [flags]
|
|||
|
||||
* [hugo import](/commands/hugo_import/) - Import your site from others.
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo list"
|
||||
slug: hugo_list
|
||||
url: /commands/hugo_list/
|
||||
|
@ -40,4 +40,4 @@ List requires a subcommand, e.g. `hugo list drafts`.
|
|||
* [hugo list expired](/commands/hugo_list_expired/) - List all posts already expired
|
||||
* [hugo list future](/commands/hugo_list_future/) - List all posts dated in the future
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo list drafts"
|
||||
slug: hugo_list_drafts
|
||||
url: /commands/hugo_list_drafts/
|
||||
|
@ -39,4 +39,4 @@ hugo list drafts [flags]
|
|||
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo list expired"
|
||||
slug: hugo_list_expired
|
||||
url: /commands/hugo_list_expired/
|
||||
|
@ -40,4 +40,4 @@ hugo list expired [flags]
|
|||
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo list future"
|
||||
slug: hugo_list_future
|
||||
url: /commands/hugo_list_future/
|
||||
|
@ -40,4 +40,4 @@ hugo list future [flags]
|
|||
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo new"
|
||||
slug: hugo_new
|
||||
url: /commands/hugo_new/
|
||||
|
@ -48,4 +48,4 @@ hugo new [path] [flags]
|
|||
* [hugo new site](/commands/hugo_new_site/) - Create a new site (skeleton)
|
||||
* [hugo new theme](/commands/hugo_new_theme/) - Create a new theme
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo new site"
|
||||
slug: hugo_new_site
|
||||
url: /commands/hugo_new_site/
|
||||
|
@ -43,4 +43,4 @@ hugo new site [path] [flags]
|
|||
|
||||
* [hugo new](/commands/hugo_new/) - Create new content for your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo new theme"
|
||||
slug: hugo_new_theme
|
||||
url: /commands/hugo_new_theme/
|
||||
|
@ -42,4 +42,4 @@ hugo new theme [name] [flags]
|
|||
|
||||
* [hugo new](/commands/hugo_new/) - Create new content for your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo server"
|
||||
slug: hugo_server
|
||||
url: /commands/hugo_server/
|
||||
|
@ -88,4 +88,4 @@ hugo server [flags]
|
|||
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
date: 2018-01-31T11:40:21+01:00
|
||||
date: 2018-04-16
|
||||
title: "hugo version"
|
||||
slug: hugo_version
|
||||
url: /commands/hugo_version/
|
||||
|
@ -38,4 +38,4 @@ hugo version [flags]
|
|||
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
###### Auto generated by spf13/cobra on 31-Jan-2018
|
||||
###### Auto generated by spf13/cobra on 16-Apr-2018
|
||||
|
|
|
@ -56,70 +56,70 @@ slug = "spf13-vim-3-0-release-and-new-website"
|
|||
|
||||
There are a few predefined variables that Hugo is aware of. See [Page Variables][pagevars] for how to call many of these predefined variables in your templates.
|
||||
|
||||
`aliases`
|
||||
aliases
|
||||
: an array of one or more aliases (e.g., old published paths of renamed content) that will be created in the output directory structure . See [Aliases][aliases] for details.
|
||||
|
||||
`date`
|
||||
date
|
||||
: the datetime at which the content was created; note this value is auto-populated according to Hugo's built-in [archetype][].
|
||||
|
||||
`description`
|
||||
description
|
||||
: the description for the content.
|
||||
|
||||
`draft`
|
||||
draft
|
||||
: if `true`, the content will not be rendered unless the `--buildDrafts` flag is passed to the `hugo` command.
|
||||
|
||||
`expiryDate`
|
||||
expiryDate
|
||||
: the datetime at which the content should no longer be published by Hugo; expired content will not be rendered unless the `--buildExpired` flag is passed to the `hugo` command.
|
||||
|
||||
`headless`
|
||||
headless
|
||||
: if `true`, sets a leaf bundle to be [headless][headless-bundle].
|
||||
|
||||
`isCJKLanguage`
|
||||
isCJKLanguage
|
||||
: if `true`, Hugo will explicitly treat the content as a CJK language; both `.Summary` and `.WordCount` work properly in CJK languages.
|
||||
|
||||
`keywords`
|
||||
keywords
|
||||
: the meta keywords for the content.
|
||||
|
||||
`layout`
|
||||
layout
|
||||
: the layout Hugo should select from the [lookup order][lookup] when rendering the content. If a `type` is not specified in the front matter, Hugo will look for the layout of the same name in the layout directory that corresponds with a content's section. See ["Defining a Content Type"][definetype]
|
||||
|
||||
`lastmod`
|
||||
lastmod
|
||||
: the datetime at which the content was last modified.
|
||||
|
||||
`linkTitle`
|
||||
linkTitle
|
||||
: used for creating links to content; if set, Hugo defaults to using the `linktitle` before the `title`. Hugo can also [order lists of content by `linktitle`][bylinktitle].
|
||||
|
||||
`markup`
|
||||
markup
|
||||
: **experimental**; specify `"rst"` for reStructuredText (requires`rst2html`) or `"md"` (default) for Markdown.
|
||||
|
||||
`outputs`
|
||||
outputs
|
||||
: allows you to specify output formats specific to the content. See [output formats][outputs].
|
||||
|
||||
`publishDate`
|
||||
publishDate
|
||||
: if in the future, content will not be rendered unless the `--buildFuture` flag is passed to `hugo`.
|
||||
|
||||
`resources`
|
||||
resources
|
||||
: used for configuring page bundle resources. See [Page Resources][page-resources].
|
||||
|
||||
`slug`
|
||||
slug
|
||||
: appears as the tail of the output URL. A value specified in front matter will override the segment of the URL based on the filename.
|
||||
|
||||
`taxonomies`
|
||||
: these will use the field name of the plural form of the index; see the `tags` and `categories` in the above front matter examples.
|
||||
|
||||
`title`
|
||||
title
|
||||
: the title for the content.
|
||||
|
||||
`type`
|
||||
type
|
||||
: the type of the content; this value will be automatically derived from the directory (i.e., the [section][]) if not specified in front matter.
|
||||
|
||||
`url`
|
||||
url
|
||||
: the full path to the content from the web root. It makes no assumptions about the path of the content file. It also ignores any language prefixes of
|
||||
the multilingual feature.
|
||||
|
||||
`weight`
|
||||
weight
|
||||
: used for [ordering your content in lists][ordering].
|
||||
|
||||
\<taxonomies\>
|
||||
: field name of the *plural* form of the index. See `tags` and `categories` in the above front matter examples. _Note that the plural form of user-defined taxonomies cannot be the same as any of the predefined front matter variables._
|
||||
|
||||
{{% note "Hugo's Default URL Destinations" %}}
|
||||
If neither `slug` nor `url` is present and [permalinks are not configured otherwise in your site `config` file](/content-management/urls/#permalinks), Hugo will use the filename of your content to create the output URL. See [Content Organization](/content-management/organization) for an explanation of paths in Hugo and [URL Management](/content-management/urls/) for ways to customize Hugo's default behaviors.
|
||||
{{% /note %}}
|
||||
|
@ -130,10 +130,10 @@ You can add fields to your front matter arbitrarily to meet your needs. These us
|
|||
|
||||
The following fields can be accessed via `.Params.include_toc` and `.Params.show_comments`, respectively. The [Variables][] section provides more information on using Hugo's page- and site-level variables in your templates.
|
||||
|
||||
```
|
||||
{{< code-toggle copy="false" >}}
|
||||
include_toc: true
|
||||
show_comments: false
|
||||
```
|
||||
{{</ code-toggle >}}
|
||||
|
||||
|
||||
## Order Content Through Front Matter
|
||||
|
|
|
@ -18,7 +18,7 @@ deprecated: false
|
|||
aliases: []
|
||||
---
|
||||
|
||||
Note that the filename must be relative to the current project working directory.
|
||||
Note that the filename must be relative to the current project working directory, or the project's `/content` folder.
|
||||
|
||||
So, if you have a file with the name `README.txt` in the root of your project with the content `Hugo Rocks!`:
|
||||
|
||||
|
@ -26,6 +26,8 @@ So, if you have a file with the name `README.txt` in the root of your project wi
|
|||
{{readFile "README.txt"}} → "Hugo Rocks!"
|
||||
```
|
||||
|
||||
If you receive a "file doesn't exist" error with a path listed, do take note that the path is the last one checked by the function, and may not accurately reflect your target. You should generally double-check your path for mistakes.
|
||||
|
||||
For more information on using `readDir` and `readFile` in your templates, see [Local File Templates][local].
|
||||
|
||||
[local]: /templates/files/
|
||||
|
|
|
@ -20,66 +20,94 @@ draft: false
|
|||
aliases: [/extras/scratch/,/doc/scratch/]
|
||||
---
|
||||
|
||||
In most cases you can do well without `Scratch`, but there are some use cases that aren't solvable with Go's templates without `Scratch`'s help, due to scoping issues.
|
||||
In most cases you can do okay without `Scratch`, but due to scoping issues, there are many use cases that aren't solvable in Go Templates without `Scratch`'s help.
|
||||
|
||||
{{% note %}}
|
||||
See [this Go issue](https://github.com/golang/go/issues/10608) for the main motivation behind Scratch.
|
||||
{{% /note %}}
|
||||
|
||||
{{% note %}}
|
||||
For a detailed analysis of `.Scratch` and in context use cases, see this [post](https://regisphilibert.com/blog/2017/04/hugo-scratch-explained-variable/).
|
||||
{{% /note %}}
|
||||
|
||||
## Methods
|
||||
|
||||
`Scratch` is added to both `Page` and `Shortcode` -- with following methods:
|
||||
|
||||
* `Set` and `Add` takes a `key` and the `value` to add.
|
||||
* `Get` returns the `value` for the `key` given.
|
||||
* `SetInMap` takes a `key`, `mapKey` and `value`
|
||||
* `GetSortedMapValues` returns array of values from `key` sorted by `mapKey`
|
||||
* `Delete` takes a `key` to remove
|
||||
#### .Set
|
||||
Set the given value to a given key
|
||||
|
||||
`Set` and `SetInMap` can store values of any type.
|
||||
```go-html-template
|
||||
{{ .Scratch.Set "greeting" "Hello" }}
|
||||
```
|
||||
#### .Get
|
||||
Get the value of a given key
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.Set "greeting" "Hello" }}
|
||||
----
|
||||
{{ .Scratch.Get "greeting" }} > Hello
|
||||
```
|
||||
|
||||
#### .Add
|
||||
Will add a given value to existing value of the given key.
|
||||
|
||||
For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list.
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.Add "greetings" "Hello" }}
|
||||
{{ .Scratch.Add "greetings" "Welcome" }}
|
||||
----
|
||||
{{ .Scratch.Get "greetings" }} > HelloWelcome
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.Add "total" 3 }}
|
||||
{{ .Scratch.Add "total" 7 }}
|
||||
----
|
||||
{{ .Scratch.Get "total" }} > 10
|
||||
```
|
||||
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.Add "greetings" (slice "Hello") }}
|
||||
{{ .Scratch.Add "greetings" (slice "Welcome" "Cheers") }}
|
||||
----
|
||||
{{ .Scratch.Get "greetings" }} > []interface {}{"Hello", "Welcome", "Cheers"}
|
||||
```
|
||||
|
||||
#### .SetInMap
|
||||
Takes a `key`, `mapKey` and `value` and add a map of `mapKey` and `value` to the given `key`.
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.SetInMap "greetings" "english" "Hello" }}
|
||||
{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }}
|
||||
----
|
||||
{{ .Scratch.Get "greetings" }} > map[french:Bonjour english:Hello]
|
||||
```
|
||||
|
||||
#### .GetSortedMapValues
|
||||
Returns array of values from `key` sorted by `mapKey`
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.SetInMap "greetings" "english" "Hello" }}
|
||||
{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }}
|
||||
----
|
||||
{{ .Scratch.GetSortedMapValues "greetings" }} > [Hello Bonjour]
|
||||
```
|
||||
#### .Delete
|
||||
Removes the given key
|
||||
|
||||
```go-html-template
|
||||
{{ .Scratch.Delete "greetings" }}
|
||||
```
|
||||
|
||||
## Scope
|
||||
The scope of the backing data is global for the given `Page` or `Shortcode`, and spans partial and shortcode includes.
|
||||
|
||||
Note that `.Scratch` from a shortcode will return the shortcode's `Scratch`, which in most cases is what you want. If you want to store it in the page scroped Scratch, then use `.Page.Scratch`.
|
||||
Note that `.Scratch` from a shortcode will return the shortcode's `Scratch`, which in most cases is what you want. If you want to store it in the page scoped Scratch, then use `.Page.Scratch`.
|
||||
|
||||
## Sample usage
|
||||
|
||||
The usage is best illustrated with some samples:
|
||||
|
||||
```
|
||||
{{ $.Scratch.Add "a1" 12 }}
|
||||
{{ $.Scratch.Get "a1" }} {{/* => 12 */}}
|
||||
{{ $.Scratch.Add "a1" 1 }}
|
||||
{{ $.Scratch.Get "a1" }} // {{/* => 13 */}}
|
||||
|
||||
{{ $.Scratch.Add "a2" "AB" }}
|
||||
{{ $.Scratch.Get "a2" }} {{/* => AB */}}
|
||||
{{ $.Scratch.Add "a2" "CD" }}
|
||||
{{ $.Scratch.Get "a2" }} {{/* => ABCD */}}
|
||||
|
||||
{{ $.Scratch.Add "l1" (slice "A" "B") }}
|
||||
{{ $.Scratch.Get "l1" }} {{/* => [A B] */}}
|
||||
{{ $.Scratch.Add "l1" (slice "C" "D") }}
|
||||
{{ $.Scratch.Get "l1" }} {{/* => [A B C D] */}}
|
||||
|
||||
{{ $.Scratch.Set "v1" 123 }}
|
||||
{{ $.Scratch.Get "v1" }} {{/* => 123 */}}
|
||||
|
||||
{{ $.Scratch.SetInMap "a3" "b" "XX" }}
|
||||
{{ $.Scratch.SetInMap "a3" "a" "AA" }}
|
||||
{{ $.Scratch.SetInMap "a3" "c" "CC" }}
|
||||
{{ $.Scratch.SetInMap "a3" "b" "BB" }}
|
||||
{{ $.Scratch.GetSortedMapValues "a3" }} {{/* => []interface {}{"AA", "BB", "CC"} */}}
|
||||
|
||||
{{ $.Scratch.Add "a" 1 }}
|
||||
{{ $.Scratch.Delete "a" }}
|
||||
{{ $.Scratch.Add "a" 2 }}
|
||||
{{ $.Scratch.Get "a" }} {{/* => 2 */}}
|
||||
```
|
||||
|
||||
{{% note %}}
|
||||
The examples above uses the special `$` variable, which refers to the top-level node. This is the behavior you most likely want, and will help remove some confusion when using `Scratch` inside page range loops -- and you start inadvertently calling the wrong `Scratch`. But there may be use cases for `{{ .Scratch.Add "key" "some value" }}`.
|
||||
{{% /note %}}
|
||||
|
||||
|
||||
[pagevars]: /variables/page/
|
||||
|
|
|
@ -346,7 +346,7 @@ The above will try first to extract the value for `.Lastmod` starting with the `
|
|||
|
||||
|
||||
`:filename`
|
||||
: Fetches the date from the content file's filename. For example, `218-02-22-mypage.md` will extract the date `218-02-22`. Also, if `slug is not set, `mypage` will be used as the value for `.Slug`.
|
||||
: Fetches the date from the content file's filename. For example, `218-02-22-mypage.md` will extract the date `218-02-22`. Also, if `slug` is not set, `mypage` will be used as the value for `.Slug`.
|
||||
|
||||
An example:
|
||||
|
||||
|
|
BIN
docs/content/news/0.39-relnotes/featured-hugo-39-poster.png
Normal file
BIN
docs/content/news/0.39-relnotes/featured-hugo-39-poster.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 212 KiB |
|
@ -1,8 +1,8 @@
|
|||
|
||||
---
|
||||
date: 2018-04-16
|
||||
title: "0.39"
|
||||
description: "0.39"
|
||||
title: "The Nat King Cole Stabilizer Edition"
|
||||
description: "Hugo 0.39: Rewrite of the /commands package, `Resource.Content`, several new template funcs, and more …"
|
||||
categories: ["Releases"]
|
||||
---
|
||||
|
||||
|
|
|
@ -2977,6 +2977,42 @@
|
|||
"Examples": []
|
||||
}
|
||||
},
|
||||
"path": {
|
||||
"Join": {
|
||||
"Description": "Join joins any number of path elements into a single path, adding a\nseparating slash if necessary. All the input\npath elements are passed into filepath.ToSlash converting any Windows slashes\nto forward slashes.\nThe result is Cleaned; in particular,\nall empty strings are ignored.",
|
||||
"Args": [
|
||||
"elements"
|
||||
],
|
||||
"Aliases": null,
|
||||
"Examples": [
|
||||
[
|
||||
"{{ slice \"my/path\" \"filename.txt\" | path.Join }}",
|
||||
"my/path/filename.txt"
|
||||
],
|
||||
[
|
||||
"{{ path.Join \"my\" \"path\" \"filename.txt\" }}",
|
||||
"my/path/filename.txt"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Split": {
|
||||
"Description": "Split splits path immediately following the final slash,\nseparating it into a directory and file name component.\nIf there is no slash in path, Split returns an empty dir and\nfile set to path.\nThe input path is passed into filepath.ToSlash converting any Windows slashes\nto forward slashes.\nThe returned values have the property that path = dir+file.",
|
||||
"Args": [
|
||||
"path"
|
||||
],
|
||||
"Aliases": null,
|
||||
"Examples": [
|
||||
[
|
||||
"{{ \"/my/path/filename.txt\" | path.Split }}",
|
||||
"/my/path/|filename.txt"
|
||||
],
|
||||
[
|
||||
"{{ \"/my/path/filename.txt\" | path.Split }}",
|
||||
"/my/path/|filename.txt"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"safe": {
|
||||
"CSS": {
|
||||
"Description": "CSS returns a given string as html/template CSS content.",
|
||||
|
@ -3607,6 +3643,21 @@
|
|||
],
|
||||
"Examples": []
|
||||
},
|
||||
"Anchorize": {
|
||||
"Description": "Anchorize creates sanitized anchor names that are compatible with Blackfriday.",
|
||||
"Args": [
|
||||
"a"
|
||||
],
|
||||
"Aliases": [
|
||||
"anchorize"
|
||||
],
|
||||
"Examples": [
|
||||
[
|
||||
"{{ \"This is a title\" | anchorize }}",
|
||||
"this-is-a-title"
|
||||
]
|
||||
]
|
||||
},
|
||||
"Parse": {
|
||||
"Description": "",
|
||||
"Args": null,
|
||||
|
|
|
@ -3,7 +3,7 @@ publish = "public"
|
|||
command = "hugo"
|
||||
|
||||
[context.production.environment]
|
||||
HUGO_VERSION = "0.38.2"
|
||||
HUGO_VERSION = "0.39"
|
||||
HUGO_ENV = "production"
|
||||
HUGO_ENABLEGITINFO = "true"
|
||||
|
||||
|
@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true"
|
|||
command = "hugo --enableGitInfo"
|
||||
|
||||
[context.split1.environment]
|
||||
HUGO_VERSION = "0.38.2"
|
||||
HUGO_VERSION = "0.39"
|
||||
HUGO_ENV = "production"
|
||||
|
||||
[context.deploy-preview]
|
||||
command = "hugo -b $DEPLOY_PRIME_URL"
|
||||
|
||||
[context.deploy-preview.environment]
|
||||
HUGO_VERSION = "0.38.2"
|
||||
HUGO_VERSION = "0.39"
|
||||
|
||||
[context.branch-deploy]
|
||||
command = "hugo -b $DEPLOY_PRIME_URL"
|
||||
|
||||
[context.branch-deploy.environment]
|
||||
HUGO_VERSION = "0.38.2"
|
||||
HUGO_VERSION = "0.39"
|
||||
|
||||
[context.next.environment]
|
||||
HUGO_ENABLEGITINFO = "true"
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 125 KiB |
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
After Width: | Height: | Size: 125 KiB |
Loading…
Add table
Reference in a new issue