shithub: hugo

Download patch

ref: 1b9dc52ef557b3d6892bbe45f011fc11d67543ba
parent: 4d26ab33dcef704086f43828d1dfb4b8beae2593
parent: d2ec1a06df8ab6b17ad05cb008d5701b40327d47
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Apr 21 19:02:48 EDT 2018

Merge commit 'd2ec1a06df8ab6b17ad05cb008d5701b40327d47'

--- a/docs/content/commands/hugo.md
+++ b/docs/content/commands/hugo.md
@@ -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 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
--- a/docs/content/commands/hugo_benchmark.md
+++ b/docs/content/commands/hugo_benchmark.md
@@ -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](/commands/hugo/)	 - hugo builds your site
 
-###### Auto generated by spf13/cobra on 31-Jan-2018
+###### Auto generated by spf13/cobra on 16-Apr-2018
--- a/docs/content/commands/hugo_check.md
+++ b/docs/content/commands/hugo_check.md
@@ -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 @@
 * [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
--- a/docs/content/commands/hugo_check_ulimit.md
+++ b/docs/content/commands/hugo_check_ulimit.md
@@ -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](/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
--- a/docs/content/commands/hugo_config.md
+++ b/docs/content/commands/hugo_config.md
@@ -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 @@
 ### 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](/commands/hugo/)	 - hugo builds your site
 
-###### Auto generated by spf13/cobra on 31-Jan-2018
+###### Auto generated by spf13/cobra on 16-Apr-2018
--- a/docs/content/commands/hugo_convert.md
+++ b/docs/content/commands/hugo_convert.md
@@ -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 @@
 * [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
--- a/docs/content/commands/hugo_convert_toJSON.md
+++ b/docs/content/commands/hugo_convert_toJSON.md
@@ -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](/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
--- a/docs/content/commands/hugo_convert_toTOML.md
+++ b/docs/content/commands/hugo_convert_toTOML.md
@@ -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](/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
--- a/docs/content/commands/hugo_convert_toYAML.md
+++ b/docs/content/commands/hugo_convert_toYAML.md
@@ -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](/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
--- a/docs/content/commands/hugo_env.md
+++ b/docs/content/commands/hugo_env.md
@@ -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](/commands/hugo/)	 - hugo builds your site
 
-###### Auto generated by spf13/cobra on 31-Jan-2018
+###### Auto generated by spf13/cobra on 16-Apr-2018
--- a/docs/content/commands/hugo_gen.md
+++ b/docs/content/commands/hugo_gen.md
@@ -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 @@
 * [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
--- a/docs/content/commands/hugo_gen_autocomplete.md
+++ b/docs/content/commands/hugo_gen_autocomplete.md
@@ -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](/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
--- a/docs/content/commands/hugo_gen_chromastyles.md
+++ b/docs/content/commands/hugo_gen_chromastyles.md
@@ -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](/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
--- a/docs/content/commands/hugo_gen_doc.md
+++ b/docs/content/commands/hugo_gen_doc.md
@@ -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](/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
--- a/docs/content/commands/hugo_gen_man.md
+++ b/docs/content/commands/hugo_gen_man.md
@@ -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](/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
--- a/docs/content/commands/hugo_import.md
+++ b/docs/content/commands/hugo_import.md
@@ -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 @@
 * [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
--- a/docs/content/commands/hugo_import_jekyll.md
+++ b/docs/content/commands/hugo_import_jekyll.md
@@ -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](/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
--- a/docs/content/commands/hugo_list.md
+++ b/docs/content/commands/hugo_list.md
@@ -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 @@
 * [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
--- a/docs/content/commands/hugo_list_drafts.md
+++ b/docs/content/commands/hugo_list_drafts.md
@@ -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](/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
--- a/docs/content/commands/hugo_list_expired.md
+++ b/docs/content/commands/hugo_list_expired.md
@@ -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](/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
--- a/docs/content/commands/hugo_list_future.md
+++ b/docs/content/commands/hugo_list_future.md
@@ -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](/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
--- a/docs/content/commands/hugo_new.md
+++ b/docs/content/commands/hugo_new.md
@@ -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 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
--- a/docs/content/commands/hugo_new_site.md
+++ b/docs/content/commands/hugo_new_site.md
@@ -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](/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
--- a/docs/content/commands/hugo_new_theme.md
+++ b/docs/content/commands/hugo_new_theme.md
@@ -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](/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
--- a/docs/content/commands/hugo_server.md
+++ b/docs/content/commands/hugo_server.md
@@ -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](/commands/hugo/)	 - hugo builds your site
 
-###### Auto generated by spf13/cobra on 31-Jan-2018
+###### Auto generated by spf13/cobra on 16-Apr-2018
--- a/docs/content/commands/hugo_version.md
+++ b/docs/content/commands/hugo_version.md
@@ -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](/commands/hugo/)	 - hugo builds your site
 
-###### Auto generated by spf13/cobra on 31-Jan-2018
+###### Auto generated by spf13/cobra on 16-Apr-2018
--- a/docs/content/content-management/front-matter.md
+++ b/docs/content/content-management/front-matter.md
@@ -56,70 +56,70 @@
 
 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 @@
 
 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
--- a/docs/content/functions/readfile.md
+++ b/docs/content/functions/readfile.md
@@ -18,7 +18,7 @@
 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!`:
 
@@ -25,6 +25,8 @@
 ```
 {{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].
 
--- a/docs/content/functions/scratch.md
+++ b/docs/content/functions/scratch.md
@@ -20,66 +20,94 @@
 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
 
-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.Set "greeting" "Hello" }}
+----
+{{ .Scratch.Get "greeting" }} > Hello
+```
 
-The scope of the backing data is global for the given `Page` or `Shortcode`, and spans partial and shortcode includes.
+#### .Add
+Will add a given value to existing value of the given key. 
 
-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`.
+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.
 
-## Sample usage
+```go-html-template
+{{ .Scratch.Add "greetings" "Hello" }}
+{{ .Scratch.Add "greetings" "Welcome" }}
+----
+{{ .Scratch.Get "greetings" }} > HelloWelcome
+```
 
-The usage is best illustrated with some samples:
+```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"}
 ```
-{{ $.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 */}}
+#### .SetInMap
+Takes a `key`, `mapKey` and `value` and add a map of `mapKey` and `value` to the given `key`.
 
-{{ $.Scratch.Add "l1" (slice "A" "B") }}
-{{ $.Scratch.Get "l1" }} {{/* => [A B]  */}}
-{{ $.Scratch.Add "l1" (slice "C" "D") }}
-{{ $.Scratch.Get "l1" }} {{/* => [A B C D] */}}
+```go-html-template
+{{ .Scratch.SetInMap "greetings" "english" "Hello" }}
+{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }}
+----
+{{ .Scratch.Get "greetings" }} > map[french:Bonjour english:Hello]
+```
 
-{{ $.Scratch.Set "v1" 123 }}
-{{ $.Scratch.Get "v1" }}  {{/* => 123 */}}
+#### .GetSortedMapValues
+Returns array of values from `key` sorted by `mapKey`
 
-{{ $.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"} */}}
+```go-html-template
+{{ .Scratch.SetInMap "greetings" "english" "Hello" }}
+{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }}
+----
+{{ .Scratch.GetSortedMapValues "greetings" }} > [Hello Bonjour]
+```
+#### .Delete
+Removes the given key
 
-{{ $.Scratch.Add "a" 1 }}
-{{ $.Scratch.Delete "a" }}
-{{ $.Scratch.Add "a" 2 }}
-{{ $.Scratch.Get "a" }} {{/* => 2 */}}
+```go-html-template
+{{ .Scratch.Delete "greetings" }}
 ```
 
-{{% 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 %}}
+## 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 scoped Scratch, then use `.Page.Scratch`.
+
+
 
 
 [pagevars]: /variables/page/
--- a/docs/content/getting-started/configuration.md
+++ b/docs/content/getting-started/configuration.md
@@ -346,7 +346,7 @@
 
 
 `: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:
 
binary files /dev/null b/docs/content/news/0.39-relnotes/featured-hugo-39-poster.png differ
--- a/docs/content/news/0.39-relnotes/index.md
+++ b/docs/content/news/0.39-relnotes/index.md
@@ -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"]
 ---
 
--- a/docs/data/docs.json
+++ b/docs/data/docs.json
@@ -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.",
@@ -3606,6 +3642,21 @@
             "absURL"
           ],
           "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": "",
--- a/docs/netlify.toml
+++ b/docs/netlify.toml
@@ -3,7 +3,7 @@
 command = "hugo"
 
 [context.production.environment]
-HUGO_VERSION = "0.38.2"
+HUGO_VERSION = "0.39"
 HUGO_ENV = "production"
 HUGO_ENABLEGITINFO = "true"
 
@@ -11,7 +11,7 @@
 command = "hugo --enableGitInfo"
 
 [context.split1.environment]
-HUGO_VERSION = "0.38.2"
+HUGO_VERSION = "0.39"
 HUGO_ENV = "production"
 
 [context.deploy-preview]
@@ -18,13 +18,13 @@
 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 files /dev/null b/docs/resources/_gen/images/news/0.39-relnotes/featured-hugo-39-poster_hu2a1fdf8d3d53aa00bce401a32585d7ec_216872_640x0_resize_catmullrom_2.png differ
binary files /dev/null b/docs/resources/_gen/images/news/0.39-relnotes/featured-hugo-39-poster_hu3261e6e65defb4edf9f0fce20bf5f60d_217215_480x0_resize_catmullrom_2.png differ
binary files /dev/null b/docs/resources/_gen/images/news/0.39-relnotes/featured-hugo-39-poster_hu3261e6e65defb4edf9f0fce20bf5f60d_217215_640x0_resize_catmullrom_2.png differ