From: Bjørn Erik Pedersen By bep
++ The table below shows all of Hugo's benchmarks run on both a MacBook with Intel CPU and a Mac Mini M1 with an ARM CPU.
++ Some notes:
++
++ See Also
+
+ {{ range . }}
+
+{{ end }}
+{{< /code >}}
+
+### Methods
+
+Here is the list of "Related" methods available on a page collection such `.RegularPages`.
+
+#### .Related PAGE
+Returns a collection of pages related the given one.
+
+```
+{{ $related := .Site.RegularPages.Related . }}
+```
+
+#### .RelatedIndices PAGE INDICE1 [INDICE2 ...]
+Returns a collection of pages related to a given one restricted to a list of indices.
+
+```
+{{ $related := .Site.RegularPages.RelatedIndices . "tags" "date" }}
+```
+
+#### .RelatedTo KEYVALS [KEYVALS2 ...]
+Returns a collection of pages related together by a set of indices and their match.
+
+In order to build those set and pass them as argument, one must use the `keyVals` function where the first argument would be the `indice` and the consecutive ones its potential `matches`.
+
+```
+{{ $related := .Site.RegularPages.RelatedTo ( keyVals "tags" "hugo" "rocks") ( keyVals "date" .Date ) }}
+```
+
+{{% note %}}
+Read [this blog article](https://regisphilibert.com/blog/2018/04/hugo-optmized-relashionships-with-related-content/) for a great explanation of more advanced usage of this feature.
+{{% /note %}}
+
+## Configure Related Content
+Hugo provides a sensible default configuration of Related Content, but you can fine-tune this in your configuration, on the global or language level if needed.
+
+### Default configuration
+
+Without any `related` configuration set on the project, Hugo's Related Content methods will use the following.
+
+{{< code-toggle file="config" >}}
+related:
+ threshold: 80
+ includeNewer: false
+ toLower: false
+ indices:
+ - name: keywords
+ weight: 100
+ - name: date
+ weight: 10
+{{< /code-toggle >}}
+
++Note that if you have configured `tags` as a taxonomy, `tags` will also be added to the default configuration abve with the weight of `80`.
++
+Custom configuration should be set using the same syntax.
+
+{{% note %}}
+If you add a `related` config section, you need to add a complete configuration. It is not possible to just set, say, `includeNewer` and use the rest from the Hugo defaults.
+{{% /note %}}
+
+### Top Level Config Options
+
+threshold
+: A value between 0-100. Lower value will give more, but maybe not so relevant, matches.
+
+includeNewer
+: Set to true to include **pages newer than the current page** in the related content listing. This will mean that the output for older posts may change as new related content gets added.
+
+toLower
+: Set to true to lower case keywords in both the indexes and the queries. This may give more accurate results at a slight performance penalty. Note that this can also be set per index.
+
+### Config Options per Index
+
+name
+: The index name. This value maps directly to a page param. Hugo supports string values (`author` in the example) and lists (`tags`, `keywords` etc.) and time and date objects.
+
+weight
+: An integer weight that indicates _how important_ this parameter is relative to the other parameters. It can be 0, which has the effect of turning this index off, or even negative. Test with different values to see what fits your content best.
+
+pattern
+: This is currently only relevant for dates. When listing related content, we may want to list content that is also close in time. Setting "2006" (default value for date indexes) as the pattern for a date index will add weight to pages published in the same year. For busier blogs, "200601" (year and month) may be a better default.
+
+toLower
+: See above.
+
+## Performance Considerations
+
+**Fast is Hugo's middle name** and we would not have released this feature had it not been blistering fast.
+
+This feature has been in the back log and requested by many for a long time. The development got this recent kick start from this Twitter thread:
+
+{{< tweet 898398437527363585 >}}
+
+Scott S. Lowe removed the "Related Content" section built using the `intersect` template function on tags, and the build time dropped from 30 seconds to less than 2 seconds on his 1700 content page sized blog.
+
+He should now be able to add an improved version of that "Related Content" section without giving up the fast live-reloads. But it's worth noting that:
+
+* If you don't use any of the `Related` methods, you will not use the Relate Content feature, and performance will be the same as before.
+* Calling `.RegularPages.Related` etc. will create one inverted index, also sometimes named posting list, that will be reused for any lookups in that same page collection. Doing that in addition to, as an example, calling `.Pages.Related` will work as expected, but will create one additional inverted index. This should still be very fast, but worth having in mind, especially for bigger sites.
+
+{{% note %}}
+We currently do not index **Page content**. We thought we would release something that will make most people happy before we start solving [Sherlock's last case](https://github.com/joearms/sherlock).
+{{% /note %}}
diff --cc docs/content/en/functions/path.Split.md
index d6bc15ce,00000000..2d6aff6b
mode 100644,000000..100644
--- a/docs/content/en/functions/path.Split.md
+++ b/docs/content/en/functions/path.Split.md
@@@ -1,31 -1,0 +1,31 @@@
+---
+title: path.Split
+description: Split path immediately following the final slash.
+godocref:
+date: 2018-11-28
+publishdate: 2018-11-28
+lastmod: 2018-11-28
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [path, split]
+signature: ["path.Split PATH"]
+workson: []
+hugoversion: "0.39"
+relatedfuncs: [path.Split]
+deprecated: false
+---
+
+`path.Split` splits `PATH` immediately following the final slash, separating it into a directory and a base component.
+
+The returned values have the property that `PATH` = `DIR`+`BASE`.
+If there is no slash in `PATH`, it returns an empty directory and the base is set to `PATH`.
+
+**Note:** On Windows, `PATH` is converted to slash (`/`) separators.
+
+```
- {{ path.Split "a/news.html" }} â "a/", "news.html"
- {{ path.Split "news.html" }} â "", "news.html"
- {{ path.Split "a/b/c" }} â "a/b/", "c"
++{{ $dirFile := path.Split "a/news.html" }} â $dirDile.Dir â "a/", $dirFile.File â "news.html"
++{{ $dirFile := path.Split "news.html" }} â $dirDile.Dir â "", $dirDile.File â "news.html"
++{{ $dirFile := path.Split "a/b/c" }} â $dirDile.Dir â "a/b/", $dirDile.File â "c"
+```
diff --cc docs/content/en/functions/substr.md
index feb25aa1,00000000..c02141ab
mode 100644,000000..100644
--- a/docs/content/en/functions/substr.md
+++ b/docs/content/en/functions/substr.md
@@@ -1,31 -1,0 +1,46 @@@
+---
+title: substr
+# linktitle:
+description: Extracts parts of a string from a specified character's position and returns the specified number of characters.
+godocref:
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [strings]
+aliases: []
+signature: ["substr STRING START [LENGTH]"]
+workson: []
+hugoversion:
+relatedfuncs: []
+deprecated: false
+---
+
+It normally takes two parameters: `start` and `length`. It can also take one parameter: `start`, i.e. `length` is omitted, in which case the substring starting from start until the end of the string will be returned.
+
+To extract characters from the end of the string, use a negative start number.
+
+In addition, borrowing from the extended behavior described at https://php.net substr, if `length` is given and is negative, that number of characters will be omitted from the end of string.
+
+```
- {{substr "BatMan" 0 -3}} â "Bat"
- {{substr "BatMan" 3 3}} â "Man"
++{{ substr "abcdef" 0 }} â "abcdef"
++{{ substr "abcdef" 1 }} â "bcdef"
++
++{{ substr "abcdef" 0 1 }} â "a"
++{{ substr "abcdef" 1 1 }} â "b"
++
++{{ substr "abcdef" 0 -1 }} â "abcde"
++{{ substr "abcdef" 1 -1 }} â "bcde"
++
++{{ substr "abcdef" -1 }} â "f"
++{{ substr "abcdef" -2 }} â "ef"
++
++{{ substr "abcdef" -1 1 }} â "f"
++{{ substr "abcdef" -2 1 }} â "e"
++
++{{ substr "abcdef" -3 -1 }} â "de"
++{{ substr "abcdef" -3 -2 }} â "d"
+```
diff --cc docs/content/en/getting-started/configuration.md
index fbfa676b,00000000..97763c00
mode 100644,000000..100644
--- a/docs/content/en/getting-started/configuration.md
+++ b/docs/content/en/getting-started/configuration.md
@@@ -1,586 -1,0 +1,586 @@@
+---
+title: Configure Hugo
+linktitle: Configuration
+description: How to configure your Hugo site.
+date: 2013-07-01
+publishdate: 2017-01-02
+lastmod: 2017-03-05
+categories: [getting started,fundamentals]
+keywords: [configuration,toml,yaml,json]
+menu:
+ docs:
+ parent: "getting-started"
+ weight: 60
+weight: 60
+sections_weight: 60
+draft: false
+aliases: [/overview/source-directory/,/overview/configuration/]
+toc: true
+---
+
+
+## Configuration File
+
+Hugo uses the `config.toml`, `config.yaml`, or `config.json` (if found in the
+site root) as the default site config file.
+
+The user can choose to override that default with one or more site config files
+using the command line `--config` switch.
+
+Examples:
+
+```
+hugo --config debugconfig.toml
+hugo --config a.toml,b.toml,c.toml
+```
+
+{{% note %}}
+Multiple site config files can be specified as a comma-separated string to the `--config` switch.
+{{% /note %}}
+
+{{< todo >}}TODO: distinct config.toml and others (the root object files){{< /todo >}}
+
+## 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.
+
+- Each file represents a configuration root object, such as `params.toml` for `[Params]`, `menu(s).toml` for `[Menu]`, `languages.toml` for `[Languages]` etc...
+- Each file's content must be top-level, for example:
+
+ In `config.toml` is:
+ ```toml
+ [Params]
+ foo = "bar"
+ ```
+ In `params.toml` is:
+ ```
+ foo = "bar"
+ ```
+- Each directory holds a group of files containing settings unique to an environment.
+- Files can be localized to become language specific.
+
+
+```
+âââ config
+â âââ _default
+â â âââ config.toml
+â â âââ languages.toml
+â â âââ menus.en.toml
+â â âââ menus.zh.toml
+â â âââ params.toml
+â âââ production
+â â âââ config.toml
+â â âââ params.toml
+â âââ staging
+â âââ config.toml
+â âââ params.toml
+```
+
+Considering the structure above, when running `hugo --environment staging`, Hugo will use every settings from `config/_default` and merge `staging`'s on top of those.
+{{% note %}}
+Default environments are __development__ with `hugo server` and __production__ with `hugo`.
+{{%/ note %}}
+## 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
+config file(s).
+
+archetypeDir ("archetypes")
+: The directory where Hugo finds archetype files (content templates). {{% module-mounts-note %}}
+
+assetDir ("assets")
+: The directory where Hugo finds asset files used in [Hugo Pipes](/hugo-pipes/). {{% module-mounts-note %}}
+
+baseURL
+: Hostname (and path) to the root, e.g. https://bep.is/
+
+blackfriday
+: See [Configure Blackfriday](/getting-started/configuration-markup#blackfriday)
+
+build
+: See [Configure Build](#configure-build)
+
+buildDrafts (false)
+: Include drafts when building.
+
+buildExpired (false)
+: Include content already expired.
+
+buildFuture (false)
+: Include content with publishdate in the future.
+
+caches
+: See [Configure File Caches](#configure-file-caches)
+
+canonifyURLs (false)
+: Enable to turn relative URLs into absolute.
+
+contentDir ("content")
+: The directory from where Hugo reads content files. {{% module-mounts-note %}}
+
+dataDir ("data")
+: The directory from where Hugo reads data files. {{% module-mounts-note %}}
+
+defaultContentLanguage ("en")
+: Content without language indicator will default to this language.
+
+defaultContentLanguageInSubdir (false)
+: Render the default content language in subdir, e.g. `content/en/`. The site root `/` will then redirect to `/en/`.
+
+disableAliases (false)
+: Will disable generation of alias redirects. Note that even if `disableAliases` is set, the aliases themselves are preserved on the page. The motivation with this is to be able to generate 301 redirects in an `.htaccess`, a Netlify `_redirects` file or similar using a custom output format.
+
+disableHugoGeneratorInject (false)
+: Hugo will, by default, inject a generator meta tag in the HTML head on the _home page only_. You can turn it off, but we would really appreciate if you don't, as this is a good way to watch Hugo's popularity on the rise.
+
+disableKinds ([])
+: Enable disabling of all pages of the specified *Kinds*. Allowed values in this list: `"page"`, `"home"`, `"section"`, `"taxonomy"`, `"term"`, `"RSS"`, `"sitemap"`, `"robotsTXT"`, `"404"`.
+
+disableLiveReload (false)
+: Disable automatic live reloading of browser window.
+
+disablePathToLower (false)
+: Do not convert the url/path to lowercase.
+
+enableEmoji (false)
+: Enable Emoji emoticons support for page content; see the [Emoji Cheat Sheet](https://www.webpagefx.com/tools/emoji-cheat-sheet/).
+
+enableGitInfo (false)
+: Enable `.GitInfo` object for each page (if the Hugo site is versioned by Git). This will then update the `Lastmod` parameter for each page using the last git commit date for that content file.
+
+enableInlineShortcodes (false)
+: Enable inline shortcode support. See [Inline Shortcodes](/templates/shortcode-templates/#inline-shortcodes).
+
+enableMissingTranslationPlaceholders (false)
+: Show a placeholder instead of the default value or an empty string if a translation is missing.
+
+enableRobotsTXT (false)
+: Enable generation of `robots.txt` file.
+
+frontmatter
+
+: See [Front matter Configuration](#configure-front-matter).
+
+footnoteAnchorPrefix ("")
+: Prefix for footnote anchors.
+
+footnoteReturnLinkContents ("")
+: Text to display for footnote return links.
+
+googleAnalytics ("")
+: Google Analytics tracking ID.
+
+hasCJKLanguage (false)
+: If true, auto-detect Chinese/Japanese/Korean Languages in the content. This will make `.Summary` and `.WordCount` behave correctly for CJK languages.
+
+imaging
+: See [Image Processing Config](/content-management/image-processing/#image-processing-config).
+
+languages
+: See [Configure Languages](/content-management/multilingual/#configure-languages).
+
+languageCode ("")
+: The site's language code. It is used in the default [RSS template](/templates/rss/#configure-rss) and can be useful for [multi-lingual sites](/content-management/multilingual/#configure-multilingual-multihost).
+
+languageName ("")
+: The site's language name.
+
+disableLanguages
+: See [Disable a Language](/content-management/multilingual/#disable-a-language)
+
+layoutDir ("layouts")
+: The directory from where Hugo reads layouts (templates).
+
+log (false)
+: Enable logging.
+
+logFile ("")
+: Log File path (if set, logging enabled automatically).
+
+markup
+: See [Configure Markup](/getting-started/configuration-markup).{{< new-in "0.60.0" >}}
+
+menu
+: See [Add Non-content Entries to a Menu](/content-management/menus/#add-non-content-entries-to-a-menu).
+
+minify
+: See [Configure Minify](#configure-minify)
+
+module
+: Module config see [Module Config](/hugo-modules/configuration/).{{< new-in "0.56.0" >}}
+
+newContentEditor ("")
+: The editor to use when creating new content.
+
+noChmod (false)
+: Don't sync permission mode of files.
+
+noTimes (false)
+: Don't sync modification time of files.
+
+paginate (10)
+: Default number of elements per page in [pagination](/templates/pagination/).
+
+paginatePath ("page")
+: The path element used during pagination (https://example.com/page/2).
+
+permalinks
+: See [Content Management](/content-management/urls/#permalinks).
+
+pluralizeListTitles (true)
+: Pluralize titles in lists.
+
+publishDir ("public")
+: The directory to where Hugo will write the final static site (the HTML files etc.).
+
+related
+: See [Related Content](/content-management/related/#configure-related-content).{{< new-in "0.27" >}}
+
+relativeURLs (false)
+: Enable this to make all relative URLs relative to content root. Note that this does not affect absolute URLs.
+
+refLinksErrorLevel ("ERROR")
+: When using `ref` or `relref` to resolve page links and a link cannot resolved, it will be logged with this logg level. Valid values are `ERROR` (default) or `WARNING`. Any `ERROR` will fail the build (`exit -1`).
+
+refLinksNotFoundURL
+: URL to be used as a placeholder when a page reference cannot be found in `ref` or `relref`. Is used as-is.
+
+rssLimit (unlimited)
+: Maximum number of items in the RSS feed.
+
+sectionPagesMenu ("")
+: See ["Section Menu for Lazy Bloggers"](/templates/menu-templates/#section-menu-for-lazy-bloggers).
+
+sitemap
+: Default [sitemap configuration](/templates/sitemap-template/#configure-sitemap-xml).
+
+staticDir ("static")
+: A directory or a list of directories from where Hugo reads [static files][static-files]. {{% module-mounts-note %}}
+
+summaryLength (70)
+: The length of text in words to show in a [`.Summary`](/content-management/summaries/#hugo-defined-automatic-summary-splitting).
+
+taxonomies
+: See [Configure Taxonomies](/content-management/taxonomies#configure-taxonomies).
+
+theme ("")
+: Theme to use (located by default in `/themes/THEMENAME/`).
+
+themesDir ("themes")
+: The directory where Hugo reads the themes from.
+
+timeout (10000)
+: Timeout for generating page contents, in milliseconds (defaults to 10 seconds). *Note:* this is used to bail out of recursive content generation, if your pages are slow to generate (e.g., because they require large image processing or depend on remote contents) you might need to raise this limit.
+
+title ("")
+: Site title.
+
+titleCaseStyle ("AP")
+: See [Configure Title Case](#configure-title-case)
+
+uglyURLs (false)
+: When enabled, creates URL of the form `/filename.html` instead of `/filename/`.
+
+verbose (false)
+: Enable verbose output.
+
+verboseLog (false)
+: Enable verbose logging.
+
+watch (false)
+: Watch filesystem for changes and recreate as needed.
+
+{{% note %}}
+If you are developing your site on a \*nix machine, here is a handy shortcut for finding a configuration option from the command line:
+```
+cd ~/sites/yourhugosite
+hugo config | grep emoji
+```
+
+which shows output like
+
+```
+enableemoji: true
+```
+{{% /note %}}
+
+## Configure Build
+
+{{< new-in "0.66.0" >}}
+
+The `build` configuration section contains global build-related configuration options.
+
+{{< code-toggle file="config">}}
+[build]
+useResourceCacheWhen="fallback"
+writeStats = false
+noJSConfigInAssets = false
+{{< /code-toggle >}}
+
+
+useResourceCacheWhen
+: When to use the cached resources in `/resources/_gen` for PostCSS and ToCSS. Valid values are `never`, `always` and `fallback`. The last value means that the cache will be tried if PostCSS/extended version is not available.
+
+writeStats {{< new-in "0.69.0" >}}
+: When enabled, a file named `hugo_stats.json` will be written to your project root with some aggregated data about the build, e.g. list of HTML entities published to be used to do [CSS pruning](/hugo-pipes/postprocess/#css-purging-with-postcss). If you're only using this for the production build, you should consider placing it below [config/production](/getting-started/configuration/#configuration-directory). It's also worth mentioning that, due to the nature of the partial server builds, new HTML entities will be added when you add or change them while the server is running, but the old values will not be removed until you restart the server or run a regular `hugo` build.
+
+noJSConfigInAssets {{< new-in "0.78.0" >}}
- : Turn off writing a `jsconfig.js` into your `/assets` folder with mapping of imports from running [js.Build](https://gohugo.io/hugo-pipes/js). This file is intended to help with intellisense/navigation inside code editors such as [VS Code](https://code.visualstudio.com/). Note that if you do not use `js.Build`, no file will be written.
++: Turn off writing a `jsconfig.json` into your `/assets` folder with mapping of imports from running [js.Build](https://gohugo.io/hugo-pipes/js). This file is intended to help with intellisense/navigation inside code editors such as [VS Code](https://code.visualstudio.com/). Note that if you do not use `js.Build`, no file will be written.
+
+## Configure Server
+
+{{< new-in "0.67.0" >}}
+
+This is only relevant when running `hugo server`, and it allows to set HTTP headers during development, which allows you to test out your Content Security Policy and similar. The configuration format matches [Netlify's](https://docs.netlify.com/routing/headers/#syntax-for-the-netlify-configuration-file) with slighly more powerful [Glob matching](https://github.com/gobwas/glob):
+
+
+{{< code-toggle file="config">}}
+[server]
+[[server.headers]]
+for = "/**.html"
+
+[server.headers.values]
+X-Frame-Options = "DENY"
+X-XSS-Protection = "1; mode=block"
+X-Content-Type-Options = "nosniff"
+Referrer-Policy = "strict-origin-when-cross-origin"
+Content-Security-Policy = "script-src localhost:1313"
+{{< /code-toggle >}}
+
+Since this is is "development only", it may make sense to put it below the `development` environment:
+
+
+{{< code-toggle file="config/development/server">}}
+[[headers]]
+for = "/**.html"
+
+[headers.values]
+X-Frame-Options = "DENY"
+X-XSS-Protection = "1; mode=block"
+X-Content-Type-Options = "nosniff"
+Referrer-Policy = "strict-origin-when-cross-origin"
+Content-Security-Policy = "script-src localhost:1313"
+{{< /code-toggle >}}
+
+
+{{< new-in "0.72.0" >}}
+
+You can also specify simple redirects rules for the server. The syntax is again similar to Netlify's.
+
+Note that a `status` code of 200 will trigger a [URL rewrite](https://docs.netlify.com/routing/redirects/rewrites-proxies/), which is what you want in SPA situations, e.g:
+
+{{< code-toggle file="config/development/server">}}
+[[redirects]]
+from = "/myspa/**"
+to = "/myspa/"
+status = 200
+force = false
+{{< /code-toggle >}}
+
+{{< new-in "0.76.0" >}} Setting `force=true` will make a redirect even if there is existing content in the path. Note that before Hugo 0.76 `force` was the default behaviour, but this is inline with how Netlify does it.
+
+## Configure Title Case
+
+Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. It defaults to [AP Stylebook](https://www.apstylebook.com/) for title casing, but you can also set it to `Chicago` or `Go` (every word starts with a capital letter).
+
+## Configuration Environment Variables
+
+HUGO_NUMWORKERMULTIPLIER
+: Can be set to increase or reduce the number of workers used in parallel processing in Hugo. If not set, the number of logical CPUs will be used.
+
+## Configuration Lookup Order
+
+Similar to the template [lookup order][], Hugo has a default set of rules for searching for a configuration file in the root of your website's source directory as a default behavior:
+
+1. `./config.toml`
+2. `./config.yaml`
+3. `./config.json`
+
+In your `config` file, you can direct Hugo as to how you want your website rendered, control your website's menus, and arbitrarily define site-wide parameters specific to your project.
+
+
+## Example Configuration
+
+The following is a typical example of a configuration file. The values nested under `params:` will populate the [`.Site.Params`][] variable for use in [templates][]:
+
+{{< code-toggle file="config">}}
+baseURL: "https://yoursite.example.com/"
+title: "My Hugo Site"
+footnoteReturnLinkContents: "â©"
+permalinks:
+ posts: /:year/:month/:title/
+params:
+ Subtitle: "Hugo is Absurdly Fast!"
+ AuthorName: "Jon Doe"
+ GitHubUser: "spf13"
+ ListOfFoo:
+ - "foo1"
+ - "foo2"
+ SidebarRecentLimit: 5
+{{< /code-toggle >}}
+
+## Configure with Environment Variables
+
+In addition to the 3 config options already mentioned, configuration key-values can be defined through operating system environment variables.
+
+For example, the following command will effectively set a website's title on Unix-like systems:
+
+```
+$ env HUGO_TITLE="Some Title" hugo
+```
+
+This is really useful if you use a service such as Netlify to deploy your site. Look at the Hugo docs [Netlify configuration file](https://github.com/gohugoio/hugoDocs/blob/master/netlify.toml) for an example.
+
+{{% note "Setting Environment Variables" %}}
+Names must be prefixed with `HUGO_` and the configuration key must be set in uppercase when setting operating system environment variables.
+
+To set config params, prefix the name with `HUGO_PARAMS_`
+{{% /note %}}
+
+{{< new-in "0.79.0" >}} If you are using snake_cased variable names, the above will not work, so since Hugo 0.79.0 Hugo determines the delimiter to use by the first character after `HUGO`. This allows you to define environment variables on the form `HUGOxPARAMSxAPI_KEY=abcdefgh`, using any [allowed](https://stackoverflow.com/questions/2821043/allowed-characters-in-linux-environment-variable-names#:~:text=So%20names%20may%20contain%20any,not%20begin%20with%20a%20digit.) delimiter.
+
+{{< todo >}}
+Test and document setting params via JSON env var.
+{{< /todo >}}
+
+## Ignore Content Files When Rendering
+
+The following statement inside `./config.toml` will cause Hugo to ignore content files ending with `.foo` and `.boo` when rendering:
+
+```
+ignoreFiles = [ "\\.foo$", "\\.boo$" ]
+```
+
+The above is a list of regular expressions. Note that the backslash (`\`) character is escaped in this example to keep TOML happy.
+
+## Configure Front Matter
+
+### Configure Dates
+
+Dates are important in Hugo, and you can configure how Hugo assigns dates to your content pages. You do this by adding a `frontmatter` section to your `config.toml`.
+
+
+The default configuration is:
+
+```toml
+[frontmatter]
+date = ["date", "publishDate", "lastmod"]
+lastmod = [":git", "lastmod", "date", "publishDate"]
+publishDate = ["publishDate", "date"]
+expiryDate = ["expiryDate"]
+```
+
+If you, as an example, have a non-standard date parameter in some of your content, you can override the setting for `date`:
+
+ ```toml
+[frontmatter]
+date = ["myDate", ":default"]
+```
+
+The `:default` is a shortcut to the default settings. The above will set `.Date` to the date value in `myDate` if present, if not we will look in `date`,`publishDate`, `lastmod` and pick the first valid date.
+
+In the list to the right, values starting with ":" are date handlers with a special meaning (see below). The others are just names of date parameters (case insensitive) in your front matter configuration. Also note that Hugo have some built-in aliases to the above: `lastmod` => `modified`, `publishDate` => `pubdate`, `published` and `expiryDate` => `unpublishdate`. With that, as an example, using `pubDate` as a date in front matter, will, by default, be assigned to `.PublishDate`.
+
+The special date handlers are:
+
+
+`:fileModTime`
+: Fetches the date from the content file's last modification timestamp.
+
+An example:
+
+ ```toml
+[frontmatter]
+lastmod = ["lastmod", ":fileModTime", ":default"]
+```
+
+
+The above will try first to extract the value for `.Lastmod` starting with the `lastmod` front matter parameter, then the content file's modification timestamp. The last, `:default` should not be needed here, but Hugo will finally look for a valid date in `:git`, `date` and then `publishDate`.
+
+
+`:filename`
+: Fetches the date from the content file's filename. For example, `2018-02-22-mypage.md` will extract the date `2018-02-22`. Also, if `slug` is not set, `mypage` will be used as the value for `.Slug`.
+
+An example:
+
+```toml
+[frontmatter]
+date = [":filename", ":default"]
+```
+
+The above will try first to extract the value for `.Date` from the filename, then it will look in front matter parameters `date`, `publishDate` and lastly `lastmod`.
+
+
+`:git`
+: This is the Git author date for the last revision of this content file. This will only be set if `--enableGitInfo` is set or `enableGitInfo = true` is set in site config.
+
+## Configure Additional Output Formats
+
+Hugo v0.20 introduced the ability to render your content to multiple output formats (e.g., to JSON, AMP html, or CSV). See [Output Formats][] for information on how to add these values to your Hugo project's configuration file.
+
+## Configure Minify
+
+{{< new-in "0.68.0" >}}
+
+Default configuration:
+
+{{< code-toggle config="minify" />}}
+
+## Configure File Caches
+
+Since Hugo 0.52 you can configure more than just the `cacheDir`. This is the default configuration:
+
+{{< code-toggle >}}
+[caches]
+[caches.getjson]
+dir = ":cacheDir/:project"
+maxAge = -1
+[caches.getcsv]
+dir = ":cacheDir/:project"
+maxAge = -1
+[caches.images]
+dir = ":resourceDir/_gen"
+maxAge = -1
+[caches.assets]
+dir = ":resourceDir/_gen"
+maxAge = -1
+[caches.modules]
+dir = ":cacheDir/modules"
+maxAge = -1
+{{< /code-toggle >}}
+
+You can override any of these cache settings in your own `config.toml`.
+
+### The keywords explained
+
+`:cacheDir`
+: This is the value of the `cacheDir` config option if set (can also be set via OS env variable `HUGO_CACHEDIR`). It will fall back to `/opt/build/cache/hugo_cache/` on Netlify, or a `hugo_cache` directory below the OS temp dir for the others. This means that if you run your builds on Netlify, all caches configured with `:cacheDir` will be saved and restored on the next build. For other CI vendors, please read their documentation. For an CircleCI example, see [this configuration](https://github.com/bep/hugo-sass-test/blob/6c3960a8f4b90e8938228688bc49bdcdd6b2d99e/.circleci/config.yml).
+
+`:project`
+: The base directory name of the current Hugo project. This means that, in its default setting, every project will have separated file caches, which means that when you do `hugo --gc` you will not touch files related to other Hugo projects running on the same PC.
+
+`:resourceDir`
+: This is the value of the `resourceDir` config option.
+
+maxAge
+: This is the duration before a cache entry will be evicted, -1 means forever and 0 effectively turns that particular cache off. Uses Go's `time.Duration`, so valid values are `"10s"` (10 seconds), `"10m"` (10 minutes) and `"10h"` (10 hours).
+
+dir
+: The absolute path to where the files for this cache will be stored. Allowed starting placeholders are `:cacheDir` and `:resourceDir` (see above).
+
+## Configuration Format Specs
+
+* [TOML Spec][toml]
+* [YAML Spec][yaml]
+* [JSON Spec][json]
+
+[`.Site.Params`]: /variables/site/
+[directory structure]: /getting-started/directory-structure
+[json]: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf "Specification for JSON, JavaScript Object Notation"
+[lookup order]: /templates/lookup-order/
+[Output Formats]: /templates/output-formats/
+[templates]: /templates/
+[toml]: https://github.com/toml-lang/toml
+[yaml]: https://yaml.org/spec/
+[static-files]: /content-management/static-files/
diff --cc docs/content/en/hugo-pipes/babel.md
index 9688626d,00000000..76a1d441
mode 100755,000000..100755
--- a/docs/content/en/hugo-pipes/babel.md
+++ b/docs/content/en/hugo-pipes/babel.md
@@@ -1,79 -1,0 +1,79 @@@
+---
+title: Babel
+description: Hugo Pipes can process JS files with Babel.
+date: 2019-03-21
+publishdate: 2019-03-21
+lastmod: 2019-03-21
+categories: [asset management]
+keywords: []
+menu:
+ docs:
+ parent: "pipes"
+ weight: 48
+weight: 48
+sections_weight: 48
+draft: false
+---
+
+Any JavaScript resource file can be transpiled to another JavaScript version using `resources.Babel` which takes for argument the resource object and an optional dict of options listed below. Babel uses the [babel cli](https://babeljs.io/docs/en/babel-cli).
+
+
+{{% note %}}
+Hugo Pipe's Babel requires the `@babel/cli` and `@babel/core` JavaScript packages to be installed in the project or globally (`npm install -g @babel/cli @babel/core`) along with any Babel plugin(s) or preset(s) used (e.g., `npm install @babel/preset-env --save-dev`).
+
+If you are using the Hugo Snap package, Babel and plugin(s) need to be installed locally within your Hugo site directory, e.g., `npm install @babel/cli @babel/core --save-dev` without the `-g` flag.
+{{% /note %}}
+
+
+### Config
+
+{{< new-in "v0.75.0" >}}
+
- In Hugo `v0.75` we improved the way we resolve JS configuration and dependencies. One of them is that we now adds the main project's `node_modules` to `NODE_PATH` when running Babel and similar tools. There are some known [issues](https://github.com/babel/babel/issues/5618) with Babel in this area, so if you have a `babel.config.js` living in a Hugo Module (and not in the project itself), we recommend using `require` to load the presets/plugins, e.g.:
++In Hugo `v0.75` we improved the way we resolve JS configuration and dependencies. One of them is that we now add the main project's `node_modules` to `NODE_PATH` when running Babel and similar tools. There are some known [issues](https://github.com/babel/babel/issues/5618) with Babel in this area, so if you have a `babel.config.js` living in a Hugo Module (and not in the project itself), we recommend using `require` to load the presets/plugins, e.g.:
+
+
+```js
+module.exports = {
+ presets: [
+ [
+ require('@babel/preset-env'),
+ {
+ useBuiltIns: 'entry',
+ corejs: 3
+ }
+ ]
+ ]
+};
+```
+
+
+
+### Options
+
+config [string]
+: Path to the Babel configuration file. Hugo will, by default, look for a `babel.config.js` in your project. More information on these configuration files can be found here: [babel configuration](https://babeljs.io/docs/en/configuration).
+
+minified [bool]
+: Save as much bytes as possible when printing
+
+noComments [bool]
+: Write comments to generated output (true by default)
+
+compact [bool]
+: Do not include superfluous whitespace characters and line terminators. Defaults to `auto` if not set.
+
+verbose [bool]
+: Log everything
+
+### Examples
+
+```go-html-template
+{{- $transpiled := resources.Get "scripts/main.js" | babel -}}
+```
+
+Or with options:
+
+```go-html-template
+{{ $opts := dict "noComments" true }}
+{{- $transpiled := resources.Get "scripts/main.js" | babel $opts -}}
+```
diff --cc docs/content/en/hugo-pipes/js.md
index fd869726,00000000..a34454a9
mode 100644,000000..100644
--- a/docs/content/en/hugo-pipes/js.md
+++ b/docs/content/en/hugo-pipes/js.md
@@@ -1,173 -1,0 +1,173 @@@
+---
+title: JavaScript Building
+description: Hugo Pipes can process JavaScript files with [ESBuild](https://github.com/evanw/esbuild).
+date: 2020-07-20
+publishdate: 2020-07-20
+lastmod: 2020-07-20
+categories: [asset management]
+keywords: []
+menu:
+ docs:
+ parent: "pipes"
+ weight: 45
+weight: 45
+sections_weight: 45
+draft: false
+---
+
+Any JavaScript resource file can be transpiled and "tree shaken" using `js.Build` which takes for argument either a string for the filepath or a dict of options listed below.
+
+### Options
+
+targetPath [string]
+: If not set, the source path will be used as the base target path.
+Note that the target path's extension may change if the target MIME type is different, e.g. when the source is TypeScript.
+
+params [map or slice] {{< new-in "0.78.0" >}}
+: Params that can be imported as JSON in your JS files, e.g.:
+
+```go-html-template
+{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api")) }}
+```
+And then in your JS file:
+
+```js
+import * as params from '@params';
+```
+
+Note that this is meant for small data sets, e.g. config settings. For larger data, please put/mount the files into `/assets` and import them directly.
+
+minify [bool]
+: Let `js.Build` handle the minification.
+
+avoidTDZ {{< new-in "0.78.0" >}}
+: There is/was a bug in WebKit with severe performance issue with the tracking of TDZ checks in JavaScriptCore. Enabling this flag removes the TDZ and `const` assignment checks and may improve performance of larger JS codebases until the WebKit fix is in widespread use. See https://bugs.webkit.org/show_bug.cgi?id=199866
+
+target [string]
+: The language target.
+ One of: `es5`, `es2015`, `es2016`, `es2017`, `es2018`, `es2019`, `es2020` or `esnext`.
+ Default is `esnext`.
+
+externals [slice]
+: External dependencies. If a dependency should not be included in the bundle (Ex. library loaded from a CDN.), it should be listed here.
+
+```go-html-template
+{{ $externals := slice "react" "react-dom" }}
+```
+
+> Marking a package as external doesn't imply that the library can be loaded from a CDN. It simply tells Hugo not to expand/include the package in the JS file.
+
+defines [map]
+: Allow to define a set of string replacement to be performed when building. Should be a map where each key is to be replaced by its value.
+
+```go-html-template
+{{ $defines := dict "process.env.NODE_ENV" `"development"` }}
+```
+
+format [string] {{< new-in "0.74.3" >}}
+: The output format.
+ One of: `iife`, `cjs`, `esm`.
+ Default is `iife`, a self-executing function, suitable for inclusion as a
+```
+
+#### Shimming a JS library
+
- It's a very common practice to load external libraries using CDN rather than importing all packages in a single JS file, making it bulky. To do the same with Hugo, you'll need to shim the libraries as follows. In this example, `algoliasearch` and `instantsearch.js` will be shimmed.
++It's a common practice to load external libraries using a content delivery network (CDN) rather than importing all packages in a single JS file. To load scripts from a CDN with Hugo, you'll need to shim the libraries as follows. In this example, `react` and `react-dom` will be shimmed.
+
- Firstly, add the following to your project's `package.json`:
++First, add React and ReactDOM [CDN script tags](https://reactjs.org/docs/add-react-to-a-website.html#tip-minify-javascript-for-production) in your HTML template files. Then create `assets/js/shims/react.js` and `assets/js/shims/react-dom.js` with the following contents:
++```js
++// In assets/js/shims/react.js
++module.exports = window.React;
++
++// In assets/js/shims/react-dom.js
++module.exports = window.ReactDOM;
++```
++
++Finally, add the following to your project's `package.json`:
+```json
+{
+ "browser": {
- "algoliasearch/lite": "./public/js/shims/algoliasearch.js",
- "instantsearch.js/es/lib/main": "./public/js/shims/instantsearch.js"
++ "react": "./assets/js/shims/react.js",
++ "react-dom": "./assets/js/shims/react-dom.js"
+ }
+}
+```
+
- What this does is it tells Hugo to look for the listed packages somewhere else. Here we're telling Hugo to look for `algoliasearch/lite` and `instantsearch.js/es/lib/main` in the project's `public/js/shims` folder.
++This tells Hugo's `js.Build` command to look for `react` and `react-dom` in the project's `assets/js/shims` folder. Note that the `browser` field in your `package.json` file will cause React and ReactDOM to be excluded from your JavaScript bundle. Therefore, **it is unnecessary to add them to the `js.Build` command's `externals` argument.**
+
- Now we'll need to create the shim JS files which export the global JS variables `module.exports = window.something`. You can create a separate shim JS file in your `assets` directory, and redirect the import paths there if you wish, but a much cleaner way is to create these files on the go, by having the following before your JS is built.
-
- ```go-html-template
- {{ $a := "module.exports = window.algoliasearch" | resources.FromString "js/shims/algoliasearch.js" }}
- {{ $i := "module.exports = window.instantsearch" | resources.FromString "js/shims/instantsearch.js" }}
-
- {{/* Call RelPermalink unnecessarily to generate JS files */}}
- {{ $placebo := slice $a.RelPermalink $i.RelPermalink }}
- ```
+That's it! You should now have a browser-friendly JS which can use external JS libraries.
diff --cc docs/content/en/hugo-pipes/scss-sass.md
index 5f51e24c,00000000..bdedbd96
mode 100755,000000..100755
--- a/docs/content/en/hugo-pipes/scss-sass.md
+++ b/docs/content/en/hugo-pipes/scss-sass.md
@@@ -1,54 -1,0 +1,54 @@@
+---
+title: SASS / SCSS
+description: Hugo Pipes allows the processing of SASS and SCSS files.
+date: 2018-07-14
+publishdate: 2018-07-14
+lastmod: 2018-07-14
+categories: [asset management]
+keywords: []
+menu:
+ docs:
+ parent: "pipes"
+ weight: 30
+weight: 02
+sections_weight: 02
+draft: false
+---
+
+
+Any SASS or SCSS file can be transformed into a CSS file using `resources.ToCSS` which takes two arguments, the resource object and a map of options listed below.
+
+```go-html-template
+{{ $sass := resources.Get "sass/main.scss" }}
+{{ $style := $sass | resources.ToCSS }}
+```
+
+### Options
+
+transpiler [string] {{< new-in "0.80.0" >}}
+
- : The `transpiler` to use, valid values are `libsass` (default) and `dartsass`. Note that the Embedded Dart Sass project is still in beta (beta 5 at the time of writing). The release is scheduled for Q1 2021. We will try to improve the installation process by then, but if you want to use Hugo with Dart Sass you need to download a release binary from [Embedded Dart Sass](https://github.com/sass/dart-sass-embedded/releases) and make sure it's in your PC's `$PATH` (or `%PATH%` on Windows).
++: The `transpiler` to use, valid values are `libsass` (default) and `dartsass`. Note that the Embedded Dart Sass project is still in beta (beta 5 at the time of writing). The release is scheduled for Q1 2021. We will try to improve the installation process by then, but if you want to use Hugo with Dart Sass you need to download a release binary from [Embedded Dart Sass](https://github.com/sass/dart-sass-embedded/releases) (beta 5) and make sure it's in your PC's `$PATH` (or `%PATH%` on Windows).
+
+targetPath [string]
+: If not set, the resource's target path will be the asset file original path with its extension replaced by `.css`.
+
+outputStyle [string]
+: Default is `nested` (LibSass) and `expanded` (Dart Sass). Other available output styles for LibSass are `expanded`, `compact` and `compressed`. Dart Sass only supports `expanded` and `compressed`.
+
+precision [int]
+: Precision of floating point math. **Note:** This option is not supported by Dart Sass.
+
+enableSourceMap [bool]
+: When enabled, a source map will be generated.
+
+includePaths [string slice]
+: Additional SCSS/SASS include paths. Paths must be relative to the project directory.
+
+```go-html-template
+{{ $options := (dict "targetPath" "style.css" "outputStyle" "compressed" "enableSourceMap" true "includePaths" (slice "node_modules/myscss")) }}
+{{ $style := resources.Get "sass/main.scss" | resources.ToCSS $options }}
+```
+
+{{% note %}}
+Setting `outputStyle` to `compressed` will handle SASS/SCSS files minification better than the more generic [`resources.Minify`]({{< ref "minification">}}).
+{{% /note %}}
diff --cc docs/content/en/news/0.78.0-relnotes/index.md
index fcc20c06,00000000..25b0fd4d
mode 100644,000000..100644
--- a/docs/content/en/news/0.78.0-relnotes/index.md
+++ b/docs/content/en/news/0.78.0-relnotes/index.md
@@@ -1,50 -1,0 +1,50 @@@
+
+---
+date: 2020-11-03
+title: "Hugo 0.78.0: Full Hugo Modules Support in js.Build"
+description: "Resolve JavaScript imports top-down in the layered filesystem, pass parameters from template to JS, new JS intellisense helper, improved JS build errors."
+categories: ["Releases"]
+---
+
+This release finally brings full [Hugo Modules](https://gohugo.io/hugo-modules/) support to [js.Build](https://gohugo.io/hugo-pipes/js/), curtsy of he new plugin API in the really, really fast [ESBuild](https://github.com/evanw/esbuild) by [@evanw](https://github.com/evanw).
+
+Some notes on the improvements in this release:
+
+* Now `js.Build` fully supports the virtual union filesystem in [Hugo Modules](https://gohugo.io/hugo-modules/). Any import inside your JavaScript components will resolve starting from the top component mount inside `/assets` with a fallback to the traditional "JS way" (`node_modules` etc.)
+* You can now pass configuration data from the templates to your scripts via a new `params` option.
- * Hugo now writes a `jsconfig.js` file inside `/assets` (you can turn it off) with import mappings to help editors such as VS Code with intellisense/navigation, which is especially useful when there is no common root and the source lives inside some temporary directory.
++* Hugo now writes a `jsconfig.json` file inside `/assets` (you can turn it off) with import mappings to help editors such as VS Code with intellisense/navigation, which is especially useful when there is no common root and the source lives inside some temporary directory.
+* We have also improved the build errors you get from `js.Build`. In server mode you will get a preview of the failing lines and in the console you will get a link to the location.
+
+Read more about this in [the documentation](https://gohugo.io/hugo-pipes/js/), but a short usage example would look like:
+
+In the template:
+
+```go-html-template
+{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api" ) }}
+```
+
+And then in a JavaScript component:
+
+```js
+import * as params from '@params';
+
+// Will resolve to one of `hello.{js,ts,tsx,jsx}` inside `assets/my/module`.
+import { hello } from 'my/module/hello';
+
+var api = params.api;
+
+hello();
+
+```
+
+## Changes
+
+* Add avoidTDZ option [3b2fe3cd](https://github.com/gohugoio/hugo/commit/3b2fe3cd33b74166c3debec9826826f2b5a54fd9) [@bep](https://github.com/bep) [#7865](https://github.com/gohugoio/hugo/issues/7865)
+* Make js.Build fully support modules [85e4dd73](https://github.com/gohugoio/hugo/commit/85e4dd7370eae97ae367e596aa6a10ba42fd4b7c) [@bep](https://github.com/bep) [#7816](https://github.com/gohugoio/hugo/issues/7816)[#7777](https://github.com/gohugoio/hugo/issues/7777)[#7916](https://github.com/gohugoio/hugo/issues/7916)
+* Generate tsconfig files [3089fc0b](https://github.com/gohugoio/hugo/commit/3089fc0ba171be14670b19439bc2eab6b077b6c3) [@richtera](https://github.com/richtera) [#7777](https://github.com/gohugoio/hugo/issues/7777)
+
+
+
+
+
+
diff --cc docs/content/en/news/0.79.0-relnotes/featured.png
index 00000000,00000000..f1b7686d
new file mode 100644
Binary files differ
diff --cc docs/content/en/news/0.79.0-relnotes/index.md
index a8debd9a,00000000..23ed1ef2
mode 100644,000000..100644
--- a/docs/content/en/news/0.79.0-relnotes/index.md
+++ b/docs/content/en/news/0.79.0-relnotes/index.md
@@@ -1,71 -1,0 +1,71 @@@
+
+---
+date: 2020-11-27
- title: "0.79.0"
- description: "0.79.0"
++title: "Hugo 0.79.0: Black Friday Edition"
++description: "Hugo 0.79.0 brings .Params to menus, snake_case support for OS environment config, and a refresh of upstream dependencies (Chroma, ESBuild etc.)."
+categories: ["Releases"]
+---
+
- Hugo `0.79.0` is a small, but useful release. You can now set custom `.Params` in your [menu](https://gohugo.io/content-management/menus/) configuration, and you can now also override deeply nested snake_cased configuration variables with [OS environment variables](https://gohugo.io/getting-started/configuration/#configure-with-environment-variables). Other than that we have refreshed all the core upstream dependencies. A special thanks to [@alecthomas](https://github.com/alecthomas) (some new [Chroma lexers](https://github.com/alecthomas/chroma/releases/tag/v0.8.2) and fixes) and [@evanw](https://github.com/evanw) ([ESBuild](https://github.com/evanw/esbuild)).
++Hugo `0.79.0` is a small, but useful release. You can now set custom `.Params` in your [menu](https://gohugo.io/content-management/menus/) configuration, and you can now also override deeply nested snake_cased configuration variables with [OS environment variables](https://gohugo.io/getting-started/configuration/#configure-with-environment-variables). Other than that we have refreshed all the core upstream dependencies. A special thanks to [@alecthomas](https://github.com/alecthomas) (some new [Chroma lexers](https://github.com/alecthomas/chroma/releases/tag/v0.8.2) and fixes) and [@evanw](https://github.com/evanw) ([ESBuild](https://github.com/evanw/esbuild)).
+
+This release represents **33 contributions by 8 contributors** to the main Hugo code base. [@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout [@AdamKorcz](https://github.com/AdamKorcz), and [@davidejones](https://github.com/davidejones) for their ongoing contributions. And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour), [@coliff](https://github.com/coliff) and [@kaushalmodi](https://github.com/kaushalmodi) for all the great work on the documentation site.
+
+Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
+which has received **13 contributions by 11 contributors**. A special thanks to [@Valac01](https://github.com/Valac01), [@bep](https://github.com/bep), [@mhansen](https://github.com/mhansen), and [@chanjarster](https://github.com/chanjarster) for their work on the documentation site.
+
+Hugo now has:
+
+* 48392+ [stars](https://github.com/gohugoio/hugo/stargazers)
+* 437+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
+* 361+ [themes](http://themes.gohugo.io/)
+
+## Enhancements
+
+### Templates
+
+* Add more layout lookup tests [34061706](https://github.com/gohugoio/hugo/commit/34061706e6a9631d92ae3d01e0458eee7bc251cc) [@moorereason](https://github.com/moorereason) [#7964](https://github.com/gohugoio/hugo/issues/7964)
+
+### Other
+
+* bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0 [17e0bbe8](https://github.com/gohugoio/hugo/commit/17e0bbe821b508cea936bcfd5c1c181bdb8ad70d) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Allow setting the delimiter used for setting config via OS env, e.g. HUGO_ [7e223b3b](https://github.com/gohugoio/hugo/commit/7e223b3baaef68d6e6f99e28f162362c81deffba) [@bep](https://github.com/bep) [#7829](https://github.com/gohugoio/hugo/issues/7829)
+* Update to github.com/evanw/esbuild 0.8.11 to 0.8.14 [8a6e7060](https://github.com/gohugoio/hugo/commit/8a6e70605350255920100c5c085bb9ea6576d972) [@bep](https://github.com/bep) [#7986](https://github.com/gohugoio/hugo/issues/7986)
+* bump github.com/google/go-cmp from 0.5.2 to 0.5.3 [6f7633df](https://github.com/gohugoio/hugo/commit/6f7633df7d2c06e32eac628f9c7809dfee75eeed) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Remove unneeded meta tag from blog example [a546059a](https://github.com/gohugoio/hugo/commit/a546059a9c0b4541f6c9e292f2bb065c1b6115d9) [@coliff](https://github.com/coliff)
+* bump github.com/getkin/kin-openapi from 0.30.0 to 0.31.0 [b5d906e3](https://github.com/gohugoio/hugo/commit/b5d906e31e716328e2c0fbbdbfe6fc5b2ff98886) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Regen docshelper [fd70bdaf](https://github.com/gohugoio/hugo/commit/fd70bdafe7dc5d18c9a2f22c49acc3a8de376e8e) [@bep](https://github.com/bep)
+* Add menu params [8f5c9a74](https://github.com/gohugoio/hugo/commit/8f5c9a747fcebb02bb99f5de272046411eb15370) [@davidejones](https://github.com/davidejones) [#7951](https://github.com/gohugoio/hugo/issues/7951)
+* Preserve url set in frontmatter without sanitizing [e4fcb672](https://github.com/gohugoio/hugo/commit/e4fcb672ed8bae21fd9780292b54fea3040dd877) [@satotake](https://github.com/satotake) [#6007](https://github.com/gohugoio/hugo/issues/6007)
+* Add file deleted by accident [18c13adc](https://github.com/gohugoio/hugo/commit/18c13adcd46bdff963311fdba9eaa9b5a299106e) [@bep](https://github.com/bep) [#7972](https://github.com/gohugoio/hugo/issues/7972)
+* Regenerate docshelper" [20a35374](https://github.com/gohugoio/hugo/commit/20a35374a3c90adb32a90a5f671afb15165210be) [@bep](https://github.com/bep) [#7972](https://github.com/gohugoio/hugo/issues/7972)
+* Regenerate docshelper [caf16c20](https://github.com/gohugoio/hugo/commit/caf16c20853947138883f6460682e19733895f52) [@bep](https://github.com/bep)
+* Update to Chroma v0.8.2 [b298c06e](https://github.com/gohugoio/hugo/commit/b298c06e0551e3eba10b39ae5668b7a6a36a08a7) [@bep](https://github.com/bep) [#7970](https://github.com/gohugoio/hugo/issues/7970)
+* bump github.com/evanw/esbuild from 0.8.8 to 0.8.11 [55e290af](https://github.com/gohugoio/hugo/commit/55e290af41ad1c92af13679d4a84d64985d41456) [@dependabot[bot]](https://github.com/apps/dependabot)
+* bump github.com/getkin/kin-openapi from 0.26.0 to 0.30.0 [506a190a](https://github.com/gohugoio/hugo/commit/506a190a82cc5564012a1228b4179637b64e58eb) [@dependabot[bot]](https://github.com/apps/dependabot)
+* bump github.com/evanw/esbuild from 0.8.6 to 0.8.8 [fc81de64](https://github.com/gohugoio/hugo/commit/fc81de643934e84bb1e1392f6200559ee0ada9b6) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Let ESBuild handle all imports from node_modules [78f227b6](https://github.com/gohugoio/hugo/commit/78f227b664d86c30fbb25f7a953b7ef8f2dacf13) [@bep](https://github.com/bep) [#7948](https://github.com/gohugoio/hugo/issues/7948)
+* bump github.com/evanw/esbuild from 0.8.5 to 0.8.6 [5e03f644](https://github.com/gohugoio/hugo/commit/5e03f644a4507f51bdbcdb42b65ce4e99095374f) [@dependabot[bot]](https://github.com/apps/dependabot)
+* bump github.com/evanw/esbuild from 0.8.4 to 0.8.5 [a92ef20f](https://github.com/gohugoio/hugo/commit/a92ef20ff6e43ba05844539b60782e8190712cdc) [@dependabot[bot]](https://github.com/apps/dependabot)
+* bump github.com/getkin/kin-openapi from 0.22.1 to 0.26.0 [0d54a844](https://github.com/gohugoio/hugo/commit/0d54a844061e808dd5b4ff4874b2e4bd9df4d556) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Update GH docs to say "main" as default branch [943f3c93](https://github.com/gohugoio/hugo/commit/943f3c932f5f67ab52bf8e0636e57751dc9b1891) [@maco](https://github.com/maco)
+* Updated year in header [4f20bf29](https://github.com/gohugoio/hugo/commit/4f20bf29eb246a2e65508175fdd5f25b44e98370) [@AdamKorcz](https://github.com/AdamKorcz)
+* Added first fuzzer [4c613d5d](https://github.com/gohugoio/hugo/commit/4c613d5d5d60b80a262e968ae8a4525eba8619a2) [@AdamKorcz](https://github.com/AdamKorcz)
+* bump github.com/frankban/quicktest from 1.11.1 to 1.11.2 [82a182e5](https://github.com/gohugoio/hugo/commit/82a182e52c4165b4f51d0cc8ef0f21df5d628c69) [@dependabot[bot]](https://github.com/apps/dependabot)
+* bump golang.org/x/text from 0.3.3 to 0.3.4 [dfc662b2](https://github.com/gohugoio/hugo/commit/dfc662b2086430dde96c18ccb6b92bba4f1be428) [@dependabot[bot]](https://github.com/apps/dependabot)
+* bump github.com/evanw/esbuild from 0.8.3 to 0.8.4 [2f0917cc](https://github.com/gohugoio/hugo/commit/2f0917cc014557e201a9348664736d608a7fa131) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Disable NPM test on Travis on Windows [3437174c](https://github.com/gohugoio/hugo/commit/3437174c3a7b96925b82b351ac87530b4fa796a5) [@bep](https://github.com/bep)
+* Install nodejs on Windows [f66302ca](https://github.com/gohugoio/hugo/commit/f66302ca0579171ffd1730eb8f33dd05af3d9a00) [@bep](https://github.com/bep)
+* Remove external source map option [944150ba](https://github.com/gohugoio/hugo/commit/944150bafbbb5c3e807ba3688174e70764dbdc64) [@bep](https://github.com/bep) [#7932](https://github.com/gohugoio/hugo/issues/7932)
+
+## Fixes
+
+### Other
+
+* Fix memory usage in writeStats [d162bbd7](https://github.com/gohugoio/hugo/commit/d162bbd7990b6a523bdadcd10bf60fcb43ecf270) [@bep](https://github.com/bep) [#7945](https://github.com/gohugoio/hugo/issues/7945)
+* Fix server rebuild issue with partials referenced from render hooks [e442cf30](https://github.com/gohugoio/hugo/commit/e442cf30a215e33b49ce588a9098147282bd883f) [@bep](https://github.com/bep) [#7990](https://github.com/gohugoio/hugo/issues/7990)
+* Misc fixes [bf2837a3](https://github.com/gohugoio/hugo/commit/bf2837a314eaf70135791984a423b0b09f58741d) [@bep](https://github.com/bep) [#7924](https://github.com/gohugoio/hugo/issues/7924)[#7923](https://github.com/gohugoio/hugo/issues/7923)
+
+
+
+
+
diff --cc docs/content/en/news/0.79.1-relnotes/index.md
index 76b43122,00000000..2a3f3276
mode 100644,000000..100644
--- a/docs/content/en/news/0.79.1-relnotes/index.md
+++ b/docs/content/en/news/0.79.1-relnotes/index.md
@@@ -1,19 -1,0 +1,22 @@@
+
+---
+date: 2020-12-19
- title: "Hugo 0.79.1: A couple of Bug Fixes"
- description: "This version fixes a couple of bugs introduced in 0.79.0."
++title: "Hugo 0.79.1: One Security Patch for Hugo on Windows"
++description: "Disallow running of e.g. Pandoc in the current directory."
+categories: ["Releases"]
+images:
+- images/blog/hugo-bug-poster.png
+
+---
+
-
++Hugo depends on Go's `os/exec` for certain features, e.g. for rendering of Pandoc documents if these binaries are found in the system `%PATH%` on Windows. However, if a malicious file with the same name (`exe` or `bat`) was found in the current working directory at the time of running `hugo`, the malicious command would be invoked instead of the system one.
+
- This is a bug-fix release with one important fix.
++Windows users who ran `hugo` inside untrusted Hugo sites were affected.
+
- * Improve LookPath [4a8267d6](https://github.com/gohugoio/hugo/commit/4a8267d64a40564aced0695bca05249da17b0eab) [@bep](https://github.com/bep)
++The origin of this issue comes from Go, see https://github.com/golang/go/issues/38736
+
++We have fixed this in Hugo by [using](https://github.com/gohugoio/hugo/commit/4a8267d64a40564aced0695bca05249da17b0eab) a patched version of `exec.LookPath` from https://github.com/cli/safeexec (thanks to [@mislav](https://github.com/mislav) for the implementation).
++
++Thanks to [@Ry0taK](https://github.com/Ry0taK) for the bug report.
+
+
diff --cc docs/content/en/news/0.80.0-relnotes/featured.png
index 00000000,00000000..09308b04
new file mode 100644
Binary files differ
diff --cc docs/content/en/news/0.80.0-relnotes/index.md
index 48183ff4,00000000..1c390b68
mode 100644,000000..100644
--- a/docs/content/en/news/0.80.0-relnotes/index.md
+++ b/docs/content/en/news/0.80.0-relnotes/index.md
@@@ -1,79 -1,0 +1,79 @@@
+
+---
+date: 2020-12-31
- title: "0.80.0"
- description: "0.80.0"
++title: "Hugo 0.80: Last Release of 2020!"
++description: "This release brings Dart Sass support, a new image overlay function, and more."
+categories: ["Releases"]
+---
+
- The last Hugo release of the year brings a new [images.Overlay](https://gohugo.io/functions/images/#overlay) filter to overlay an image on top of another, e.g. for watermarking, and [Dart Sass](https://gohugo.io/hugo-pipes/scss-sass/#options) support.
++The last Hugo release of the year brings a new [images.Overlay](https://gohugo.io/functions/images/#overlay) filter to overlay an image on top of another, e.g. for watermarking, and [Dart Sass](https://gohugo.io/hugo-pipes/scss-sass/#options) support.
+
+This release represents **29 contributions by 12 contributors** to the main Hugo code base. [@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout to [@moorereason](https://github.com/moorereason), and [@davidsneighbour](https://github.com/davidsneighbour) for their ongoing contributions.
+And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour), [@coliff](https://github.com/coliff) and [@kaushalmodi](https://github.com/kaushalmodi) for all the great work on the documentation site.
+
+Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
+which has received **22 contributions by 6 contributors**. A special thanks to [@bep](https://github.com/bep), [@D4D3VD4V3](https://github.com/D4D3VD4V3), [@chrischute](https://github.com/chrischute), and [@azenk](https://github.com/azenk) for their work on the documentation site.
+
+
+Hugo now has:
+
+* 49096+ [stars](https://github.com/gohugoio/hugo/stargazers)
+* 436+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
+* 369+ [themes](http://themes.gohugo.io/)
+
+## Notes
+
+* Resource.ResourceType now always returns MIME's main type [81975f84](https://github.com/gohugoio/hugo/commit/81975f847dc19c21c2321207645807771db97fab) [@bep](https://github.com/bep) [#8052](https://github.com/gohugoio/hugo/issues/8052)
+
+## Enhancements
+
+### Templates
+
+* Regenerate templates [a2d146ec](https://github.com/gohugoio/hugo/commit/a2d146ec32a26ccca9ffa68d3c840ec5b08cca96) [@bep](https://github.com/bep)
+* tpl/internal/go_templates: Revert formatting [718e09ed](https://github.com/gohugoio/hugo/commit/718e09ed4bc538f4fccc4337f99e9eb86aea31f3) [@bep](https://github.com/bep)
+* Add title parameter to YouTube shortcode [4fc918e0](https://github.com/gohugoio/hugo/commit/4fc918e02cfc7f260d6312248ff9d33e95b27943) [@azenk](https://github.com/azenk)
+
+### Output
+
+* Add missing OutputStyle option [428b0b32](https://github.com/gohugoio/hugo/commit/428b0b32947ec16f8585b8c33548d72fd4fb025d) [@bep](https://github.com/bep)
+
+### Other
+
+* Allow Dart Sass transformations to be cached on disk [ffbf5e45](https://github.com/gohugoio/hugo/commit/ffbf5e45fa0617a37950b34deab63736b1c6b1d3) [@bep](https://github.com/bep)
+* Dart Sass only supports `expanded` and `compressed` [48994ea7](https://github.com/gohugoio/hugo/commit/48994ea766f08332f57c0f8e74843b6c8617c3d1) [@bep](https://github.com/bep)
+* Update emoji import paths and version [1f7e9f73](https://github.com/gohugoio/hugo/commit/1f7e9f733397b891cefc725ffc94ba901e70425a) [@moorereason](https://github.com/moorereason)
+* Add Dart Sass support [cea15740](https://github.com/gohugoio/hugo/commit/cea157402365f34a69882110a4208999728007a6) [@bep](https://github.com/bep) [#7380](https://github.com/gohugoio/hugo/issues/7380)[#8102](https://github.com/gohugoio/hugo/issues/8102)
+* GroupByParamDate now supports datetimes [f9f77978](https://github.com/gohugoio/hugo/commit/f9f779786edcefc4449a14cfc04dd93379f71373) [@zerok](https://github.com/zerok)
+* Skip para test when not on CI [a9718f44](https://github.com/gohugoio/hugo/commit/a9718f44cd6c938448fc697f0ec720ebed7d863a) [@bep](https://github.com/bep) [#6963](https://github.com/gohugoio/hugo/issues/6963)
+* Update SECURITY.md [f802bb23](https://github.com/gohugoio/hugo/commit/f802bb236a60dcc6c64d53edac634891272e0c07) [@bep](https://github.com/bep)
+* Improve LookPath [10ae7c32](https://github.com/gohugoio/hugo/commit/10ae7c3210cd1add14d3750aa9512a87df0e1146) [@bep](https://github.com/bep)
+* create a SECURITY.md [ae2d1bd5](https://github.com/gohugoio/hugo/commit/ae2d1bd52df0099190ef9195666d0788708b0385) [@davidsneighbour](https://github.com/davidsneighbour) [#8074](https://github.com/gohugoio/hugo/issues/8074)
+* Show more detail on failed time test [8103188b](https://github.com/gohugoio/hugo/commit/8103188b9b9e8eeb3bcb53c8b64e2b83397e82ae) [@moorereason](https://github.com/moorereason) [#6963](https://github.com/gohugoio/hugo/issues/6963)
+* Add images.Overlay filter [3ba147e7](https://github.com/gohugoio/hugo/commit/3ba147e702a5ae0af6e8b3b0296d256c3246a546) [@bep](https://github.com/bep) [#8057](https://github.com/gohugoio/hugo/issues/8057)[#4595](https://github.com/gohugoio/hugo/issues/4595)[#6731](https://github.com/gohugoio/hugo/issues/6731)
+* Bump github.com/spf13/cobra from 0.15.0 to 0.20.0 [c84ad8db](https://github.com/gohugoio/hugo/commit/c84ad8db821c10225c0e603c6ec920c67b6ce36f) [@anthonyfok](https://github.com/anthonyfok)
+* configure proper link to discourse.gohugo.io (#8020) [4e0acb89](https://github.com/gohugoio/hugo/commit/4e0acb89b793d8895dc53eb8887be27430c3ab31) [@davidsneighbour](https://github.com/davidsneighbour)
+* Format code with gofumpt [d90e37e0](https://github.com/gohugoio/hugo/commit/d90e37e0c6e812f9913bf256c9c81aa05b7a08aa) [@bep](https://github.com/bep)
+* bump github.com/evanw/esbuild from 0.8.15 to 0.8.17 [32471b57](https://github.com/gohugoio/hugo/commit/32471b57bde51c55a15dbf1db75d6e5f7232c347) [@dependabot[bot]](https://github.com/apps/dependabot)
+* Use --baseURL path for live-reload URL [0ad378b0](https://github.com/gohugoio/hugo/commit/0ad378b09cea90a2a70d7ff06af668abe22475a1) [@sth](https://github.com/sth) [#6595](https://github.com/gohugoio/hugo/issues/6595)
+* bump github.com/getkin/kin-openapi from 0.31.0 to 0.32.0 [907d9e92](https://github.com/gohugoio/hugo/commit/907d9e92682ed56a57a2206ae9bd9a985b3e1870) [@dependabot[bot]](https://github.com/apps/dependabot)
+
+## Fixes
+
+### Templates
+
+* Fix series detection in opengraph [d2d493ab](https://github.com/gohugoio/hugo/commit/d2d493ab5d6a054001a8448ea0de2949dac4b30e) [@Humberd](https://github.com/Humberd)
+* Fix substr when length parameter is zero [5862fd2a](https://github.com/gohugoio/hugo/commit/5862fd2a60b5d16f2437bd8c8b7bac700de5f047) [@moorereason](https://github.com/moorereason) [#7993](https://github.com/gohugoio/hugo/issues/7993)
+* Refactor and fix substr logic [64789fb5](https://github.com/gohugoio/hugo/commit/64789fb5dcf8326f14f13d69a2576ae3aa2bbbaa) [@moorereason](https://github.com/moorereason) [#7993](https://github.com/gohugoio/hugo/issues/7993)
+
+### Other
+
+* Fix Resource.ResourceType so it always returns MIME's main type [81975f84](https://github.com/gohugoio/hugo/commit/81975f847dc19c21c2321207645807771db97fab) [@bep](https://github.com/bep) [#8052](https://github.com/gohugoio/hugo/issues/8052)
+* hugolib/paths: Fix typo [ce96895d](https://github.com/gohugoio/hugo/commit/ce96895debb67df20ae24fb5f0f04b98a30cc6cc) [@mayocream](https://github.com/mayocream)
+* Fix minor typos [04b89857](https://github.com/gohugoio/hugo/commit/04b89857e104ac7dcbf9fc65d8d4f1a1178123e6) [@phil-davis](https://github.com/phil-davis)
+* Fix BenchmarkMergeByLanguage [21fa1e86](https://github.com/gohugoio/hugo/commit/21fa1e86f2aa929fb0983a0cc3dc4e271ea1cc54) [@bep](https://github.com/bep) [#7914](https://github.com/gohugoio/hugo/issues/7914)
+* Fix RelURL and AbsURL when path starts with language [aebfe156](https://github.com/gohugoio/hugo/commit/aebfe156fb2f27057e61b2e50c7576e6b06dab58) [@ivan-meridianbanc-com](https://github.com/ivan-meridianbanc-com)
+
+
+
+
+
diff --cc docs/content/en/news/hugo-macos-intel-vs-arm/featured.png
index 00000000,00000000..30e73ad4
new file mode 100644
Binary files differ
diff --cc docs/content/en/news/hugo-macos-intel-vs-arm/index.html
index 00000000,00000000..9bc83df5
new file mode 100644
--- /dev/null
+++ b/docs/content/en/news/hugo-macos-intel-vs-arm/index.html
@@@ -1,0 -1,0 +1,9139 @@@
++---
++title: "Hugo on Apple M1"
++date: 2020-12-10
++description: "The new Mac Mini M1 base model is blazing fast! We have run the Hugo benchmarks comparing it to a MacBook four times more expensive."
++---
++
++
++
++go test -test.run=NONE -bench="Benchmark" -test.benchmem=true -cpu=8 -count=4 ./...
. Since the M1 does not have a concept of Turbo Boost, I kept that on when running the Intel benchmarks.go version devel +5627a4dc30 Wed Dec 9 16:57:37 2020 +0000 darwin/arm64
++ This test isn't exactly comparing apples with apples (pun intended); this is a 4K USD computer compared to a 1K computer, but that makes the performance of the Mac Mini even more impressive. ++
++ ++++ There are some areas where the Intel still outshines the ARM, and that is most likely areas with highly optimized assembly code, and this will certainly improve. More benchmarks can be found here. ++
++ ++++ You probably want to watch issue to track when we can get a Go release with MacOS M1 support. A couple of months? ++
++ ++++ Also, this work document is a great resource for getting a native Go development environment up and running on the M1. ++
++ ++++ | ++ hugo-intel.txt ++ | ++++ hugo-m1.txt ++ | ++||
---|---|---|---|---|
++ | ++ time/op ++ | ++++ delta ++ | ++||
++ github.com/gohugoio/hugo/common/hreflect ++ | ++||||
++ IsTruthFul-8 ++ | ++++ 15.0ns ± 3% ++ | ++++ 12.6ns ± 3% ++ | ++++ â16.31% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/common/maps ++ | ++||||
++ ScratchGet-8 ++ | ++++ 15.1ns ± 1% ++ | ++++ 13.8ns ± 0% ++ | ++++ â8.74% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/helpers ++ | ++||||
++ StripHTML-8 ++ | ++++ 2.02µs ± 0% ++ | ++++ 1.61µs ± 0% ++ | ++++ â20.15% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ TestTruncateWordsToWholeSentence-8 ++ | ++++ 50.1ns ± 2% ++ | ++++ 45.1ns ± 0% ++ | ++++ â9.98% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ TestTruncateWordsToWholeSentenceOld-8 ++ | ++++ 4.23µs ± 2% ++ | ++++ 3.15µs ± 0% ++ | ++++ â25.53% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ TotalWords-8 ++ | ++++ 6.38µs ± 2% ++ | ++++ 5.90µs ± 0% ++ | ++++ â7.63% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ EmojiKyokomiFprint-8 ++ | ++++ 30.9µs ± 5% ++ | ++++ 25.1µs ± 3% ++ | ++++ â18.83% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ EmojiKyokomiSprint-8 ++ | ++++ 29.9µs ± 1% ++ | ++++ 24.3µs ± 0% ++ | ++++ â18.49% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ HugoEmoji-8 ++ | ++++ 1.56µs ±10% ++ | ++++ 4.27µs ± 3% ++ | ++++ +174.22% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ReaderContains-8 ++ | ++++ 4.01µs ± 1% ++ | ++++ 4.23µs ± 2% ++ | ++++ +5.48% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MD5FromFileFast/full=false-8 ++ | ++++ 2.36µs ± 1% ++ | ++++ 1.75µs ± 0% ++ | ++++ â25.92% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MD5FromFileFast/full=true-8 ++ | ++++ 32.7µs ± 2% ++ | ++++ 36.3µs ± 0% ++ | ++++ +10.85% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ UniqueStrings/Safe-8 ++ | ++++ 418ns ± 3% ++ | ++++ 312ns ± 0% ++ | ++++ â25.42% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ UniqueStrings/Reuse_slice-8 ++ | ++++ 352ns ± 2% ++ | ++++ 271ns ± 2% ++ | ++++ â23.25% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ UniqueStrings/Reuse_slice_sorted-8 ++ | ++++ 203ns ± 1% ++ | ++++ 157ns ± 2% ++ | ++++ â22.82% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/hugofs ++ | ++||||
++ Walk-8 ++ | ++++ 271µs ± 1% ++ | ++++ 210µs ± 0% ++ | ++++ â22.70% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/hugofs/glob ++ | ++||||
++ GetGlob-8 ++ | ++++ 15.0ns ± 2% ++ | ++++ 13.8ns ± 0% ++ | ++++ â8.12% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/hugolib ++ | ++||||
++ Cascade/langs-1-8 ++ | ++++ 7.24ms ± 1% ++ | ++++ 5.06ms ± 2% ++ | ++++ â30.06% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-3-8 ++ | ++++ 9.20ms ± 0% ++ | ++++ 6.56ms ± 1% ++ | ++++ â28.75% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-5-8 ++ | ++++ 11.2ms ± 1% ++ | ++++ 8.0ms ± 1% ++ | ++++ â28.64% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-7-8 ++ | ++++ 13.4ms ± 1% ++ | ++++ 9.6ms ± 0% ++ | ++++ â28.18% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-9-8 ++ | ++++ 15.8ms ± 1% ++ | ++++ 11.2ms ± 1% ++ | ++++ â29.20% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ContentMap/CreateMissingNodes-8 ++ | ++++ 54.3µs ± 3% ++ | ++++ 49.9µs ± 5% ++ | ++++ â8.03% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPage-8 ++ | ++++ 210ns ± 2% ++ | ++++ 207ns ± 1% ++ | ++++ â1.46% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPageRegular/From_root-8 ++ | ++++ 1.64µs ± 1% ++ | ++++ 0.88µs ± 0% ++ | ++++ â46.14% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPageRegular/Page_relative-8 ++ | ++++ 1.96µs ± 0% ++ | ++++ 1.15µs ± 1% ++ | ++++ â41.52% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MergeByLanguage-8 ++ | ++++ 644ns ±15% ++ | ++++ 599ns ±12% ++ | ++++ ~ ++ | ++++ (p=0.486 n=4+4) ++ | ++
++ PagesPrevNext/.Next-pages-300-8 ++ | ++++ 34.0ns ± 1% ++ | ++++ 31.3ns ± 0% ++ | ++++ â7.81% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/.Next-pages-5000-8 ++ | ++++ 65.5ns ± 2% ++ | ++++ 38.3ns ± 1% ++ | ++++ â41.42% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/.Prev-pages-300-8 ++ | ++++ 34.0ns ± 1% ++ | ++++ 31.6ns ± 1% ++ | ++++ â7.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/.Prev-pages-5000-8 ++ | ++++ 65.8ns ± 2% ++ | ++++ 37.9ns ± 1% ++ | ++++ â42.37% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Next-pages-300-8 ++ | ++++ 911ns ±17% ++ | ++++ 621ns ± 0% ++ | ++++ â31.82% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Next-pages-5000-8 ++ | ++++ 1.94µs ± 9% ++ | ++++ 1.67µs ±11% ++ | ++++ ~ ++ | ++++ (p=0.057 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Prev-pages-300-8 ++ | ++++ 854ns ±32% ++ | ++++ 631ns ± 3% ++ | ++++ â26.16% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Prev-pages-5000-8 ++ | ++++ 1.98µs ± 4% ++ | ++++ 1.66µs ± 5% ++ | ++++ â16.34% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Next-pages-300-8 ++ | ++++ 914ns ±19% ++ | ++++ 623ns ± 1% ++ | ++++ â31.83% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Next-pages-5000-8 ++ | ++++ 13.6µs ± 1% ++ | ++++ 11.3µs ± 4% ++ | ++++ â17.04% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Prev-pages-300-8 ++ | ++++ 952ns ±21% ++ | ++++ 627ns ± 0% ++ | ++++ â34.12% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Prev-pages-5000-8 ++ | ++++ 13.1µs ± 1% ++ | ++++ 11.2µs ± 1% ++ | ++++ â14.35% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.ByTitle.Next-pages-300-8 ++ | ++++ 752ns ± 2% ++ | ++++ 630ns ± 4% ++ | ++++ â16.24% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PagesPrevNext/Pages.ByTitle.Next-pages-5000-8 ++ | ++++ 13.5µs ± 3% ++ | ++++ 11.1µs ± 4% ++ | ++++ â17.84% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResourceChainPostProcess-8 ++ | ++++ 40.1ms ± 1% ++ | ++++ 35.6ms ± 1% ++ | ++++ â11.23% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ReplaceShortcodeTokens-8 ++ | ++++ 2.30µs ±34% ++ | ++++ 7.02µs ± 3% ++ | ++++ +205.66% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Bundle_with_image-8 ++ | ++++ 754µs ± 0% ++ | ++++ 446µs ± 7% ++ | ++++ â40.85% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Bundle_with_JSON_file-8 ++ | ++++ 728µs ± 0% ++ | ++++ 437µs ± 1% ++ | ++++ â39.95% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Tags_and_categories-8 ++ | ++++ 15.5ms ± 2% ++ | ++++ 12.9ms ± 6% ++ | ++++ â16.46% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Canonify_URLs-8 ++ | ++++ 27.1ms ± 2% ++ | ++++ 25.9ms ± 2% ++ | ++++ â4.69% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Deep_content_tree-8 ++ | ++++ 32.2ms ± 5% ++ | ++++ 25.7ms ± 3% ++ | ++++ â20.16% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Many_HTML_templates-8 ++ | ++++ 11.3ms ± 2% ++ | ++++ 8.5ms ± 2% ++ | ++++ â24.98% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Page_collections-8 ++ | ++++ 19.7ms ± 2% ++ | ++++ 14.5ms ± 3% ++ | ++++ â26.11% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_List_terms-8 ++ | ++++ 3.77ms ± 2% ++ | ++++ 2.55ms ± 1% ++ | ++++ â32.41% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Bundle_with_image-8 ++ | ++++ 5.54ms ± 0% ++ | ++++ 3.98ms ± 1% ++ | ++++ â28.09% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Bundle_with_JSON_file-8 ++ | ++++ 5.71ms ± 1% ++ | ++++ 4.03ms ± 1% ++ | ++++ â29.43% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Tags_and_categories-8 ++ | ++++ 24.6ms ± 2% ++ | ++++ 19.0ms ± 2% ++ | ++++ â22.47% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Canonify_URLs-8 ++ | ++++ 32.6ms ± 1% ++ | ++++ 29.9ms ± 1% ++ | ++++ â8.17% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Deep_content_tree-8 ++ | ++++ 41.3ms ± 1% ++ | ++++ 31.6ms ± 2% ++ | ++++ â23.60% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Many_HTML_templates-8 ++ | ++++ 19.9ms ± 1% ++ | ++++ 14.4ms ± 0% ++ | ++++ â27.53% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Page_collections-8 ++ | ++++ 28.8ms ± 0% ++ | ++++ 21.2ms ± 1% ++ | ++++ â26.29% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_List_terms-8 ++ | ++++ 9.02ms ± 1% ++ | ++++ 6.55ms ± 2% ++ | ++++ â27.39% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/identity ++ | ++||||
++ IdentityManager/Add-8 ++ | ++++ 702ns ±10% ++ | ++++ 404ns ± 3% ++ | ++++ â42.42% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ IdentityManager/Search-8 ++ | ++++ 2.14µs ± 2% ++ | ++++ 1.15µs ± 1% ++ | ++++ â46.07% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/langs/i18n ++ | ++||||
++ I18nTranslate/all-present-8 ++ | ++++ 254ns ± 1% ++ | ++++ 315ns ± 0% ++ | ++++ +23.86% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/present-in-default-8 ++ | ++++ 650ns ± 2% ++ | ++++ 604ns ± 0% ++ | ++++ â6.97% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/present-in-current-8 ++ | ++++ 252ns ± 1% ++ | ++++ 309ns ± 2% ++ | ++++ +22.83% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/missing-8 ++ | ++++ 614ns ± 0% ++ | ++++ 574ns ± 0% ++ | ++++ â6.48% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/file-missing-8 ++ | ++++ 1.43µs ± 3% ++ | ++++ 1.19µs ± 0% ++ | ++++ â16.26% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/context-provided-8 ++ | ++++ 732ns ± 1% ++ | ++++ 648ns ± 0% ++ | ++++ â11.46% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/readingTime-one-8 ++ | ++++ 480ns ± 1% ++ | ++++ 462ns ± 0% ++ | ++++ â3.61% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/readingTime-many-8 ++ | ++++ 972ns ± 0% ++ | ++++ 823ns ± 0% ++ | ++++ â15.28% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/same-id-and-translation-8 ++ | ++++ 248ns ± 1% ++ | ++++ 312ns ± 0% ++ | ++++ +26.12% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/same-id-and-translation-default-8 ++ | ++++ 648ns ± 2% ++ | ++++ 602ns ± 0% ++ | ++++ â6.96% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/unknown-language-code-8 ++ | ++++ 1.48µs ± 1% ++ | ++++ 1.22µs ± 0% ++ | ++++ â17.61% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/known-language-missing-plural-8 ++ | ++++ 985ns ± 3% ++ | ++++ 858ns ± 0% ++ | ++++ â12.99% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/dotted-bare-key-8 ++ | ++++ 238ns ± 2% ++ | ++++ 314ns ± 0% ++ | ++++ +32.13% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/lang-with-hyphen-8 ++ | ++++ 574ns ± 2% ++ | ++++ 569ns ± 1% ++ | ++++ ~ ++ | ++++ (p=0.229 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/markup/goldmark ++ | ++||||
++ SanitizeAnchorName-8 ++ | ++++ 395ns ± 1% ++ | ++++ 334ns ± 0% ++ | ++++ â15.39% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SanitizeAnchorNameAsciiOnly-8 ++ | ++++ 866ns ± 5% ++ | ++++ 660ns ± 0% ++ | ++++ â23.82% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SanitizeAnchorNameBlackfriday-8 ++ | ++++ 528ns ± 1% ++ | ++++ 439ns ± 0% ++ | ++++ â17.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SanitizeAnchorNameString-8 ++ | ++++ 438ns ± 2% ++ | ++++ 362ns ± 0% ++ | ++++ â17.39% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/metrics ++ | ++||||
++ HowSimilar-8 ++ | ++++ 1.92µs ± 0% ++ | ++++ 1.50µs ± 0% ++ | ++++ â21.55% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/output ++ | ++||||
++ Layout-8 ++ | ++++ 78.7ns ± 1% ++ | ++++ 96.0ns ± 8% ++ | ++++ +22.06% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ LayoutUncached-8 ++ | ++++ 6.93µs ± 0% ++ | ++++ 5.69µs ± 0% ++ | ++++ â17.83% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/parser/metadecoders ++ | ++||||
++ StringifyMapKeysStringsOnlyInterfaceMaps-8 ++ | ++++ 790ns ±10% ++ | ++++ 598ns ± 8% ++ | ++++ â24.31% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ StringifyMapKeysStringsOnlyStringMaps-8 ++ | ++++ 158ns ± 1% ++ | ++++ 149ns ± 2% ++ | ++++ â5.80% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ StringifyMapKeysIntegers-8 ++ | ++++ 1.10µs ± 1% ++ | ++++ 0.83µs ± 3% ++ | ++++ â23.95% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/parser/pageparser ++ | ++||||
++ ShortcodeLexer-8 ++ | ++++ 86.5µs ± 2% ++ | ++++ 58.0µs ± 0% ++ | ++++ â32.92% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Parse-8 ++ | ++++ 10.6µs ± 1% ++ | ++++ 7.9µs ± 0% ++ | ++++ â25.50% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ParseWithEmoji-8 ++ | ++++ 12.9µs ± 2% ++ | ++++ 10.1µs ± 0% ++ | ++++ â21.55% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/publisher ++ | ++||||
++ ClassCollectorWriter-8 ++ | ++++ 18.2µs ± 0% ++ | ++++ 13.6µs ± 0% ++ | ++++ â25.52% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/related ++ | ++||||
++ RelatedNewIndex/singles-8 ++ | ++++ 48.2µs ± 1% ++ | ++++ 40.8µs ± 0% ++ | ++++ â15.24% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ RelatedNewIndex/all-8 ++ | ++++ 47.8µs ± 1% ++ | ++++ 39.5µs ± 0% ++ | ++++ â17.21% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ RelatedMatchesIn-8 ++ | ++++ 83.3µs ±12% ++ | ++++ 78.0µs ±11% ++ | ++++ ~ ++ | ++++ (p=0.343 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources ++ | ++||||
++ ImageExif/Cold_cache-8 ++ | ++++ 192µs ± 6% ++ | ++++ 166µs ± 3% ++ | ++++ â13.75% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ImageExif/Cold_cache,_10-8 ++ | ++++ 209µs ± 2% ++ | ++++ 173µs ± 1% ++ | ++++ â17.10% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ImageExif/Warm_cache-8 ++ | ++++ 37.5µs ± 1% ++ | ++++ 441.3µs ±16% ++ | ++++ +1077.34% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResizeParallel-8 ++ | ++++ 1.27µs ± 1% ++ | ++++ 1.64µs ± 1% ++ | ++++ +29.40% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResourcesMatch-8 ++ | ++++ 524ns ± 6% ++ | ++++ 638ns ± 7% ++ | ++++ +21.73% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResourcesMatchA100-8 ++ | ++++ 136ns ±12% ++ | ++++ 120ns ± 3% ++ | ++++ â11.25% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ AssignMetadata-8 ++ | ++++ 15.4µs ± 1% ++ | ++++ 11.6µs ± 1% ++ | ++++ â24.64% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/images/exif ++ | ++||||
++ DecodeExif-8 ++ | ++++ 99.5µs ± 1% ++ | ++++ 71.2µs ± 0% ++ | ++++ â28.43% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/page ++ | ++||||
++ PageCache-8 ++ | ++++ 137ns ± 1% ++ | ++++ 131ns ± 0% ++ | ++++ â4.23% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/Shuffled-100-8 ++ | ++++ 142ns ± 1% ++ | ++++ 144ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.314 n=4+4) ++ | ++
++ SearchPage/Shuffled-500-8 ++ | ++++ 613ns ± 5% ++ | ++++ 595ns ± 0% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ SearchPage/Shuffled-1000-8 ++ | ++++ 1.60µs ± 4% ++ | ++++ 1.42µs ± 5% ++ | ++++ â11.24% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/Shuffled-5000-8 ++ | ++++ 6.28µs ± 2% ++ | ++++ 5.97µs ± 1% ++ | ++++ â4.89% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByWeight-100-8 ++ | ++++ 146ns ± 1% ++ | ++++ 143ns ± 0% ++ | ++++ â1.63% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByWeight-500-8 ++ | ++++ 615ns ± 4% ++ | ++++ 595ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.314 n=4+4) ++ | ++
++ SearchPage/ByWeight-1000-8 ++ | ++++ 801ns ± 1% ++ | ++++ 657ns ± 3% ++ | ++++ â17.94% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByWeight-5000-8 ++ | ++++ 899ns ± 1% ++ | ++++ 753ns ± 6% ++ | ++++ â16.27% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByWeight.Reverse-100-8 ++ | ++++ 144ns ± 1% ++ | ++++ 144ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.514 n=4+4) ++ | ++
++ SearchPage/ByWeight.Reverse-500-8 ++ | ++++ 603ns ± 2% ++ | ++++ 595ns ± 0% ++ | ++++ â1.32% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByWeight.Reverse-1000-8 ++ | ++++ 901ns ± 4% ++ | ++++ 758ns ± 7% ++ | ++++ â15.85% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByWeight.Reverse-5000-8 ++ | ++++ 994ns ± 5% ++ | ++++ 855ns ± 5% ++ | ++++ â13.97% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByDate-100-8 ++ | ++++ 141ns ± 1% ++ | ++++ 144ns ± 1% ++ | ++++ +2.06% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByDate-500-8 ++ | ++++ 594ns ± 2% ++ | ++++ 595ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.257 n=4+4) ++ | ++
++ SearchPage/ByDate-1000-8 ++ | ++++ 454ns ±13% ++ | ++++ 393ns ± 7% ++ | ++++ ~ ++ | ++++ (p=0.057 n=4+4) ++ | ++
++ SearchPage/ByDate-5000-8 ++ | ++++ 530ns ±10% ++ | ++++ 461ns ± 6% ++ | ++++ ~ ++ | ++++ (p=0.057 n=4+4) ++ | ++
++ SearchPage/ByPublishDate-100-8 ++ | ++++ 140ns ± 1% ++ | ++++ 144ns ± 1% ++ | ++++ +2.51% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByPublishDate-500-8 ++ | ++++ 583ns ± 0% ++ | ++++ 596ns ± 0% ++ | ++++ +2.14% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByPublishDate-1000-8 ++ | ++++ 441ns ± 6% ++ | ++++ 443ns ± 8% ++ | ++++ ~ ++ | ++++ (p=0.686 n=4+4) ++ | ++
++ SearchPage/ByPublishDate-5000-8 ++ | ++++ 535ns ± 4% ++ | ++++ 532ns ± 7% ++ | ++++ ~ ++ | ++++ (p=0.686 n=4+4) ++ | ++
++ SearchPage/ByTitle-100-8 ++ | ++++ 141ns ± 2% ++ | ++++ 143ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.229 n=4+4) ++ | ++
++ SearchPage/ByTitle-500-8 ++ | ++++ 586ns ± 0% ++ | ++++ 595ns ± 0% ++ | ++++ +1.70% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByTitle-1000-8 ++ | ++++ 1.00µs ± 9% ++ | ++++ 0.84µs ± 3% ++ | ++++ â16.22% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByTitle-5000-8 ++ | ++++ 1.22µs ±11% ++ | ++++ 0.99µs ± 7% ++ | ++++ â18.47% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByTitle_Linear-100-8 ++ | ++++ 142ns ± 2% ++ | ++++ 144ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.286 n=4+4) ++ | ++
++ SearchPage/ByTitle_Linear-500-8 ++ | ++++ 587ns ± 1% ++ | ++++ 596ns ± 0% ++ | ++++ +1.49% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/ByTitle_Linear-1000-8 ++ | ++++ 1.15µs ± 2% ++ | ++++ 1.16µs ± 0% ++ | ++++ ~ ++ | ++++ (p=0.286 n=4+4) ++ | ++
++ SearchPage/ByTitle_Linear-5000-8 ++ | ++++ 5.63µs ± 1% ++ | ++++ 5.67µs ± 0% ++ | ++++ ~ ++ | ++++ (p=0.343 n=4+4) ++ | ++
++ SortByWeightAndReverse-8 ++ | ++++ 3.99µs ± 4% ++ | ++++ 3.61µs ± 4% ++ | ++++ â9.63% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PermalinkExpand-8 ++ | ++++ 970ns ± 9% ++ | ++++ 709ns ± 0% ++ | ++++ â26.86% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/resource_transformers/postcss ++ | ++||||
++ ImportResolver-8 ++ | ++++ 46.1µs ± 2% ++ | ++++ 28.1µs ± 0% ++ | ++++ â38.96% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/internal/go_templates/htmltemplate ++ | ++||||
++ CSSEscaper-8 ++ | ++++ 666ns ± 2% ++ | ++++ 552ns ± 1% ++ | ++++ â17.11% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ CSSEscaperNoSpecials-8 ++ | ++++ 166ns ± 1% ++ | ++++ 138ns ± 0% ++ | ++++ â16.47% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ DecodeCSS-8 ++ | ++++ 355ns ± 1% ++ | ++++ 351ns ± 0% ++ | ++++ ~ ++ | ++++ (p=0.057 n=4+4) ++ | ++
++ DecodeCSSNoSpecials-8 ++ | ++++ 4.83ns ± 2% ++ | ++++ 4.06ns ± 0% ++ | ++++ â15.84% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ CSSValueFilter-8 ++ | ++++ 116ns ± 1% ++ | ++++ 105ns ± 0% ++ | ++++ â9.37% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ CSSValueFilterOk-8 ++ | ++++ 128ns ± 3% ++ | ++++ 115ns ± 0% ++ | ++++ â10.08% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ EscapedExecute-8 ++ | ++++ 1.80µs ± 1% ++ | ++++ 1.35µs ± 0% ++ | ++++ â25.07% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ HTMLNospaceEscaper-8 ++ | ++++ 768ns ± 2% ++ | ++++ 628ns ± 0% ++ | ++++ â18.25% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ HTMLNospaceEscaperNoSpecials-8 ++ | ++++ 221ns ± 1% ++ | ++++ 159ns ± 0% ++ | ++++ â28.16% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ StripTags-8 ++ | ++++ 611ns ± 2% ++ | ++++ 500ns ± 0% ++ | ++++ â18.07% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ StripTagsNoSpecials-8 ++ | ++++ 71.3ns ± 0% ++ | ++++ 55.0ns ± 0% ++ | ++++ â22.90% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSValEscaperWithNum-8 ++ | ++++ 355ns ± 2% ++ | ++++ 274ns ± 0% ++ | ++++ â22.83% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSValEscaperWithStr-8 ++ | ++++ 1.29µs ± 1% ++ | ++++ 0.99µs ± 0% ++ | ++++ â23.43% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSValEscaperWithStrNoSpecials-8 ++ | ++++ 412ns ± 1% ++ | ++++ 317ns ± 0% ++ | ++++ â23.08% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSValEscaperWithObj-8 ++ | ++++ 1.49µs ± 1% ++ | ++++ 1.14µs ± 0% ++ | ++++ â23.15% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSValEscaperWithObjNoSpecials-8 ++ | ++++ 566ns ± 1% ++ | ++++ 441ns ± 0% ++ | ++++ â22.15% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSStrEscaperNoSpecials-8 ++ | ++++ 182ns ± 2% ++ | ++++ 143ns ± 0% ++ | ++++ â21.16% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSStrEscaper-8 ++ | ++++ 681ns ± 1% ++ | ++++ 557ns ± 0% ++ | ++++ â18.18% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSRegexpEscaperNoSpecials-8 ++ | ++++ 176ns ± 1% ++ | ++++ 152ns ± 0% ++ | ++++ â13.74% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSRegexpEscaper-8 ++ | ++++ 694ns ± 2% ++ | ++++ 561ns ± 0% ++ | ++++ â19.20% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ TemplateSpecialTags-8 ++ | ++++ 120µs ± 1% ++ | ++++ 92µs ± 0% ++ | ++++ â23.07% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ URLEscaper-8 ++ | ++++ 1.50µs ± 1% ++ | ++++ 1.06µs ± 0% ++ | ++++ â29.35% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ URLEscaperNoSpecials-8 ++ | ++++ 140ns ± 1% ++ | ++++ 121ns ± 0% ++ | ++++ â13.45% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ URLNormalizer-8 ++ | ++++ 1.10µs ± 1% ++ | ++++ 0.78µs ± 0% ++ | ++++ â28.45% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ URLNormalizerNoSpecials-8 ++ | ++++ 160ns ± 1% ++ | ++++ 136ns ± 0% ++ | ++++ â15.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SrcsetFilter-8 ++ | ++++ 497ns ± 2% ++ | ++++ 343ns ± 0% ++ | ++++ â30.87% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SrcsetFilterNoSpecials-8 ++ | ++++ 273ns ± 1% ++ | ++++ 217ns ± 0% ++ | ++++ â20.71% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate/parse ++ | ++||||
++ ParseLarge-8 ++ | ++++ 18.6ms ± 0% ++ | ++++ 14.6ms ± 0% ++ | ++++ â21.41% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ VariableString-8 ++ | ++++ 98.2ns ± 1% ++ | ++++ 79.9ns ± 0% ++ | ++++ â18.72% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ListString-8 ++ | ++++ 2.77µs ± 1% ++ | ++++ 2.26µs ± 1% ++ | ++++ â18.34% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/tplimpl ++ | ++||||
++ Partial-8 ++ | ++++ 1.01µs ± 2% ++ | ++++ 1.73µs ± 1% ++ | ++++ +70.50% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PartialCached-8 ++ | ++++ 61.0ns ± 3% ++ | ++++ 100.3ns ± 2% ++ | ++++ +64.49% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/transform ++ | ++||||
++ UnmarshalString-8 ++ | ++++ 1.14µs ± 1% ++ | ++++ 1.29µs ± 0% ++ | ++++ +13.17% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ UnmarshalResource-8 ++ | ++++ 138ns ± 0% ++ | ++++ 108ns ± 1% ++ | ++++ â22.17% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/transform/urlreplacers ++ | ++||||
++ AbsURL-8 ++ | ++++ 4.50µs ± 1% ++ | ++++ 4.81µs ± 0% ++ | ++++ +6.85% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ AbsURLSrcset-8 ++ | ++++ 3.49µs ± 2% ++ | ++++ 3.21µs ± 0% ++ | ++++ â7.97% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ XMLAbsURLSrcset-8 ++ | ++++ 3.41µs ± 1% ++ | ++++ 3.23µs ± 0% ++ | ++++ â5.27% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ XMLAbsURL-8 ++ | ++++ 1.85µs ± 0% ++ | ++++ 1.85µs ± 0% ++ | ++++ ~ ++ | ++++ (p=0.343 n=4+4) ++ | ++
++ ++ | ++||||
++ | ++ alloc/op ++ | ++++ delta ++ | ++||
++ github.com/gohugoio/hugo/common/hreflect ++ | ++||||
++ IsTruthFul-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/common/maps ++ | ++||||
++ ScratchGet-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/helpers ++ | ++||||
++ StripHTML-8 ++ | ++++ 736B ± 0% ++ | ++++ 728B ± 0% ++ | ++++ â1.09% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ TestTruncateWordsToWholeSentence-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TestTruncateWordsToWholeSentenceOld-8 ++ | ++++ 2.50kB ± 0% ++ | ++++ 2.50kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TotalWords-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ EmojiKyokomiFprint-8 ++ | ++++ 31.4kB ± 0% ++ | ++++ 31.4kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ EmojiKyokomiSprint-8 ++ | ++++ 31.3kB ± 0% ++ | ++++ 31.3kB ± 0% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ HugoEmoji-8 ++ | ++++ 624B ± 0% ++ | ++++ 616B ± 0% ++ | ++++ â1.28% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ReaderContains-8 ++ | ++++ 1.26kB ± 0% ++ | ++++ 1.26kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ MD5FromFileFast/full=false-8 ++ | ++++ 240B ± 0% ++ | ++++ 144B ± 0% ++ | ++++ â40.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MD5FromFileFast/full=true-8 ++ | ++++ 32.9kB ± 0% ++ | ++++ 32.9kB ± 0% ++ | ++++ ~ ++ | ++++ (p=0.429 n=4+4) ++ | ++
++ UniqueStrings/Safe-8 ++ | ++++ 224B ± 0% ++ | ++++ 224B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ UniqueStrings/Reuse_slice-8 ++ | ++++ 96.0B ± 0% ++ | ++++ 96.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ UniqueStrings/Reuse_slice_sorted-8 ++ | ++++ 32.0B ± 0% ++ | ++++ 24.0B ± 0% ++ | ++++ â25.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/hugofs ++ | ++||||
++ Walk-8 ++ | ++++ 103kB ± 0% ++ | ++++ 99kB ± 0% ++ | ++++ â3.89% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/hugofs/glob ++ | ++||||
++ GetGlob-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/hugolib ++ | ++||||
++ Cascade/langs-1-8 ++ | ++++ 2.33MB ± 0% ++ | ++++ 2.25MB ± 0% ++ | ++++ â3.37% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-3-8 ++ | ++++ 3.31MB ± 0% ++ | ++++ 3.21MB ± 0% ++ | ++++ â2.93% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-5-8 ++ | ++++ 4.32MB ± 0% ++ | ++++ 4.20MB ± 0% ++ | ++++ â2.62% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-7-8 ++ | ++++ 5.37MB ± 0% ++ | ++++ 5.23MB ± 0% ++ | ++++ â2.64% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-9-8 ++ | ++++ 6.44MB ± 0% ++ | ++++ 6.27MB ± 0% ++ | ++++ â2.57% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ContentMap/CreateMissingNodes-8 ++ | ++++ 14.9kB ± 0% ++ | ++++ 14.4kB ± 0% ++ | ++++ â3.11% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPage-8 ++ | ++++ 16.0B ± 0% ++ | ++++ 16.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ GetPageRegular/From_root-8 ++ | ++++ 686B ± 0% ++ | ++++ 239B ± 0% ++ | ++++ â65.16% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPageRegular/Page_relative-8 ++ | ++++ 763B ± 0% ++ | ++++ 324B ± 0% ++ | ++++ â57.54% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MergeByLanguage-8 ++ | ++++ 51.5B ± 1% ++ | ++++ 50.8B ± 1% ++ | ++++ ~ ++ | ++++ (p=0.286 n=4+4) ++ | ++
++ PagesPrevNext/.Next-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Next-pages-5000-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Prev-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Prev-pages-5000-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Next-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Next-pages-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Prev-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Prev-pages-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Next-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Next-pages-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Prev-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Prev-pages-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.ByTitle.Next-pages-300-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.ByTitle.Next-pages-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ResourceChainPostProcess-8 ++ | ++++ 36.4MB ± 1% ++ | ++++ 33.0MB ± 1% ++ | ++++ â9.26% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ReplaceShortcodeTokens-8 ++ | ++++ 3.07kB ± 0% ++ | ++++ 3.07kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ BuildSite/Edit_Bundle_with_image-8 ++ | ++++ 437kB ± 0% ++ | ++++ 426kB ± 0% ++ | ++++ â2.43% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Bundle_with_JSON_file-8 ++ | ++++ 216kB ± 0% ++ | ++++ 205kB ± 0% ++ | ++++ â4.93% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Tags_and_categories-8 ++ | ++++ 10.3MB ± 0% ++ | ++++ 9.7MB ± 0% ++ | ++++ â6.68% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Canonify_URLs-8 ++ | ++++ 84.2MB ± 0% ++ | ++++ 85.6MB ± 0% ++ | ++++ +1.67% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Deep_content_tree-8 ++ | ++++ 26.5MB ± 0% ++ | ++++ 25.5MB ± 0% ++ | ++++ â3.65% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Many_HTML_templates-8 ++ | ++++ 6.00MB ± 0% ++ | ++++ 5.71MB ± 0% ++ | ++++ â4.82% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Page_collections-8 ++ | ++++ 14.7MB ± 0% ++ | ++++ 14.1MB ± 0% ++ | ++++ â4.21% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_List_terms-8 ++ | ++++ 1.83MB ± 0% ++ | ++++ 1.72MB ± 0% ++ | ++++ â6.04% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Bundle_with_image-8 ++ | ++++ 1.93MB ± 0% ++ | ++++ 1.90MB ± 0% ++ | ++++ â1.39% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Bundle_with_JSON_file-8 ++ | ++++ 1.71MB ± 0% ++ | ++++ 1.68MB ± 0% ++ | ++++ â1.54% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Tags_and_categories-8 ++ | ++++ 14.2MB ± 0% ++ | ++++ 13.4MB ± 0% ++ | ++++ â5.48% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Canonify_URLs-8 ++ | ++++ 89.2MB ± 0% ++ | ++++ 90.5MB ± 0% ++ | ++++ +1.42% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Deep_content_tree-8 ++ | ++++ 30.2MB ± 0% ++ | ++++ 28.9MB ± 0% ++ | ++++ â4.26% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Many_HTML_templates-8 ++ | ++++ 9.17MB ± 0% ++ | ++++ 8.83MB ± 0% ++ | ++++ â3.80% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Page_collections-8 ++ | ++++ 18.4MB ± 0% ++ | ++++ 17.6MB ± 0% ++ | ++++ â4.44% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_List_terms-8 ++ | ++++ 3.96MB ± 0% ++ | ++++ 3.82MB ± 0% ++ | ++++ â3.64% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/identity ++ | ++||||
++ IdentityManager/Add-8 ++ | ++++ 204B ± 7% ++ | ++++ 131B ± 2% ++ | ++++ â35.50% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ IdentityManager/Search-8 ++ | ++++ 751B ± 0% ++ | ++++ 311B ± 0% ++ | ++++ â58.59% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/langs/i18n ++ | ++||||
++ I18nTranslate/all-present-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/present-in-default-8 ++ | ++++ 112B ± 0% ++ | ++++ 112B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/present-in-current-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/missing-8 ++ | ++++ 112B ± 0% ++ | ++++ 112B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/file-missing-8 ++ | ++++ 304B ± 0% ++ | ++++ 288B ± 0% ++ | ++++ â5.26% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/context-provided-8 ++ | ++++ 200B ± 0% ++ | ++++ 192B ± 0% ++ | ++++ â4.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/readingTime-one-8 ++ | ++++ 384B ± 0% ++ | ++++ 384B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/readingTime-many-8 ++ | ++++ 608B ± 0% ++ | ++++ 600B ± 0% ++ | ++++ â1.32% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/same-id-and-translation-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/same-id-and-translation-default-8 ++ | ++++ 112B ± 0% ++ | ++++ 112B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/unknown-language-code-8 ++ | ++++ 720B ± 0% ++ | ++++ 696B ± 0% ++ | ++++ â3.33% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/known-language-missing-plural-8 ++ | ++++ 488B ± 0% ++ | ++++ 472B ± 0% ++ | ++++ â3.28% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ I18nTranslate/dotted-bare-key-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/lang-with-hyphen-8 ++ | ++++ 384B ± 0% ++ | ++++ 384B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/markup/goldmark ++ | ++||||
++ SanitizeAnchorName-8 ++ | ++++ 32.0B ± 0% ++ | ++++ 24.0B ± 0% ++ | ++++ â25.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SanitizeAnchorNameAsciiOnly-8 ++ | ++++ 48.0B ± 0% ++ | ++++ 48.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SanitizeAnchorNameBlackfriday-8 ++ | ++++ 184B ± 0% ++ | ++++ 176B ± 0% ++ | ++++ â4.35% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SanitizeAnchorNameString-8 ++ | ++++ 64.0B ± 0% ++ | ++++ 56.0B ± 0% ++ | ++++ â12.50% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/metrics ++ | ++||||
++ HowSimilar-8 ++ | ++++ 624B ± 0% ++ | ++++ 624B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/output ++ | ++||||
++ Layout-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ LayoutUncached-8 ++ | ++++ 6.34kB ± 0% ++ | ++++ 6.34kB ± 0% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/parser/metadecoders ++ | ++||||
++ StringifyMapKeysStringsOnlyInterfaceMaps-8 ++ | ++++ 1.01kB ± 0% ++ | ++++ 1.01kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StringifyMapKeysStringsOnlyStringMaps-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StringifyMapKeysIntegers-8 ++ | ++++ 1.01kB ± 0% ++ | ++++ 1.01kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/parser/pageparser ++ | ++||||
++ ShortcodeLexer-8 ++ | ++++ 119kB ± 0% ++ | ++++ 118kB ± 0% ++ | ++++ â0.10% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Parse-8 ++ | ++++ 17.0kB ± 0% ++ | ++++ 17.0kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ParseWithEmoji-8 ++ | ++++ 33.0kB ± 0% ++ | ++++ 33.0kB ± 0% ++ | ++++ â0.02% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/publisher ++ | ++||||
++ ClassCollectorWriter-8 ++ | ++++ 34.8kB ± 0% ++ | ++++ 34.6kB ± 0% ++ | ++++ â0.53% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/related ++ | ++||||
++ RelatedNewIndex/singles-8 ++ | ++++ 21.9kB ± 0% ++ | ++++ 21.9kB ± 0% ++ | ++++ â0.06% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ RelatedNewIndex/all-8 ++ | ++++ 23.7kB ± 0% ++ | ++++ 23.7kB ± 0% ++ | ++++ â0.07% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ RelatedMatchesIn-8 ++ | ++++ 26.4kB ±26% ++ | ++++ 26.4kB ±26% ++ | ++++ ~ ++ | ++++ (p=0.686 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources ++ | ++||||
++ ImageExif/Cold_cache-8 ++ | ++++ 160kB ± 0% ++ | ++++ 183kB ± 0% ++ | ++++ +14.12% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ImageExif/Cold_cache,_10-8 ++ | ++++ 172kB ± 0% ++ | ++++ 187kB ± 0% ++ | ++++ +8.44% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ImageExif/Warm_cache-8 ++ | ++++ 12.9kB ± 0% ++ | ++++ 10.9kB ± 0% ++ | ++++ â15.76% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResizeParallel-8 ++ | ++++ 2.02kB ± 0% ++ | ++++ 2.61kB ± 0% ++ | ++++ +28.92% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResourcesMatch-8 ++ | ++++ 503B ± 0% ++ | ++++ 504B ± 0% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ ResourcesMatchA100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ AssignMetadata-8 ++ | ++++ 1.34kB ± 0% ++ | ++++ 0.85kB ± 0% ++ | ++++ â36.90% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/images/exif ++ | ++||||
++ DecodeExif-8 ++ | ++++ 161kB ± 0% ++ | ++++ 184kB ± 0% ++ | ++++ +14.31% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/page ++ | ++||||
++ PageCache-8 ++ | ++++ 32.0B ± 0% ++ | ++++ 24.0B ± 0% ++ | ++++ â25.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ SearchPage/Shuffled-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-1000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-1000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-1000-8 ++ | ++++ 24.0B ± 0% ++ | ++++ 24.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-5000-8 ++ | ++++ 24.0B ± 0% ++ | ++++ 24.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-1000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-1000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-1000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-5000-8 ++ | ++++ 8.00B ± 0% ++ | ++++ 8.00B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-100-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-500-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-1000-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-5000-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SortByWeightAndReverse-8 ++ | ++++ 64.0B ± 0% ++ | ++++ 48.0B ± 0% ++ | ++++ â25.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PermalinkExpand-8 ++ | ++++ 400B ± 0% ++ | ++++ 304B ± 0% ++ | ++++ â24.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/resource_transformers/postcss ++ | ++||||
++ ImportResolver-8 ++ | ++++ 39.6kB ± 0% ++ | ++++ 36.6kB ± 0% ++ | ++++ â7.46% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/internal/go_templates/htmltemplate ++ | ++||||
++ CSSEscaper-8 ++ | ++++ 336B ± 0% ++ | ++++ 336B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ CSSEscaperNoSpecials-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ DecodeCSS-8 ++ | ++++ 160B ± 0% ++ | ++++ 160B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ DecodeCSSNoSpecials-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ CSSValueFilter-8 ++ | ++++ 96.0B ± 0% ++ | ++++ 96.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ CSSValueFilterOk-8 ++ | ++++ 48.0B ± 0% ++ | ++++ 48.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ EscapedExecute-8 ++ | ++++ 624B ± 0% ++ | ++++ 544B ± 0% ++ | ++++ â12.82% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ HTMLNospaceEscaper-8 ++ | ++++ 368B ± 0% ++ | ++++ 368B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ HTMLNospaceEscaperNoSpecials-8 ++ | ++++ 32.0B ± 0% ++ | ++++ 32.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StripTags-8 ++ | ++++ 224B ± 0% ++ | ++++ 224B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StripTagsNoSpecials-8 ++ | ++++ 112B ± 0% ++ | ++++ 112B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithNum-8 ++ | ++++ 40.0B ± 0% ++ | ++++ 40.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithStr-8 ++ | ++++ 384B ± 0% ++ | ++++ 384B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithStrNoSpecials-8 ++ | ++++ 96.0B ± 0% ++ | ++++ 96.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithObj-8 ++ | ++++ 448B ± 0% ++ | ++++ 440B ± 0% ++ | ++++ â1.79% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSValEscaperWithObjNoSpecials-8 ++ | ++++ 160B ± 0% ++ | ++++ 152B ± 0% ++ | ++++ â5.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ JSStrEscaperNoSpecials-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSStrEscaper-8 ++ | ++++ 336B ± 0% ++ | ++++ 336B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSRegexpEscaperNoSpecials-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSRegexpEscaper-8 ++ | ++++ 336B ± 0% ++ | ++++ 336B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TemplateSpecialTags-8 ++ | ++++ 50.1kB ± 0% ++ | ++++ 49.9kB ± 0% ++ | ++++ â0.31% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ URLEscaper-8 ++ | ++++ 336B ± 0% ++ | ++++ 336B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLEscaperNoSpecials-8 ++ | ++++ 112B ± 0% ++ | ++++ 112B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLNormalizer-8 ++ | ++++ 176B ± 0% ++ | ++++ 176B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLNormalizerNoSpecials-8 ++ | ++++ 112B ± 0% ++ | ++++ 112B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SrcsetFilter-8 ++ | ++++ 160B ± 0% ++ | ++++ 160B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SrcsetFilterNoSpecials-8 ++ | ++++ 160B ± 0% ++ | ++++ 160B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate/parse ++ | ++||||
++ ParseLarge-8 ++ | ++++ 5.46MB ± 0% ++ | ++++ 5.46MB ± 0% ++ | ++++ â0.01% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ VariableString-8 ++ | ++++ 72.0B ± 0% ++ | ++++ 72.0B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ListString-8 ++ | ++++ 1.61kB ± 0% ++ | ++++ 1.47kB ± 0% ++ | ++++ â8.46% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/tplimpl ++ | ++||||
++ Partial-8 ++ | ++++ 1.15kB ± 0% ++ | ++++ 1.06kB ± 0% ++ | ++++ â7.64% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ PartialCached-8 ++ | ++++ 0.00B ++ | ++++ 0.00B ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/tpl/transform ++ | ++||||
++ UnmarshalString-8 ++ | ++++ 832B ± 0% ++ | ++++ 736B ± 0% ++ | ++++ â11.54% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ UnmarshalResource-8 ++ | ++++ 144B ± 0% ++ | ++++ 144B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/transform/urlreplacers ++ | ++||||
++ AbsURL-8 ++ | ++++ 1.57kB ± 0% ++ | ++++ 1.57kB ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ AbsURLSrcset-8 ++ | ++++ 1.29kB ± 0% ++ | ++++ 1.28kB ± 0% ++ | ++++ â0.62% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ XMLAbsURLSrcset-8 ++ | ++++ 1.37kB ± 0% ++ | ++++ 1.36kB ± 0% ++ | ++++ â0.59% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ XMLAbsURL-8 ++ | ++++ 928B ± 0% ++ | ++++ 928B ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ++ | ++||||
++ | ++ allocs/op ++ | ++++ delta ++ | ++||
++ github.com/gohugoio/hugo/common/hreflect ++ | ++||||
++ IsTruthFul-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/common/maps ++ | ++||||
++ ScratchGet-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/helpers ++ | ++||||
++ StripHTML-8 ++ | ++++ 4.00 ± 0% ++ | ++++ 4.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TestTruncateWordsToWholeSentence-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TestTruncateWordsToWholeSentenceOld-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TotalWords-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ EmojiKyokomiFprint-8 ++ | ++++ 71.0 ± 0% ++ | ++++ 71.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ EmojiKyokomiSprint-8 ++ | ++++ 66.0 ± 0% ++ | ++++ 66.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ HugoEmoji-8 ++ | ++++ 13.0 ± 0% ++ | ++++ 13.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ReaderContains-8 ++ | ++++ 20.0 ± 0% ++ | ++++ 20.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ MD5FromFileFast/full=false-8 ++ | ++++ 5.00 ± 0% ++ | ++++ 4.00 ± 0% ++ | ++++ â20.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MD5FromFileFast/full=true-8 ++ | ++++ 5.00 ± 0% ++ | ++++ 5.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ UniqueStrings/Safe-8 ++ | ++++ 7.00 ± 0% ++ | ++++ 7.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ UniqueStrings/Reuse_slice-8 ++ | ++++ 6.00 ± 0% ++ | ++++ 6.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ UniqueStrings/Reuse_slice_sorted-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/hugofs ++ | ++||||
++ Walk-8 ++ | ++++ 2.22k ± 0% ++ | ++++ 2.22k ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/hugofs/glob ++ | ++||||
++ GetGlob-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/hugolib ++ | ++||||
++ Cascade/langs-1-8 ++ | ++++ 33.1k ± 0% ++ | ++++ 33.2k ± 0% ++ | ++++ +0.20% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-3-8 ++ | ++++ 47.4k ± 0% ++ | ++++ 47.6k ± 0% ++ | ++++ +0.58% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-5-8 ++ | ++++ 62.2k ± 0% ++ | ++++ 62.6k ± 0% ++ | ++++ +0.69% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-7-8 ++ | ++++ 78.0k ± 0% ++ | ++++ 78.6k ± 0% ++ | ++++ +0.75% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ Cascade/langs-9-8 ++ | ++++ 95.0k ± 0% ++ | ++++ 95.7k ± 0% ++ | ++++ +0.78% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ContentMap/CreateMissingNodes-8 ++ | ++++ 258 ± 0% ++ | ++++ 254 ± 0% ++ | ++++ â1.55% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPage-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ GetPageRegular/From_root-8 ++ | ++++ 10.0 ± 0% ++ | ++++ 6.0 ± 0% ++ | ++++ â40.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ GetPageRegular/Page_relative-8 ++ | ++++ 13.0 ± 0% ++ | ++++ 10.0 ± 0% ++ | ++++ â23.08% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ MergeByLanguage-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Next-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Next-pages-5000-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Prev-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/.Prev-pages-5000-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Next-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Next-pages-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Prev-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Prev-pages-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Next-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Next-pages-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Prev-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.Shuffled.Prev-pages-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.ByTitle.Next-pages-300-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PagesPrevNext/Pages.ByTitle.Next-pages-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ResourceChainPostProcess-8 ++ | ++++ 803k ± 1% ++ | ++++ 817k ± 1% ++ | ++++ ~ ++ | ++++ (p=0.114 n=4+4) ++ | ++
++ ReplaceShortcodeTokens-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ BuildSite/Edit_Bundle_with_image-8 ++ | ++++ 3.99k ± 0% ++ | ++++ 4.03k ± 0% ++ | ++++ +0.93% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Bundle_with_JSON_file-8 ++ | ++++ 3.99k ± 0% ++ | ++++ 4.03k ± 0% ++ | ++++ +0.93% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Tags_and_categories-8 ++ | ++++ 241k ± 0% ++ | ++++ 244k ± 0% ++ | ++++ +0.97% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Canonify_URLs-8 ++ | ++++ 364k ± 0% ++ | ++++ 366k ± 0% ++ | ++++ +0.39% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Deep_content_tree-8 ++ | ++++ 264k ± 0% ++ | ++++ 268k ± 0% ++ | ++++ +1.60% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Many_HTML_templates-8 ++ | ++++ 90.3k ± 0% ++ | ++++ 91.1k ± 0% ++ | ++++ +0.90% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_Page_collections-8 ++ | ++++ 153k ± 0% ++ | ++++ 156k ± 0% ++ | ++++ +1.37% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Edit_List_terms-8 ++ | ++++ 30.4k ± 0% ++ | ++++ 30.5k ± 0% ++ | ++++ +0.53% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Bundle_with_image-8 ++ | ++++ 23.2k ± 0% ++ | ++++ 23.2k ± 0% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ BuildSite/Regular_Bundle_with_JSON_file-8 ++ | ++++ 23.3k ± 0% ++ | ++++ 23.3k ± 0% ++ | ++++ â0.01% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Tags_and_categories-8 ++ | ++++ 284k ± 0% ++ | ++++ 287k ± 0% ++ | ++++ +1.05% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Canonify_URLs-8 ++ | ++++ 387k ± 0% ++ | ++++ 388k ± 0% ++ | ++++ +0.20% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Deep_content_tree-8 ++ | ++++ 307k ± 0% ++ | ++++ 309k ± 0% ++ | ++++ +0.63% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Many_HTML_templates-8 ++ | ++++ 129k ± 0% ++ | ++++ 130k ± 0% ++ | ++++ +0.54% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_Page_collections-8 ++ | ++++ 199k ± 0% ++ | ++++ 200k ± 0% ++ | ++++ +0.55% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ BuildSite/Regular_List_terms-8 ++ | ++++ 53.5k ± 0% ++ | ++++ 53.6k ± 0% ++ | ++++ +0.11% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/identity ++ | ++||||
++ IdentityManager/Add-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ â50.00% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ IdentityManager/Search-8 ++ | ++++ 15.0 ± 0% ++ | ++++ 11.0 ± 0% ++ | ++++ â26.67% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/langs/i18n ++ | ++||||
++ I18nTranslate/all-present-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/present-in-default-8 ++ | ++++ 5.00 ± 0% ++ | ++++ 5.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/present-in-current-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/missing-8 ++ | ++++ 5.00 ± 0% ++ | ++++ 5.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/file-missing-8 ++ | ++++ 12.0 ± 0% ++ | ++++ 12.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/context-provided-8 ++ | ++++ 5.00 ± 0% ++ | ++++ 5.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/readingTime-one-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/readingTime-many-8 ++ | ++++ 9.00 ± 0% ++ | ++++ 9.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/same-id-and-translation-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/same-id-and-translation-default-8 ++ | ++++ 5.00 ± 0% ++ | ++++ 5.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/unknown-language-code-8 ++ | ++++ 14.0 ± 0% ++ | ++++ 14.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/known-language-missing-plural-8 ++ | ++++ 8.00 ± 0% ++ | ++++ 8.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/dotted-bare-key-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ I18nTranslate/lang-with-hyphen-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/markup/goldmark ++ | ++||||
++ SanitizeAnchorName-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SanitizeAnchorNameAsciiOnly-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SanitizeAnchorNameBlackfriday-8 ++ | ++++ 6.00 ± 0% ++ | ++++ 6.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SanitizeAnchorNameString-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/metrics ++ | ++||||
++ HowSimilar-8 ++ | ++++ 19.0 ± 0% ++ | ++++ 19.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/output ++ | ++||||
++ Layout-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ LayoutUncached-8 ++ | ++++ 112 ± 0% ++ | ++++ 112 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/parser/metadecoders ++ | ++||||
++ StringifyMapKeysStringsOnlyInterfaceMaps-8 ++ | ++++ 6.00 ± 0% ++ | ++++ 6.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StringifyMapKeysStringsOnlyStringMaps-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StringifyMapKeysIntegers-8 ++ | ++++ 6.00 ± 0% ++ | ++++ 6.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/parser/pageparser ++ | ++||||
++ ShortcodeLexer-8 ++ | ++++ 916 ± 0% ++ | ++++ 916 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ Parse-8 ++ | ++++ 34.0 ± 0% ++ | ++++ 34.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ParseWithEmoji-8 ++ | ++++ 16.0 ± 0% ++ | ++++ 16.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/publisher ++ | ++||||
++ ClassCollectorWriter-8 ++ | ++++ 149 ± 0% ++ | ++++ 143 ± 0% ++ | ++++ â4.03% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/related ++ | ++||||
++ RelatedNewIndex/singles-8 ++ | ++++ 199 ± 0% ++ | ++++ 199 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ RelatedNewIndex/all-8 ++ | ++++ 200 ± 0% ++ | ++++ 200 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ RelatedMatchesIn-8 ++ | ++++ 196 ± 5% ++ | ++++ 196 ± 5% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources ++ | ++||||
++ ImageExif/Cold_cache-8 ++ | ++++ 1.27k ± 0% ++ | ++++ 1.27k ± 0% ++ | ++++ +0.16% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ImageExif/Cold_cache,_10-8 ++ | ++++ 1.43k ± 0% ++ | ++++ 1.36k ± 0% ++ | ++++ â4.88% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ImageExif/Warm_cache-8 ++ | ++++ 351 ± 0% ++ | ++++ 327 ± 0% ++ | ++++ â6.84% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResizeParallel-8 ++ | ++++ 48.0 ± 0% ++ | ++++ 55.0 ± 0% ++ | ++++ +14.58% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ ResourcesMatch-8 ++ | ++++ 2.75 ±27% ++ | ++++ 2.75 ±27% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ ResourcesMatchA100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ AssignMetadata-8 ++ | ++++ 120 ± 0% ++ | ++++ 80 ± 0% ++ | ++++ â33.33% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/images/exif ++ | ++||||
++ DecodeExif-8 ++ | ++++ 1.20k ± 0% ++ | ++++ 1.20k ± 0% ++ | ++++ +0.50% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/page ++ | ++||||
++ PageCache-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-1000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/Shuffled-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-1000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-1000-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByWeight.Reverse-5000-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-1000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByDate-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-1000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByPublishDate-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-1000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle-5000-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-100-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-500-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-1000-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SearchPage/ByTitle_Linear-5000-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SortByWeightAndReverse-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PermalinkExpand-8 ++ | ++++ 13.0 ± 0% ++ | ++++ 10.0 ± 0% ++ | ++++ â23.08% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/resources/resource_transformers/postcss ++ | ++||||
++ ImportResolver-8 ++ | ++++ 195 ± 0% ++ | ++++ 186 ± 0% ++ | ++++ â4.62% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ github.com/gohugoio/hugo/tpl/internal/go_templates/htmltemplate ++ | ++||||
++ CSSEscaper-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ CSSEscaperNoSpecials-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ DecodeCSS-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ DecodeCSSNoSpecials-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ CSSValueFilter-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ CSSValueFilterOk-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ EscapedExecute-8 ++ | ++++ 18.0 ± 0% ++ | ++++ 18.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ HTMLNospaceEscaper-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ HTMLNospaceEscaperNoSpecials-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StripTags-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ StripTagsNoSpecials-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithNum-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithStr-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithStrNoSpecials-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithObj-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSValEscaperWithObjNoSpecials-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSStrEscaperNoSpecials-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSStrEscaper-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSRegexpEscaperNoSpecials-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ JSRegexpEscaper-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ TemplateSpecialTags-8 ++ | ++++ 191 ± 0% ++ | ++++ 191 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLEscaper-8 ++ | ++++ 4.00 ± 0% ++ | ++++ 4.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLEscaperNoSpecials-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLNormalizer-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ URLNormalizerNoSpecials-8 ++ | ++++ 2.00 ± 0% ++ | ++++ 2.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SrcsetFilter-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ SrcsetFilterNoSpecials-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate/parse ++ | ++||||
++ ParseLarge-8 ++ | ++++ 80.0k ± 0% ++ | ++++ 80.0k ± 0% ++ | ++++ ~ ++ | ++++ (p=1.000 n=4+4) ++ | ++
++ VariableString-8 ++ | ++++ 3.00 ± 0% ++ | ++++ 3.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ListString-8 ++ | ++++ 31.0 ± 0% ++ | ++++ 31.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/tpl/tplimpl ++ | ++||||
++ Partial-8 ++ | ++++ 37.0 ± 0% ++ | ++++ 37.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ PartialCached-8 ++ | ++++ 0.00 ++ | ++++ 0.00 ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/tpl/transform ++ | ++||||
++ UnmarshalString-8 ++ | ++++ 6.00 ± 0% ++ | ++++ 5.00 ± 0% ++ | ++++ â16.67% ++ | ++++ (p=0.029 n=4+4) ++ | ++
++ UnmarshalResource-8 ++ | ++++ 1.00 ± 0% ++ | ++++ 1.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ github.com/gohugoio/hugo/transform/urlreplacers ++ | ++||||
++ AbsURL-8 ++ | ++++ 16.0 ± 0% ++ | ++++ 16.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ AbsURLSrcset-8 ++ | ++++ 23.0 ± 0% ++ | ++++ 23.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ XMLAbsURLSrcset-8 ++ | ++++ 21.0 ± 0% ++ | ++++ 21.0 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ XMLAbsURL-8 ++ | ++++ 8.00 ± 0% ++ | ++++ 8.00 ± 0% ++ | ++++ ~ ++ | ++++ (all equal) ++ | ++
++ ++ | ++
<!--more-->
at the appropriate place in the content page, or the summary can be written independent of the page text. See [Content Summaries](/content-management/summaries/) for more details.
+
+.TableOfContents
+: the rendered [table of contents](/content-management/toc/) for the page.
+
+.Title
+: the title for this page.
+
+.Translations
+: a list of translated versions of the current page. See [Multilingual Mode](/content-management/multilingual/) for more information.
+
+.TranslationKey
+: the key used to map language translations of the current page. See [Multilingual Mode](/content-management/multilingual/) for more information.
+
+.Truncated
+: a boolean, `true` if the `.Summary` is truncated. Useful for showing a "Read more..." link only when necessary. See [Summaries](/content-management/summaries/) for more information.
+
+.Type
+: the [content type](/content-management/types/) of the content (e.g., `posts`).
+
+.UniqueID (deprecated)
+: the MD5-checksum of the content file's path. This variable is deprecated and will be removed, use `.File.UniqueID` instead.
+
+.Weight
+: assigned weight (in the front matter) to this content, used in sorting.
+
+.WordCount
+: the number of words in the content.
+
+## Section Variables and Methods
+
+Also see [Sections](/content-management/sections/).
+
+{{< readfile file="/content/en/readfiles/sectionvars.md" markdown="true" >}}
+
+## The `.Pages` Variable {#pages}
+
+`.Pages` is an alias to `.Data.Pages`. It is conventional to use the
+aliased form `.Pages`.
+
+### `.Pages` compared to `.Site.Pages`
+
+{{< readfile file="/content/en/readfiles/pages-vs-site-pages.md" markdown="true" >}}
+
+## Page-level Params
+
+Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the `.Params` variable.
+
+```
+---
+title: My First Post
+date: 2017-02-20T15:26:23-06:00
+categories: [one]
+tags: [two,three,four]
+```
+
+With the above front matter, the `tags` and `categories` taxonomies are accessible via the following:
+
+* `.Params.tags`
+* `.Params.categories`
+
+{{% note "Casing of Params" %}}
+Page-level `.Params` are *only* accessible in lowercase.
+{{% /note %}}
+
+The `.Params` variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter in `/content/review/book01.md`:
+
+```
+---
+...
+affiliatelink: "http://www.my-book-link.here"
+recommendedby: "My Mother"
+...
+---
+```
+
+These fields would then be accessible to the `/themes/yourtheme/layouts/review/single.html` template through `.Params.affiliatelink` and `.Params.recommendedby`, respectively.
+
+Two common situations where this type of front matter field could be introduced is as a value of a certain attribute like `href=""` or by itself to be displayed as text to the website's visitors.
+
+{{< code file="/themes/yourtheme/layouts/review/single.html" >}}
+It was recommended by {{ .Params.recommendedby }}.
+{{< /code >}} + +This template would render as follows, assuming you've set [`uglyURLs`](/content-management/urls/) to `false` in your [site `config`](/getting-started/configuration/): + +{{< output file="yourbaseurl/review/book01/index.html" >}} +It was recommended by my Mother.
+{{< /output >}} + +{{% note %}} +See [Archetypes](/content-management/archetypes/) for consistency of `Params` across pieces of content. +{{% /note %}} + +### The `.Param` Method + +In Hugo, you can declare params in individual pages and globally for your entire website. A common use case is to have a general value for the site param and a more specific value for some of the pages (i.e., a header image): + +``` +{{ $.Param "header_image" }} +``` + +The `.Param` method provides a way to resolve a single value according to it's definition in a page parameter (i.e. in the content's front matter) or a site parameter (i.e., in your `config`). + +### Access Nested Fields in Front Matter + +When front matter contains nested fields like the following: + +``` +--- +author: + given_name: John + family_name: Feminella + display_name: John Feminella +--- +``` +`.Param` can access these fields by concatenating the field names together with a dot: + +``` +{{ $.Param "author.display_name" }} +``` + +If your front matter contains a top-level key that is ambiguous with a nested key, as in the following case: + +``` +--- +favorites.flavor: vanilla +favorites: + flavor: chocolate +--- +``` + +The top-level key will be preferred. Therefore, the following method, when applied to the previous example, will print `vanilla` and not `chocolate`: + +``` +{{ $.Param "favorites.flavor" }} +=> vanilla +``` + +[gitinfo]: /variables/git/ +[File Variables]: /variables/files/ diff --cc docs/netlify.toml index 913d7965,00000000..21649e98 mode 100644,000000..100644 --- a/docs/netlify.toml +++ b/docs/netlify.toml @@@ -1,31 -1,0 +1,31 @@@ +[build] +publish = "public" +command = "hugo --gc --minify" + +[context.production.environment] - HUGO_VERSION = "0.78.2" ++HUGO_VERSION = "0.80.0" +HUGO_ENV = "production" +HUGO_ENABLEGITINFO = "true" + +[context.split1] +command = "hugo --gc --minify --enableGitInfo" + +[context.split1.environment] - HUGO_VERSION = "0.78.2" ++HUGO_VERSION = "0.80.0" +HUGO_ENV = "production" + +[context.deploy-preview] +command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" + +[context.deploy-preview.environment] - HUGO_VERSION = "0.78.2" ++HUGO_VERSION = "0.80.0" + +[context.branch-deploy] +command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" + +[context.branch-deploy.environment] - HUGO_VERSION = "0.78.2" ++HUGO_VERSION = "0.80.0" + +[context.next.environment] +HUGO_ENABLEGITINFO = "true" + diff --cc docs/resources/_gen/images/news/0.79.0-relnotes/featured_hud3f5563b9eabb2fd9dcbcee84e72fe2d_75235_480x0_resize_catmullrom_2.png index 00000000,00000000..2dd944e9 new file mode 100644 Binary files differ diff --cc docs/resources/_gen/images/news/0.79.0-relnotes/featured_hud3f5563b9eabb2fd9dcbcee84e72fe2d_75235_640x0_resize_catmullrom_2.png index 00000000,00000000..5b2d51a2 new file mode 100644 Binary files differ diff --cc docs/resources/_gen/images/news/0.80.0-relnotes/featured_hu79434c84cc6c2c78f7828eb64a40630a_162027_480x0_resize_catmullrom_2.png index 00000000,00000000..9f1f270e new file mode 100644 Binary files differ diff --cc docs/resources/_gen/images/news/0.80.0-relnotes/featured_hu79434c84cc6c2c78f7828eb64a40630a_162027_640x0_resize_catmullrom_2.png index 00000000,00000000..20b712b4 new file mode 100644 Binary files differ diff --cc docs/resources/_gen/images/news/hugo-macos-intel-vs-arm/featured_hu3f81ebb7eadaa5c67f592034ca4c1896_299333_480x0_resize_catmullrom_2.png index 00000000,00000000..d783eba0 new file mode 100644 Binary files differ diff --cc docs/resources/_gen/images/news/hugo-macos-intel-vs-arm/featured_hu3f81ebb7eadaa5c67f592034ca4c1896_299333_640x0_resize_catmullrom_2.png index 00000000,00000000..595c6dd3 new file mode 100644 Binary files differ