§§ | print | safeHTML }}
+```
+
+Will print:
+
+```
+[[Foo #foo Foo] [Bar #bar Bar]]
+```
+
+{{< new-in "0.110.0" >}}
+
+
[RE2]: https://github.com/google/re2/wiki/Syntax
[string literal]: https://go.dev/ref/spec#String_literals
diff --git a/docs/content/en/functions/format.md b/docs/content/en/functions/format.md
index e2f93f1fc83..5c86714fe26 100644
--- a/docs/content/en/functions/format.md
+++ b/docs/content/en/functions/format.md
@@ -95,10 +95,10 @@ More examples can be found in Go's [documentation for the time package][timecons
Spelled-out cardinal numbers (e.g. "one", "two", and "three") are not currently supported.
-Ordinal abbreviations (i.e., with shorted suffixes like "1st", "2nd", and "3rd") are not currently directly supported. By using `{{.Date.Format "Jan 2nd 2006"}}`, Hugo assumes you want to append `nd` as a string to the day of the month. However, you can chain functions together to create something like this:
+Use the [`humanize`](/functions/humanize) function to render the day of the month as an ordinal number:
```
-{{ .Date.Format "2" }}{{ if in (slice 1 21 31) .Date.Day}}st{{ else if in (slice 2 22) .Date.Day}}nd{{ else if in (slice 3 23) .Date.Day}}rd{{ else }}th{{ end }} of {{ .Date.Format "January 2006" }}
+{{ humanize .Date.Day }} of {{ .Date.Format "January 2006" }}
```
This will output:
diff --git a/docs/content/en/functions/highlight.md b/docs/content/en/functions/highlight.md
index 8324edb810f..10b1c2d904d 100644
--- a/docs/content/en/functions/highlight.md
+++ b/docs/content/en/functions/highlight.md
@@ -36,19 +36,19 @@ Display a number at the beginning of each line.
lineNumbersInTable
: Boolean. Default is `true`.\
-Render the highlighted code in an HTML table with two cells. The left table cell contains the line numbers. The right table cell contains the code, allowing a user to select and copy the code without line numbers. Irrelevant if `lineNos` is false.
+Render the highlighted code in an HTML table with two cells. The left table cell contains the line numbers. The right table cell contains the code, allowing a user to select and copy the code without line numbers. Irrelevant if `lineNos` is `false`.
anchorLineNos
: Boolean. Default is `false`.\
-Render each line number as an HTML anchor element, and set the `id` attribute of the surrounding `` to the line number. Irrelevant if `lineNos` is false.
+Render each line number as an HTML anchor element, and set the `id` attribute of the surrounding `` to the line number. Irrelevant if `lineNos` is `false`.
lineAnchors
: String. Default is `""`.\
-When rendering a line number as an HTML anchor element, prepend this value to the `id` attribute of the surrounding ``. This provides unique `id` attributes when a page contains two or more code blocks. Irrelevant if `lineNos` or `anchorLineNos` is false.
+When rendering a line number as an HTML anchor element, prepend this value to the `id` attribute of the surrounding ``. This provides unique `id` attributes when a page contains two or more code blocks. Irrelevant if `lineNos` or `anchorLineNos` is `false`.
lineNoStart
: Integer. Default is `1`.\
-The number to display at the beginning of the first line. Irrelevant if `lineNos` is false.
+The number to display at the beginning of the first line. Irrelevant if `lineNos` is `false`.
hl_Lines
: String. Default is `""`.\
@@ -68,7 +68,7 @@ Use inline CSS styles instead of an external CSS file. To use an external CSS fi
tabWidth
: Integer. Default is `4`.\
-Substitute this number of spaces for each tab character in your highlighted code.
+Substitute this number of spaces for each tab character in your highlighted code. Irrelevant if `noClasses` is `false`.
guessSyntax
: Boolean. Default is `false`.\
diff --git a/docs/content/en/functions/markdownify.md b/docs/content/en/functions/markdownify.md
index b42e045e7f2..8d8726cffe1 100644
--- a/docs/content/en/functions/markdownify.md
+++ b/docs/content/en/functions/markdownify.md
@@ -4,7 +4,7 @@ linktitle: markdownify
description: Runs the provided string through the Markdown processor.
date: 2017-02-01
publishdate: 2017-02-01
-lastmod: 2017-02-01
+lastmod: 2023-02-09
keywords: [markdown,content]
categories: [functions]
menu:
@@ -23,6 +23,7 @@ aliases: []
{{ .Title | markdownify }}
```
-{{< new-in "0.93.0" >}} **Note**: `markdownify` now supports [Render Hooks] just like [.RenderString](/functions/renderstring/).
+{{< new-in "0.93.0" >}} **Note**: `markdownify` now supports [Render Hooks] just like [`.Page.RenderString`]. However, if you use more complicated [Render Hooks] relying on page context, use [`.Page.RenderString`] instead. See [GitHub issue #9692](https://github.com/gohugoio/hugo/issues/9692) for more details.
[Render Hooks]: /templates/render-hooks/
+[`.Page.RenderString`]: /functions/renderstring/
diff --git a/docs/content/en/functions/uniq.md b/docs/content/en/functions/uniq.md
index eec55e5c310..73ca32488ce 100644
--- a/docs/content/en/functions/uniq.md
+++ b/docs/content/en/functions/uniq.md
@@ -1,25 +1,18 @@
---
title: uniq
linktitle: uniq
-description: Takes in a slice or array and returns a slice with subsequent duplicate elements removed.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Takes in a slice or array and returns a slice with duplicate elements removed.
categories: [functions]
menu:
docs:
- parent: "functions"
+ parent: functions
keywords: [multilingual,i18n,urls]
-signature: ["uniq SET"]
-workson: []
-hugoversion:
-relatedfuncs: []
-deprecated: false
+signature: [uniq SET]
aliases: []
---
+
```
-{{ uniq (slice 1 2 3 2) }}
-{{ slice 1 2 3 2 | uniq }}
-
+{{ slice 1 3 2 1 | uniq }} --> [1 3 2]
+
```
diff --git a/docs/content/en/functions/urls.Parse.md b/docs/content/en/functions/urls.Parse.md
index 67673421095..988ecb3ac01 100644
--- a/docs/content/en/functions/urls.Parse.md
+++ b/docs/content/en/functions/urls.Parse.md
@@ -1,6 +1,6 @@
---
title: urls.Parse
-description: Parse parses a given url, which may be relative or absolute, into a URL structure.
+description: Parse parses a given URL, which may be relative or absolute, into a URL structure.
date: 2017-09-25
publishdate: 2017-09-25
lastmod: 2017-09-25
diff --git a/docs/content/en/getting-started/configuration-markup.md b/docs/content/en/getting-started/configuration-markup.md
index b55bd79c4e0..d1d237b2a98 100644
--- a/docs/content/en/getting-started/configuration-markup.md
+++ b/docs/content/en/getting-started/configuration-markup.md
@@ -32,7 +32,7 @@ For details on the extensions, refer to [this section](https://github.com/yuin/g
Some settings explained:
-hardWrap
+hardWraps
: By default, Goldmark ignores newlines within a paragraph. Set to `true` to render newlines as ` ` elements.
unsafe
diff --git a/docs/content/en/getting-started/configuration.md b/docs/content/en/getting-started/configuration.md
index 3c9b426789e..99d11fbb174 100644
--- a/docs/content/en/getting-started/configuration.md
+++ b/docs/content/en/getting-started/configuration.md
@@ -37,6 +37,12 @@ Multiple site config files can be specified as a comma-separated string to the `
{{< todo >}}TODO: distinct config.toml and others (the root object files){{< /todo >}}
+## hugo.toml vs config.toml
+
+In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier code editors and build tools to identify this as a Hugo configuration file and project.
+
+{{< new-in "0.110.0" >}}
+
## Configuration Directory
In addition to using a single site config file, one can use the `configDir` directory (default to `config/`) to maintain easier organization and environment specific settings.
@@ -117,8 +123,7 @@ Note that you don't need to be so verbose as in the default setup below; a `_mer
## All Configuration Settings
-The following is the full list of Hugo-defined variables with their default
-value in parentheses. Users may choose to override those values in their site
+The following is the full list of Hugo-defined variables. Users may choose to override those values in their site
config file(s).
### archetypeDir
diff --git a/docs/content/en/getting-started/external-learning-resources/index.md b/docs/content/en/getting-started/external-learning-resources/index.md
index 7102e08317d..61e7ed649bd 100644
--- a/docs/content/en/getting-started/external-learning-resources/index.md
+++ b/docs/content/en/getting-started/external-learning-resources/index.md
@@ -34,7 +34,7 @@ Hugo in Action is a step-by-step guide to using Hugo to create static websites.
### Hugo tutorial by CloudCannon
-[Step-by-step written tutorial](https://cloudcannon.com/community/learn/hugo-101/) to teach you the basics of creating a Hugo site.
+[Step-by-step written tutorial](https://cloudcannon.com/community/learn/hugo-beginner-tutorial/) to teach you the basics of creating a Hugo site.
## Video tutorials
diff --git a/docs/content/en/hugo-pipes/js.md b/docs/content/en/hugo-pipes/js.md
index c95688e687b..6905a6555a1 100644
--- a/docs/content/en/hugo-pipes/js.md
+++ b/docs/content/en/hugo-pipes/js.md
@@ -41,7 +41,7 @@ minify [bool]
inject [slice]
: This option allows you to automatically replace a global variable with an import from another file. The path names must be relative to `assets`. See https://esbuild.github.io/api/#inject
-shims
+shims [map]
: This option allows swapping out a component with another. A common use case is to load dependencies like React from a CDN (with _shims_) when in production, but running with the full bundled `node_modules` dependency during development:
```go-html-template
@@ -84,13 +84,13 @@ defines [map]
{{ $defines := dict "process.env.NODE_ENV" `"development"` }}
```
-format [string]
+format [string]
: The output format.
One of: `iife`, `cjs`, `esm`.
Default is `iife`, a self-executing function, suitable for inclusion as a