diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md
index ea9f717870f..661302d8feb 100644
--- a/content/en/content-management/multilingual.md
+++ b/content/en/content-management/multilingual.md
@@ -309,7 +309,7 @@ To create a list of links to translated content, use a template similar to the f
diff --git a/content/en/content-management/page-bundles.md b/content/en/content-management/page-bundles.md
index 860fff2bbd9..74fc540243a 100644
--- a/content/en/content-management/page-bundles.md
+++ b/content/en/content-management/page-bundles.md
@@ -18,16 +18,16 @@ A Page Bundle can be one of:
- Leaf Bundle (leaf means it has no children)
- Branch Bundle (home page, section, taxonomy terms, taxonomy list)
-| | Leaf Bundle | Branch Bundle |
-|-------------------------------------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Usage | Collection of content and attachments for single pages | Collection of attachments for section pages (home page, section, taxonomy terms, taxonomy list) |
-| Index file name | `index.md` [^fn:1] | `_index.md` [^fn:1] |
-| Allowed Resources | Page and non-page (like images, PDF, etc.) types | Only non-page (like images, PDF, etc.) types |
-| Where can the Resources live? | At any directory level within the leaf bundle directory. | Only in the directory level **of** the branch bundle directory i.e. the directory containing the `_index.md` ([ref](https://discourse.gohugo.io/t/question-about-content-folder-structure/11822/4?u=kaushalmodi)). |
-| Layout type | [`single`](/templates/single-page-templates/) | [`list`](/templates/lists) |
-| Nesting | Does not allow nesting of more bundles under it | Allows nesting of leaf or branch bundles under it |
-| Example | `content/posts/my-post/index.md` | `content/posts/_index.md` |
-| Content from non-index page files...| Accessed only as page resources | Accessed only as regular pages |
+| | Leaf Bundle | Branch Bundle |
+|-------------------------------------|----------------------------------------------------------|-------------------------------------------------------------------------------------------------|
+| Usage | Collection of content and attachments for single pages | Collection of attachments for section pages (home page, section, taxonomy terms, taxonomy list) |
+| Index file name | `index.md` [^fn:1] | `_index.md` [^fn:1] |
+| Allowed Resources | Page and non-page (like images, PDF, etc.) types | Only non-page (like images, PDF, etc.) types |
+| Where can the Resources live? | At any directory level within the leaf bundle directory. | At any directory level within the branch bundle directory. |
+| Layout type | [`single`](/templates/single-page-templates/) | [`list`](/templates/lists) |
+| Nesting | Does not allow nesting of more bundles under it | Allows nesting of leaf or branch bundles under it |
+| Example | `content/posts/my-post/index.md` | `content/posts/_index.md` |
+| Content from non-index page files...| Accessed only as page resources | Accessed only as regular pages |
## Leaf bundles
diff --git a/content/en/content-management/shortcodes.md b/content/en/content-management/shortcodes.md
index bbc2b0cc83a..8488864e2d0 100644
--- a/content/en/content-management/shortcodes.md
+++ b/content/en/content-management/shortcodes.md
@@ -206,46 +206,23 @@ Rendered:
### `instagram`
-The `instagram` shortcode uses Facebook's **oEmbed Read** feature. The Facebook [developer documentation] states:
-
-- This permission or feature requires successful completion of the App Review process before your app can access live data. [Learn More]
-- This permission or feature is only available with business verification. You may also need to sign additional contracts before your app can access data. [Learn More Here]
-
-[developer documentation]: https://developers.facebook.com/docs/features-reference/oembed-read
-[Learn More]: https://developers.facebook.com/docs/app-review
-[Learn More Here]: https://developers.facebook.com/docs/development/release/business-verification
-
-You must obtain an Access Token to use the `instagram` shortcode.
-
-If your site configuration is private:
-
-{{< code-toggle file=hugo >}}
-[services.instagram]
-accessToken = 'xxx'
-{{< /code-toggle >}}
-
-If your site configuration is _not_ private, set the Access Token with an environment variable:
-
-```sh
-HUGO_SERVICES_INSTAGRAM_ACCESSTOKEN=xxx hugo --gc --minify
-```
-
-{{% note %}}
-If you are using a Client Access Token, you must combine the Access Token with your App ID using a pipe symbol (`APPID|ACCESSTOKEN`).
-{{% /note %}}
To display an Instagram post with this URL:
```text
-https://www.instagram.com/p/BWNjjyYFxVx/
+https://www.instagram.com/p/CxOWiQNP2MO/
```
Include this in your markdown:
```text
-{{* instagram BWNjjyYFxVx */>}}
+{{* instagram CxOWiQNP2MO */>}}
```
+Rendered:
+
+{{< instagram CxOWiQNP2MO >}}
+
### `param`
Gets a value from the current `Page's` parameters set in front matter, with a fallback to the site parameter value. It will log an `ERROR` if the parameter with the given key could not be found in either.
diff --git a/content/en/functions/data/GetCSV.md b/content/en/functions/data/GetCSV.md
index d61ea791d9a..ee9d302581a 100644
--- a/content/en/functions/data/GetCSV.md
+++ b/content/en/functions/data/GetCSV.md
@@ -15,6 +15,18 @@ action:
toc: true
---
+{{% deprecated-in 0.123.0 %}}
+Instead, use [`transform.Unmarshal`] with a [global], [page], or [remote] resource.
+
+See the [remote data example].
+
+[`transform.Unmarshal`]: /functions/transform/unmarshal/
+[global]: /getting-started/glossary/#global-resource
+[page]: /getting-started/glossary/#page-resource
+[remote data example]: /functions/resources/getremote/#remote-data
+[remote]: /getting-started/glossary/#remote-resource
+{{% /deprecated-in %}}
+
Given the following directory structure:
```text
diff --git a/content/en/functions/data/GetJSON.md b/content/en/functions/data/GetJSON.md
index 4db3c898804..d67badec38a 100644
--- a/content/en/functions/data/GetJSON.md
+++ b/content/en/functions/data/GetJSON.md
@@ -15,6 +15,18 @@ action:
toc: true
---
+{{% deprecated-in 0.123.0 %}}
+Instead, use [`transform.Unmarshal`] with a [global], [page], or [remote] resource.
+
+See the [remote data example].
+
+[`transform.Unmarshal`]: /functions/transform/unmarshal/
+[global]: /getting-started/glossary/#global-resource
+[page]: /getting-started/glossary/#page-resource
+[remote data example]: /functions/resources/getremote/#remote-data
+[remote]: /getting-started/glossary/#remote-resource
+{{% /deprecated-in %}}
+
Given the following directory structure:
```text
diff --git a/content/en/functions/fmt/Errorf.md b/content/en/functions/fmt/Errorf.md
index bbdd62c5307..0c966227464 100644
--- a/content/en/functions/fmt/Errorf.md
+++ b/content/en/functions/fmt/Errorf.md
@@ -8,6 +8,7 @@ action:
related:
- functions/fmt/Erroridf
- functions/fmt/Warnf
+ - functions/fmt/Warnidf
returnType: string
signatures: ['fmt.Errorf FORMAT [INPUT]']
aliases: [/functions/errorf]
diff --git a/content/en/functions/fmt/Erroridf.md b/content/en/functions/fmt/Erroridf.md
index 9884f493521..a8d53253a37 100644
--- a/content/en/functions/fmt/Erroridf.md
+++ b/content/en/functions/fmt/Erroridf.md
@@ -8,6 +8,7 @@ action:
related:
- functions/fmt/Errorf
- functions/fmt/Warnf
+ - functions/fmt/Warnidf
returnType: string
signatures: ['fmt.Erroridf ID FORMAT [INPUT]']
aliases: [/functions/erroridf]
@@ -15,7 +16,7 @@ aliases: [/functions/erroridf]
{{% include "functions/fmt/_common/fmt-layout.md" %}}
-The `erroridf` function evaluates the format string, then prints the result to the ERROR log and fails the build. Unlike the [`errorf`] function, you may suppress errors logged by the `erroridf` function by adding the message ID to the `ignoreErrors` array in your site configuration.
+The `erroridf` function evaluates the format string, then prints the result to the ERROR log and fails the build. Unlike the [`errorf`] function, you may suppress errors logged by the `erroridf` function by adding the message ID to the `ignoreLogs` array in your site configuration.
This template code:
@@ -28,13 +29,13 @@ Produces this console log:
```text
ERROR You should consider fixing this.
You can suppress this error by adding the following to your site configuration:
-ignoreErrors = ['error-42']
+ignoreLogs = ['error-42']
```
To suppress this message:
{{< code-toggle file=hugo >}}
-ignoreErrors = ["error-42"]
+ignoreLogs = ["error-42"]
{{< /code-toggle >}}
[`errorf`]: /functions/fmt/errorf
diff --git a/content/en/functions/fmt/Warnf.md b/content/en/functions/fmt/Warnf.md
index 0a90251d318..d619e94c492 100644
--- a/content/en/functions/fmt/Warnf.md
+++ b/content/en/functions/fmt/Warnf.md
@@ -8,6 +8,7 @@ action:
related:
- functions/fmt/Errorf
- functions/fmt/Erroridf
+ - functions/fmt/Warnidf
returnType: string
signatures: ['fmt.Warnf FORMAT [INPUT]']
aliases: [/functions/warnf]
diff --git a/content/en/functions/fmt/Warnidf.md b/content/en/functions/fmt/Warnidf.md
new file mode 100644
index 00000000000..5319fe9770d
--- /dev/null
+++ b/content/en/functions/fmt/Warnidf.md
@@ -0,0 +1,43 @@
+---
+title: fmt.Warnidf
+description: Log a suppressable WARNING from a template.
+categories: []
+keywords: []
+action:
+ aliases: [warnidf]
+ related:
+ - functions/fmt/Errorf
+ - functions/fmt/Erroridf
+ - functions/fmt/Warnf
+ returnType: string
+ signatures: ['fmt.Warnidf ID FORMAT [INPUT]']
+aliases: [/functions/warnidf]
+---
+
+{{< new-in 0.123.0 >}}
+
+{{% include "functions/fmt/_common/fmt-layout.md" %}}
+
+The `warnidf` function evaluates the format string, then prints the result to the WARNING log. Unlike the [`warnf`] function, you may suppress warnings logged by the `warnidf` function by adding the message ID to the `ignoreLogs` array in your site configuration.
+
+This template code:
+
+```go-html-template
+{{ warnidf "warning-42" "You should consider fixing this." }}
+```
+
+Produces this console log:
+
+```text
+WARN You should consider fixing this.
+You can suppress this warning by adding the following to your site configuration:
+ignoreLogs = ['warning-42']
+```
+
+To suppress this message:
+
+{{< code-toggle file=hugo >}}
+ignoreLogs = ["warning-42"]
+{{< /code-toggle >}}
+
+[`warnf`]: /functions/fmt/warnf
diff --git a/content/en/getting-started/configuration-markup.md b/content/en/getting-started/configuration-markup.md
index 607301d3afd..27f5129079b 100644
--- a/content/en/getting-started/configuration-markup.md
+++ b/content/en/getting-started/configuration-markup.md
@@ -56,9 +56,32 @@ This is the default configuration for the Goldmark markdown renderer:
{{< code-toggle config=markup.goldmark />}}
-For details on the extensions, refer to the [Goldmark documentation](https://github.com/yuin/goldmark/#built-in-extensions).
+### Goldmark extensions
-Some settings explained:
+
+Extension|Documentation
+:--|:--
+cjk|[Goldmark Extensions: CJK]
+definitionList|[PHP Markdown Extra: Definition lists]
+footnote|[PHP Markdown Extra: Footnotes]
+linkify|[GitHub Flavored Markdown: Autolinks]
+passthrough|[Hugo Goldmark Extensions: Passthrough]
+strikethrough|[GitHub Flavored Markdown: Strikethrough]
+table|[GitHub Flavored Markdown: Tables]
+taskList|[GitHub Flavored Markdown: Task list items]
+typographer|[Goldmark Extensions: Typographer]
+
+[GitHub Flavored Markdown: Autolinks]: https://github.github.com/gfm/#autolinks-extension-
+[GitHub Flavored Markdown: Strikethrough]: https://github.github.com/gfm/#strikethrough-extension-
+[GitHub Flavored Markdown: Tables]: https://github.github.com/gfm/#tables-extension-
+[GitHub Flavored Markdown: Task list items]: https://github.github.com/gfm/#task-list-items-extension-
+[Goldmark Extensions: CJK]: https://github.com/yuin/goldmark?tab=readme-ov-file#cjk-extension
+[Goldmark Extensions: Typographer]: https://github.com/yuin/goldmark?tab=readme-ov-file#typographer-extension
+[Hugo Goldmark Extensions: Passthrough]: https://github.com/gohugoio/hugo-goldmark-extensions?tab=readme-ov-file#passthrough-extension
+[PHP Markdown Extra: Definition lists]: https://michelf.ca/projects/php-markdown/extra/#def-list
+[PHP Markdown Extra: Footnotes]: https://michelf.ca/projects/php-markdown/extra/#footnotes
+
+### Goldmark settings
hardWraps
: By default, Goldmark ignores newlines within a paragraph. Set to `true` to render newlines as ` ` elements.
diff --git a/content/en/methods/page/BundleType.md b/content/en/methods/page/BundleType.md
index 77d1d72eb33..5254757eeff 100644
--- a/content/en/methods/page/BundleType.md
+++ b/content/en/methods/page/BundleType.md
@@ -5,7 +5,7 @@ categories: []
keywords: []
action:
related: []
- returnType: files.ContentClass
+ returnType: string
signatures: [PAGE.BundleType]
---
diff --git a/content/en/methods/page/File.md b/content/en/methods/page/File.md
index 44b752215ef..a1c9478c390 100644
--- a/content/en/methods/page/File.md
+++ b/content/en/methods/page/File.md
@@ -80,33 +80,33 @@ The path separators (slash or backslash) in `Path`, `Dir`, and `Filename` depend
{{ end }}
```
-###### Lang
+###### LogicalName
-(`string`) The language associated with the given file.
+(`string`) The file name.
```go-html-template
{{ with .File }}
- {{ .Lang }}
+ {{ .LogicalName }}
{{ end }}
```
-###### LogicalName
+###### Path
-(`string`) The file name.
+(`string`) The file path, relative to the `content` directory.
```go-html-template
{{ with .File }}
- {{ .LogicalName }}
+ {{ .Path }}
{{ end }}
```
-###### Path
+###### Section
-(`string`) The file path, relative to the `content` directory.
+(`string`) The name of the top level section in which the file resides.
```go-html-template
{{ with .File }}
- {{ .Path }}
+ {{ .Section }}
{{ end }}
```
@@ -157,9 +157,9 @@ ContentBaseName|a|b|news
Dir|news/|news/b/|news/
Ext|md|md|md
Filename|/home/user/...|/home/user/...|/home/user/...
-Lang|en|en|en
LogicalName|a.en.md|index.en.md|_index.en.md
Path|news/a.en.md|news/b/index.en.md|news/_index.en.md
+Section|news|news|news
TranslationBaseName|a|index|_index
UniqueID|15be14b...|186868f...|7d9159d...
diff --git a/content/en/methods/page/Path.md b/content/en/methods/page/Path.md
new file mode 100644
index 00000000000..b6b9b55c0ff
--- /dev/null
+++ b/content/en/methods/page/Path.md
@@ -0,0 +1,47 @@
+---
+title: Path
+description: Returns the canonical content path for the given page.
+categories: []
+keywords: []
+action:
+ related: []
+ returnType: string
+ signatures: [PAGE.Path]
+---
+
+The `Path` method on a `Page` object returns the canonical content path for the given page, regardless of whether the page is backed by a file.
+
+```go-html-template
+{{ .Path }} → /posts/post-1
+```
+
+This value is neither a file path nor a relative URL. It is canonical identifier for each page, independent of content format and URL.
+
+{{% note %}}
+Beginning with the release of [v0.92.0] in January 2022, Hugo emitted a warning whenever the `Path` method was called. The warning indicated that this method would change in a future release.
+
+The meaning of, and value returned by, the `Path` method on a `Page` object changed with the release of [v0.123.0] in February 2024.
+
+[v0.92.0]: https://github.com/gohugoio/hugo/releases/tag/v0.92.0
+[v0.123.0]: https://github.com/gohugoio/hugo/releases/tag/v0.123.0
+{{% /note %}}
+
+For example, if you were to change a page's URL by specifying either `slug` or `url` in front matter, the value returned by the `Path` method will not change:
+
+File path|Front matter slug|Value returned by .Path
+:--|:--|:--
+`content/_index.md`||`/`
+`content/posts/_index.md`||`/posts`
+`content/posts/post-1.md`|`foo`|`/posts/post-1`
+`content/posts/post-2.html`|`bar`|`/posts/post-2`
+
+With multilingual sites, for languages other than the default content language, Hugo appends a language identifier. For example, for a site where the default content language is English:
+
+File path|Value returned by .Path
+:--|:--
+`content/_index.en.md`|`/`
+`content/_index.de.md`|`/_index.de`
+`content/posts/_index.en.md`|`/posts`
+`content/posts/_index.de.md`|`/posts/_index.de`
+`content/posts/posts-1.en.md`|`/posts/post-1`
+`content/posts/posts-1.de.md`|`/posts/post-1.de`
diff --git a/content/en/methods/site/LastChange.md b/content/en/methods/site/LastChange.md
index aceee691d02..6d4a7f95da1 100644
--- a/content/en/methods/site/LastChange.md
+++ b/content/en/methods/site/LastChange.md
@@ -9,10 +9,16 @@ action:
signatures: [SITE.LastChange]
---
+{{% deprecated-in 0.123.0 %}}
+Use [`.Site.Lastmod`] instead.
+
+[`.Site.Lastmod`]: /methods/site/lastmod/
+{{% /deprecated-in %}}
+
The `LastChange` method on a `Site` object returns a [`time.Time`] value. Use this with time [functions] and [methods]. For example:
```go-html-template
-{{ .Site.LastChange | time.Format ":date_long" }} → October 16, 2023
+{{ .Site.LastChange | time.Format ":date_long" }} → January 31, 2024
```
diff --git a/content/en/methods/site/Lastmod.md b/content/en/methods/site/Lastmod.md
new file mode 100644
index 00000000000..6d24b77c9ba
--- /dev/null
+++ b/content/en/methods/site/Lastmod.md
@@ -0,0 +1,23 @@
+---
+title: Lastmod
+description: Returns the last modification date of site content.
+categories: []
+keywords: []
+action:
+ related: []
+ returnType: time.Time
+ signatures: [SITE.Lastmod]
+---
+
+{{< new-in 0.123.0 >}}
+
+The `Lastmod` method on a `Site` object returns a [`time.Time`] value. Use this with time [functions] and [methods]. For example:
+
+```go-html-template
+{{ .Site.Lastmod | time.Format ":date_long" }} → January 31, 2024
+
+```
+
+[`time.Time`]: https://pkg.go.dev/time#Time
+[functions]: /functions/time
+[methods]: /methods/time
diff --git a/content/en/methods/site/Sites.md b/content/en/methods/site/Sites.md
index f7bafd3ed2c..721c232c906 100644
--- a/content/en/methods/site/Sites.md
+++ b/content/en/methods/site/Sites.md
@@ -1,6 +1,6 @@
---
title: Sites
-description: Returns a collection of all Site objects, one for each language, ordered by language weight.
+description: Returns a collection of all Site objects, one for each language, ordered by default content language then by language weight.
categories: []
keywords: []
action:
diff --git a/content/en/templates/output-formats.md b/content/en/templates/output-formats.md
index 0e95f3ffb78..7a8f8f677b1 100644
--- a/content/en/templates/output-formats.md
+++ b/content/en/templates/output-formats.md
@@ -63,7 +63,7 @@ Given a media type and some additional configuration, you get an **Output Format
This is the full set of Hugo's built-in output formats:
-{{< datatable "config" "outputFormats" "name" "mediaType" "path" "baseName" "rel" "protocol" "isPlainText" "isHTML" "noUgly" "permalinkable" >}}
+{{< datatable "config" "outputFormats" "name" "baseName" "isHTML" "isPlainText" "mediaType" "noUgly" "path" "permalinkable" "protocol" "rel" >}}
- 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 above table, the best example of this is `amp` vs. `html`. `amp` has the value `amp` for `path` so it doesn't overwrite the `html` version; e.g. we can now have both `/index.html` and `/amp/index.html`.
- The `mediaType` must match a defined media type.
@@ -83,40 +83,56 @@ The above example is fictional, but if used for the homepage on a site with `bas
### Configure output formats
-The following is the full list of configuration options for output formats and their default values:
+Use these parameters when configuring an output format:
-mediaType
-: this must match the `Type` of a defined media type.
+baseName
+: (`string`) The base name of the published file. Default is `index`.
-path
-: sub path to save the output files.
+isHTML
+: (`bool`) If `true`, classifies the output format as HTML. Hugo uses this value to determine when to create alias redirects, when to inject the LiveReload script, etc. Default is `false`.
-baseName
-: the base file name for the list file names (homepage, etc.). **Default:** `index`.
+isPlainText
+: (`bool`) If `true`, Hugo parses templates for this output format with Go's [text/template] package instead of the [html/template] package. Default is `false`.
-rel
-: can be used to create `rel` values in `link` tags. **Default:** `alternate`.
+[html/template]: https://pkg.go.dev/html/template
+[text/template]: https://pkg.go.dev/text/template
-protocol
-: will replace the "http://" or "https://" in your `baseURL` for this output format.
+mediaType
+: (`string`) The [media type] of the published file. This must match a defined media type, either [built-in](#media-types) or custom.
-isPlainText
-: use Go's plain text templates parser for the templates. **Default:** `false`.
+[media type]: https://en.wikipedia.org/wiki/Media_type
-isHTML
-: used in situations only relevant for `HTML`-type formats; e.g., page aliases. **Default:** `false`.
+notAlternative
+: (`bool`) If `true`, excludes this output format from the values returned by the [`AlternativeOutputFormats`] method on a `Page` object. Default is `false`.
+
+[`AlternativeOutputFormats`]: /methods/page/alternativeoutputformats/
noUgly
-: used to turn off ugly URLs If `uglyURLs` is set to `true` in your site. **Default:** `false`.
+: (`bool`) If `true`, disables ugly URLs for this output format when `uglyURLs` is `true` in your site configuration. Default is `false`.
-notAlternative
-: enable if it doesn't make sense to include this format in an `AlternativeOutputFormats` format listing on `Page` (e.g., with `CSS`). Note that we use the term _alternative_ and not _alternate_ here, as it does not necessarily replace the other format. **Default:** `false`.
+path
+: (`string`) The path to the directory containing the published files, relative to the root of the publish directory.
permalinkable
-: make `.Permalink` and `.RelPermalink` return the rendering Output Format rather than main ([see below](#link-to-output-formats)). This is enabled by default for `HTML` and `AMP`. **Default:** `false`.
+: (`bool`) If `true`, the [`Permalink`] and [`RelPermalink`] methods on a `Page` object return the rendering output format rather than main ouptut format ([see below](#link-to-output-formats)). Enabled by default for the `html` and `amp` output formats. Default is `false`.
+
+[`Permalink`]: /methods/page/permalink/
+[`RelPermalink`]: /methods/page/relpermalink/
+
+protocol
+: (`string`) The protocol (scheme) of the URL for this output format. For example, `https://` or `webcal://`. Default is the scheme of the `baseURL` parameter in your site configuration, typically `https://`.
+
+rel
+: (`string`) If provided, you can assign this value to `rel` attributes in `link` elements when iterating over ouput formats in your templates. Default is `alternate`.
+
+root
+: (`bool`) If `true`, files will be published to the root of the publish directory. Default is `false`.
+
+ugly
+: (`bool`) If `true`, enables uglyURLs for this output format when `uglyURLs` is `false` in your site configuration. Default is `false`.
weight
-: Setting this to a non-zero value will be used as the first sort criteria.
+: (`int`) When set to a non-zero value, Hugo uses the `weight` as the first criteria when sorting output formats, falling back to the name of the output format. Lighter items float to the top, while heavier items sink to the bottom. Hugo renders output formats sequentially based on the sort order.
## Output formats for pages
@@ -172,7 +188,7 @@ Each `Page` has both an `.OutputFormats` (all formats, including the current) an
## Link to output formats
-`.Permalink` and `.RelPermalink` on `Page` will return the first output format defined for that page (usually `HTML` if nothing else is defined). This is regardless of the template file they are being called from.
+The `Permalink` and `RelPermalink` methods on a `Page` object return the first output format defined for that page (usually `HTML` if nothing else is defined). This is regardless of the template from which they are called.
__from `single.json.json`:__
```go-html-template
diff --git a/content/en/troubleshooting/faq.md b/content/en/troubleshooting/faq.md
index 0425ca27795..ab7857fa4d1 100644
--- a/content/en/troubleshooting/faq.md
+++ b/content/en/troubleshooting/faq.md
@@ -39,17 +39,6 @@ In the content/_index.md file:
If the answer to any of these questions is yes, either change the field values, or use one of these command line flags: `--buildDrafts`, `--buildFuture`, or `--buildExpired`.
-###### Why is a given section not published?
-
-In the content/section/_index.md file:
-
- - Is `draft` set to `true`?
- - Is the `date` in the future?
- - Is the `publishDate` in the future?
- - Is the `expiryDate` in the past?
-
-If the answer to any of these questions is yes, either change the field values, or use one of these command line flags: `--buildDrafts`, `--buildFuture`, or `--buildExpired`.
-
###### Why is a given page not published?
In the content/section/page.md file, or in the content/section/page/index.md file:
diff --git a/data/docs.yaml b/data/docs.yaml
index 04ef2cb26b5..ed4d1fb0986 100644
--- a/data/docs.yaml
+++ b/data/docs.yaml
@@ -917,14 +917,9 @@ config:
disableTags: false
enable: false
cacheBusters:
- - source: assets/.*\.(js|ts|jsx|tsx)
- target: (js|scripts|javascript)
- - source: assets/.*\.(css|sass|scss)$
- target: (css|styles|scss|sass)
- source: (postcss|tailwind)\.config\.js
target: (css|styles|scss|sass)
- - source: assets/.*\.(.*)$
- target: $1
+ duplicateResourceFiles: false
noJSConfigInAssets: false
useResourceCacheWhen: fallback
buildDrafts: false
@@ -1007,8 +1002,8 @@ config:
hasCJKLanguage: false
i18nDir: i18n
ignoreCache: false
- ignoreErrors: null
ignoreFiles: []
+ ignoreLogs: null
ignoreVendorPaths: ""
imaging:
bgColor: '#ffffff'
@@ -1041,6 +1036,7 @@ config:
workingFolderCurrent: false
defaultMarkdownHandler: goldmark
goldmark:
+ duplicateResourceFiles: false
extensions:
cjk:
eastAsianLineBreaks: false
@@ -1078,6 +1074,11 @@ config:
autoHeadingID: true
autoHeadingIDType: github
wrapStandAloneImageWithinParagraph: true
+ renderHooks:
+ image:
+ enableDefault: false
+ link:
+ enableDefault: false
renderer:
hardWraps: false
unsafe: false
@@ -1352,143 +1353,154 @@ config:
isHTML: true
isPlainText: false
mediaType: text/html
- name: amp
noUgly: false
notAlternative: false
path: amp
permalinkable: true
protocol: ""
rel: amphtml
+ root: false
+ ugly: false
weight: 0
calendar:
baseName: index
isHTML: false
isPlainText: true
mediaType: text/calendar
- name: calendar
noUgly: false
notAlternative: false
path: ""
permalinkable: false
protocol: webcal://
rel: alternate
+ root: false
+ ugly: false
weight: 0
css:
baseName: styles
isHTML: false
isPlainText: true
mediaType: text/css
- name: css
noUgly: false
notAlternative: true
path: ""
permalinkable: false
protocol: ""
rel: stylesheet
+ root: false
+ ugly: false
weight: 0
csv:
baseName: index
isHTML: false
isPlainText: true
mediaType: text/csv
- name: csv
noUgly: false
notAlternative: false
path: ""
permalinkable: false
protocol: ""
rel: alternate
+ root: false
+ ugly: false
weight: 0
html:
baseName: index
isHTML: true
isPlainText: false
mediaType: text/html
- name: html
noUgly: false
notAlternative: false
path: ""
permalinkable: true
protocol: ""
rel: canonical
+ root: false
+ ugly: false
weight: 10
json:
baseName: index
isHTML: false
isPlainText: true
mediaType: application/json
- name: json
noUgly: false
notAlternative: false
path: ""
permalinkable: false
protocol: ""
rel: alternate
+ root: false
+ ugly: false
weight: 0
markdown:
baseName: index
isHTML: false
isPlainText: true
mediaType: text/markdown
- name: markdown
noUgly: false
notAlternative: false
path: ""
permalinkable: false
protocol: ""
rel: alternate
+ root: false
+ ugly: false
weight: 0
robots:
baseName: robots
isHTML: false
isPlainText: true
mediaType: text/plain
- name: robots
noUgly: false
notAlternative: false
path: ""
permalinkable: false
protocol: ""
rel: alternate
+ root: true
+ ugly: false
weight: 0
rss:
baseName: index
isHTML: false
isPlainText: false
mediaType: application/rss+xml
- name: rss
noUgly: true
notAlternative: false
path: ""
permalinkable: false
protocol: ""
rel: alternate
+ root: false
+ ugly: false
weight: 0
sitemap:
baseName: sitemap
isHTML: false
isPlainText: false
mediaType: application/xml
- name: sitemap
- noUgly: true
+ noUgly: false
notAlternative: false
path: ""
permalinkable: false
protocol: ""
rel: sitemap
+ root: false
+ ugly: true
weight: 0
webappmanifest:
baseName: manifest
isHTML: false
isPlainText: true
mediaType: application/manifest+json
- name: webappmanifest
noUgly: false
notAlternative: true
path: ""
permalinkable: false
protocol: ""
rel: manifest
+ root: false
+ ugly: false
weight: 0
outputs:
home:
@@ -2913,6 +2925,20 @@ tpl:
Examples:
- - '{{ warnf "%s." "warning" }}'
- ""
+ Warnidf:
+ Aliases:
+ - warnidf
+ Args:
+ - id
+ - format
+ - args
+ Description: |-
+ Warnidf formats args according to a format specifier and logs an WARNING and
+ an information text that the warning with the given id can be suppressed in config.
+ It returns an empty string.
+ Examples:
+ - - '{{ warnidf "my-warn-id" "%s." "warning" }}'
+ - ""
Warnmf:
Aliases: null
Args: null
@@ -3688,14 +3714,6 @@ tpl:
- s
Description: JSStr returns the given string as a html/template JSStr content.
Examples: []
- SanitizeURL:
- Aliases:
- - sanitizeURL
- - sanitizeurl
- Args:
- - s
- Description: SanitizeURL returns the string s as html/template URL content.
- Examples: []
URL:
Aliases:
- safeURL
@@ -3756,7 +3774,7 @@ tpl:
Args: null
Description: ""
Examples: null
- GetIdentity:
+ ForEeachIdentityByName:
Aliases: null
Args: null
Description: ""
@@ -3766,11 +3784,6 @@ tpl:
Args: null
Description: ""
Examples: null
- GetPageWithTemplateInfo:
- Aliases: null
- Args: null
- Description: ""
- Examples: null
GoogleAnalytics:
Aliases: null
Args: null
@@ -3796,6 +3809,11 @@ tpl:
Args: null
Description: ""
Examples: null
+ Key:
+ Aliases: null
+ Args: null
+ Description: ""
+ Examples: null
Language:
Aliases: null
Args: null
@@ -3821,6 +3839,11 @@ tpl:
Args: null
Description: ""
Examples: null
+ Lastmod:
+ Aliases: null
+ Args: null
+ Description: ""
+ Examples: null
MainSections:
Aliases: null
Args: null
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
deleted file mode 100644
index beb2d8619b1..00000000000
--- a/layouts/_default/baseof.html
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- {{/* https://www.zachleat.com/web/preload/ */}}
-
-
-
-
-
- {{/* NOTE: the Site's title, and if there is a page title, that is set too */}}
-
- {{ block "title" . }}
- {{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}
- {{ end }}
-
-
-
-
- {{ hugo.Generator }}
-
- {{ if hugo.IsProduction }}
-
- {{ else }}
-
- {{ end }}
-
- {{ range .AlternativeOutputFormats -}}
-
- {{ end -}}
-
- {{ $isDev := eq hugo.Environment "development" }}
- {{ $stylesheet := resources.Get "output/css/app.css" }}
- {{ if not $isDev }}
- {{ $stylesheet = $stylesheet | minify | fingerprint }}
- {{ end }}
- {{ with $stylesheet }}
- {{ if $isDev }}
-
- {{ else }}
-
- {{ end }}
- {{ $.Scratch.Set "stylesheet" . }}
- {{ end }}
-
-
-
-
- {{ block "scripts" . }}
- {{- partial "site-scripts.html" . -}}
- {{ end }}
- {{ partial "site-manifest.html" . }}
- {{- partial "head-additions.html" . -}}
- {{- partial "opengraph/opengraph.html" . -}}
- {{- template "_internal/schema.html" . -}}
- {{- partial "opengraph/twitter_cards.html" . -}}
-
- {{ if hugo.IsProduction }}
- {{ partial "gtag.html" . }}
- {{ end }}
-
- {{ $hasMath := .Param "math" }}
- {{ if $hasMath }}
- {{ partialCached "math.html" . }}
- {{ end }}
-
-
-
-
- {{ partial "hooks/after-body-start.html" . }}
- {{ block "nav" . }}{{ partial "site-nav.html" . }}{{ end }}
- {{ block "header" . }}{{ end }}
-
- {{ block "main" . }}{{ end }}
-
-
- {{ block "footer" . }}{{ partialCached "site-footer.html" . }}{{ end }}
-
- {{ partial "hooks/before-body-end.html" . }}
-
-
-
diff --git a/layouts/partials/math.html b/layouts/partials/math.html
deleted file mode 100644
index b1eb5c8db68..00000000000
--- a/layouts/partials/math.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-