{{ .Version }}
- Reload Page -diff --git a/.circleci/config.yml b/.circleci/config.yml
index 663d57643ee..cc15e71e0a8 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,51 +1,115 @@
+parameters:
+
+# v2: 11m.
defaults: &defaults
+ resource_class: large
docker:
- - image: bepsays/ci-goreleaser:1.17.5
- environment:
- CGO_ENABLED: "0"
-
+ - image: bepsays/ci-hugoreleaser:1.22600.20100
+environment: &buildenv
+ GOMODCACHE: /root/project/gomodcache
version: 2
jobs:
- build:
- <<: *defaults
+ prepare_release:
+ <<: *defaults
+ environment: &buildenv
+ GOMODCACHE: /root/project/gomodcache
steps:
- - checkout:
+ - setup_remote_docker
+ - checkout:
path: hugo
+ - &git-config
+ run:
+ command: |
+ git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
+ git config --global user.name "hugoreleaser"
- run:
- command: |
- git clone git@github.com:gohugoio/hugoDocs.git
- cd hugo
- go mod download
- sleep 5
- go mod verify
- - persist_to_workspace:
- root: .
- paths: .
- release:
- <<: *defaults
+ command: |
+ cd hugo
+ go mod download
+ go run -tags release main.go release --step 1
+ - save_cache:
+ key: git-sha-{{ .Revision }}
+ paths:
+ - hugo
+ - gomodcache
+ build_container1:
+ <<: [*defaults]
+ environment:
+ <<: [*buildenv]
steps:
- - attach_workspace:
- at: /root/project
+ - &restore-cache
+ restore_cache:
+ key: git-sha-{{ .Revision }}
- run:
- command: |
- cd hugo
- git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
- git config --global user.name "hugoreleaser"
- go run -tags release main.go release -r ${CIRCLE_BRANCH}
-
+ no_output_timeout: 20m
+ command: |
+ mkdir -p /tmp/files/dist1
+ cd hugo
+ hugoreleaser build -paths "builds/container1/**" -workers 3 -dist /tmp/files/dist1 -chunks $CIRCLE_NODE_TOTAL -chunk-index $CIRCLE_NODE_INDEX
+ - &persist-workspace
+ persist_to_workspace:
+ root: /tmp/files
+ paths:
+ - dist1
+ - dist2
+ parallelism: 7
+ build_container2:
+ <<: [*defaults]
+ environment:
+ <<: [*buildenv]
+ docker:
+ - image: bepsays/ci-hugoreleaser-linux-arm64:1.22600.20100
+ steps:
+ - *restore-cache
+ - &attach-workspace
+ attach_workspace:
+ at: /tmp/workspace
+ - run:
+ command: |
+ mkdir -p /tmp/files/dist2
+ cd hugo
+ hugoreleaser build -paths "builds/container2/**" -workers 1 -dist /tmp/files/dist2
+ - *persist-workspace
+ archive_and_release:
+ <<: [*defaults]
+ environment:
+ <<: [*buildenv]
+ steps:
+ - *restore-cache
+ - *attach-workspace
+ - *git-config
+ - run:
+ name: Add github.com to known hosts
+ command: ssh-keyscan github.com >> ~/.ssh/known_hosts
+ - run:
+ command: |
+ cp -a /tmp/workspace/dist1/. ./hugo/dist
+ cp -a /tmp/workspace/dist2/. ./hugo/dist
+ - run:
+ command: |
+ cd hugo
+ hugoreleaser archive
+ hugoreleaser release
+ go run -tags release main.go release --step 2
workflows:
version: 2
release:
jobs:
- - build:
+ - prepare_release:
filters:
branches:
only: /release-.*/
- - hold:
- type: approval
+ - build_container1:
+ requires:
+ - prepare_release
+ - build_container2:
requires:
- - build
- - release:
+ - prepare_release
+ - archive_and_release:
context: org-global
requires:
- - hold
+ - build_container1
+ - build_container2
+
+
+
diff --git a/.gemini/config.yaml b/.gemini/config.yaml
new file mode 100644
index 00000000000..236e043ad24
--- /dev/null
+++ b/.gemini/config.yaml
@@ -0,0 +1,13 @@
+have_fun: false
+memory_config:
+ disabled: false
+code_review:
+ disable: false
+ comment_severity_threshold: HIGH
+ max_review_comments: -1
+ pull_request_opened:
+ help: true
+ summary: false
+ code_review: false
+ include_drafts: false
+ignore_patterns: []
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 0117060d461..fa27914928d 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,11 +1,16 @@
---
name: 'Bug report'
-labels: 'bug'
+labels: 'Bug, NeedsTriage'
assignees: ''
about: Create a report to help us improve
---
-
+
+
### What version of Hugo are you using (`hugo version`)?
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index da14802fbf7..c114b3d7f7c 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -1,8 +1,11 @@
---
name: Proposal
-about: Suggest an idea for Hugo
+about: Propose a new feature for Hugo
title: ''
-labels: 'Proposal'
+labels: 'Proposal, NeedsTriage'
assignees: ''
---
+
+
+
\ No newline at end of file
diff --git a/.github/stale.yml b/.github/stale.yml
deleted file mode 100644
index 692c59659cd..00000000000
--- a/.github/stale.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 120
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 30
-# Issues with these labels will never be considered stale
-exemptLabels:
- - Keep
- - Security
-# Label to use when marking an issue as stale
-staleLabel: Stale
-# Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: >
- This issue has been automatically marked as stale because it has not had
- recent activity. The resources of the Hugo team are limited, and so we are asking for your help.
-
- If this is a **bug** and you can still reproduce this error on the {{ .Version }} Jquery is working {{.tagline}}
- {{ .copy }}
-
-
- {{ .cta }} {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}
-
- Hugo works on macOS, Windows, Linux, FreeBSD, and others. Host on any server or your favorite CDN. macOS Windows Linux Hugo is open-source and completely free. Our hundreds of contributors make Hugo great.
- {{- . -}}
- Your Logo Here
- {{.quote | safeHTML}}
- Tags This is a blockquote. Books: Related content:master branch, please reply with all of the information you have about it in order to keep the issue open.
-
- If this is a **feature request**, and you feel that it is still relevant and valuable, please tell us why.
-
- This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
-
-# Comment to post when closing a stale issue. Set to `false` to disable
-closeComment: false
diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml
new file mode 100644
index 00000000000..5d488c6ba41
--- /dev/null
+++ b/.github/workflows/image.yml
@@ -0,0 +1,49 @@
+name: Build Docker image
+
+on:
+ release:
+ types: [published]
+ pull_request:
+permissions:
+ packages: write
+
+env:
+ REGISTRY_IMAGE: ghcr.io/gohugoio/hugo
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
+ with:
+ images: ${{ env.REGISTRY_IMAGE }}
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
+
+ - name: Login to GHCR
+ # Login is only needed when the image is pushed
+ uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ id: build
+ uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
+ with:
+ context: .
+ provenance: mode=max
+ sbom: true
+ push: ${{ github.event_name != 'pull_request' }}
+ platforms: linux/amd64,linux/arm64
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ build-args: HUGO_BUILD_TAGS=extended,withdeploy
\ No newline at end of file
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 00000000000..89dbdde7dd9
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,52 @@
+name: 'Close stale and lock closed issues and PRs'
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '30 1 * * *'
+permissions:
+ contents: read
+jobs:
+ stale:
+ permissions:
+ issues: write
+ pull-requests: write
+ runs-on: ubuntu-latest
+ steps:
+ - uses: dessant/lock-threads@f5f995c727ac99a91dec92781a8e34e7c839a65e # v6.0.0
+ with:
+ issue-inactive-days: 21
+ add-issue-labels: 'Outdated'
+ issue-comment: >
+ This issue has been automatically locked since there
+ has not been any recent activity after it was closed.
+ Please open a new issue for related bugs.
+ pr-comment: >
+ This pull request has been automatically locked since there
+ has not been any recent activity after it was closed.
+ Please open a new issue for related bugs.
+ - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
+ with:
+ operations-per-run: 999
+ days-before-issue-stale: 365
+ days-before-pr-stale: 365
+ days-before-issue-close: 56
+ days-before-pr-close: 56
+ stale-issue-message: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. The resources of the Hugo team are limited, and so we are asking for your help.
+
+ If this is a **bug** and you can still reproduce this error on the master branch, please reply with all of the information you have about it in order to keep the issue open.
+
+ If this is a **feature request**, and you feel that it is still relevant and valuable, please tell us why.
+
+ This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
+ stale-pr-message: This PR has been automatically marked as stale because it has not had
+ recent activity. The resources of the Hugo team are limited, and so we are asking for your help.
+
+ Please check https://github.com/gohugoio/hugo/blob/master/CONTRIBUTING.md#code-contribution and verify that this code contribution fits with the description. If yes, tell us in a comment.
+
+ This PR will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
+ stale-issue-label: 'Stale'
+ exempt-issue-labels: 'Keep,Security'
+ stale-pr-label: 'Stale'
+ exempt-pr-labels: 'Keep,Security'
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 32ff044973a..9b4a1cd437b 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,82 +1,138 @@
-on: [push, pull_request]
+on:
+ push:
+ branches: [master]
+ pull_request:
name: Test
+env:
+ GOPROXY: https://proxy.golang.org
+ GO111MODULE: on
+ SASS_VERSION: 1.80.3
+ DART_SASS_SHA_LINUX: 7c933edbad0a7d389192c5b79393485c088bd2c4398e32f5754c32af006a9ffd
+ DART_SASS_SHA_MACOS: 79e060b0e131c3bb3c16926bafc371dc33feab122bfa8c01aa337a072097967b
+ DART_SASS_SHA_WINDOWS: 0bc4708b37cd1bac4740e83ac5e3176e66b774f77fd5dd364da5b5cfc9bfb469
+permissions:
+ contents: read
jobs:
test:
- env:
- GOPROXY: https://proxy.golang.org
- GO111MODULE: on
strategy:
matrix:
- go-version: [1.16.x, 1.17.x]
- os: [ubuntu-latest, macos-latest, windows-latest]
+ go-version: [1.25.x, 1.26.x]
+ os: [ubuntu-latest, windows-latest] # macos disabled for now because of disk space issues.
runs-on: ${{ matrix.os }}
steps:
- - name: Install Go
- uses: actions/setup-go@37335c7bb261b353407cff977110895fa0b4f7d8
- with:
- go-version: ${{ matrix.go-version }}
- - name: Install Ruby
- uses: actions/setup-ruby@5f29a1cd8dfebf420691c4c9a0e832e2fae5a526
- with:
- ruby-version: '2.7'
- - name: Install Python
- uses: actions/setup-python@3105fb18c05ddd93efea5f9e0bef7a03a6e9e7df
- with:
- python-version: '3.x'
- - name: Install Mage
- run: go get github.com/magefile/mage@07afc7d24f4d6d6442305d49552f04fbda5ccb3e
- - name: Install asciidoctor
- uses: reitzig/actions-asciidoctor@7570212ae20b63653481675fb1ff62d1073632b0
- - name: Checkout code
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- - name: Install docutils
- run: |
- pip install docutils
- rst2html.py --version
- - if: matrix.os == 'ubuntu-latest'
- name: Install pandoc on Linux
- run: |
+ - if: matrix.os == 'ubuntu-latest'
+ name: Free Disk Space (Ubuntu)
+ uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
+ with:
+ tool-cache: true
+ android: true
+ dotnet: true
+ haskell: true
+ large-packages: true
+ docker-images: true
+ swap-storage: true
+ - name: Checkout code
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - name: Install Go
+ uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
+ with:
+ go-version: ${{ matrix.go-version }}
+ check-latest: true
+ cache: true
+ cache-dependency-path: |
+ **/go.sum
+ **/go.mod
+ - name: Install Node
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ with:
+ node-version: "22"
+ - name: Install Ruby
+ uses: ruby/setup-ruby@7372622e62b60b3cb750dcd2b9e32c247ffec26a # v1.302.0
+ with:
+ ruby-version: "3.4.5"
+ - name: Install Ruby gems
+ run: |
+ gem install asciidoctor -v "2.0.26"
+ gem install asciidoctor-diagram -v "3.1.0"
+ - name: Install GoAT
+ run: go install github.com/blampe/goat/cmd/goat@177de93b192b8ffae608e5d9ec421cc99bf68402
+ - name: Install Python
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
+ with:
+ python-version: "3.x"
+ - name: Install Mage
+ run: go install github.com/magefile/mage@v1.15.0
+ - name: Install docutils
+ run: |
+ pip install docutils
+ rst2html --version
+ - if: matrix.os == 'ubuntu-latest'
+ name: Install pandoc on Linux
+ run: |
sudo apt-get update -y
sudo apt-get install -y pandoc
- - if: matrix.os == 'macos-latest'
- run: |
- brew install pandoc
- - if: matrix.os == 'windows-latest'
- run: |
- choco install pandoc
- - run: pandoc -v
- - if: matrix.os == 'ubuntu-latest'
- name: Install dart-sass-embedded Linux
- run: |
- curl -LJO https://github.com/sass/dart-sass-embedded/releases/download/1.0.0-beta.6/sass_embedded-1.0.0-beta.6-linux-x64.tar.gz;
- echo "04fc1e5e28d29a4585a701941b6dace56771d94bfbe7f9e4db28d24417ceeec3 sass_embedded-1.0.0-beta.6-linux-x64.tar.gz" | sha256sum -c;
- tar -xvf sass_embedded-1.0.0-beta.6-linux-x64.tar.gz;
- echo "$GITHUB_WORKSPACE/sass_embedded/" >> $GITHUB_PATH
- - if: matrix.os == 'macos-latest'
- name: Install dart-sass-embedded MacOS
- run: |
- curl -LJO https://github.com/sass/dart-sass-embedded/releases/download/1.0.0-beta.6/sass_embedded-1.0.0-beta.6-macos-x64.tar.gz;
- echo "b3b984675a9b04aa22f6f2302dda4191b507ac2ca124467db2dfe7e58e72fbad sass_embedded-1.0.0-beta.6-macos-x64.tar.gz" | shasum -a 256 -c;
- tar -xvf sass_embedded-1.0.0-beta.6-macos-x64.tar.gz;
- echo "$GITHUB_WORKSPACE/sass_embedded/" >> $GITHUB_PATH
- - if: matrix.os == 'windows-latest'
- name: Install dart-sass-embedded Windows
- run: |
- curl -LJO https://github.com/sass/dart-sass-embedded/releases/download/1.0.0-beta.6/sass_embedded-1.0.0-beta.6-windows-x64.zip;
- echo "6ae442129dbb3334bc21ef851261da6c0c1b560da790ca2e1350871d00ab816d sass_embedded-1.0.0-beta.6-windows-x64.zip" | sha256sum -c;
- unzip sass_embedded-1.0.0-beta.6-windows-x64.zip;
- echo "$env:GITHUB_WORKSPACE/sass_embedded/" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf-8 -Append
- - name: Test
- run: |
- mage -v test
- mage -v check;
- - name: Build Docs
- env:
- HUGO_BUILD_TAGS: extended
- HUGO_TIMEOUT: 31000
- HUGO_IGNOREERRORS: error-remote-getjson
- HUGO_SERVICES_INSTAGRAM_ACCESSTOKEN: dummytoken
- run: |
- mage -v hugo
- ./hugo -s docs/
- ./hugo --renderToMemory -s docs/
+ - if: matrix.os == 'macos-latest'
+ run: |
+ brew install pandoc
+ - if: matrix.os == 'windows-latest'
+ run: |
+ choco install pandoc
+ - run: pandoc -v
+ - if: matrix.os == 'windows-latest'
+ run: |
+ choco install mingw
+ - if: matrix.os == 'ubuntu-latest'
+ name: Install dart-sass Linux
+ run: |
+ echo "Install Dart Sass version ${SASS_VERSION} ..."
+ curl -LJO "https://github.com/sass/dart-sass/releases/download/${SASS_VERSION}/dart-sass-${SASS_VERSION}-linux-x64.tar.gz";
+ echo "${DART_SASS_SHA_LINUX} dart-sass-${SASS_VERSION}-linux-x64.tar.gz" | sha256sum -c;
+ tar -xvf "dart-sass-${SASS_VERSION}-linux-x64.tar.gz";
+ echo "$GOBIN"
+ echo "$GITHUB_WORKSPACE/dart-sass/" >> $GITHUB_PATH
+ - if: matrix.os == 'macos-latest'
+ name: Install dart-sass MacOS
+ run: |
+ echo "Install Dart Sass version ${SASS_VERSION} ..."
+ curl -LJO "https://github.com/sass/dart-sass/releases/download/${SASS_VERSION}/dart-sass-${SASS_VERSION}-macos-x64.tar.gz";
+ echo "${DART_SASS_SHA_MACOS} dart-sass-${SASS_VERSION}-macos-x64.tar.gz" | shasum -a 256 -c;
+ tar -xvf "dart-sass-${SASS_VERSION}-macos-x64.tar.gz";
+ echo "$GITHUB_WORKSPACE/dart-sass/" >> $GITHUB_PATH
+ - if: matrix.os == 'windows-latest'
+ name: Install dart-sass Windows
+ run: |
+ echo "Install Dart Sass version ${env:SASS_VERSION} ..."
+ curl -LJO "https://github.com/sass/dart-sass/releases/download/${env:SASS_VERSION}/dart-sass-${env:SASS_VERSION}-windows-x64.zip";
+ Expand-Archive -Path "dart-sass-${env:SASS_VERSION}-windows-x64.zip" -DestinationPath .;
+ echo "$env:GITHUB_WORKSPACE/dart-sass/" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf-8 -Append
+ - if: matrix.os == 'ubuntu-latest'
+ name: Install staticcheck
+ run: go install honnef.co/go/tools/cmd/staticcheck@latest
+ - if: matrix.os == 'ubuntu-latest'
+ name: Run staticcheck
+ run: |
+ export STATICCHECK_CACHE="${{ runner.temp }}/staticcheck"
+ staticcheck ./...
+ rm -rf ${{ runner.temp }}/staticcheck
+ - if: matrix.os != 'windows-latest'
+ name: Check
+ run: |
+ sass --version;
+ mage -v check;
+ env:
+ HUGO_BUILD_TAGS: extended,withdeploy
+ - if: matrix.os == 'windows-latest'
+ # See issue #11052. We limit the build to regular test (no -race flag) on Windows for now.
+ name: Test
+ run: |
+ mage -v test
+ env:
+ HUGO_BUILD_TAGS: extended,withdeploy
+ - if: matrix.os == 'ubuntu-latest'
+ name: Build for dragonfly
+ run: |
+ go install
+ go clean -i -cache
+ env:
+ GOARCH: amd64
+ GOOS: dragonfly
diff --git a/.gitignore b/.gitignore
index 1b78398ccbd..0e812bb3e4b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,28 +1,8 @@
-/hugo
-docs/public*
-/.idea
-.vscode/*
-hugo.exe
-*.test
-*.prof
-nohup.out
-cover.out
-*.swp
-*.swo
-.DS_Store
-*~
-vendor/*/
-*.bench
-*.debug
-coverage*.out
-
-dock.sh
-
-GoBuilds
-dist
-
-hugolib/hugo_stats.json
-resources/sunset.jpg
-
-vendor
+*.test
+imports.*
+dist/
+public/
+.DS_Store
+cache/filecache/_gen/
+.claude/
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000000..838f027a087
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+tpl/tplimpl/embedded/templates/**
\ No newline at end of file
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000000..9972596ac91
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,18 @@
+* Brevity is good.
+* Assume that the maintainers and readers of the code you write are Go experts:
+ * Don't use comments to explain the obvious.
+ * Use self-explanatory variable and function names.
+ * Use short variable names when the context is clear.
+* If you need to add temporary debug printing, use `hdebug.Printf`.[^1]
+* Never export symbols that's not needed outside of the package.
+* Avoid global state at (almost) all cost.
+* This is a project with a long history; assume that a similiar problem has been solved before, look hard for helper functions before creating new ones.
+* In tests, use `qt` matchers (e.g. `b.Assert(err, qt.ErrorMatches, ...)`) instead of raw `if`/`t.Fatal` checks.
+* In tests, always use the latest Hugo specification, e.g. for layouts, it's `layouts/page.html` and not `layouts/_default/single.html`, `layouts/list.html` and not `layouts/_default/list.html`
+* Never name tests `TestIssue1234`; if this e.g. is about fixing an issue, use the issue ID as a suffix, as in `TestUpperCaseTitlesCreatesHavocIssue1234`. And note: No underscores in func names.
+* Brevity is good. This applies to code, comments and commit messages. Don't write a novel.
+* Use `./check.sh ./somepackage/...` when iterating.
+* Use `./check.sh` when you're done.
+
+
+[^1]: CI build fail if you forget to remove the debug printing.
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 00000000000..43c994c2d36
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1 @@
+@AGENTS.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0b27703f781..26ed8c77ebd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,3 +1,5 @@
+>**Note:** We would appreciate if you hold on with any big refactoring (like renaming deprecated Go packages), mainly because of potential for extra merge work for future coming in in the near future.
+
# Contributing to Hugo
We welcome contributions to Hugo of any kind including documentation, themes,
@@ -17,6 +19,7 @@ The Hugo community and maintainers are [very active](https://github.com/gohugoio
* [Reporting Issues](#reporting-issues)
* [Submitting Patches](#submitting-patches)
* [Code Contribution Guidelines](#code-contribution-guidelines)
+ * [AI Assistance Notice](#ai-assistance-notice)
* [Git Commit Message Guidelines](#git-commit-message-guidelines)
* [Fetching the Sources From GitHub](#fetching-the-sources-from-github)
* [Building Hugo with Your Changes](#building-hugo-with-your-changes)
@@ -50,11 +53,9 @@ Hugo has become a fully featured static site generator, so any new functionality
If it is of some complexity, the contributor is expected to maintain and support the new feature in the future (answer questions on the forum, fix any bugs etc.).
-It is recommended to open up a discussion on the [Hugo Forum](https://discourse.gohugo.io/) to get feedback on your idea before you begin.
-
Any non-trivial code change needs to update an open [issue](https://github.com/gohugoio/hugo/issues). A non-trivial code change without an issue reference with one of the labels `bug` or `enhancement` will not be merged.
-Note that we do not accept new features that require [CGO](https://github.com/golang/go/wiki/cgo).
+Note that we do not accept new features that require [CGO](https://go.dev/wiki/cgo).
We have one exception to this rule which is LibSASS.
**Bug fixes are, of course, always welcome.**
@@ -76,23 +77,37 @@ To make the contribution process as seamless as possible, we ask for the followi
* Run `go fmt`.
* Add documentation if you are adding new features or changing functionality. The docs site lives in `/docs`.
* Squash your commits into a single commit. `git rebase -i`. It’s okay to force update your pull request with `git push -f`.
- * Ensure that `mage check` succeeds. [Travis CI](https://travis-ci.org/gohugoio/hugo) (Windows, Linux and macOS) will fail the build if `mage check` fails.
+ * Ensure that `./check.sh` succeeds. Note that some tests are skipped when running locally, some because they are slow. To run these locally, do `CI_LOCAL=true ./check.sh ./somepackage/...`.
* Follow the **Git Commit Message Guidelines** below.
+## AI Assistance Notice
+
+If a substantial part of your contribution is autogenerated with AI, **this must be disclosed in the pull request**, along with the extent to which AI assistance was used.
+
+An example disclosure:
+
+> This PR was written primarily by Claude Code.
+
+When using AI assistance, we expect contributors to understand the code that is produced and be able to answer critical questions about it. Also, AI contributions from non-maintainers needs to have a fairly narrow scope (e.g. a bug fix), as we have limited review capacity.
+
### Git Commit Message Guidelines
-This [blog article](http://chris.beams.io/posts/git-commit/) is a good resource for learning how to write good commit messages,
+This [blog article](https://cbea.ms/git-commit/) is a good resource for learning how to write good commit messages,
the most important part being that each commit message should have a title/subject in imperative mood starting with a capital letter and no trailing period:
-*"Return error on wrong use of the Paginator"*, **NOT** *"returning some error."*
+*"js: Return error when option x is not set"*, **NOT** *"returning some error."*
-Also, if your commit references one or more GitHub issues, always end your commit message body with *See #1234* or *Fixes #1234*.
-Replace *1234* with the GitHub issue ID. The last example will close the issue when the commit is merged into *master*.
+Most title/subjects should have a lower-cased prefix with a colon and one whitespace. The prefix can be:
-Sometimes it makes sense to prefix the commit message with the package name (or docs folder) all lowercased ending with a colon.
-That is fine, but the rest of the rules above apply.
-So it is "tpl: Add emojify template func", not "tpl: add emojify template func.", and "docs: Document emoji", not "doc: document emoji."
+* The name of the package where (most of) the changes are made (e.g. `media: Add text/calendar`)
+* If the package name is deeply nested/long, try to shorten it from the left side, e.g. `markup/goldmark` is OK, `resources/resource_transformers/js` can be shortened to `js`.
+* If this commit touches several packages with a common functional topic, use that as a prefix, e.g. `errors: Resolve correct line numbers`)
+* If this commit touches many packages without a common functional topic, prefix with `all:` (e.g. `all: Reformat Go code`)
+* If this is a documentation update, prefix with `docs:`.
+* If nothing of the above applies, just leave the prefix out.
+* Note that the above excludes nouns seen in other repositories, e.g. "chore:".
-Please use a short and descriptive branch name, e.g. **NOT** "patch-1". It's very common but creates a naming conflict each time when a submission is pulled for a review.
+Also, if your commit references one or more GitHub issues, always end your commit message body with *See #1234* or *Fixes #1234*.
+Replace *1234* with the GitHub issue ID. The last example will close the issue when the commit is merged into *master*.
An example:
@@ -119,12 +134,10 @@ cd hugo
go install
```
->Note: Some Go tools may not be fully updated to support Go Modules yet. One example would be LiteIDE. Follow [this workaround](https://github.com/visualfc/liteide/issues/986#issuecomment-428117702) for how to continue to work with Hugo below `GOPATH`.
-
For some convenient build and test targets, you also will want to install Mage:
```bash
-go get github.com/magefile/mage
+go install github.com/magefile/mage
```
Now, to make a change to Hugo's source:
diff --git a/Dockerfile b/Dockerfile
index fcae03f5484..ee9f9cc55fc 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,44 +2,100 @@
# Twitter: https://twitter.com/gohugoio
# Website: https://gohugo.io/
-FROM golang:1.16-alpine AS build
+ARG GO_VERSION="1.26"
+ARG ALPINE_VERSION="3.22"
+ARG DART_SASS_VERSION="1.79.3"
-# Optionally set HUGO_BUILD_TAGS to "extended" or "nodeploy" when building like so:
-# docker build --build-arg HUGO_BUILD_TAGS=extended .
-ARG HUGO_BUILD_TAGS
+FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.5.0 AS xx
+FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS gobuild
+FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS gorun
-ARG CGO=1
-ENV CGO_ENABLED=${CGO}
-ENV GOOS=linux
-ENV GO111MODULE=on
+
+FROM gobuild AS build
+
+RUN apk add clang lld
+
+# Set up cross-compilation helpers
+COPY --from=xx / /
+
+ARG TARGETPLATFORM
+RUN xx-apk add musl-dev gcc g++
+
+# Optionally set HUGO_BUILD_TAGS to "none" or "withdeploy" when building like so:
+# docker build --build-arg HUGO_BUILD_TAGS=withdeploy .
+#
+# We build the extended version by default.
+ARG HUGO_BUILD_TAGS="extended"
+ENV CGO_ENABLED=1
+ENV GOPROXY=https://proxy.golang.org
+ENV GOCACHE=/root/.cache/go-build
+ENV GOMODCACHE=/go/pkg/mod
+ARG TARGETPLATFORM
WORKDIR /go/src/github.com/gohugoio/hugo
-COPY . /go/src/github.com/gohugoio/hugo/
+# For --mount=type=cache the value of target is the default cache id, so
+# for the go mod cache it would be good if we could share it with other Go images using the same setup,
+# but the go build cache needs to be per platform.
+# See this comment: https://github.com/moby/buildkit/issues/1706#issuecomment-702238282
+RUN --mount=target=. \
+ --mount=type=cache,target=/go/pkg/mod \
+ --mount=type=cache,target=/root/.cache/go-build,id=go-build-$TARGETPLATFORM <
-A Fast and Flexible Static Site Generator built with love by [bep](https://github.com/bep), [spf13](http://spf13.com/) and [friends](https://github.com/gohugoio/hugo/graphs/contributors) in [Go][].
+A fast and flexible static site generator built with love by [bep][], [spf13][], and [friends][] in Go.
-[Website](https://gohugo.io) |
-[Forum](https://discourse.gohugo.io) |
-[Documentation](https://gohugo.io/getting-started/) |
-[Installation Guide](https://gohugo.io/getting-started/installing/) |
-[Contribution Guide](CONTRIBUTING.md) |
-[Twitter](https://twitter.com/gohugoio)
+---
[](https://godoc.org/github.com/gohugoio/hugo)
[](https://github.com/gohugoio/hugo/actions?query=workflow%3ATest)
[](https://goreportcard.com/report/github.com/gohugoio/hugo)
+[Website][] | [Installation][] | [Documentation][] | [Support][] | [Contributing][] | Mastodon
+
## Overview
-Hugo is a static HTML and CSS website generator written in [Go][].
-It is optimized for speed, ease of use, and configurability.
-Hugo takes a directory with content and templates and renders them into a full HTML website.
+Hugo is a [static site generator][] written in Go, optimized for speed and designed for flexibility. With its advanced templating system and fast asset pipelines, Hugo renders a complete site in seconds, often less.
+
+Due to its flexible framework, multilingual support, and powerful taxonomy system, Hugo is widely used to create:
+
+- Corporate, government, nonprofit, education, news, event, and project sites
+- Documentation sites
+- Image portfolios
+- Landing pages
+- Business, professional, and personal blogs
+- Resumes and CVs
+
+Use Hugo's embedded web server during development to instantly see changes to content, structure, behavior, and presentation. Then deploy the site to your host, or push changes to your Git provider for automated builds and deployment.
+
+Hugo's fast asset pipelines include:
-Hugo relies on Markdown files with front matter for metadata, and you can run Hugo from any directory.
-This works well for shared hosts and other systems where you don’t have a privileged account.
+- CSS Processing – Bundle, transform, minify, create source maps, perform SRI hashing, and integrate with PostCSS.
+- Image processing – Convert, resize, crop, rotate, adjust colors, apply filters, overlay text and images, and extract metadata
+- JavaScript bundling – Transpile TypeScript and JSX to JavaScript, bundle, tree shake, minify, create source maps, and perform SRI hashing.
+- Sass processing – Transpile Sass to CSS, bundle, tree shake, minify, create source maps, perform SRI hashing, and integrate with PostCSS
+- Tailwind CSS processing – Compile Tailwind CSS utility classes into standard CSS, bundle, tree shake, optimize, minify, perform SRI hashing, and integrate with PostCSS
-Hugo renders a typical website of moderate size in a fraction of a second.
-A good rule of thumb is that each piece of content renders in around 1 millisecond.
+And with [Hugo Modules][], you can share content, assets, data, translations, themes, templates, and configuration with other projects via public or private Git repositories.
-Hugo is designed to work well for any kind of website including blogs, tumbles, and docs.
+See the [features][] section of the documentation for a comprehensive summary of Hugo's capabilities.
-#### Supported Architectures
+## Sponsors
-Currently, we provide pre-built Hugo binaries for Windows, Linux, FreeBSD, NetBSD, DragonFly BSD, OpenBSD, macOS (Darwin), and [Android](https://gist.github.com/bep/a0d8a26cf6b4f8bc992729b8e50b480b) for x64, i386 and ARM architectures.
+
See current dependencies
+
+```text
github.com/BurntSushi/locker="v0.0.0-20171006230638-a6e239ea1c69"
-github.com/BurntSushi/toml="v0.3.1"
-github.com/PuerkitoBio/purell="v1.1.1"
-github.com/PuerkitoBio/urlesc="v0.0.0-20170810143723-de5bf2ad4578"
-github.com/alecthomas/chroma="v0.9.4"
-github.com/armon/go-radix="v1.0.0"
-github.com/aws/aws-sdk-go="v1.41.14"
+github.com/JohannesKaufmann/dom="v0.2.0"
+github.com/JohannesKaufmann/html-to-markdown/v2="v2.5.0"
+github.com/alecthomas/chroma/v2="v2.21.1"
+github.com/aymerick/douceur="v0.2.0"
+github.com/bep/clocks="v0.5.0"
github.com/bep/debounce="v1.2.0"
-github.com/bep/gitmap="v1.1.2"
-github.com/bep/godartsass="v0.12.0"
-github.com/bep/golibsass="v1.0.0"
-github.com/bep/gowebp="v0.1.0"
+github.com/bep/gitmap="v1.9.0"
+github.com/bep/goat="v0.5.0"
+github.com/bep/godartsass/v2="v2.5.0"
+github.com/bep/golibsass="v1.2.0"
+github.com/bep/goportabletext="v0.1.0"
+github.com/bep/helpers="v0.6.0"
+github.com/bep/imagemeta="v0.12.0"
+github.com/bep/lazycache="v0.8.0"
+github.com/bep/logg="v0.4.0"
+github.com/bep/mclib="v1.20400.20402"
+github.com/bep/overlayfs="v0.10.0"
+github.com/bep/simplecobra="v0.6.1"
+github.com/bep/textandbinarywriter="v0.0.0-20251212174530-cd9f0732f60f"
github.com/bep/tmc="v0.5.1"
-github.com/cli/safeexec="v1.0.0"
-github.com/cpuguy83/go-md2man/v2="v2.0.0"
+github.com/bits-and-blooms/bitset="v1.24.4"
+github.com/cespare/xxhash/v2="v2.3.0"
+github.com/clbanning/mxj/v2="v2.7.0"
+github.com/clipperhouse/displaywidth="v0.6.0"
+github.com/clipperhouse/stringish="v0.1.1"
+github.com/clipperhouse/uax29/v2="v2.3.0"
+github.com/cpuguy83/go-md2man/v2="v2.0.6"
github.com/disintegration/gift="v1.2.1"
-github.com/dlclark/regexp2="v1.4.0"
-github.com/dustin/go-humanize="v1.0.0"
-github.com/evanw/esbuild="v0.13.12"
-github.com/fsnotify/fsnotify="v1.5.1"
-github.com/getkin/kin-openapi="v0.80.0"
-github.com/ghodss/yaml="v1.0.0"
-github.com/go-openapi/jsonpointer="v0.19.5"
-github.com/go-openapi/swag="v0.19.5"
-github.com/gobuffalo/flect="v0.2.3"
+github.com/dlclark/regexp2="v1.11.5"
+github.com/evanw/esbuild="v0.27.2"
+github.com/fatih/color="v1.18.0"
+github.com/frankban/quicktest="v1.14.6"
+github.com/fsnotify/fsnotify="v1.9.0"
+github.com/getkin/kin-openapi="v0.133.0"
+github.com/go-openapi/jsonpointer="v0.21.0"
+github.com/go-openapi/swag="v0.23.0"
+github.com/gobuffalo/flect="v1.0.3"
github.com/gobwas/glob="v0.2.3"
-github.com/gohugoio/go-i18n/v2="v2.1.3-0.20210430103248-4c28c89f8013"
+github.com/goccy/go-yaml="v1.19.1"
+github.com/gohugoio/go-i18n/v2="v2.1.3-0.20251018145728-cfcc22d823c6"
+github.com/gohugoio/go-radix="v1.2.0"
+github.com/gohugoio/hashstructure="v0.6.0"
+github.com/gohugoio/httpcache="v0.8.0"
+github.com/gohugoio/hugo-goldmark-extensions/extras="v0.5.0"
+github.com/gohugoio/hugo-goldmark-extensions/passthrough="v0.3.1"
github.com/gohugoio/locales="v0.14.0"
-github.com/gohugoio/localescompressed="v0.14.0"
-github.com/golang/groupcache="v0.0.0-20200121045136-8c9f03a8e57e"
-github.com/golang/protobuf="v1.5.2"
-github.com/google/go-cmp="v0.5.6"
-github.com/google/uuid="v1.1.2"
-github.com/google/wire="v0.4.0"
-github.com/googleapis/gax-go/v2="v2.0.5"
-github.com/googleapis/gax-go="v2.0.2+incompatible"
-github.com/gorilla/websocket="v1.4.2"
-github.com/inconshreveable/mousetrap="v1.0.0"
+github.com/gohugoio/localescompressed="v1.0.1"
+github.com/google/go-cmp="v0.7.0"
+github.com/gorilla/css="v1.0.1"
+github.com/gorilla/websocket="v1.5.3"
+github.com/hairyhenderson/go-codeowners="v0.7.0"
+github.com/hashicorp/golang-lru/v2="v2.0.7"
github.com/jdkato/prose="v1.2.1"
-github.com/jmespath/go-jmespath="v0.4.0"
-github.com/kyokomi/emoji/v2="v2.2.8"
-github.com/mailru/easyjson="v0.0.0-20190626092158-b2ccc519800e"
-github.com/mattn/go-ieproxy="v0.0.1"
-github.com/mattn/go-isatty="v0.0.14"
-github.com/mattn/go-runewidth="v0.0.9"
-github.com/miekg/mmark="v1.3.6"
-github.com/mitchellh/hashstructure="v1.1.0"
-github.com/mitchellh/mapstructure="v1.4.2"
+github.com/josharian/intern="v1.0.0"
+github.com/kr/pretty="v0.3.1"
+github.com/kr/text="v0.2.0"
+github.com/kyokomi/emoji/v2="v2.2.13"
+github.com/mailru/easyjson="v0.7.7"
+github.com/makeworld-the-better-one/dither/v2="v2.4.0"
+github.com/marekm4/color-extractor="v1.2.1"
+github.com/mattn/go-colorable="v0.1.13"
+github.com/mattn/go-isatty="v0.0.20"
+github.com/mattn/go-runewidth="v0.0.19"
+github.com/microcosm-cc/bluemonday="v1.0.27"
+github.com/mitchellh/mapstructure="v1.5.1-0.20231216201459-8508981c8b6c"
+github.com/mohae/deepcopy="v0.0.0-20170929034955-c48cc78d4826"
github.com/muesli/smartcrop="v0.3.0"
-github.com/niklasfasching/go-org="v1.5.0"
-github.com/olekukonko/tablewriter="v0.0.5"
-github.com/pelletier/go-toml/v2="v2.0.0-beta.3.0.20210727221244-fa0796069526"
+github.com/niklasfasching/go-org="v1.9.1"
+github.com/oasdiff/yaml3="v0.0.0-20250309153720-d2182401db90"
+github.com/oasdiff/yaml="v0.0.0-20250309154309-f31be36b4037"
+github.com/olekukonko/cat="v0.0.0-20250911104152-50322a0618f6"
+github.com/olekukonko/errors="v1.1.0"
+github.com/olekukonko/ll="v0.1.3"
+github.com/olekukonko/tablewriter="v1.1.2"
+github.com/pbnjay/memory="v0.0.0-20210728143218-7b4eea64cf58"
+github.com/pelletier/go-toml/v2="v2.2.4"
+github.com/perimeterx/marshmallow="v1.1.5"
+github.com/pkg/browser="v0.0.0-20240102092130-5ac0b6a4141c"
github.com/pkg/errors="v0.9.1"
-github.com/rogpeppe/go-internal="v1.8.0"
-github.com/russross/blackfriday/v2="v2.0.1"
-github.com/russross/blackfriday="v1.5.3-0.20200218234912-41c5fccfd6f6"
-github.com/rwcarlsen/goexif="v0.0.0-20190401172101-9e8deecbddbd"
-github.com/sanity-io/litter="v1.5.1"
-github.com/sass/libsass="3.6.5"
-github.com/shurcooL/sanitized_anchor_name="v1.0.0"
-github.com/spf13/afero="v1.6.0"
-github.com/spf13/cast="v1.4.1"
-github.com/spf13/cobra="v1.2.1"
-github.com/spf13/fsync="v0.9.0"
-github.com/spf13/jwalterweatherman="v1.1.0"
-github.com/spf13/pflag="v1.0.5"
-github.com/tdewolff/minify/v2="v2.9.22"
-github.com/tdewolff/parse/v2="v2.5.21"
-github.com/webmproject/libwebp="v1.2.0"
-github.com/yuin/goldmark-highlighting="v0.0.0-20200307114337-60d527fdb691"
-github.com/yuin/goldmark="v1.4.2"
-go.opencensus.io="v0.23.0"
-gocloud.dev="v0.20.0"
-golang.org/x/image="v0.0.0-20210220032944-ac19c3e999fb"
-golang.org/x/net="v0.0.0-20210614182718-04defd469f4e"
-golang.org/x/oauth2="v0.0.0-20210628180205-a41e5a781914"
-golang.org/x/sync="v0.0.0-20210220032951-036812b2e83c"
-golang.org/x/sys="v0.0.0-20210908233432-aa78b53d3365"
-golang.org/x/text="v0.3.7"
-golang.org/x/xerrors="v0.0.0-20200804184101-5ec99f83aff1"
-google.golang.org/api="v0.51.0"
-google.golang.org/genproto="v0.0.0-20210716133855-ce7ef5c701ea"
-google.golang.org/grpc="v1.39.0"
-google.golang.org/protobuf="v1.27.1"
-gopkg.in/yaml.v2="v2.4.0"
+github.com/rogpeppe/go-internal="v1.14.1"
+github.com/russross/blackfriday/v2="v2.1.0"
+github.com/sass/dart-sass/compiler="1.97.1"
+github.com/sass/dart-sass/implementation="1.97.1"
+github.com/sass/dart-sass/protocol="3.2.0"
+github.com/spf13/afero="v1.15.0"
+github.com/spf13/cast="v1.10.0"
+github.com/spf13/cobra="v1.10.2"
+github.com/spf13/fsync="v0.10.1"
+github.com/spf13/pflag="v1.0.9"
+github.com/tdewolff/minify/v2="v2.24.8"
+github.com/tdewolff/parse/v2="v2.8.5"
+github.com/tetratelabs/wazero="v1.10.1"
+github.com/webmproject/libwebp="v1.6.0"
+github.com/woodsbury/decimal128="v1.3.0"
+github.com/yuin/goldmark-emoji="v1.0.6"
+github.com/yuin/goldmark="v1.7.13"
+go.uber.org/automaxprocs="v1.5.3"
+go.yaml.in/yaml/v3="v3.0.4"
+golang.org/x/crypto="v0.46.0"
+golang.org/x/image="v0.34.0"
+golang.org/x/mod="v0.31.0"
+golang.org/x/net="v0.48.0"
+golang.org/x/sync="v0.19.0"
+golang.org/x/sys="v0.39.0"
+golang.org/x/text="v0.32.0"
+golang.org/x/tools="v0.40.0"
+google.golang.org/protobuf="v1.36.10"
+gopkg.in/yaml.v3="v3.0.1"
+rsc.io/qr="v0.2.0"
+software.sslmate.com/src/go-pkcs12="v0.2.0"
```
-
+Page Not Found
")
+ }
+ return
+ case 200:
+ if r2 := f.rewriteRequest(r, strings.TrimPrefix(redirect.To, baseURL.Path())); r2 != nil {
+ requestURI = redirect.To
+ r = r2
+ }
+ default:
+ w.Header().Set("Content-Type", "")
+ http.Redirect(w, r, redirect.To, redirect.Status)
+ return
+
}
- } else {
- w.Header().Set("Content-Type", "")
- http.Redirect(w, r, redirect.To, redirect.Status)
- return
}
}
-
}
- if f.c.fastRenderMode && f.c.buildErr == nil {
- if strings.HasSuffix(requestURI, "/") || strings.HasSuffix(requestURI, "html") || strings.HasSuffix(requestURI, "htm") {
+ if f.c.fastRenderMode && f.c.errState.buildErr() == nil {
+ if isNavigation(requestURI, r) {
+ // See issue 14240.
+ // Hugo escapes the URL paths when generating them,
+ // that may not be the case when we receive it back from the browser.
+ // PathEscape will escape if it is not already escaped.
+ requestURI = paths.PathEscape(requestURI)
+
if !f.c.visitedURLs.Contains(requestURI) {
// If not already on stack, re-render that single page.
if err := f.c.partialReRender(requestURI); err != nil {
@@ -445,148 +399,443 @@ func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, string, erro
fileserver := decorate(http.FileServer(fs))
mu := http.NewServeMux()
- if u.Path == "" || u.Path == "/" {
+ if baseURL.Path() == "" || baseURL.Path() == "/" {
mu.Handle("/", fileserver)
} else {
- mu.Handle(u.Path, http.StripPrefix(u.Path, fileserver))
+ mu.Handle(baseURL.Path(), http.StripPrefix(baseURL.Path(), fileserver))
+ }
+ if r.IsTestRun() {
+ var shutDownOnce sync.Once
+ mu.HandleFunc("/__stop", func(w http.ResponseWriter, r *http.Request) {
+ shutDownOnce.Do(func() {
+ close(f.c.quit)
+ })
+ })
}
- endpoint := net.JoinHostPort(f.s.serverInterface, strconv.Itoa(port))
+ endpoint := net.JoinHostPort(f.c.serverInterface, strconv.Itoa(port))
- return mu, u.String(), endpoint, nil
+ return mu, listener, baseURL.String(), endpoint, nil
}
-var logErrorRe = regexp.MustCompile(`(?s)ERROR \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} `)
+func (f *fileServer) rewriteRequest(r *http.Request, toPath string) *http.Request {
+ r2 := new(http.Request)
+ *r2 = *r
+ r2.URL = new(url.URL)
+ *r2.URL = *r.URL
+ r2.URL.Path = toPath
+ r2.Header.Set("X-Rewrite-Original-URI", r.URL.RequestURI())
-func removeErrorPrefixFromLog(content string) string {
- return logErrorRe.ReplaceAllLiteralString(content, "")
+ return r2
}
-func (c *commandeer) serve(s *serverCmd) error {
- isMultiHost := c.hugo().IsMultihost()
+type filesOnlyFs struct {
+ fs http.FileSystem
+}
- var (
- baseURLs []string
- roots []string
- )
+func (fs filesOnlyFs) Open(name string) (http.File, error) {
+ f, err := fs.fs.Open(name)
+ if err != nil {
+ return nil, err
+ }
+ return noDirFile{f}, nil
+}
+
+type noDirFile struct {
+ http.File
+}
+
+func (f noDirFile) Readdir(count int) ([]os.FileInfo, error) {
+ return nil, nil
+}
- if isMultiHost {
- for _, s := range c.hugo().Sites {
- baseURLs = append(baseURLs, s.BaseURL.String())
- roots = append(roots, s.Language().Lang)
+type serverCommand struct {
+ r *rootCommand
+
+ commands []simplecobra.Commander
+
+ *hugoBuilder
+
+ quit chan bool // Closed when the server should shut down. Used in tests only.
+ serverPorts []serverPortListener
+ doLiveReload bool
+
+ // Flags.
+ renderStaticToDisk bool
+ navigateToChanged bool
+ openBrowser bool
+ serverAppend bool
+ serverInterface string
+ tlsCertFile string
+ tlsKeyFile string
+ tlsAuto bool
+ pprof bool
+ serverPort int
+ liveReloadPort int
+ serverWatch bool
+ noHTTPCache bool
+ disableLiveReload bool
+ disableFastRender bool
+ disableBrowserError bool
+}
+
+func (c *serverCommand) Name() string {
+ return "server"
+}
+
+func (c *serverCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, args []string) error {
+ if c.pprof {
+ go func() {
+ http.ListenAndServe("localhost:8080", nil)
+ }()
+ }
+ // Watch runs its own server as part of the routine
+ if c.serverWatch {
+
+ watchDirs, err := c.getDirList()
+ if err != nil {
+ return err
}
- } else {
- s := c.hugo().Sites[0]
- baseURLs = []string{s.BaseURL.String()}
- roots = []string{""}
+
+ watchGroups := helpers.ExtractAndGroupRootPaths(watchDirs)
+
+ c.r.Printf("Watching for changes in %s\n", strings.Join(watchGroups, ", "))
+ watcher, err := c.newWatcher(c.r.poll, watchDirs...)
+ if err != nil {
+ return err
+ }
+
+ defer watcher.Close()
+
}
- templ, err := c.hugo().TextTmpl().Parse("__default_server_error", buildErrorTemplate)
+ err := func() error {
+ defer c.r.timeTrack(time.Now(), "Built")
+ return c.build()
+ }()
if err != nil {
return err
}
- srv := &fileServer{
- baseURLs: baseURLs,
- roots: roots,
- c: c,
- s: s,
- errorTemplate: func(ctx interface{}) (io.Reader, error) {
- b := &bytes.Buffer{}
- err := c.hugo().Tmpl().Execute(templ, b, ctx)
- return b, err
+ return c.serve()
+}
+
+func (c *serverCommand) Init(cd *simplecobra.Commandeer) error {
+ cmd := cd.CobraCommand
+ cmd.Short = "Start the embedded web server"
+ cmd.Long = `Hugo provides its own webserver which builds and serves the project.
+While hugo server is high performance, it is a webserver with limited options.
+
+The ` + "`" + `hugo server` + "`" + ` command will by default write and serve files from disk, but
+you can render to memory by using the ` + "`" + `--renderToMemory` + "`" + ` flag. This can be
+faster in some cases, but it will consume more memory.
+
+By default hugo will also watch your files for any changes you make and
+automatically rebuild the project. It will then live reload any open browser pages
+and push the latest content to them. As most Hugo projects are built in a fraction
+of a second, you will be able to save and see your changes nearly instantly.`
+ cmd.Aliases = []string{"serve"}
+
+ cmd.Flags().IntVarP(&c.serverPort, "port", "p", 1313, "port on which the server will listen")
+ _ = cmd.RegisterFlagCompletionFunc("port", cobra.NoFileCompletions)
+ cmd.Flags().IntVar(&c.liveReloadPort, "liveReloadPort", -1, "port for live reloading (i.e. 443 in HTTPS proxy situations)")
+ _ = cmd.RegisterFlagCompletionFunc("liveReloadPort", cobra.NoFileCompletions)
+ cmd.Flags().StringVarP(&c.serverInterface, "bind", "", "127.0.0.1", "interface to which the server will bind")
+ _ = cmd.RegisterFlagCompletionFunc("bind", cobra.NoFileCompletions)
+ cmd.Flags().StringVarP(&c.tlsCertFile, "tlsCertFile", "", "", "path to TLS certificate file")
+ _ = cmd.MarkFlagFilename("tlsCertFile", "pem")
+ cmd.Flags().StringVarP(&c.tlsKeyFile, "tlsKeyFile", "", "", "path to TLS key file")
+ _ = cmd.MarkFlagFilename("tlsKeyFile", "pem")
+ cmd.Flags().BoolVar(&c.tlsAuto, "tlsAuto", false, "generate and use locally-trusted certificates.")
+ cmd.Flags().BoolVar(&c.pprof, "pprof", false, "enable the pprof server (port 8080)")
+ cmd.Flags().BoolVarP(&c.serverWatch, "watch", "w", true, "watch filesystem for changes and recreate as needed")
+ cmd.Flags().BoolVar(&c.noHTTPCache, "noHTTPCache", false, "disable browser caching of pages served by the embedded web server")
+ cmd.Flags().BoolVarP(&c.serverAppend, "appendPort", "", true, "append port to baseURL")
+ cmd.Flags().BoolVar(&c.disableLiveReload, "disableLiveReload", false, "watch without enabling live browser reload on rebuild")
+ cmd.Flags().BoolVarP(&c.navigateToChanged, "navigateToChanged", "N", false, "navigate to changed content file on live browser reload")
+ cmd.Flags().BoolVarP(&c.openBrowser, "openBrowser", "O", false, "open the project in a browser after server startup")
+ cmd.Flags().BoolVar(&c.renderStaticToDisk, "renderStaticToDisk", false, "serve static files from disk and dynamic files from memory")
+ cmd.Flags().BoolVar(&c.disableFastRender, "disableFastRender", false, "enables full re-renders on changes")
+ cmd.Flags().BoolVar(&c.disableBrowserError, "disableBrowserError", false, "do not show build errors in the browser")
+
+ r := cd.Root.Command.(*rootCommand)
+ applyLocalFlagsBuild(cmd, r)
+
+ return nil
+}
+
+func (c *serverCommand) PreRun(cd, runner *simplecobra.Commandeer) error {
+ c.r = cd.Root.Command.(*rootCommand)
+
+ c.hugoBuilder = newHugoBuilder(
+ c.r,
+ c,
+ func(reloaded bool) error {
+ if !reloaded {
+ if err := c.createServerPorts(cd); err != nil {
+ return err
+ }
+
+ if (c.tlsCertFile == "" || c.tlsKeyFile == "") && c.tlsAuto {
+ c.withConfE(func(conf *commonConfig) error {
+ return c.createCertificates(conf)
+ })
+ }
+ }
+
+ if err := c.setServerInfoInConfig(); err != nil {
+ return err
+ }
+
+ if !reloaded && c.fastRenderMode {
+ c.withConf(func(conf *commonConfig) {
+ conf.fs.PublishDir = hugofs.NewHashingFs(conf.fs.PublishDir, c.changeDetector)
+ conf.fs.PublishDirStatic = hugofs.NewHashingFs(conf.fs.PublishDirStatic, c.changeDetector)
+ })
+ }
+
+ return nil
},
+ )
+
+ destinationFlag := cd.CobraCommand.Flags().Lookup("destination")
+ if c.r.renderToMemory && (destinationFlag != nil && destinationFlag.Changed) {
+ return fmt.Errorf("cannot use --renderToMemory with --destination")
}
+ c.doLiveReload = !c.disableLiveReload
+ c.fastRenderMode = !c.disableFastRender
+ c.showErrorInBrowser = c.doLiveReload && !c.disableBrowserError
+
+ if c.fastRenderMode {
+ // For now, fast render mode only. It should, however, be fast enough
+ // for the full variant, too.
+ c.changeDetector = &fileChangeDetector{
+ // We use this detector to decide to do a Hot reload of a single path or not.
+ // We need to filter out source maps and possibly some other to be able
+ // to make that decision.
+ irrelevantRe: regexp.MustCompile(`\.map$`),
+ }
- doLiveReload := !c.Cfg.GetBool("disableLiveReload")
+ c.changeDetector.PrepareNew()
- if doLiveReload {
- livereload.Initialize()
}
- sigs := make(chan os.Signal, 1)
- signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
+ err := c.loadConfig(cd, true)
+ if err != nil {
+ return err
+ }
- for i := range baseURLs {
- mu, serverURL, endpoint, err := srv.createEndpoint(i)
+ return nil
+}
- if doLiveReload {
- u, err := url.Parse(helpers.SanitizeURL(baseURLs[i]))
+func (c *serverCommand) setServerInfoInConfig() error {
+ if len(c.serverPorts) == 0 {
+ panic("no server ports set")
+ }
+ return c.withConfE(func(conf *commonConfig) error {
+ for i, language := range conf.configs.Languages {
+ isMultihost := conf.configs.IsMultihost
+ var serverPort int
+ if isMultihost {
+ serverPort = c.serverPorts[i].p
+ } else {
+ serverPort = c.serverPorts[0].p
+ }
+ langConfig := conf.configs.LanguageConfigMap[language.Lang]
+ baseURLStr, err := c.fixURL(langConfig.BaseURL, c.r.baseURL, serverPort)
if err != nil {
return err
}
-
- mu.HandleFunc(u.Path+"/livereload.js", livereload.ServeJS)
- mu.HandleFunc(u.Path+"/livereload", livereload.Handler)
- }
- jww.FEEDBACK.Printf("Web Server is available at %s (bind address %s)\n", serverURL, s.serverInterface)
- go func() {
- err = http.ListenAndServe(endpoint, mu)
+ baseURL, err := urls.NewBaseURLFromString(baseURLStr)
if err != nil {
- c.logger.Errorf("Error: %s\n", err.Error())
- os.Exit(1)
+ return fmt.Errorf("failed to create baseURL from %q: %s", baseURLStr, err)
}
- }()
+
+ baseURLLiveReload := baseURL
+ if c.liveReloadPort != -1 {
+ baseURLLiveReload, _ = baseURLLiveReload.WithPort(c.liveReloadPort)
+ }
+ langConfig.C.SetServerInfo(baseURL, baseURLLiveReload, c.serverInterface)
+
+ }
+ return nil
+ })
+}
+
+func (c *serverCommand) getErrorWithContext() any {
+ buildErr := c.errState.buildErr()
+ if buildErr == nil {
+ return nil
}
- jww.FEEDBACK.Println("Press Ctrl+C to stop")
+ m := make(map[string]any)
+
+ m["Error"] = cleanErrorLog(c.r.logger.Errors())
+
+ m["Version"] = hugo.BuildVersionString()
+ ferrors := herrors.UnwrapFileErrorsWithErrorContext(buildErr)
+ m["Files"] = ferrors
+
+ return m
+}
- if s.stop != nil {
- select {
- case <-sigs:
- case <-s.stop:
+func (c *serverCommand) createCertificates(conf *commonConfig) error {
+ hostname := "localhost"
+ if c.r.baseURL != "" {
+ u, err := url.Parse(c.r.baseURL)
+ if err != nil {
+ return err
}
- } else {
- <-sigs
+ hostname = u.Hostname()
+ }
+
+ // For now, store these in the Hugo cache dir.
+ // Hugo should probably introduce some concept of a less temporary application directory.
+ keyDir := filepath.Join(conf.configs.LoadingInfo.BaseConfig.CacheDir, "_mkcerts")
+
+ // Create the directory if it doesn't exist.
+ if _, err := os.Stat(keyDir); os.IsNotExist(err) {
+ if err := os.MkdirAll(keyDir, 0o777); err != nil {
+ return err
+ }
+ }
+
+ c.tlsCertFile = filepath.Join(keyDir, fmt.Sprintf("%s.pem", hostname))
+ c.tlsKeyFile = filepath.Join(keyDir, fmt.Sprintf("%s-key.pem", hostname))
+
+ // Check if the certificate already exists and is valid.
+ certPEM, err := os.ReadFile(c.tlsCertFile)
+ if err == nil {
+ rootPem, err := os.ReadFile(filepath.Join(mclib.GetCAROOT(), "rootCA.pem"))
+ if err == nil {
+ if err := c.verifyCert(rootPem, certPEM, hostname); err == nil {
+ c.r.Println("Using existing", c.tlsCertFile, "and", c.tlsKeyFile)
+ return nil
+ }
+ }
+ }
+
+ c.r.Println("Creating TLS certificates in", keyDir)
+
+ // Yes, this is unfortunate, but it's currently the only way to use Mkcert as a library.
+ os.Args = []string{"-cert-file", c.tlsCertFile, "-key-file", c.tlsKeyFile, hostname}
+ return mclib.RunMain()
+}
+
+func (c *serverCommand) verifyCert(rootPEM, certPEM []byte, name string) error {
+ roots := x509.NewCertPool()
+ ok := roots.AppendCertsFromPEM(rootPEM)
+ if !ok {
+ return fmt.Errorf("failed to parse root certificate")
+ }
+
+ block, _ := pem.Decode(certPEM)
+ if block == nil {
+ return fmt.Errorf("failed to parse certificate PEM")
+ }
+ cert, err := x509.ParseCertificate(block.Bytes)
+ if err != nil {
+ return fmt.Errorf("failed to parse certificate: %v", err.Error())
+ }
+
+ opts := x509.VerifyOptions{
+ DNSName: name,
+ Roots: roots,
}
- c.hugo().Close()
+ if _, err := cert.Verify(opts); err != nil {
+ return fmt.Errorf("failed to verify certificate: %v", err.Error())
+ }
return nil
}
+func (c *serverCommand) createServerPorts(cd *simplecobra.Commandeer) error {
+ flags := cd.CobraCommand.Flags()
+ var cerr error
+ c.withConf(func(conf *commonConfig) {
+ isMultihost := conf.configs.IsMultihost
+ c.serverPorts = make([]serverPortListener, 1)
+ if isMultihost {
+ if !c.serverAppend {
+ cerr = errors.New("--appendPort=false not supported when in multihost mode")
+ return
+ }
+ c.serverPorts = make([]serverPortListener, len(conf.configs.Languages))
+ }
+ currentServerPort := c.serverPort
+ for i := range c.serverPorts {
+ l, err := net.Listen("tcp", net.JoinHostPort(c.serverInterface, strconv.Itoa(currentServerPort)))
+ if err == nil {
+ c.serverPorts[i] = serverPortListener{ln: l, p: currentServerPort}
+ } else {
+ if i == 0 && flags.Changed("port") {
+ // port set explicitly by user -- he/she probably meant it!
+ cerr = fmt.Errorf("server startup failed: %s", err)
+ return
+ }
+ c.r.Println("port", currentServerPort, "already in use, attempting to use an available port")
+ l, sp, err := helpers.TCPListen()
+ if err != nil {
+ cerr = fmt.Errorf("unable to find alternative port to use: %s", err)
+ return
+ }
+ c.serverPorts[i] = serverPortListener{ln: l, p: sp.Port}
+ }
+
+ currentServerPort = c.serverPorts[i].p + 1
+ }
+ })
+
+ return cerr
+}
+
// fixURL massages the baseURL into a form needed for serving
// all pages correctly.
-func (sc *serverCmd) fixURL(cfg config.Provider, s string, port int) (string, error) {
+func (c *serverCommand) fixURL(baseURLFromConfig, baseURLFromFlag string, port int) (string, error) {
+ certsSet := (c.tlsCertFile != "" && c.tlsKeyFile != "") || c.tlsAuto
useLocalhost := false
- if s == "" {
- s = cfg.GetString("baseURL")
+ baseURL := baseURLFromFlag
+ if baseURL == "" {
+ baseURL = baseURLFromConfig
useLocalhost = true
}
- if !strings.HasSuffix(s, "/") {
- s = s + "/"
+ if !strings.HasSuffix(baseURL, "/") {
+ baseURL = baseURL + "/"
}
// do an initial parse of the input string
- u, err := url.Parse(s)
+ u, err := url.Parse(baseURL)
if err != nil {
return "", err
}
// if no Host is defined, then assume that no schema or double-slash were
// present in the url. Add a double-slash and make a best effort attempt.
- if u.Host == "" && s != "/" {
- s = "//" + s
+ if u.Host == "" && baseURL != "/" {
+ baseURL = "//" + baseURL
- u, err = url.Parse(s)
+ u, err = url.Parse(baseURL)
if err != nil {
return "", err
}
}
if useLocalhost {
- if u.Scheme == "https" {
+ if certsSet {
+ u.Scheme = "https"
+ } else if u.Scheme == "https" {
u.Scheme = "http"
}
u.Host = "localhost"
}
- if sc.serverAppend {
+ if c.serverAppend {
if strings.Contains(u.Host, ":") {
u.Host, _, err = net.SplitHostPort(u.Host)
if err != nil {
- return "", errors.Wrap(err, "Failed to split baseURL hostpost")
+ return "", fmt.Errorf("failed to split baseURL hostport: %w", err)
}
}
u.Host += fmt.Sprintf(":%d", port)
@@ -595,39 +844,418 @@ func (sc *serverCmd) fixURL(cfg config.Provider, s string, port int) (string, er
return u.String(), nil
}
-func memStats() error {
- b := newCommandsBuilder()
- sc := b.newServerCmd().getCommand()
- memstats := sc.Flags().Lookup("memstats").Value.String()
- if memstats != "" {
- interval, err := time.ParseDuration(sc.Flags().Lookup("meminterval").Value.String())
- if err != nil {
- interval, _ = time.ParseDuration("100ms")
- }
+func (c *serverCommand) partialReRender(urls ...string) (err error) {
+ defer func() {
+ c.errState.setWasErr(false)
+ }()
+ visited := types.NewEvictingQueue[string](len(urls))
+ for _, url := range urls {
+ visited.Add(url)
+ }
- fileMemStats, err := os.Create(memstats)
+ var h *hugolib.HugoSites
+ h, err = c.hugo()
+ if err != nil {
+ return
+ }
+
+ // Note: We do not set NoBuildLock as the file lock is not acquired at this stage.
+ err = h.Build(hugolib.BuildCfg{NoBuildLock: false, RecentlyTouched: visited, PartialReRender: true, ErrRecovery: c.errState.wasErr()})
+
+ return
+}
+
+func (c *serverCommand) serve() error {
+ var (
+ baseURLs []urls.BaseURL
+ roots []string
+ h *hugolib.HugoSites
+ )
+ err := c.withConfE(func(conf *commonConfig) error {
+ isMultihost := conf.configs.IsMultihost
+ var err error
+ h, err = c.r.HugFromConfig(conf)
if err != nil {
return err
}
- fileMemStats.WriteString("# Time\tHeapSys\tHeapAlloc\tHeapIdle\tHeapReleased\n")
+ // We need the server to share the same logger as the Hugo build (for error counts etc.)
+ c.r.logger = h.Log
- go func() {
- var stats runtime.MemStats
+ if isMultihost {
+ for _, l := range conf.configs.ConfigLangs() {
+ baseURLs = append(baseURLs, l.BaseURL())
+ roots = append(roots, l.Language().(*langs.Language).Lang)
+ }
+ } else {
+ l := conf.configs.GetFirstLanguageConfig()
+ baseURLs = []urls.BaseURL{l.BaseURL()}
+ roots = []string{""}
+ }
+
+ return nil
+ })
+ if err != nil {
+ return err
+ }
+
+ // Cache it here. The HugoSites object may be unavailable later on due to intermittent configuration errors.
+ // To allow the en user to change the error template while the server is running, we use
+ // the freshest template we can provide.
+ var (
+ errTempl *tplimpl.TemplInfo
+ templHandler *tplimpl.TemplateStore
+ )
+ getErrorTemplateAndHandler := func(h *hugolib.HugoSites) (*tplimpl.TemplInfo, *tplimpl.TemplateStore) {
+ if h == nil {
+ return errTempl, templHandler
+ }
+ templHandler := h.GetTemplateStore()
+ errTempl := templHandler.LookupByPath("/_server/error.html")
+ if errTempl == nil {
+ panic("template server/error.html not found")
+ }
+ return errTempl, templHandler
+ }
+ errTempl, templHandler = getErrorTemplateAndHandler(h)
+
+ srv := &fileServer{
+ baseURLs: baseURLs,
+ roots: roots,
+ c: c,
+ errorTemplate: func(ctx any) (io.Reader, error) {
+ // hugoTry does not block, getErrorTemplateAndHandler will fall back
+ // to cached values if nil.
+ templ, handler := getErrorTemplateAndHandler(c.hugoTry())
+ b := &bytes.Buffer{}
+ err := handler.ExecuteWithContext(context.Background(), templ, b, ctx)
+ return b, err
+ },
+ }
+
+ doLiveReload := !c.disableLiveReload
+
+ if doLiveReload {
+ livereload.Initialize()
+ }
+
+ sigs := make(chan os.Signal, 1)
+ signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
+ var servers []*http.Server
+
+ wg1, ctx := errgroup.WithContext(context.Background())
+
+ for i := range baseURLs {
+ mu, listener, serverURL, endpoint, err := srv.createEndpoint(i)
+ var srv *http.Server
+ if c.tlsCertFile != "" && c.tlsKeyFile != "" {
+ srv = &http.Server{
+ Addr: endpoint,
+ Handler: mu,
+ TLSConfig: &tls.Config{
+ MinVersion: tls.VersionTLS12,
+ },
+ }
+ } else {
+ srv = &http.Server{
+ Addr: endpoint,
+ Handler: mu,
+ }
+ }
+
+ servers = append(servers, srv)
+
+ if doLiveReload {
+ baseURL := baseURLs[i]
+ mu.HandleFunc(baseURL.Path()+"livereload.js", livereload.ServeJS)
+ mu.HandleFunc(baseURL.Path()+"livereload", livereload.Handler)
+ }
+ c.r.Printf("Web Server is available at %s (bind address %s) %s\n", serverURL, c.serverInterface, roots[i])
+ wg1.Go(func() error {
+ if c.tlsCertFile != "" && c.tlsKeyFile != "" {
+ err = srv.ServeTLS(listener, c.tlsCertFile, c.tlsKeyFile)
+ } else {
+ err = srv.Serve(listener)
+ }
+ if err != nil && err != http.ErrServerClosed {
+ return err
+ }
+ return nil
+ })
+ }
+
+ if c.r.IsTestRun() {
+ // Write a .ready file to disk to signal ready status.
+ // This is where the test is run from.
+ var baseURLs []string
+ for _, baseURL := range srv.baseURLs {
+ baseURLs = append(baseURLs, baseURL.String())
+ }
+ testInfo := map[string]any{
+ "baseURLs": baseURLs,
+ }
+
+ dir := os.Getenv("WORK")
+ if dir != "" {
+ readyFile := filepath.Join(dir, ".ready")
+ // encode the test info as JSON into the .ready file.
+ b, err := json.Marshal(testInfo)
+ if err != nil {
+ return err
+ }
+ err = os.WriteFile(readyFile, b, 0o777)
+ if err != nil {
+ return err
+ }
+ }
+
+ }
+
+ c.r.Println("Press Ctrl+C to stop")
+
+ if c.openBrowser {
+ // There may be more than one baseURL in multihost mode, open the first.
+ if err := browser.OpenURL(baseURLs[0].String()); err != nil {
+ c.r.logger.Warnf("Failed to open browser: %s", err)
+ }
+ }
+
+ err = func() error {
+ for {
+ select {
+ case <-c.quit:
+ return nil
+ case <-sigs:
+ return nil
+ case <-ctx.Done():
+ return ctx.Err()
+ }
+ }
+ }()
+ if err != nil {
+ c.r.Println("Error:", err)
+ }
+
+ ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
+ defer cancel()
+ wg2, ctx := errgroup.WithContext(ctx)
+ for _, srv := range servers {
+ wg2.Go(func() error {
+ return srv.Shutdown(ctx)
+ })
+ }
+
+ err1, err2 := wg1.Wait(), wg2.Wait()
+ if err1 != nil {
+ return err1
+ }
+ return err2
+}
+
+type serverPortListener struct {
+ p int
+ ln net.Listener
+}
- start := time.Now().UnixNano()
+type staticSyncer struct {
+ c *hugoBuilder
+}
+
+func (s *staticSyncer) isStatic(h *hugolib.HugoSites, filename string) bool {
+ return h.BaseFs.SourceFilesystems.IsStatic(filename)
+}
+
+func (s *staticSyncer) syncsStaticEvents(staticEvents []fsnotify.Event) error {
+ c := s.c
- for {
- runtime.ReadMemStats(&stats)
- if fileMemStats != nil {
- fileMemStats.WriteString(fmt.Sprintf("%d\t%d\t%d\t%d\t%d\n",
- (time.Now().UnixNano()-start)/1000000, stats.HeapSys, stats.HeapAlloc, stats.HeapIdle, stats.HeapReleased))
- time.Sleep(interval)
+ syncFn := func(sourceFs *filesystems.SourceFilesystem) (uint64, error) {
+ publishDir := helpers.FilePathSeparator
+
+ if sourceFs.PublishFolder != "" {
+ publishDir = filepath.Join(publishDir, sourceFs.PublishFolder)
+ }
+
+ syncer := fsync.NewSyncer()
+ c.withConf(func(conf *commonConfig) {
+ syncer.NoTimes = conf.configs.Base.NoTimes
+ syncer.NoChmod = conf.configs.Base.NoChmod
+ syncer.ChmodFilter = chmodFilter
+ syncer.SrcFs = sourceFs.Fs
+ syncer.DestFs = conf.fs.PublishDir
+ if c.s != nil && c.s.renderStaticToDisk {
+ syncer.DestFs = conf.fs.PublishDirStatic
+ }
+ })
+
+ logger := s.c.r.logger
+
+ for _, ev := range staticEvents {
+ // Due to our approach of layering both directories and the content's rendered output
+ // into one we can't accurately remove a file not in one of the source directories.
+ // If a file is in the local static dir and also in the theme static dir and we remove
+ // it from one of those locations we expect it to still exist in the destination
+ //
+ // If Hugo generates a file (from the content dir) over a static file
+ // the content generated file should take precedence.
+ //
+ // Because we are now watching and handling individual events it is possible that a static
+ // event that occupies the same path as a content generated file will take precedence
+ // until a regeneration of the content takes places.
+ //
+ // Hugo assumes that these cases are very rare and will permit this bad behavior
+ // The alternative is to track every single file and which pipeline rendered it
+ // and then to handle conflict resolution on every event.
+
+ fromPath := ev.Name
+
+ relPath, found := sourceFs.MakePathRelative(fromPath, true)
+
+ if !found {
+ // Not member of this virtual host.
+ continue
+ }
+
+ // Remove || rename is harder and will require an assumption.
+ // Hugo takes the following approach:
+ // If the static file exists in any of the static source directories after this event
+ // Hugo will re-sync it.
+ // If it does not exist in all of the static directories Hugo will remove it.
+ //
+ // This assumes that Hugo has not generated content on top of a static file and then removed
+ // the source of that static file. In this case Hugo will incorrectly remove that file
+ // from the published directory.
+ if ev.Op&fsnotify.Rename == fsnotify.Rename || ev.Op&fsnotify.Remove == fsnotify.Remove {
+ if _, err := sourceFs.Fs.Stat(relPath); herrors.IsNotExist(err) {
+ // If file doesn't exist in any static dir, remove it
+ logger.Println("File no longer exists in static dir, removing", relPath)
+ c.withConf(func(conf *commonConfig) {
+ _ = conf.fs.PublishDirStatic.RemoveAll(relPath)
+ })
+
+ } else if err == nil {
+ // If file still exists, sync it
+ logger.Println("Syncing", relPath, "to", publishDir)
+
+ if err := syncer.Sync(relPath, relPath); err != nil {
+ c.r.logger.Errorln(err)
+ }
} else {
- break
+ c.r.logger.Errorln(err)
}
+
+ continue
}
- }()
+
+ // For all other event operations Hugo will sync static.
+ logger.Println("Syncing", relPath, "to", publishDir)
+ if err := syncer.Sync(filepath.Join(publishDir, relPath), relPath); err != nil {
+ c.r.logger.Errorln(err)
+ }
+ }
+
+ return 0, nil
}
- return nil
+
+ _, err := c.doWithPublishDirs(syncFn)
+ return err
+}
+
+// chmodFilter is a ChmodFilter for static syncing.
+// Returns true to skip syncing permissions for directories and files without
+// owner-write permission. The primary use case is files from the module cache (0444).
+func chmodFilter(dst, src os.FileInfo) bool {
+ if src.IsDir() {
+ return true
+ }
+ return src.Mode().Perm()&0o200 == 0
+}
+
+func cleanErrorLog(content string) string {
+ content = logReplacer.Replace(content)
+ content = logDuplicateTemplateExecuteRe.ReplaceAllString(content, "")
+ content = logDuplicateTemplateParseRe.ReplaceAllString(content, "")
+ seen := make(map[string]bool)
+ parts := strings.Split(content, ": ")
+ keep := make([]string, 0, len(parts))
+ for _, part := range parts {
+ if seen[part] {
+ continue
+ }
+ seen[part] = true
+ keep = append(keep, part)
+ }
+ return strings.Join(keep, ": ")
+}
+
+func injectLiveReloadScript(src io.Reader, baseURL *url.URL) string {
+ var b bytes.Buffer
+ chain := transform.Chain{livereloadinject.New(baseURL)}
+ chain.Apply(&b, src)
+
+ return b.String()
+}
+
+func partitionDynamicEvents(sourceFs *filesystems.SourceFilesystems, events []fsnotify.Event) (de dynamicEvents) {
+ for _, e := range events {
+ if !sourceFs.IsContent(e.Name) {
+ de.AssetEvents = append(de.AssetEvents, e)
+ } else {
+ de.ContentEvents = append(de.ContentEvents, e)
+ }
+ }
+ return
+}
+
+func pickOneWriteOrCreatePath(contentTypes config.ContentTypesProvider, events []fsnotify.Event) string {
+ name := ""
+
+ for _, ev := range events {
+ if ev.Op&fsnotify.Write == fsnotify.Write || ev.Op&fsnotify.Create == fsnotify.Create {
+ if contentTypes.IsIndexContentFile(ev.Name) {
+ return ev.Name
+ }
+
+ if contentTypes.IsContentFile(ev.Name) {
+ name = ev.Name
+ }
+
+ }
+ }
+
+ return name
+}
+
+func formatByteCount(b uint64) string {
+ const unit = 1000
+ if b < unit {
+ return fmt.Sprintf("%d B", b)
+ }
+ div, exp := int64(unit), 0
+ for n := b / unit; n >= unit; n /= unit {
+ div *= unit
+ exp++
+ }
+ return fmt.Sprintf("%.1f %cB",
+ float64(b)/float64(div), "kMGTPE"[exp])
+}
+
+func canRedirect(requestURIWithoutQuery string, r *http.Request) bool {
+ if r.Header.Get(hugoHeaderRedirect) != "" {
+ return false
+ }
+ return isNavigation(requestURIWithoutQuery, r)
+}
+
+// Sec-Fetch-Mode should be sent by all recent browser versions, see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Mode#navigate
+// Fall back to the file extension if not set.
+// The main take here is that we don't want to have CSS/JS files etc. partake in this logic.
+func isNavigation(requestURIWithoutQuery string, r *http.Request) bool {
+ return r.Header.Get("Sec-Fetch-Mode") == "navigate" || isPropablyHTMLRequest(requestURIWithoutQuery)
+}
+
+func isPropablyHTMLRequest(requestURIWithoutQuery string) bool {
+ if strings.HasSuffix(requestURIWithoutQuery, "/") || strings.HasSuffix(requestURIWithoutQuery, "html") || strings.HasSuffix(requestURIWithoutQuery, "htm") {
+ return true
+ }
+ return !strings.Contains(requestURIWithoutQuery, ".")
}
diff --git a/commands/server_errors.go b/commands/server_errors.go
deleted file mode 100644
index 0e3bc50deae..00000000000
--- a/commands/server_errors.go
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2018 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package commands
-
-import (
- "bytes"
- "io"
- "net/url"
-
- "github.com/gohugoio/hugo/transform"
- "github.com/gohugoio/hugo/transform/livereloadinject"
-)
-
-var buildErrorTemplate = `
-
-
-
- {{ site.Title }}
+{{ partial "menu.html" (dict "menuID" "main" "page" .) }}
diff --git a/create/skeletons/theme/layouts/_partials/menu.html b/create/skeletons/theme/layouts/_partials/menu.html
new file mode 100644
index 00000000000..14245b55dba
--- /dev/null
+++ b/create/skeletons/theme/layouts/_partials/menu.html
@@ -0,0 +1,51 @@
+{{- /*
+Renders a menu for the given menu ID.
+
+@context {page} page The current page.
+@context {string} menuID The menu ID.
+
+@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }}
+*/}}
+
+{{- $page := .page }}
+{{- $menuID := .menuID }}
+
+{{- with index site.Menus $menuID }}
+
+{{- end }}
+
+{{- define "_partials/inline/menu/walk.html" }}
+ {{- $page := .page }}
+ {{- range .menuEntries }}
+ {{- $attrs := dict "href" .URL }}
+ {{- if $page.IsMenuCurrent .Menu . }}
+ {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }}
+ {{- else if $page.HasMenuCurrent .Menu .}}
+ {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }}
+ {{- end }}
+ {{- $name := .Name }}
+ {{- with .Identifier }}
+ {{- with T . }}
+ {{- $name = . }}
+ {{- end }}
+ {{- end }}
+
+ {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
+
+ {{- end }}
+
+ {{- range . }}
+
+ {{ .LinkTitle }}
+ {{ .Summary }}
+ {{ .Title }}
+
+ {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
+ {{ $dateHuman := .Date | time.Format ":date_long" }}
+
+
+ {{ .Content }}
+ {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
+{{ end }}
diff --git a/create/skeletons/theme/layouts/section.html b/create/skeletons/theme/layouts/section.html
new file mode 100644
index 00000000000..748f2f55938
--- /dev/null
+++ b/create/skeletons/theme/layouts/section.html
@@ -0,0 +1,10 @@
+{{ define "main" }}
+ {{ .Title }}
+ {{ .Content }}
+ {{ range .Pages }}
+ {{ .LinkTitle }}
+ {{ .Summary }}
+ {{ .Title }}
+ {{ .Content }}
+ {{ range .Pages }}
+ {{ .LinkTitle }}
+ {{ end }}
+{{ end }}
diff --git a/create/skeletons/theme/layouts/term.html b/create/skeletons/theme/layouts/term.html
new file mode 100644
index 00000000000..c2e787519e6
--- /dev/null
+++ b/create/skeletons/theme/layouts/term.html
@@ -0,0 +1,7 @@
+{{ define "main" }}
+ {{ .Title }}
+ {{ .Content }}
+ {{ range .Pages }}
+ {{ .LinkTitle }}
+ {{ end }}
+{{ end }}
diff --git a/create/skeletons/theme/static/favicon.ico b/create/skeletons/theme/static/favicon.ico
new file mode 100644
index 00000000000..67f8b777851
Binary files /dev/null and b/create/skeletons/theme/static/favicon.ico differ
diff --git a/deploy/cloudfront.go b/deploy/cloudfront.go
index 5e9a7a40958..3202a73ea77 100644
--- a/deploy/cloudfront.go
+++ b/deploy/cloudfront.go
@@ -11,43 +11,62 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// +build !nodeploy
+//go:build withdeploy
package deploy
import (
"context"
+ "net/url"
"time"
- "github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/session"
- "github.com/aws/aws-sdk-go/service/cloudfront"
+ "github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/service/cloudfront"
+ "github.com/aws/aws-sdk-go-v2/service/cloudfront/types"
+ "github.com/gohugoio/hugo/deploy/deployconfig"
+ gcaws "gocloud.dev/aws"
)
+// V2ConfigFromURLParams will fail for any unknown params, so we need to remove them.
+// This is a mysterious API, but inspecting the code the known params are:
+var v2ConfigValidParams = map[string]bool{
+ "endpoint": true,
+ "region": true,
+ "profile": true,
+ "awssdk": true,
+}
+
// InvalidateCloudFront invalidates the CloudFront cache for distributionID.
-// It uses the default AWS credentials from the environment.
-func InvalidateCloudFront(ctx context.Context, distributionID string) error {
- // SharedConfigEnable enables loading "shared config (~/.aws/config) and
- // shared credentials (~/.aws/credentials) files".
- // See https://docs.aws.amazon.com/sdk-for-go/api/aws/session/ for more
- // details.
- // This is the same codepath used by Go CDK when creating an s3 URL.
- // TODO: Update this to a Go CDK helper once available
- // (https://github.com/google/go-cloud/issues/2003).
- sess, err := session.NewSessionWithOptions(session.Options{SharedConfigState: session.SharedConfigEnable})
+// Uses AWS credentials config from the bucket URL.
+func InvalidateCloudFront(ctx context.Context, target *deployconfig.Target) error {
+ u, err := url.Parse(target.URL)
+ if err != nil {
+ return err
+ }
+ vals := u.Query()
+
+ // Remove any unknown params.
+ for k := range vals {
+ if !v2ConfigValidParams[k] {
+ vals.Del(k)
+ }
+ }
+
+ cfg, err := gcaws.V2ConfigFromURLParams(ctx, vals)
if err != nil {
return err
}
+ cf := cloudfront.NewFromConfig(cfg)
req := &cloudfront.CreateInvalidationInput{
- DistributionId: aws.String(distributionID),
- InvalidationBatch: &cloudfront.InvalidationBatch{
+ DistributionId: aws.String(target.CloudFrontDistributionID),
+ InvalidationBatch: &types.InvalidationBatch{
CallerReference: aws.String(time.Now().Format("20060102150405")),
- Paths: &cloudfront.Paths{
- Items: []*string{aws.String("/*")},
- Quantity: aws.Int64(1),
+ Paths: &types.Paths{
+ Items: []string{"/*"},
+ Quantity: aws.Int32(1),
},
},
}
- _, err = cloudfront.New(sess).CreateInvalidationWithContext(ctx, req)
+ _, err = cf.CreateInvalidation(ctx, req)
return err
}
diff --git a/deploy/deploy.go b/deploy/deploy.go
index 96fecdc077e..57e1f41a265 100644
--- a/deploy/deploy.go
+++ b/deploy/deploy.go
@@ -11,7 +11,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// +build !nodeploy
+//go:build withdeploy
package deploy
@@ -20,9 +20,10 @@ import (
"compress/gzip"
"context"
"crypto/md5"
+ "encoding/hex"
+ "errors"
"fmt"
"io"
- "io/ioutil"
"mime"
"os"
"path/filepath"
@@ -34,11 +35,12 @@ import (
"github.com/dustin/go-humanize"
"github.com/gobwas/glob"
+ "github.com/gohugoio/hugo/common/loggers"
+ "github.com/gohugoio/hugo/common/para"
"github.com/gohugoio/hugo/config"
+ "github.com/gohugoio/hugo/deploy/deployconfig"
"github.com/gohugoio/hugo/media"
- "github.com/pkg/errors"
"github.com/spf13/afero"
- jww "github.com/spf13/jwalterweatherman"
"golang.org/x/text/unicode/norm"
"gocloud.dev/blob"
@@ -53,16 +55,13 @@ type Deployer struct {
localFs afero.Fs
bucket *blob.Bucket
- target *target // the target to deploy to
- matchers []*matcher // matchers to apply to uploaded files
- mediaTypes media.Types // Hugo's MediaType to guess ContentType
- ordering []*regexp.Regexp // orders uploads
- quiet bool // true reduces STDOUT
- confirm bool // true enables confirmation before making changes
- dryRun bool // true skips conformations and prints changes instead of applying them
- force bool // true forces upload of all files
- invalidateCDN bool // true enables invalidate CDN cache (if possible)
- maxDeletes int // caps the # of files to delete; -1 to disable
+ mediaTypes media.Types // Hugo's MediaType to guess ContentType
+ quiet bool // true reduces STDOUT // TODO(bep) remove, this is a global feature.
+
+ cfg deployconfig.DeployConfig
+ logger loggers.Logger
+
+ target *deployconfig.Target // the target to deploy to
// For tests...
summary deploySummary // summary of latest Deploy results
@@ -72,22 +71,20 @@ type deploySummary struct {
NumLocal, NumRemote, NumUploads, NumDeletes int
}
-// New constructs a new *Deployer.
-func New(cfg config.Provider, localFs afero.Fs) (*Deployer, error) {
- targetName := cfg.GetString("target")
+const metaMD5Hash = "md5chksum" // the meta key to store md5hash in
- // Load the [deployment] section of the config.
- dcfg, err := decodeConfig(cfg)
- if err != nil {
- return nil, err
- }
+// New constructs a new *Deployer.
+func New(cfg config.AllProvider, logger loggers.Logger, localFs afero.Fs) (*Deployer, error) {
+ dcfg := cfg.GetConfigSection(deployconfig.DeploymentConfigKey).(deployconfig.DeployConfig)
+ targetName := dcfg.Target
if len(dcfg.Targets) == 0 {
return nil, errors.New("no deployment targets found")
}
+ mediaTypes := cfg.GetConfigSection("mediaTypes").(media.Types)
// Find the target to deploy to.
- var tgt *target
+ var tgt *deployconfig.Target
if targetName == "" {
// Default to the first target.
tgt = dcfg.Targets[0]
@@ -103,17 +100,11 @@ func New(cfg config.Provider, localFs afero.Fs) (*Deployer, error) {
}
return &Deployer{
- localFs: localFs,
- target: tgt,
- matchers: dcfg.Matchers,
- ordering: dcfg.ordering,
- mediaTypes: dcfg.mediaTypes,
- quiet: cfg.GetBool("quiet"),
- confirm: cfg.GetBool("confirm"),
- dryRun: cfg.GetBool("dryRun"),
- force: cfg.GetBool("force"),
- invalidateCDN: cfg.GetBool("invalidateCDN"),
- maxDeletes: cfg.GetInt("maxDeletes"),
+ localFs: localFs,
+ target: tgt,
+ quiet: cfg.BuildExpired(),
+ mediaTypes: mediaTypes,
+ cfg: dcfg,
}, nil
}
@@ -121,53 +112,65 @@ func (d *Deployer) openBucket(ctx context.Context) (*blob.Bucket, error) {
if d.bucket != nil {
return d.bucket, nil
}
- jww.FEEDBACK.Printf("Deploying to target %q (%s)\n", d.target.Name, d.target.URL)
+ d.logger.Printf("Deploying to target %q (%s)\n", d.target.Name, d.target.URL)
return blob.OpenBucket(ctx, d.target.URL)
}
// Deploy deploys the site to a target.
func (d *Deployer) Deploy(ctx context.Context) error {
+ if d.logger == nil {
+ d.logger = loggers.NewDefault()
+ }
+
bucket, err := d.openBucket(ctx)
if err != nil {
return err
}
+ if d.cfg.Workers <= 0 {
+ d.cfg.Workers = 10
+ }
+
// Load local files from the source directory.
var include, exclude glob.Glob
+ var mappath func(string) string
if d.target != nil {
- include, exclude = d.target.includeGlob, d.target.excludeGlob
+ include, exclude = d.target.IncludeGlob, d.target.ExcludeGlob
+ if d.target.StripIndexHTML {
+ mappath = stripIndexHTML
+ }
}
- local, err := walkLocal(d.localFs, d.matchers, include, exclude, d.mediaTypes)
+ local, err := d.walkLocal(d.localFs, d.cfg.Matchers, include, exclude, d.mediaTypes, mappath)
if err != nil {
return err
}
- jww.INFO.Printf("Found %d local files.\n", len(local))
+ d.logger.Infof("Found %d local files.\n", len(local))
d.summary.NumLocal = len(local)
// Load remote files from the target.
- remote, err := walkRemote(ctx, bucket, include, exclude)
+ remote, err := d.walkRemote(ctx, bucket, include, exclude)
if err != nil {
return err
}
- jww.INFO.Printf("Found %d remote files.\n", len(remote))
+ d.logger.Infof("Found %d remote files.\n", len(remote))
d.summary.NumRemote = len(remote)
// Diff local vs remote to see what changes need to be applied.
- uploads, deletes := findDiffs(local, remote, d.force)
+ uploads, deletes := d.findDiffs(local, remote, d.cfg.Force)
d.summary.NumUploads = len(uploads)
d.summary.NumDeletes = len(deletes)
if len(uploads)+len(deletes) == 0 {
if !d.quiet {
- jww.FEEDBACK.Println("No changes required.")
+ d.logger.Println("No changes required.")
}
return nil
}
if !d.quiet {
- jww.FEEDBACK.Println(summarizeChanges(uploads, deletes))
+ d.logger.Println(summarizeChanges(uploads, deletes))
}
// Ask for confirmation before proceeding.
- if d.confirm && !d.dryRun {
+ if d.cfg.Confirm && !d.cfg.DryRun {
fmt.Printf("Continue? (Y/n) ")
var confirm string
if _, err := fmt.Scanln(&confirm); err != nil {
@@ -180,12 +183,9 @@ func (d *Deployer) Deploy(ctx context.Context) error {
// Order the uploads. They are organized in groups; all uploads in a group
// must be complete before moving on to the next group.
- uploadGroups := applyOrdering(d.ordering, uploads)
+ uploadGroups := applyOrdering(d.cfg.Ordering, uploads)
- // Apply the changes in parallel, using an inverted worker
- // pool (https://www.youtube.com/watch?v=5zXAHh5tJqQ&t=26m58s).
- // sem prevents more than nParallel concurrent goroutines.
- const nParallel = 10
+ nParallel := d.cfg.Workers
var errs []error
var errMu sync.Mutex // protects errs
@@ -198,16 +198,16 @@ func (d *Deployer) Deploy(ctx context.Context) error {
// Within the group, apply uploads in parallel.
sem := make(chan struct{}, nParallel)
for _, upload := range uploads {
- if d.dryRun {
+ if d.cfg.DryRun {
if !d.quiet {
- jww.FEEDBACK.Printf("[DRY RUN] Would upload: %v\n", upload)
+ d.logger.Printf("[DRY RUN] Would upload: %v\n", upload)
}
continue
}
sem <- struct{}{}
go func(upload *fileToUpload) {
- if err := doSingleUpload(ctx, bucket, upload); err != nil {
+ if err := d.doSingleUpload(ctx, bucket, upload); err != nil {
errMu.Lock()
defer errMu.Unlock()
errs = append(errs, err)
@@ -221,26 +221,26 @@ func (d *Deployer) Deploy(ctx context.Context) error {
}
}
- if d.maxDeletes != -1 && len(deletes) > d.maxDeletes {
- jww.WARN.Printf("Skipping %d deletes because it is more than --maxDeletes (%d). If this is expected, set --maxDeletes to a larger number, or -1 to disable this check.\n", len(deletes), d.maxDeletes)
+ if d.cfg.MaxDeletes != -1 && len(deletes) > d.cfg.MaxDeletes {
+ d.logger.Warnf("Skipping %d deletes because it is more than --maxDeletes (%d). If this is expected, set --maxDeletes to a larger number, or -1 to disable this check.\n", len(deletes), d.cfg.MaxDeletes)
d.summary.NumDeletes = 0
} else {
// Apply deletes in parallel.
sort.Slice(deletes, func(i, j int) bool { return deletes[i] < deletes[j] })
sem := make(chan struct{}, nParallel)
for _, del := range deletes {
- if d.dryRun {
+ if d.cfg.DryRun {
if !d.quiet {
- jww.FEEDBACK.Printf("[DRY RUN] Would delete %s\n", del)
+ d.logger.Printf("[DRY RUN] Would delete %s\n", del)
}
continue
}
sem <- struct{}{}
go func(del string) {
- jww.INFO.Printf("Deleting %s...\n", del)
+ d.logger.Infof("Deleting %s...\n", del)
if err := bucket.Delete(ctx, del); err != nil {
if gcerrors.Code(err) == gcerrors.NotFound {
- jww.WARN.Printf("Failed to delete %q because it wasn't found: %v", del, err)
+ d.logger.Warnf("Failed to delete %q because it wasn't found: %v", del, err)
} else {
errMu.Lock()
defer errMu.Unlock()
@@ -255,44 +255,45 @@ func (d *Deployer) Deploy(ctx context.Context) error {
sem <- struct{}{}
}
}
+
if len(errs) > 0 {
if !d.quiet {
- jww.FEEDBACK.Printf("Encountered %d errors.\n", len(errs))
+ d.logger.Printf("Encountered %d errors.\n", len(errs))
}
return errs[0]
}
if !d.quiet {
- jww.FEEDBACK.Println("Success!")
+ d.logger.Println("Success!")
}
- if d.invalidateCDN {
+ if d.cfg.InvalidateCDN {
if d.target.CloudFrontDistributionID != "" {
- if d.dryRun {
+ if d.cfg.DryRun {
if !d.quiet {
- jww.FEEDBACK.Printf("[DRY RUN] Would invalidate CloudFront CDN with ID %s\n", d.target.CloudFrontDistributionID)
+ d.logger.Printf("[DRY RUN] Would invalidate CloudFront CDN with ID %s\n", d.target.CloudFrontDistributionID)
}
} else {
- jww.FEEDBACK.Println("Invalidating CloudFront CDN...")
- if err := InvalidateCloudFront(ctx, d.target.CloudFrontDistributionID); err != nil {
- jww.FEEDBACK.Printf("Failed to invalidate CloudFront CDN: %v\n", err)
+ d.logger.Println("Invalidating CloudFront CDN...")
+ if err := InvalidateCloudFront(ctx, d.target); err != nil {
+ d.logger.Printf("Failed to invalidate CloudFront CDN: %v\n", err)
return err
}
}
}
if d.target.GoogleCloudCDNOrigin != "" {
- if d.dryRun {
+ if d.cfg.DryRun {
if !d.quiet {
- jww.FEEDBACK.Printf("[DRY RUN] Would invalidate Google Cloud CDN with origin %s\n", d.target.GoogleCloudCDNOrigin)
+ d.logger.Printf("[DRY RUN] Would invalidate Google Cloud CDN with origin %s\n", d.target.GoogleCloudCDNOrigin)
}
} else {
- jww.FEEDBACK.Println("Invalidating Google Cloud CDN...")
+ d.logger.Println("Invalidating Google Cloud CDN...")
if err := InvalidateGoogleCloudCDN(ctx, d.target.GoogleCloudCDNOrigin); err != nil {
- jww.FEEDBACK.Printf("Failed to invalidate Google Cloud CDN: %v\n", err)
+ d.logger.Printf("Failed to invalidate Google Cloud CDN: %v\n", err)
return err
}
}
}
- jww.FEEDBACK.Println("Success!")
+ d.logger.Println("Success!")
}
return nil
}
@@ -307,12 +308,13 @@ func summarizeChanges(uploads []*fileToUpload, deletes []string) string {
}
// doSingleUpload executes a single file upload.
-func doSingleUpload(ctx context.Context, bucket *blob.Bucket, upload *fileToUpload) error {
- jww.INFO.Printf("Uploading %v...\n", upload)
+func (d *Deployer) doSingleUpload(ctx context.Context, bucket *blob.Bucket, upload *fileToUpload) error {
+ d.logger.Infof("Uploading %v...\n", upload)
opts := &blob.WriterOptions{
CacheControl: upload.Local.CacheControl(),
ContentEncoding: upload.Local.ContentEncoding(),
ContentType: upload.Local.ContentType(),
+ Metadata: map[string]string{metaMD5Hash: hex.EncodeToString(upload.Local.MD5())},
}
w, err := bucket.NewWriter(ctx, upload.Local.SlashPath, opts)
if err != nil {
@@ -346,14 +348,14 @@ type localFile struct {
UploadSize int64
fs afero.Fs
- matcher *matcher
+ matcher *deployconfig.Matcher
md5 []byte // cache
gzipped bytes.Buffer // cached of gzipped contents if gzipping
mediaTypes media.Types
}
// newLocalFile initializes a *localFile.
-func newLocalFile(fs afero.Fs, nativePath, slashpath string, m *matcher, mt media.Types) (*localFile, error) {
+func newLocalFile(fs afero.Fs, nativePath, slashpath string, m *deployconfig.Matcher, mt media.Types) (*localFile, error) {
f, err := fs.Open(nativePath)
if err != nil {
return nil, err
@@ -397,7 +399,7 @@ func (lf *localFile) Reader() (io.ReadCloser, error) {
// We've got the gzipped contents cached in gzipped.
// Note: we can't use lf.gzipped directly as a Reader, since we it discards
// data after it is read, and we may read it more than once.
- return ioutil.NopCloser(bytes.NewReader(lf.gzipped.Bytes())), nil
+ return io.NopCloser(bytes.NewReader(lf.gzipped.Bytes())), nil
}
// Not expected to fail since we did it successfully earlier in newLocalFile,
// but could happen due to changes in the underlying filesystem.
@@ -438,7 +440,7 @@ func (lf *localFile) ContentType() string {
ext := filepath.Ext(lf.NativePath)
if mimeType, _, found := lf.mediaTypes.GetFirstBySuffix(strings.TrimPrefix(ext, ".")); found {
- return mimeType.Type()
+ return mimeType.Type
}
return mime.TypeByExtension(ext)
@@ -485,8 +487,13 @@ func knownHiddenDirectory(name string) bool {
// walkLocal walks the source directory and returns a flat list of files,
// using localFile.SlashPath as the map keys.
-func walkLocal(fs afero.Fs, matchers []*matcher, include, exclude glob.Glob, mediaTypes media.Types) (map[string]*localFile, error) {
- retval := map[string]*localFile{}
+func (d *Deployer) walkLocal(fs afero.Fs, matchers []*deployconfig.Matcher, include, exclude glob.Glob, mediaTypes media.Types, mappath func(string) string) (map[string]*localFile, error) {
+ retval := make(map[string]*localFile)
+ var mu sync.Mutex
+
+ workers := para.New(d.cfg.Workers)
+ g, _ := workers.Start(context.Background())
+
err := afero.Walk(fs, "", func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
@@ -507,45 +514,68 @@ func walkLocal(fs afero.Fs, matchers []*matcher, include, exclude glob.Glob, med
return nil
}
- // When a file system is HFS+, its filepath is in NFD form.
- if runtime.GOOS == "darwin" {
- path = norm.NFC.String(path)
- }
+ // Process each file in a worker
+ g.Run(func() error {
+ // When a file system is HFS+, its filepath is in NFD form.
+ if runtime.GOOS == "darwin" {
+ path = norm.NFC.String(path)
+ }
- // Check include/exclude matchers.
- slashpath := filepath.ToSlash(path)
- if include != nil && !include.Match(slashpath) {
- jww.INFO.Printf(" dropping %q due to include\n", slashpath)
- return nil
- }
- if exclude != nil && exclude.Match(slashpath) {
- jww.INFO.Printf(" dropping %q due to exclude\n", slashpath)
- return nil
- }
+ // Check include/exclude matchers.
+ slashpath := filepath.ToSlash(path)
+ if include != nil && !include.Match(slashpath) {
+ d.logger.Infof(" dropping %q due to include\n", slashpath)
+ return nil
+ }
+ if exclude != nil && exclude.Match(slashpath) {
+ d.logger.Infof(" dropping %q due to exclude\n", slashpath)
+ return nil
+ }
- // Find the first matching matcher (if any).
- var m *matcher
- for _, cur := range matchers {
- if cur.Matches(slashpath) {
- m = cur
- break
+ // Find the first matching matcher (if any).
+ var m *deployconfig.Matcher
+ for _, cur := range matchers {
+ if cur.Matches(slashpath) {
+ m = cur
+ break
+ }
}
- }
- lf, err := newLocalFile(fs, path, slashpath, m, mediaTypes)
- if err != nil {
- return err
- }
- retval[lf.SlashPath] = lf
+ // Apply any additional modifications to the local path, to map it to
+ // the remote path.
+ if mappath != nil {
+ slashpath = mappath(slashpath)
+ }
+ lf, err := newLocalFile(fs, path, slashpath, m, mediaTypes)
+ if err != nil {
+ return err
+ }
+ mu.Lock()
+ retval[lf.SlashPath] = lf
+ mu.Unlock()
+ return nil
+ })
return nil
})
if err != nil {
return nil, err
}
+ if err := g.Wait(); err != nil {
+ return nil, err
+ }
return retval, nil
}
+// stripIndexHTML remaps keys matching "
-*Pull requests shall **only** contain changes to the actual documentation. However, changes on the code base of Hugo **and** the documentation shall be a single, atomic pull request in the [hugo](https://github.com/gohugoio/hugo) repository.*
+A fast and flexible static site generator built with love by [bep], [spf13], and [friends] in [Go].
-Spelling fixes are most welcomed, and if you want to contribute longer sections to the documentation, it would be great if you had the following criteria in mind when writing:
+---
-* Short is good. People go to the library to read novels. If there is more than one way to _do a thing_ in Hugo, describe the current _best practice_ (avoid "… but you can also do …" and "… in older versions of Hugo you had to …".
-* For example, try to find short snippets that teaches people about the concept. If the example is also useful as-is (copy and paste), then great. Don't list long and similar examples just so people can use them on their sites.
-* Hugo has users from all over the world, so easy to understand and [simple English](https://simple.wikipedia.org/wiki/Basic_English) is good.
-
-## Branches
-
-* The `master` branch is where the site is automatically built from, and is the place to put changes relevant to the current Hugo version.
-* The `next` branch is where we store changes that are related to the next Hugo release. This can be previewed here: https://next--gohugoio.netlify.com/
-
-## Build
-
-To view the documentation site locally, you need to clone this repository:
+[](https://app.netlify.com/sites/gohugoio/deploys)
+[](https://gohugo.io/contribute/documentation/)
-```bash
-git clone https://github.com/gohugoio/hugoDocs.git
-```
+This is the repository for the [Hugo](https://github.com/gohugoio/hugo) documentation site.
-Also note that the documentation version for a given version of Hugo can also be found in the `/docs` sub-folder of the [Hugo source repository](https://github.com/gohugoio/hugo).
+Please see the [contributing] section for guidelines, examples, and process.
-Then to view the docs in your browser, run Hugo and open up the link:
+[bep]: https://github.com/bep
+[spf13]: https://github.com/spf13
+[friends]: https://github.com/gohugoio/hugo/graphs/contributors
+[go]: https://go.dev/
+[contributing]: https://gohugo.io/contribute/documentation
-```bash
-▶ hugo server
+# Install
-Started building sites ...
-.
-.
-Serving pages from memory
-Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
-Press Ctrl+C to stop
+```sh
+npm i
+hugo server
```
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css
deleted file mode 100644
index 0122f9758a2..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css
+++ /dev/null
@@ -1,11 +0,0 @@
-.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;box-sizing:border-box;visibility:visible!important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0 26px 0 32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;box-shadow:inset 0 0 0 1px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit:before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:""}.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6d7e96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid~.searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0!important;right:inherit!important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:600px;min-width:500px;box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple,.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,.05)}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{position:relative;border:1px solid #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,.1);padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363d}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#a4a7ae;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060c;font-size:.9em;font-weight:700}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676d}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222;background-color:#ebebeb;border-radius:3px;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}@media (min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}}@media (max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:1px solid #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content:before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1:before{background-image:url('data:image/svg+xml;utf8,');content:"";width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none!important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458ee1;font-size:.9em;font-weight:400}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title:before{content:"#";font-weight:700;color:#458ee1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:700;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:134px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}
-/*# sourceMappingURL=docsearch.min.css.map */
-a.algolia-docsearch-suggestion {
- text-decoration: none !important;
-}
-.algolia-docsearch-suggestion--category-header {
- background: #0594cb;
- padding-left: .25rem !important;
- color: white !important;
- border-radius: 3px;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css
deleted file mode 100644
index 997931ac423..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css
+++ /dev/null
@@ -1,21 +0,0 @@
-.animated {
- animation-duration: .5s;
- animation-fill-mode: forwards;
- animation-timing-function: ease-in-out;
-}
-
-@keyframes fadeIn {
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-.fadeIn {
- animation-name: fadeIn;
-}
-.animated-delay-1 {
- animation-delay: 0.5s;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css
deleted file mode 100644
index 11fae8702b0..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/* These styles enhance the home page carousel, located here: themes/gohugoioTheme/layouts/partials/home-page-sections/showcase.html */
-.overflow-x-scroll{
- -webkit-overflow-scrolling: touch;
-}
-.row {
- transition: 450ms transform;
- font-size: 0;
-}
-.tile {
- transition: 450ms all;
-}
-.details {
- background: -webkit-gradient(linear, left bottom, left top, from(rgba(0,0,0,0.9)), to(rgba(0,0,0,0)));
- background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%);
- transition: 450ms opacity;
-}
-.tile:hover .details {
- opacity: 1;
-}
-.row:hover .tile {
- opacity: 0.3;
-}
-.row:hover .tile:hover {
- opacity: 1;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css
deleted file mode 100644
index d00ea65e60a..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Background */ .chroma { background-color: #ffffff }
-/* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 }
-/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
-/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
-/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
-/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
-/* Keyword */ .chroma .k { font-weight: bold }
-/* KeywordConstant */ .chroma .kc { font-weight: bold }
-/* KeywordDeclaration */ .chroma .kd { font-weight: bold }
-/* KeywordNamespace */ .chroma .kn { font-weight: bold }
-/* KeywordPseudo */ .chroma .kp { font-weight: bold }
-/* KeywordReserved */ .chroma .kr { font-weight: bold }
-/* KeywordType */ .chroma .kt { color: #445588; font-weight: bold }
-/* NameAttribute */ .chroma .na { color: #008080 }
-/* NameBuiltin */ .chroma .nb { color: #999999 }
-/* NameClass */ .chroma .nc { color: #445588; font-weight: bold }
-/* NameConstant */ .chroma .no { color: #008080 }
-/* NameEntity */ .chroma .ni { color: #800080 }
-/* NameException */ .chroma .ne { color: #990000; font-weight: bold }
-/* NameFunction */ .chroma .nf { color: #990000; font-weight: bold }
-/* NameNamespace */ .chroma .nn { color: #555555 }
-/* NameTag */ .chroma .nt { color: #000080 }
-/* NameVariable */ .chroma .nv { color: #008080 }
-/* LiteralString */ .chroma .s { color: #bb8844 }
-/* LiteralStringAffix */ .chroma .sa { color: #bb8844 }
-/* LiteralStringBacktick */ .chroma .sb { color: #bb8844 }
-/* LiteralStringChar */ .chroma .sc { color: #bb8844 }
-/* LiteralStringDelimiter */ .chroma .dl { color: #bb8844 }
-/* LiteralStringDoc */ .chroma .sd { color: #bb8844 }
-/* LiteralStringDouble */ .chroma .s2 { color: #bb8844 }
-/* LiteralStringEscape */ .chroma .se { color: #bb8844 }
-/* LiteralStringHeredoc */ .chroma .sh { color: #bb8844 }
-/* LiteralStringInterpol */ .chroma .si { color: #bb8844 }
-/* LiteralStringOther */ .chroma .sx { color: #bb8844 }
-/* LiteralStringRegex */ .chroma .sr { color: #808000 }
-/* LiteralStringSingle */ .chroma .s1 { color: #bb8844 }
-/* LiteralStringSymbol */ .chroma .ss { color: #bb8844 }
-/* LiteralNumber */ .chroma .m { color: #009999 }
-/* LiteralNumberBin */ .chroma .mb { color: #009999 }
-/* LiteralNumberFloat */ .chroma .mf { color: #009999 }
-/* LiteralNumberHex */ .chroma .mh { color: #009999 }
-/* LiteralNumberInteger */ .chroma .mi { color: #009999 }
-/* LiteralNumberIntegerLong */ .chroma .il { color: #009999 }
-/* LiteralNumberOct */ .chroma .mo { color: #009999 }
-/* Operator */ .chroma .o { font-weight: bold }
-/* OperatorWord */ .chroma .ow { font-weight: bold }
-/* Comment */ .chroma .c { color: #999988; font-style: italic }
-/* CommentHashbang */ .chroma .ch { color: #999988; font-style: italic }
-/* CommentMultiline */ .chroma .cm { color: #999988; font-style: italic }
-/* CommentSingle */ .chroma .c1 { color: #999988; font-style: italic }
-/* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic }
-/* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold }
-/* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold }
-/* GenericDeleted */ .chroma .gd { color: #000000; background-color: #ffdddd }
-/* GenericEmph */ .chroma .ge { font-style: italic }
-/* GenericError */ .chroma .gr { color: #aa0000 }
-/* GenericHeading */ .chroma .gh { color: #999999 }
-/* GenericInserted */ .chroma .gi { color: #000000; background-color: #ddffdd }
-/* GenericOutput */ .chroma .go { color: #888888 }
-/* GenericPrompt */ .chroma .gp { color: #555555 }
-/* GenericStrong */ .chroma .gs { font-weight: bold }
-/* GenericSubheading */ .chroma .gu { color: #aaaaaa }
-/* GenericTraceback */ .chroma .gt { color: #aa0000 }
-/* TextWhitespace */ .chroma .w { color: #bbbbbb }
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css
deleted file mode 100644
index 66a2fc24693..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css
+++ /dev/null
@@ -1,89 +0,0 @@
-.chroma .lntable pre {
- padding: 0;
- margin: 0;
- border: 0;
-}
-
-.chroma .lntable pre code {
- padding: 0;
- margin: 0;
-}
-
-code {
- padding: 0.2em;
- margin: 0;
- font-size: 85%;
- background-color: rgba(27,31,35,0.05);
- border-radius: 3px;
-}
-
-pre code {
- display: block;
- padding: 1.5em 1.5em;
- font-size: .875rem;
- line-height: 2;
- overflow-x: auto;
-}
-
-pre {
- background-color: #fff;
- color: #333;
- white-space: pre;
- hyphens: none;
- position: relative;
- border-width: 1px;
- border-color: #ccc;
- border-style: solid;
-}
-
-/* The Pygments highlighter comes with its own styles. */
-.highlight pre {
- background-color: inherit;
- color: inherit;
- padding: 0.5em;
- font-size: .875rem;
-}
-
-
-/*We are adding the copy button content here so we can change it with javascript. See the "Clipboard scripts"*/
-.copy:after {
- content: "Copy"
-}
-.copied:after {
- content: "Copied"
-}
-
-@media (--breakpoint-large) {
- .full-width, pre.expand:hover
- {
- /*width: 100vw;
- position: relative;
- left: 50%;
- right: 50%;
- margin-left: -50vw;
- margin-right: -50vw;*/
- /*width: 60vw;*/
- /*position: relative;
- left: 50%;
- right: 50%;*/
- /*margin-left: -30vw;*/
- margin-right: -30vw;
- max-width: 100vw;
- }
-}
-
-.code-block .line-numbers-rows {
- background: #2f3a46;
- border: none;
- bottom: -50px;
- color: #98a4b3;
- left: -178px;
- padding: 50px 0;
- top: -50px;
- width: 138px
-}
-
-.code-block .line-numbers-rows>span:before {
- color: inherit;
- padding-right: 30px
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css
deleted file mode 100644
index 1d61a7725fd..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css
+++ /dev/null
@@ -1,38 +0,0 @@
-.primary-color {color: var(--primary-color)}
-.bg-primary-color {background-color: var(--primary-color)}
-.hover-bg-primary-color:hover {background-color: var(--primary-color)}
-
-.primary-color-dark {color: var(--primary-color-dark)}
-.bg-primary-color-dark {background-color: var(--primary-color-dark)}
-.hover-bg-primary-color-dark:hover {background-color: var(--primary-color-dark)}
-
-.primary-color-light {color: var(--primary-color-light)}
-.bg-primary-color-light {background-color: var(--primary-color-light)}
-.hover-bg-primary-color-light:hover {background-color: var(--primary-color-light)}
-
-.accent-color {color: var(--accent-color)}
-.bg-accent-color {background-color: var(--accent-color)}
-.hover-bg-accent-color:hover {background-color: var(--accent-color)}
-
-.accent-color-light {color: var(--accent-color-light)}
-.hover-accent-color-light:hover {color: var(--accent-color-light)}
-.bg-accent-color-light {background-color: var(--accent-color-light)}
-.hover-bg-accent-color-light:hover {background-color: var(--accent-color-light)}
-
-.accent-color-dark {color: var(--accent-color-dark)}
-.bg-accent-color-dark {background-color: var(--accent-color-dark)}
-.hover-bg-accent-color-dark:hover {background-color: var(--accent-color-dark)}
-
-.text-color-primary {color: var(--text-color-primary)}
-.text-on-primary-color {color: var(--text-on-primary-color)}
-.text-color-secondary {color: var(--text-color-secondary)}
-.text-color-disabled {color: var(--text-color-disabled)}
-.divider-color {color: var(--divider-color)}
-.warn-color {color: var(--warn-color)}
-
-
-.nested-links a {
- color: var(--primary-color);
- text-decoration: none;
-
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css
deleted file mode 100644
index e1e938c742b..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css
+++ /dev/null
@@ -1,11 +0,0 @@
-.column-count-2 {column-count: 1}
-.column-gap-1 {column-gap: 0}
-.break-inside-avoid {break-inside: auto}
-
-
-@media (--breakpoint-large) {
- .column-count-3-l {column-count: 3}
- .column-count-2-l {column-count: 2}
- .column-gap-1-l {column-gap: 1}
- .break-inside-avoid-l {break-inside: avoid}
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css
deleted file mode 100644
index 4e092e8bf85..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css
+++ /dev/null
@@ -1,28 +0,0 @@
-.prose table {
- width: 100%;
- margin-bottom: 3em;
- border-collapse: collapse;
- border-spacing: 0;
- font-size: 1em;
- border: 1px solid var(--light-gray);
- & th {
- background-color: var(--primary-color);
- border-bottom: 1px solid var(--primary-color);
- color: white;
- font-weight: 400;
-
- text-align: left;
- padding: .375em .5em;
- }
-
- & td, & tc {
- padding: .75em .5em;
- text-align: left;
- border-right: 1px solid var(--light-gray);
- }
-
-}
-
-.prose table tr:nth-child(even) {
- background-color: var(--light-gray);
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css
deleted file mode 100644
index 9c8a8a14d18..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css
+++ /dev/null
@@ -1,41 +0,0 @@
-.prose ul, .prose ol {
- margin-bottom: 2em;
-}
-.prose ul li, .prose ol li {
- margin-bottom: .5em;
-}
-.prose li:hover {
- background-color: var(--light-gray)
-}
-.prose ::selection {
- background: var(--primary-color); /* WebKit/Blink Browsers */
- color: white;
-}
-
-
-body {
-
-line-height: 1.45;
-
-}
-
-p {margin-bottom: 1.3em;}
-
-h1, h2, h3, h4 {
-margin: 1.414em 0 0.5em;
-
-line-height: 1.2;
-}
-
-h1 {
-margin-top: 0;
-font-size: 2.441em;
-}
-
-h2 {font-size: 1.953em;}
-
-h3 {font-size: 1.563em;}
-
-h4 {font-size: 1.25em;}
-
-small, .font_small {font-size: 0.8em;}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css
deleted file mode 100644
index e28f67d4b1d..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css
+++ /dev/null
@@ -1,9 +0,0 @@
-
-dl dt {
- font-weight: bold;
- font-size: 1.125rem;
-}
-dd {
- margin: .5em 0 2em 0;
- padding: 0;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css
deleted file mode 100644
index 0ea8e9b7265..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css
+++ /dev/null
@@ -1,54 +0,0 @@
-.note,
-.warning {
-
- border-left-width: 4px;
- border-left-style: solid;
- position: relative;
- border-color: var(--primary-color);
-
- display: block;
-}
-.note #exclamation-icon,
-.warning #exclamation-icon {
-
- fill: var(--primary-color);
- position: absolute;
- top: 35%;
- left: -12px;
- /*background-color: white;*/
-}
-
- .admonition-content {
- display: block;
- margin: 0px;
- padding: .125em 1em;
- /*margin-left: 1em;*/
- margin-top: 2em;
- margin-bottom: 2em;
- overflow-x: auto;
- /*font-size: .9375em;*/
- background-color: var(--black-05);
- }
-
-
- .hide-child-menu .child-menu {
- display: none;
- }
- .hide-child-menu:hover .child-menu,
- .hide-child-menu:focus .child-menu,
- .hide-child-menu:active .child-menu {
- display: block;
- }
-
-
-/*documentation-copy headings exaggerate spacing and size to chunk content */
- .documentation-copy h2 {
- margin-top: 3em;
- &.minor {
- font-size: inherit;
- margin-top: inherit;
- border-bottom: none;
- }
- }
-
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css
deleted file mode 100644
index da9f04c8166..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css
+++ /dev/null
@@ -1,10 +0,0 @@
-.f2-fluid {
- font-size: 2.25rem;
-}
-
-@media (--breakpoint-large) {
- .f2-fluid {
- font-size: 1.25rem;
- font-size: calc(0.875rem + 0.5 * ((100vw - 20rem) / 60));
- }
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css
deleted file mode 100644
index 9b451cf1ca9..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css
+++ /dev/null
@@ -1,80 +0,0 @@
-/* From http://cssfontstack.com */
-code, .code, pre code, .highlight pre {
- font-family: 'inconsolata',Menlo,Monaco,'Courier New',monospace;
-}
-
-.sans-serif {
- font-family: 'Muli',
- avenir,
- 'helvetica neue', helvetica,
- ubuntu,
- roboto, noto,
- 'segoe ui', arial,
- sans-serif;
-}
-
-
-.serif {
- font-family: Palatino,"Palatino Linotype","Palatino LT STD","Book Antiqua",Georgia,serif;
-}
-
-/* Monospaced Typefaces (for code) */
-
-
-.courier {
- font-family: 'Courier Next',
- courier,
- monospace;
-}
-
-
-/* Sans-Serif Typefaces */
-
-.helvetica {
- font-family: 'helvetica neue', helvetica,
- sans-serif;
-}
-
-.avenir {
- font-family: 'avenir next', avenir,
- sans-serif;
-}
-
-
-/* Serif Typefaces */
-
-.athelas {
- font-family: athelas,
- georgia,
- serif;
-}
-
-.georgia {
- font-family: georgia,
- serif;
-}
-
-.times {
- font-family: times,
- serif;
-}
-
-.bodoni {
- font-family: "Bodoni MT",
- serif;
-}
-
-.calisto {
- font-family: "Calisto MT",
- serif;
-}
-
-.garamond {
- font-family: garamond,
- serif;
-}
-
-.baskerville {
- font-family: baskerville,
- serif;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css
deleted file mode 100644
index 56a16be6d7e..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css
+++ /dev/null
@@ -1,15 +0,0 @@
-.header-link:after {
- position: relative;
- left: 0.5em;
- opacity: 0;
- font-size: 0.8em;
- -moz-transition: opacity 0.2s ease-in-out 0.1s;
- -ms-transition: opacity 0.2s ease-in-out 0.1s;
-}
-h2:hover .header-link,
-h3:hover .header-link,
-h4:hover .header-link,
-h5:hover .header-link,
-h6:hover .header-link {
- opacity: 1;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hljs.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hljs.css
deleted file mode 100644
index c4910765529..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hljs.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/* modified from:*/
-@import 'highlight.js/styles/atom-one-light.css';
-
-/* hljs-template-variable covers the handlebars templating*/
-.hljs-template-variable {
- color: var(--primary-color);
-}
-
-.hljs-attr {
- color: var(--accent-color-light);
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css
deleted file mode 100644
index 0b1df9610a7..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css
+++ /dev/null
@@ -1,52 +0,0 @@
-/* pagination.html: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/template_embedded.go#L117 */
-.pagination {
- margin: 3rem 0;
-}
-
-.pagination li {
- display: inline-block;
- margin-right: .375rem;
- font-size: .875rem;
- margin-bottom: 2.5em;
-}
-.pagination li a {
- padding: .5rem .625rem;
- background-color: white;
- color: #333;
- border: 1px solid #ddd;
- border-radius: 3px;
- text-decoration: none;
-}
-.pagination li.disabled {
- display: none;
-}
-.pagination li.active a:link,
-.pagination li.active a:active,
-.pagination li.active a:visited {
- background-color: #ddd;
-}
-
-/* Hides non-meaningful TOC items*/
-#TableOfContents ul li ul li ul li{
- display: none;
- }
-
-
-#TableOfContents ul li {
- color: black;
- display: block;
- margin-bottom: .375em;
- line-height: 1.375;
-}
-
-#TableOfContents ul li a{
- width: 100%;
- padding: .25em .375em;
- margin-left: -.375em;
-
-}
-#TableOfContents ul li a:hover {
- background-color: #999;
- color: white;
-
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css
deleted file mode 100644
index 7991450fef2..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.no-js .needs-js {
- opacity: 0
-}
-.js .needs-js {
- opacity: 1;
- transition: opacity .15s ease-in;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css
deleted file mode 100644
index 04ea11ec548..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css
+++ /dev/null
@@ -1,23 +0,0 @@
-.facebook, .twitter, .instagram, .youtube {
- fill: #BABABA;
-}
-.facebook:hover {
- fill: #3b5998;
-}
-
-.twitter {
- fill: #55acee;
-}
-
-.twitter:hover {
- fill: #BABABA;
-}
-
-
-.instagram:hover {
- fill: #e95950;
-}
-
-.youtube:hover {
- fill: #bb0000;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css
deleted file mode 100644
index 7759bed96fe..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css
+++ /dev/null
@@ -1,15 +0,0 @@
-
-@media (min-width: 75em) {
-
- [data-scrolldir="down"] .sticky {
- position: fixed;
- top:100px;
- right:0;
- }
-
- [data-scrolldir="up"] .sticky {
- position: fixed;
- top:100px;
- right:0;
- }
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css
deleted file mode 100644
index 299a4a96373..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css
+++ /dev/null
@@ -1 +0,0 @@
-.fill-current { fill: currentColor; }
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css
deleted file mode 100644
index 6e0022cc992..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css
+++ /dev/null
@@ -1,34 +0,0 @@
-.tab-button{
- margin-bottom:1px;
- position: relative;
- z-index: 1;
- color:#333;
- border-color:#ccc;
- outline: none;
- background-color:white;
-}
-.tab-pane code{
- background:#f1f2f2;
- border-radius:0;
-}
-.tab-pane .chroma{
- background:none;
- padding:0;
-}
-.tab-button.active{
- border-bottom-color:#f1f2f2;
- background-color: #f1f2f2;
-}
-.tab-content .tab-pane{
- display: none;
-}
-.tab-content .tab-pane.active{
- display: block;
-}
-/* Treatment of copy buttons inside a tab module */
-.tab-content .copy, .tab-content .copied{
- display: none;
-}
-.tab-content .tab-pane.active + .copy, .tab-content .tab-pane.active + .copied{
- display: block;
-}
\ No newline at end of file
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css
deleted file mode 100644
index d697c4d853b..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css
+++ /dev/null
@@ -1,94 +0,0 @@
-/*! TACHYONS v4.7.0 | http://tachyons.io */
-
-/*
- * NOTE: The Tachyons folder is for backup/reference only. This file references the module
- * ________ ______
- * ___ __/_____ _________ /______ ______________________
- * __ / _ __ `/ ___/_ __ \_ / / / __ \_ __ \_ ___/
- * _ / / /_/ // /__ _ / / / /_/ // /_/ / / / /(__ )
- * /_/ \__,_/ \___/ /_/ /_/_\__, / \____//_/ /_//____/
- * /____/
- *
- * TABLE OF CONTENTS
- *
- * 1. External Library Includes
- * - Normalize.css | http://normalize.css.github.io
- * 2. Tachyons Modules
- * 3. Variables
- * - Media Queries
- * - Colors
- * 4. Debugging
- * - Debug all
- * - Debug children
- *
- */
-
-
-/* External Library Includes */
-@import 'tachyons/src/_normalize';
-
-
-/* Modules */
-@import 'tachyons/src/_box-sizing';
-/*@import 'tachyons/src/_aspect-ratios';*/
-@import 'tachyons/src/_images';
-@import 'tachyons/src/_background-size';
-@import 'tachyons/src/_background-position';
-/*@import 'tachyons/src/_outlines';*/
-@import 'tachyons/src/_borders';
-@import 'tachyons/src/_border-colors';
-@import 'tachyons/src/_border-radius';
-@import 'tachyons/src/_border-style';
-@import 'tachyons/src/_border-widths';
-@import 'tachyons/src/_box-shadow';
-/*@import 'tachyons/src/_code';*/
-@import 'tachyons/src/_coordinates';
-@import 'tachyons/src/_clears';
-@import 'tachyons/src/_display';
-@import 'tachyons/src/_flexbox';
-@import 'tachyons/src/_floats';
-/*@import 'tachyons/src/_font-family';*/
-@import 'tachyons/src/_font-style';
-@import 'tachyons/src/_font-weight';
-@import 'tachyons/src/_forms';
-@import 'tachyons/src/_heights';
-@import 'tachyons/src/_letter-spacing';
-@import 'tachyons/src/_line-height';
-@import 'tachyons/src/_links';
-@import 'tachyons/src/_lists';
-@import 'tachyons/src/_max-widths';
-@import 'tachyons/src/_widths';
-@import 'tachyons/src/_overflow';
-@import 'tachyons/src/_position';
-@import 'tachyons/src/_opacity';
-/*@import 'tachyons/src/_rotations';*/
-@import 'tachyons/src/_skins';
-@import 'tachyons/src/_skins-pseudo';
-@import 'tachyons/src/_spacing';
-@import 'tachyons/src/_negative-margins';
-@import 'tachyons/src/_tables';
-@import 'tachyons/src/_text-decoration';
-@import 'tachyons/src/_text-align';
-@import 'tachyons/src/_text-transform';
-@import 'tachyons/src/_type-scale';
-@import 'tachyons/src/_typography';
-@import 'tachyons/src/_utilities';
-@import 'tachyons/src/_visibility';
-@import 'tachyons/src/_white-space';
-@import 'tachyons/src/_vertical-align';
-@import 'tachyons/src/_hovers';
-@import 'tachyons/src/_z-index';
-@import 'tachyons/src/_nested';
-/*@import 'tachyons/src/_styles';*/
-
-/* Variables */
-/* Importing here will allow you to override any variables in the modules */
-@import 'tachyons/src/_colors';
-@import 'tachyons/src/_media-queries';
-
-/* Debugging */
-/*@import 'tachyons/src/_debug-children';
-@import 'tachyons/src/_debug-grid';*/
-
-/* Uncomment out the line below to help debug layout issues */
-/* @import 'tachyons/src/_debug'; */
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css
deleted file mode 100644
index 8701b15303c..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css
+++ /dev/null
@@ -1,16 +0,0 @@
-:root {
- --primary-color: #0594CB;
- --primary-color-dark: #0A1922;
- --primary-color-light: #f9f9f9;
- --accent-color: #EBB951;
- --accent-color-light: #FF4088;
- --accent-color-dark: #33ba91;
- --text-color-primary: #373737;
- --text-on-primary-color: #fff;
- --text-color-secondary: #ccc;
- --text-color-disabled: #F7f7f7;
- --divider-color: #f6f6f6;
- --warn-color: red;
-
- --blue: var(--primary-color);
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css
deleted file mode 100644
index c71f69dd124..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css
+++ /dev/null
@@ -1,39 +0,0 @@
-/*Base Styles*/
-@import '_tachyons';
-
-/* purgecss start ignore */
-@import '_header-link';
-@import '_animation';
-@import '_documentation-styles';
-
-@import 'docsearch.js/dist/cdn/docsearch.min';
-@import '_carousel';
-@import '_code';
-@import '_tabs';
-@import '_color-scheme';
-@import '_columns';
-@import '_content';
-@import '_content-tables';
-@import '_definition-lists';
-@import '_fluid-type';
-@import '_font-family';
-@import '_hugo-internal-template-styling';
-@import '_no-js';
-@import '_social-icons';
-@import '_stickyheader';
-
-@import '_svg';
-@import '_chroma';
-@import '_variables';
-
-.nested-blockquote blockquote {
- border-left: 4px solid var(--primary-color);
- padding-left: 1em;
- /*margin: 0;*/
-}
-
-
-.mw-90 {
- max-width:90%;
-}
-/* purgecss end ignore */
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js
deleted file mode 100644
index e309bdb99ce..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-require("typeface-muli")
-import styles from './css/main.css';
-import './js/clipboardjs.js'
-import './js/codeblocks.js'
-import './js/docsearch.js'
-import './js/hljs.js'
-import './js/lazysizes.js'
-import './js/menutoggle.js'
-import './js/scrolldir.js'
-import './js/smoothscroll.js'
-import './js/tabs.js'
-import './js/nojs.js'
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js
deleted file mode 100644
index ffae31c7fa5..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var Clipboard = require('clipboard/dist/clipboard.js');
-new Clipboard('.copy', {
- target: function(trigger) {
- if(trigger.classList.contains('copy-toggle')){
- return trigger.previousElementSibling;
- }
- return trigger.nextElementSibling;
- }
- }).on('success', function(e) {
- successMessage(e.trigger, 'Copied!');
- e.clearSelection();
- }).on('error', function(e) {
- successMessage(e.trigger, fallbackMessage(e.action));
-});
-
-function successMessage(elem, msg) {
- elem.setAttribute('class', 'copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2');
- elem.setAttribute('aria-label', msg);
-}
-
-function fallbackMessage(elem, action) {
- var actionMsg = '';
- var actionKey = (action === 'cut' ? 'X' : 'C');
- if (isMac) {
- actionMsg = 'Press ⌘-' + actionKey;
- } else {
- actionMsg = 'Press Ctrl-' + actionKey;
- }
- return actionMsg;
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/codeblocks.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/codeblocks.js
deleted file mode 100644
index d8039c5d6f5..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/codeblocks.js
+++ /dev/null
@@ -1,10 +0,0 @@
-let article = document.getElementById('prose')
-
-if (article) {
- let codeBlocks = article.getElementsByTagName('code')
- for (let [key, codeBlock] of Object.entries(codeBlocks)){
- var widthDif = codeBlock.scrollWidth - codeBlock.clientWidth
- if (widthDif > 0)
- codeBlock.parentNode.classList.add('expand')
- }
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js
deleted file mode 100644
index 0074da8cd7f..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var docsearch = require('docsearch.js/dist/cdn/docsearch.js');
-docsearch({
- apiKey: '167e7998590aebda7f9fedcf86bc4a55',
- indexName: 'hugodocs',
- inputSelector: '#search-input',
- debug: true // Set debug to true if you want to inspect the dropdown
-});
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/hljs.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/hljs.js
deleted file mode 100644
index c2252e78315..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/hljs.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var hljs = require('highlight.js/lib/highlight.js');
-
-hljs.registerLanguage('bash', require('highlight.js/lib/languages/bash'));
-hljs.registerLanguage('css', require('highlight.js/lib/languages/css'));
-hljs.registerLanguage('markdown', require('highlight.js/lib/languages/markdown'));
-hljs.registerLanguage('diff', require('highlight.js/lib/languages/diff'));
-// hljs.registerLanguage('go', require('highlight.js/lib/languages/go'));
-hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'));
-hljs.registerLanguage('json', require('highlight.js/lib/languages/json'));
-hljs.registerLanguage('yaml', require('highlight.js/lib/languages/yaml'));
-hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml'));
-hljs.registerLanguage('html', require('highlight.js/lib/languages/handlebars'));
-
-hljs.registerLanguage("go", function(e) {
- var t = { keyword: "code output note warning break default func interface select case map struct chan else goto package switch const fallthrough if range end type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune id autoplay Get", literal: "file download copy true false iota nil Pages with", built_in: "append cap close complex highlight copy imag len make new panic print println real recover delete Site Data tweet youtube ref relref vimeo instagram gist figure innershortcode" };
- return { aliases: ["golang","hugo"], k: t, i: "", c: [e.CLCM, e.CBCM, { cN: "string", v: [e.QSM, { b: "'", e: "[^\\\\]'" }, { b: "`", e: "`" }] }, { cN: "number", v: [{ b: e.CNR + "[dflsi]", r: 1 }, e.CNM] }, { b: /:=/ }, { cN: "function", bK: "func", e: /\s*\{/, eE: !0, c: [e.TM, { cN: "params", b: /\(/, e: /\)/, k: t, i: /["']/ }] }] }
-});
-
-hljs.initHighlightingOnLoad();
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js
deleted file mode 100644
index 4eb3950afe1..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var lazysizes = require('lazysizes');
-// var lsnoscript = require('lazysizes/plugins/noscript/ls.noscript.js');
-var unveilhooks = require('lazysizes/plugins/unveilhooks/ls.unveilhooks.js');
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js
deleted file mode 100644
index f6d3eac9f09..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import styles from './../css/main.css';
-import './clipboardjs.js'
-import './codeblocks.js'
-import './docsearch.js'
-import './lazysizes.js'
-import './menutoggle.js'
-import './scrolldir.js'
-import './smoothscroll.js'
-import './tabs.js'
-import './nojs.js'
-
-// TO use jQuery, just call the modules you want
-// var $ = require('jquery/src/core');
-// require('jquery/src/core/init');
-// require('jquery/src/manipulation');
-
-// OR, use all of them
-// var $ = require('jquery/src/jquery');
-
-// And write your code
-// $('body').append('
was loaded but did not call our provided callback"),JSONPScriptError:s("JSONPScriptError","
-
-{{ end }}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html
deleted file mode 100644
index af615ee7c94..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html
deleted file mode 100644
index 9e72404331f..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
- {{ . }}
-
- {{ end }}
-
- {{ end }}
-
- {{ .heading }}
-
-
-
{{ .heading }}
- Install in seconds, build in milliseconds.
-
-
-
-
-
- We welcome all contributions
-
-
- More ways to contribute
-
- Showcase
- {{/* NOTE: transitions for this section are in themes/gohugoioTheme/src/css/_carousel.css */}}
- Hugo Sponsors
-
- {{with .link}}{{end}}
- {{with .copy}}
-
See what others are saying about Hugo…
-
-
-
-
- {{ range $menu }}{{ $post := printf "%s" .Post }}
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html
deleted file mode 100644
index 61aa11dde70..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{{ $currentPage := . }}
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html
deleted file mode 100644
index 6ad98923e47..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{{ $currentPage := . }}
-{{ $menu := .Site.Menus.global }}
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html
deleted file mode 100644
index af3790b16b1..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html
+++ /dev/null
@@ -1,37 +0,0 @@
-{{ $currentPage := . }}
-{{ $.Scratch.Add "listlinkClasses" "f6 link primary-color-dark hover-white db brand-font ma0 w-100 pv3 ph4" }}
-
-
-
-
- {{ range .Site.Menus.main }}
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html
deleted file mode 100644
index b04866e524b..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
- {{ else }}
-
- {{ .Name }}
-
- {{end}}
-
-
-
-
-
- {{ with $.context.Data.Singular }}{{ . | humanize }}: {{ end }}{{ .context.Title }}
-
- See Also
-
- {{ range . }}
-
-{{ end }}
\ No newline at end of file
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html
deleted file mode 100644
index e541849960e..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html
deleted file mode 100644
index 54472ba16d3..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html
deleted file mode 100644
index 0266c9939eb..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html
+++ /dev/null
@@ -1,38 +0,0 @@
-{{ $currentPage := . }}
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html
deleted file mode 100644
index 7dec9de1815..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-{{ $scripts := resources.Get "output/js/app.js" }}
-{{ $isDev := eq hugo.Environment "development" }}
-{{ if not $isDev }}
-{{ $scripts = $scripts | fingerprint }}
-{{ end }}
-{{ with $scripts }}
- {{ if $isDev }}
-
- {{ else }}
-
- {{ end }}
- {{ $.Scratch.Set "scripts" . }}
-{{end}}
-
-
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html
deleted file mode 100644
index 8c97ac4545f..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html
deleted file mode 100644
index 7b517dbb412..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-{{ with .Site.Social.twitter }}
-
- {{ partial "svg/twitter.svg" (dict "size" "32px") }}
-
-{{ end }}
-Star
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html
deleted file mode 100644
index 0f140cf7035..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
- {{ with .Params.tags }}
-
-
-
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html
deleted file mode 100644
index c695a7aae24..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{{ $langs := (slice "yaml" "toml" "json") }}
-
-
-
-
- {{ range $ind, $art := $.Site.Data.articles.article }}
- Title
- Author
- Date
-
-
- {{ end }}
-
-{{$art.title | markdownify }}
- {{ $art.author | markdownify }}
- {{ $art.date }}
-
-
-
\ No newline at end of file
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/directoryindex.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/directoryindex.html
deleted file mode 100644
index 37e7d3ad116..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/directoryindex.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{{- $pathURL := .Get "pathURL" -}}
-{{- $path := .Get "path" -}}
-{{- $files := readDir $path -}}
-
-
-
-
- {{ range $ind, $art := $.Site.Data.articles.article }}
- Title
- Author
- Date
-
-
- {{ end }}
-
-{{$art.title | markdownify }}
- {{ $art.author | markdownify }}
- {{ $art.date }}
-
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/docfile.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/docfile.html
deleted file mode 100644
index 2f982aae895..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/docfile.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{{ $file := .Get 0}}
-{{ $filepath := $file }}
-{{ $syntax := index (split $file ".") 1 }}
-{{ $syntaxoverride := eq (len .Params) 2 }}
-Size in bytes
- Name
-{{- range $files }}
-
-
-{{- end }}
-{{ .Size }}
- {{ .Name }}
-
-{{- readFile $file -}}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html
deleted file mode 100644
index 24d2cd0b2bd..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/output.html b/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/output.html
deleted file mode 100644
index df1a8ae89de..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/output.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{{$file := .Get "file"}}
-{{$icon := index (split $file ".") 1 }}
-{{ .Inner }}
- {{ .Title }}
-
-
- {{end}}
-
- {{- .Title -}}
-
-
- {{ partial "page-edit.html" . }}
-
- {{ end }}
-
{{.Title}}
- {{ with .Params.siteURL }}
- {{ . | replaceRE "^https?://(www\\.)?([^/]+).*" "$2"}} {{ partial "svg/link-ext.svg" (dict "size" "10") }}
- {{ end }}
- {{ with .Params.siteSource }}
- source {{ partial "svg/link-ext.svg" (dict "size" "10") }}
- {{ end }}
- {{ $bio := (.Resources.ByType "page").GetMatch "bio*" }}
- {{ with $bio }}
-
-
-{{end}}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/package.json b/docs/_vendor/github.com/gohugoio/gohugoioTheme/package.json
deleted file mode 100644
index 9222aad7644..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "gohugo-default-styles",
- "version": "1.1.0",
- "description": "Default Theme for Hugo Sites",
- "main": "index.js",
- "homepage": "https://gohugo.io/",
- "bugs": {
- "url": "https://github.com/gohugoio/gohugoioTheme/issues"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/gohugoio/gohugoioTheme.git"
- },
- "author": "budparr",
- "license": "MIT",
- "scripts": {
- "build": "NODE_ENV=production webpack",
- "build-dev": "NODE_ENV=development webpack --progress --watch",
- "start": "npm run build-dev"
- },
- "devDependencies": {
- "clean-webpack-plugin": "^1.0.0",
- "clipboard": "^2.0.4",
- "css-loader": "^4.3.0",
- "docsearch.js": "^2.6.1",
- "file-loader": "^2.0.0",
- "glob-all": "^3.1.0",
- "highlight.js": "^9.13.1",
- "lazysizes": "^5.2.1",
- "mini-css-extract-plugin": "^0.4.4",
- "postcss": "^7.0.36",
- "postcss-cssnext": "^3.1.0",
- "postcss-import": "^12.0.1",
- "postcss-loader": "^3.0.0",
- "purgecss-webpack-plugin": "^1.3.1",
- "scrolldir": "^1.4.0",
- "tachyons": "^4.7.0",
- "typeface-muli": "0.0.54",
- "webpack": "^4.44.1",
- "webpack-command": "^0.4.2"
- },
- "dependencies": {}
-}
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/static/apple-touch-icon.png b/docs/_vendor/github.com/gohugoio/gohugoioTheme/static/apple-touch-icon.png
deleted file mode 100644
index ecf1fc020af..00000000000
Binary files a/docs/_vendor/github.com/gohugoio/gohugoioTheme/static/apple-touch-icon.png and /dev/null differ
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/static/browserconfig.xml b/docs/_vendor/github.com/gohugoio/gohugoioTheme/static/browserconfig.xml
deleted file mode 100644
index 62400c5f23c..00000000000
--- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/static/browserconfig.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
prevail!
+ John-->>Alice: Great!
+ John->>Bob: How about you?
+ Bob-->>John: Jolly good!
+```
+````
+
+## Goat ASCII diagram examples
+
+### Graphics
+
+```goat
+ .
+ 0 3 P * Eye / ^ /
+ *-------* +y \ +) \ / Reflection
+ 1 /| 2 /| ^ \ \ \ v
+ *-------* | | v0 \ v3 --------*--------
+ | |4 | |7 | *----\-----*
+ | *-----|-* +-----> +x / v X \ .-.<-------- o
+ |/ |/ / / o \ | / | Refraction / \
+ *-------* v / \ +-' / \
+ 5 6 +z v1 *------------------* v2 | o-----o
+ v
+
+```
+
+### Complex
+
+```goat
++-------------------+ ^ .---.
+| A Box |__.--.__ __.--> | .-. | |
+| | '--' v | * |<--- | |
++-------------------+ '-' | |
+ Round *---(-. |
+ .-----------------. .-------. .----------. .-------. | | |
+ | Mixed Rounded | | | / Diagonals \ | | | | | |
+ | & Square Corners | '--. .--' / \ |---+---| '-)-' .--------.
+ '--+------------+-' .--. | '-------+--------' | | | | / Search /
+ | | | | '---. | '-------' | '-+------'
+ |<---------->| | | | v Interior | ^
+ ' <---' '----' .-----------. ---. .--- v |
+ .------------------. Diag line | .-------. +---. \ / . |
+ | if (a > b) +---. .--->| | | | | Curved line \ / / \ |
+ | obj->fcn() | \ / | '-------' |<--' + / \ |
+ '------------------' '--' '--+--------' .--. .--. | .-. +Done?+-'
+ .---+-----. | ^ |\ | | /| .--+ | | \ /
+ | | | Join \|/ | | Curved | \| |/ | | \ | \ /
+ | | +----> o --o-- '-' Vertical '--' '--' '-- '--' + .---.
+ <--+---+-----' | /|\ | | 3 |
+ v not:line 'quotes' .-' '---'
+ .-. .---+--------. / A || B *bold* | ^
+ | | | Not a dot | <---+---<-- A dash--is not a line v |
+ '-' '---------+--' / Nor/is this. ---
+
+```
+
+### Process
+
+```goat
+ .
+ .---------. / \
+ | START | / \ .-+-------+-. ___________
+ '----+----' .-------. A / \ B | |COMPLEX| | / \ .-.
+ | | END |<-----+CHOICE +----->| | | +--->+ PREPARATION +--->| X |
+ v '-------' \ / | |PROCESS| | \___________/ '-'
+ .---------. \ / '-+---+---+-'
+ / INPUT / \ /
+ '-----+---' '
+ | ^
+ v |
+ .-----------. .-----+-----. .-.
+ | PROCESS +---------------->| PROCESS |<------+ X |
+ '-----------' '-----------' '-'
+```
+
+### File tree
+
+Created from
+ {{ range . }}
+
+{{ end }}
+```
-lang
-: A Glob pattern matching the Page's language, e.g. "{en,sv}".
+[`GetTerms`]: /methods/page/getterms/
-Any of the above can be omitted.
+## Cascade
-### Example
+A [node](g) can cascade front matter values to its descendants. However, this cascading will be prevented if the descendant already defines the field, or if a closer ancestor node has already cascaded a value for that same field.
-In `content/blog/_index.md`
+For example, to cascade a "color" parameter from the home page to all its descendants:
-{{< code-toggle copy="false" >}}
-title: Blog
-cascade:
- banner: images/typewriter.jpg
-{{ code-toggle >}}
+{{< code-toggle file=content/_index.md fm=true >}}
+title = 'Home'
+[cascade.params]
+color = 'red'
+{{< /code-toggle >}}
-With the above example the Blog section page and its descendants will return `images/typewriter.jpg` when `.Params.banner` is invoked unless:
+{{< new-in 0.153.0 />}}
+From Hugo 0.153.0, you can also set the [sites](#sites) front matter as cascade front matter values, which means that you can e.g. apply one or more languages to the `target` pages.
-- Said descendant has its own `banner` value set
-- Or a closer ancestor node has its own `cascade.banner` value set.
+### Target
+
+The `target`[^1] keyword allows you to target specific pages or [environments](g). For example, to cascade a "color" parameter from the home page only to pages within the "articles" section, including the "articles" section page itself:
-## Order Content Through Front Matter
+[^1]: The `_target` alias for `target` is deprecated and will be removed in a future release.
-You can assign content-specific `weight` in the front matter of your content. These values are especially useful for [ordering][ordering] in list views. You can use `weight` for ordering of content and the convention of [`
```
-Or individually access EXIF data with dot access, e.g.:
+Example 2: Skip image rendering if the resource is not found.
```go-html-template
-{{ with $src.Exif }}
-
- {{ with .Date }}
+{{ $image := .Resources.GetMatch "sunset.jpg" }}
+{{ with $image }}
+
{{ end }}
```
-Some fields may need to be formatted with [`lang.FormatNumberCustom`]({{< relref "functions/lang" >}}) function to prevent display like `Aperture: 2.278934289` instead of `Aperture: 2.28`.
-
-#### Exif fields
-
-Date
-: "photo taken" date/time
-
-Lat
-: "photo taken where", GPS latitude
-
-Long
-: "photo taken where", GPS longitude
-
-See [Image Processing Config](#image-processing-config) for how to configure what gets included in Exif.
-
-## Image Processing Options
-
-In addition to the dimensions (e.g. `600x400`), Hugo supports a set of additional image options.
-
-### Background Color
-
-The background color to fill into the transparency layer. This is mostly useful when converting to a format that does not support transparency, e.g. `JPEG`.
-
-You can set the background color to use with a 3 or 6 digit hex code starting with `#`.
-
-```go
-{{ $image.Resize "600x jpg #b31280" }}
-```
-
-For color codes, see https://www.google.com/search?q=color+picker
-
-**Note** that you also set a default background color to use, see [Image Processing Config](#image-processing-config).
-
-### JPEG and WebP Quality
-
-Only relevant for JPEG and WebP images, values 1 to 100 inclusive, higher is better. Default is 75.
-
-```go
-{{ $image.Resize "600x q50" }}
-```
-
-{{< new-in "0.83.0" >}} WebP support was added in Hugo 0.83.0.
-
-### Hint
-
- {{< new-in "0.83.0" >}}
-
- {{< new-in "0.83.0" >}}
-
-Hint about what type of image this is. Currently only used when encoding to WebP.
-
-Default value is `photo`.
-
-Valid values are `picture`, `photo`, `drawing`, `icon`, or `text`.
-
-```go
-{{ $image.Resize "600x webp drawing" }}
-```
-
-### Rotate
-
-Rotates an image by the given angle counter-clockwise. The rotation will be performed first to get the dimensions correct. The main use of this is to be able to manually correct for [EXIF orientation](https://github.com/golang/go/issues/4341) of JPEG images.
-
-```go
-{{ $image.Resize "600x r90" }}
-```
-
-### Anchor
+Example 3: A more concise way to skip image rendering if the resource is not found.
-Only relevant for the `Fill` method. This is useful for thumbnail generation where the main motive is located in, say, the left corner.
-
-Valid values are `Smart`, `Center`, `TopLeft`, `Top`, `TopRight`, `Left`, `Right`, `BottomLeft`, `Bottom`, `BottomRight`.
-
-Default value is `Smart`, which uses [Smartcrop](https://github.com/muesli/smartcrop) to determine the best crop.
-
-```go
-{{ $image.Fill "300x200 BottomLeft" }}
+```go-html-template
+{{ with .Resources.GetMatch "sunset.jpg" }}
+
+{{ end }}
```
-### Resample Filter
+Example 4: Skip rendering if there's problem accessing a remote resource.
-Filter used in resizing. Default is `Box`, a simple and fast resampling filter appropriate for downscaling.
-
-Examples are: `Box`, `NearestNeighbor`, `Linear`, `Gaussian`.
-
-See https://github.com/disintegration/imaging for more. If you want to trade quality for faster processing, this may be a option to test.
-
-```go
-{{ $image.Resize "600x400 Gaussian" }}
+```go-html-template
+{{ $url := "https://gohugo.io/img/hugo-logo.png" }}
+{{ with try (resources.GetRemote $url) }}
+ {{ with .Err }}
+ {{ errorf "%s" . }}
+ {{ else with .Value }}
+
+ {{ else }}
+ {{ errorf "Unable to get remote resource %q" $url }}
+ {{ end }}
+{{ end }}
```
-### Target Format
+{{% include "/_common/functions/reflect/image-reflection-functions.md" %}}
-By default the images is encoded in the source format, but you can set the target format as an option.
+## Processing
-Valid values are `bmp`, `gif`, `jpeg`, `jpg`, `png`, `tif`, `tiff`, and `webp`.
+To transform an image, apply a processing method to the image resource. Hugo generates the processed image on demand, caches the result, and returns a new resource object.
-```go
-{{ $image.Resize "600x jpg" }}
+```go-html-template
+{{ with .Resources.Get "sunset.jpg" }}
+ {{ with .Resize "400x" }}
+
+ {{ end }}
+{{ end }}
```
-{{< new-in "0.83.0" >}} WebP support was added in Hugo 0.83.0.
-
-## Image Processing Examples
-
-_The photo of the sunset used in the examples below is Copyright [Bjørn Erik Pedersen](https://commons.wikimedia.org/wiki/User:Bep) (Creative Commons Attribution-Share Alike 4.0 International license)_
-
-{{< imgproc sunset Resize "300x" />}}
+> [!note]
+> Metadata is not preserved during image transformation. Use the [`Meta`][] method with the original image resource to extract metadata from supported formats.
-{{< imgproc sunset Fill "90x120 left" />}}
+Select a method from the table below for syntax and usage examples, depending on your specific transformation or metadata requirements:
-{{< imgproc sunset Fill "90x120 right" />}}
+{{% render-table-of-pages-in-section
+ path=/methods/resource
+ filter=methods_resource_image_processing
+ filterType=include
+ headingColumn1=Method
+ headingColumn2=Description
+%}}{class="!mt-0"}
-{{< imgproc sunset Fit "90x90" />}}
+## Performance
-{{< imgproc sunset Resize "300x q10" />}}
+### Caching
-This is the shortcode used in the examples above:
+Hugo processes images on demand and returns a new resource object. To ensure subsequent builds remain fast, Hugo caches the results in the directory specified in the [file cache][] section of your project configuration.
-{{< code file="layouts/shortcodes/imgproc.html" >}}
-{{< readfile file="layouts/shortcodes/imgproc.html" >}}
-{{< /code >}}
-
-And it is used like this:
-
-```go-html-template
-{{* imgproc sunset Resize "300x" /*/>}}
-```
-
-{{% note %}}
-**Tip:** Note the self-closing shortcode syntax above. The `imgproc` shortcode can be called both with and without **inner content**.
-{{% /note %}}
-
-## Image Processing Config
-
-You can configure an `imaging` section in `config.toml` with default image processing options:
+If you host your site with Netlify, include the following in your project configuration to persist the image cache between builds:
```toml
-[imaging]
-# Default resample filter used for resizing. Default is Box,
-# a simple and fast averaging filter appropriate for downscaling.
-# See https://github.com/disintegration/imaging
-resampleFilter = "box"
-
-# Default JPEG or WebP quality setting. Default is 75.
-quality = 75
-
-# Default hint about what type of image. Currently only used for WebP encoding.
-# Default is "photo".
-# Valid values are "picture", "photo", "drawing", "icon", or "text".
-hint = "photo"
-
-# Anchor used when cropping pictures.
-# Default is "smart" which does Smart Cropping, using https://github.com/muesli/smartcrop
-# Smart Cropping is content aware and tries to find the best crop for each image.
-# Valid values are Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight
-anchor = "smart"
-
-# Default background color.
-# Hugo will preserve transparency for target formats that supports it,
-# but will fall back to this color for JPEG.
-# Expects a standard HEX color string with 3 or 6 digits.
-# See https://www.google.com/search?q=color+picker
-bgColor = "#ffffff"
-
-[imaging.exif]
- # Regexp matching the fields you want to Exclude from the (massive) set of Exif info
-# available. As we cache this info to disk, this is for performance and
-# disk space reasons more than anything.
-# If you want it all, put ".*" in this config setting.
-# Note that if neither this or ExcludeFields is set, Hugo will return a small
-# default set.
-includeFields = ""
-
-# Regexp matching the Exif fields you want to exclude. This may be easier to use
-# than IncludeFields above, depending on what you want.
-excludeFields = ""
-
-# Hugo extracts the "photo taken" date/time into .Date by default.
-# Set this to true to turn it off.
-disableDate = false
-
-# Hugo extracts the "photo taken where" (GPS latitude and longitude) into
-# .Long and .Lat. Set this to true to turn it off.
-disableLatLong = false
+[caches]
+ [caches.images]
+ dir = ':cacheDir/images'
```
-## Smart Cropping of Images
-
-By default, Hugo will use [Smartcrop](https://github.com/muesli/smartcrop), a library created by [muesli](https://github.com/muesli), when cropping images with `.Fill`. You can set the anchor point manually, but in most cases the smart option will make a good choice. And we will work with the library author to improve this in the future.
+### Garbage collection
-An example using the sunset image from above:
+If you change image processing methods, or rename/remove images, the cache will eventually contain unused files. To remove them and reclaim disk space, run Hugo's garbage collection:
-{{< imgproc sunset Fill "200x200 smart" />}}
+```text
+hugo build --gc
+```
-## Image Processing Performance Consideration
+### Resource usage
-Processed images are stored below `
+
+```
+
+In most cases, place the attribute list beneath the markup element. For headings and fenced code blocks, place the attribute list on the right.
+
+Element|Position of attribute list
+:--|:--
+blockquote|bottom
+fenced code block|right
+heading|right
+horizontal rule|bottom
+image|bottom
+list|bottom
+paragraph|bottom
+table|bottom
+
+For example:
+
+````text
+## Section 1 {class=foo}
+
+```sh {class=foo linenos=inline}
+declare a=1
+echo "${a}"
+```
+
+This is a paragraph.
+{class=foo}
+````
+
+As shown above, the attribute list for fenced code blocks is not limited to HTML attributes. You can also configure syntax highlighting by passing one or more of [these options](/functions/transform/highlight/#options).
+
+[render hook templates]: /render-hooks/introduction/
diff --git a/docs/content/en/content-management/mathematics.md b/docs/content/en/content-management/mathematics.md
new file mode 100644
index 00000000000..6b86cac1c66
--- /dev/null
+++ b/docs/content/en/content-management/mathematics.md
@@ -0,0 +1,237 @@
+---
+title: Mathematics in Markdown
+linkTitle: Mathematics
+description: Include mathematical equations and expressions in Markdown using LaTeX markup.
+categories: []
+keywords: []
+---
+
+## Overview
+
+Mathematical equations and expressions written in [LaTeX][] are common in academic and scientific publications. Your browser typically renders this mathematical markup using an open-source JavaScript display engine such as [MathJax][] or [KaTeX][].
+
+For example, this LaTeX markup:
+
+```text
+\[
+\begin{aligned}
+KL(\hat{y} || y) &= \sum_{c=1}^{M}\hat{y}_c \log{\frac{\hat{y}_c}{y_c}} \\
+JS(\hat{y} || y) &= \frac{1}{2}(KL(y||\frac{y+\hat{y}}{2}) + KL(\hat{y}||\frac{y+\hat{y}}{2}))
+\end{aligned}
+\]
+```
+
+Is rendered to:
+
+\[
+\begin{aligned}
+KL(\hat{y} || y) &= \sum_{c=1}^{M}\hat{y}_c \log{\frac{\hat{y}_c}{y_c}} \\
+JS(\hat{y} || y) &= \frac{1}{2}(KL(y||\frac{y+\hat{y}}{2}) + KL(\hat{y}||\frac{y+\hat{y}}{2}))
+\end{aligned}
+\]
+
+Equations and expressions can be displayed inline with other text, or as standalone blocks. Block presentation is also known as "display" mode.
+
+Whether an equation or expression appears inline, or as a block, depends on the delimiters that surround the mathematical markup. Delimiters are defined in pairs, where each pair consists of an opening and closing delimiter. The opening and closing delimiters may be the same, or different.
+
+> [!note]
+> You can configure Hugo to render mathematical markup on the client side using the MathJax or KaTeX display engine, or you can render the markup with the [`transform.ToMath`][] function while building your project.
+>
+> The first approach is described below.
+
+## Setup
+
+Follow these instructions to include mathematical equations and expressions in your Markdown using LaTeX markup.
+
+Step 1
+: Enable and configure the Goldmark [passthrough extension][] in your project configuration. The passthrough extension preserves raw Markdown within delimited snippets of text, including the delimiters themselves.
+
+ {{< code-toggle file=hugo copy=true >}}
+ [markup.goldmark.extensions.passthrough]
+ enable = true
+
+ [markup.goldmark.extensions.passthrough.delimiters]
+ block = [['\[', '\]'], ['$$', '$$']]
+ inline = [['\(', '\)']]
+
+ [params]
+ math = true
+ {{< /code-toggle >}}
+
+ The configuration above enables mathematical rendering on every page unless you set the `math` parameter to `false` in front matter. To enable mathematical rendering as needed, set the `math` parameter to `false` in your project configuration, and set the `math` parameter to `true` in front matter. Use this parameter in your base template as shown in [Step 3][].
+
+ > [!note]
+ > The configuration above precludes the use of the `$...$` delimiter pair for inline equations. Although you can add this delimiter pair to the configuration and JavaScript, you must double-escape the `$` symbol when used outside of math contexts to avoid unintended formatting.
+ >
+ > See the [inline delimiters][] section for details.
+
+ To disable passthrough of inline snippets, omit the `inline` key from the configuration:
+
+ {{< code-toggle file=hugo >}}
+ [markup.goldmark.extensions.passthrough.delimiters]
+ block = [['\[', '\]'], ['$$', '$$']]
+ {{< /code-toggle >}}
+
+ You can define your own opening and closing delimiters, provided they match the delimiters that you set in [Step 2][].
+
+ {{< code-toggle file=hugo >}}
+ [markup.goldmark.extensions.passthrough.delimiters]
+ block = [['@@', '@@']]
+ inline = [['@', '@']]
+ {{< /code-toggle >}}
+
+Step 2
+: Create a _partial_ template to load MathJax or KaTeX. The example below loads MathJax, or you can use KaTeX as described in the [engines][] section.
+
+ ```go-html-template {file="layouts/_partials/math.html" copy=true}
+
+
+
+ ```
+
+ The delimiters above must match the delimiters in your project configuration.
+
+Step 3
+: Conditionally call the _partial_ template from the base template.
+
+ ```go-html-template {file="layouts/baseof.html"}
+
+ ...
+ {{ if .Param "math" }}
+ {{ partialCached "math.html" . }}
+ {{ end }}
+ ...
+
+ ```
+
+ The example above loads the _partial_ template if you have set the `math` parameter in front matter to `true`. If you have not set the `math` parameter in front matter, the conditional statement falls back to the `math` parameter in your project configuration.
+
+Step 4
+: If you set the `math` parameter to `false` in your project configuration, you must set the `math` parameter to `true` in front matter. For example:
+
+ {{< code-toggle file=content/math-examples.md fm=true >}}
+ title = 'Math examples'
+ date = 2024-01-24T18:09:49-08:00
+ [params]
+ math = true
+ {{< /code-toggle >}}
+
+Step 5
+: Include mathematical equations and expressions in Markdown using LaTeX markup.
+
+ ```text {file="content/math-examples.md" copy=true}
+ This is an inline \(a^*=x-b^*\) equation.
+
+ These are block equations:
+
+ \[a^*=x-b^*\]
+
+ \[ a^*=x-b^* \]
+
+ \[
+ a^*=x-b^*
+ \]
+
+ These are also block equations:
+
+ $$a^*=x-b^*$$
+
+ $$ a^*=x-b^* $$
+
+ $$
+ a^*=x-b^*
+ $$
+ ```
+
+## Inline delimiters
+
+The configuration, JavaScript, and examples above use the `\(...\)` delimiter pair for inline equations. The `$...$` delimiter pair is a common alternative, but using it may result in unintended formatting if you use the `$` symbol outside of math contexts.
+
+If you add the `$...$` delimiter pair to your configuration and JavaScript, you must double-escape the `$` symbol when used outside of math contexts to avoid unintended formatting. For example:
+
+```text
+I will give you \\$2 if you can solve $y = x^2$.
+```
+
+> [!note]
+> If you use the `$...$` delimiter pair for inline equations, and occasionally use the `$` symbol outside of math contexts, you must use MathJax instead of KaTeX to avoid unintended formatting caused by [this KaTeX limitation][].
+
+## Engines
+
+MathJax and KaTeX are open-source JavaScript display engines.
+
+> [!note]
+> If you use the `$...$` delimiter pair for inline equations, and occasionally use the `$` symbol outside of math contexts, you must use MathJax instead of KaTeX to avoid unintended formatting caused by [this KaTeX limitation][].
+>
+>See the [inline delimiters][] section for details.
+
+To use KaTeX instead of MathJax, replace the _partial_ template from [Step 2][] with this:
+
+```go-html-template {file="layouts/_partials/math.html" copy=true}
+
+
+
+
+```
+
+The delimiters above must match the delimiters in your project configuration.
+
+## Chemistry
+
+Both MathJax and KaTeX provide support for chemical equations. For example:
+
+```text
+$$C_p[\ce{H2O(l)}] = \pu{75.3 J // mol K}$$
+```
+
+$$C_p[\ce{H2O(l)}] = \pu{75.3 J // mol K}$$
+
+As shown in [Step 2][] above, MathJax supports chemical equations without additional configuration. To add chemistry support to KaTeX, enable the mhchem extension as described in the KaTeX [documentation](https://katex.org/docs/libs).
+
+[`transform.ToMath`]: /functions/transform/tomath/
+[engines]: #engines
+[inline delimiters]: #inline-delimiters
+[KaTeX]: https://katex.org/
+[LaTeX]: https://www.latex-project.org/
+[MathJax]: https://www.mathjax.org/
+[passthrough extension]: /configuration/markup/#passthrough
+[Step 2]: #step-2
+[Step 3]: #step-3
+[this KaTeX limitation]: https://github.com/KaTeX/KaTeX/issues/437
diff --git a/docs/content/en/content-management/menus.md b/docs/content/en/content-management/menus.md
index aefc99e00b7..766cad7ef8f 100644
--- a/docs/content/en/content-management/menus.md
+++ b/docs/content/en/content-management/menus.md
@@ -1,133 +1,99 @@
---
title: Menus
-linktitle: Menus
-description: Hugo has a simple yet powerful menu system.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-03-31
-categories: [content management]
-keywords: [menus]
-draft: false
-menu:
- docs:
- parent: "content-management"
- weight: 120
-weight: 120
+description: Create menus by defining entries, localizing each entry, and rendering the resulting data structure.
+categories: []
+keywords: []
aliases: [/extras/menus/]
-toc: true
---
-{{% note "Lazy Blogger"%}}
-If all you want is a simple menu for your sections, see the ["Section Menu for Lazy Bloggers" in Menu Templates](/templates/menu-templates/#section-menu-for-lazy-bloggers).
-{{% /note %}}
+## Overview
-You can do this:
+To create a menu for your site:
-* Place content in one or many menus
-* Handle nested menus with unlimited depth
-* Create menu entries without being attached to any content
-* Distinguish active element (and active branch)
+1. Define the menu entries
+1. [Localize](multilingual/#menus) each entry
+1. Render the menu with a [template]
-## What is a Menu in Hugo?
+Create multiple menus, either flat or nested. For example, create a main menu for the header, and a separate menu for the footer.
-A **menu** is a named array of menu entries accessible by name via the [`.Site.Menus` site variable][sitevars]. For example, you can access your site's `main` menu via `.Site.Menus.main`.
+There are three ways to define menu entries:
-{{% note "Menus on Multilingual Sites" %}}
-If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus.
-{{% /note %}}
+1. Automatically
+1. In front matter
+1. In your project configuration
-See the [Menu Entry Properties][me-props] for all the variables and functions related to a menu entry.
+> [!note]
+> Although you can use these methods in combination when defining a menu, the menu will be easier to conceptualize and maintain if you use one method throughout the site.
-## Add content to menus
+## Define automatically
-Hugo allows you to add content to a menu via the content's [front matter](/content-management/front-matter/).
+To automatically define a menu entry for each top-level [section](g) of your site, enable the section pages menu in your project configuration.
-### Simple
-
-If all you need to do is add an entry to a menu, the simple form works well.
+{{< code-toggle file=hugo >}}
+sectionPagesMenu = 'main'
+{{< /code-toggle >}}
-#### A Single Menu
+This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details.
-{{< code-toggle >}}
-menu: "main"
-{{< /code-toggle >}}
+## Define in front matter
-#### Multiple Menus
+To add a page to the "main" menu:
-{{< code-toggle >}}
-menu: ["main", "footer"]
+{{< code-toggle file=content/about.md fm=true >}}
+title = 'About'
+menus = 'main'
{{< /code-toggle >}}
-#### Advanced
+Access the entry with `site.Menus.main` in your templates. See [menu templates] for details.
-{{< code-toggle >}}
-menu:
- docs:
- parent: 'extras'
- weight: 20
-{{< /code-toggle >}}
+To add a page to the "main" and "footer" menus:
-## Add Non-content Entries to a Menu
-
-You can also add entries to menus that aren’t attached to a piece of content. This takes place in your Hugo project's [`config` file][config].
-
-Here’s an example snippet pulled from a configuration file:
-
-{{< code-toggle file="config" >}}
-[[menu.main]]
- name = "about hugo"
- pre = ""
- weight = -110
- identifier = "about"
- url = "/about/"
-[[menu.main]]
- name = "getting started"
- pre = ""
- post = "New!"
- weight = -100
- url = "/getting-started/"
+{{< code-toggle file=content/contact.md fm=true >}}
+title = 'Contact'
+menus = ['main','footer']
{{< /code-toggle >}}
-{{% note %}}
-The URLs must be relative to the context root. If the `baseURL` is `https://example.com/mysite/`, then the URLs in the menu must not include the context root `mysite`. Using an absolute URL will override the baseURL. If the value used for `URL` in the above example is `https://subdomain.example.com/`, the output will be `https://subdomain.example.com`.
-{{% /note %}}
+Access the entry with `site.Menus.main` and `site.Menus.footer` in your templates. See [menu templates] for details.
+
+> [!note]
+> The configuration key in the examples above is `menus`. The `menu` (singular) configuration key is an alias for `menus`.
-## Nesting
+### Properties
-All nesting of content is done via the `parent` field.
+Use these properties when defining menu entries in front matter:
-The parent of an entry should be the identifier of another entry. The identifier should be unique (within a menu).
+{{% include "/_common/menu-entry-properties.md" %}}
-The following order is used to determine an Identifier:
+### Example
-`.Name > .LinkTitle > .Title`
+This front matter menu entry demonstrates some of the available properties:
-This means that `.Title` will be used unless `.LinkTitle` is present, etc. In practice, `.Name` and `.Identifier` are only used to structure relationships and therefore never displayed.
+
+{{< code-toggle file=content/products/software.md fm=true >}}
+title = 'Software'
+[menus.main]
+parent = 'Products'
+weight = 20
+pre = ''
+[menus.main.params]
+class = 'center'
+{{< /code-toggle >}}
+
-In this example, the top level of the menu is defined in your [site `config` file][config]. All content entries are attached to one of these entries via the `.Parent` field.
+Access the entry with `site.Menus.main` in your templates. See [menu templates] for details.
-## Params
+## Define in project configuration
-You can also add user-defined content to menu items via the `params` field.
+See [configure menus](/configuration/menus/).
-A common use case is to define a custom param to add a css class to a specific menu item.
+## Localize
-{{< code-toggle file="config" >}}
-[[menu.main]]
- name = "about hugo"
- pre = ""
- weight = -110
- identifier = "about"
- url = "/about/"
- [menu.main.params]
- class = "highlight-menu-item"
-{{ code-toggle >}}
+Hugo provides two methods to localize your menu entries. See [multilingual].
-## Render Menus
+## Render
-See [Menu Templates](/templates/menu-templates/) for information on how to render your site menus within your templates.
+See [menu templates].
-[config]: /getting-started/configuration/
-[multilingual]: /content-management/multilingual/
-[sitevars]: /variables/
-[me-props]: /variables/menus/
+[menu templates]: /templates/menu/
+[multilingual]: /content-management/multilingual/#menus
+[template]: /templates/menu/
diff --git a/docs/content/en/content-management/multilingual.md b/docs/content/en/content-management/multilingual.md
index 620ec0b9309..d3904db71ca 100644
--- a/docs/content/en/content-management/multilingual.md
+++ b/docs/content/en/content-management/multilingual.md
@@ -1,207 +1,51 @@
---
-title: Multilingual Mode
-linktitle: Multilingual
-description: Hugo supports the creation of websites with multiple languages side by side.
-date: 2017-01-10
-publishdate: 2017-01-10
-lastmod: 2017-01-10
-categories: [content management]
-keywords: [multilingual,i18n, internationalization]
-menu:
- docs:
- parent: "content-management"
- weight: 150
-weight: 150 #rem
-draft: false
+title: Multilingual mode
+linkTitle: Multilingual
+description: Localize your project for each language and region, including translations, images, dates, currencies, numbers, percentages, and collation sequence. Hugo's multilingual framework supports single-host and multihost configurations.
+categories: []
+keywords: []
aliases: [/content/multilingual/,/tutorials/create-a-multilingual-site/]
-toc: true
---
-You should define the available languages in a `languages` section in your site configuration.
+## Configuration
-> Also See [Hugo Multilingual Part 1: Content translation]
+See [configure languages](/configuration/languages/).
-## Configure Languages
-
-The following is an example of a site configuration for a multilingual Hugo project:
-
-{{< code-toggle file="config" >}}
-defaultContentLanguage = "en"
-copyright = "Everything is mine"
-
-[params]
-[params.navigation]
-help = "Help"
-
-[languages]
-[languages.en]
-title = "My blog"
-weight = 1
-[languages.en.params]
-linkedin = "https://linkedin.com/whoever"
-
-[languages.fr]
-title = "Mon blogue"
-weight = 2
-[languages.fr.params]
-linkedin = "https://linkedin.com/fr/whoever"
-[languages.fr.params.navigation]
-help = "Aide"
-
-[languages.ar]
-title = "مدونتي"
-weight = 2
-languagedirection = "rtl"
-
-[languages.pt-pt]
-title = "O meu blog"
-weight = 3
-{{< /code-toggle >}}
-
-Anything not defined in a `languages` block will fall back to the global value for that key (e.g., `copyright` for the English `en` language). This also works for `params`, as demonstrated with `help` above: You will get the value `Aide` in French and `Help` in all the languages without this parameter set.
-
-With the configuration above, all content, sitemap, RSS feeds, paginations,
-and taxonomy pages will be rendered below `/` in English (your default content language) and then below `/fr` in French.
-
-When working with front matter `Params` in [single page templates], omit the `params` in the key for the translation.
-
-`defaultContentLanguage` sets the project's default language. If not set, the default language will be `en`.
-
-If the default language needs to be rendered below its own language code (`/en`) like the others, set `defaultContentLanguageInSubdir: true`.
-
-Only the obvious non-global options can be overridden per language. Examples of global options are `baseURL`, `buildDrafts`, etc.
-
-**Please note:** use lowercase language codes, even when using regional languages (ie. use pt-pt instead of pt-PT). Currently Hugo language internals lowercase language codes, which can cause conflicts with settings like `defaultContentLanguage` which are not lowercased. Please track the evolution of this issue in [Hugo repository issue tracker](https://github.com/gohugoio/hugo/issues/7344)
-
-### Disable a Language
-
-You can disable one or more languages. This can be useful when working on a new translation.
-
-{{< code-toggle file="config" >}}
-disableLanguages = ["fr", "ja"]
-{{< /code-toggle >}}
-
-Note that you cannot disable the default content language.
-
-We kept this as a standalone setting to make it easier to set via [OS environment]:
-
-```bash
-HUGO_DISABLELANGUAGES="fr ja" hugo
-```
-
-If you have already a list of disabled languages in `config.toml`, you can enable them in development like this:
-
-```bash
-HUGO_DISABLELANGUAGES=" " hugo server
-```
-
-### Configure Multilingual Multihost
-
-From **Hugo 0.31** we support multiple languages in a multihost configuration. See [this issue](https://github.com/gohugoio/hugo/issues/4027) for details.
-
-This means that you can now configure a `baseURL` per `language`:
-
-> If a `baseURL` is set on the `language` level, then all languages must have one and they must all be different.
-
-Example:
-
-{{< code-toggle file="config" >}}
-[languages]
-[languages.fr]
-baseURL = "https://example.fr"
-languageName = "Français"
-weight = 1
-title = "En Français"
-
-[languages.en]
-baseURL = "https://example.com"
-languageName = "English"
-weight = 2
-title = "In English"
-{{ code-toggle >}}
-
-With the above, the two sites will be generated into `public` with their own root:
-
-```text
-public
-├── en
-└── fr
-```
-
-**All URLs (i.e `.Permalink` etc.) will be generated from that root. So the English home page above will have its `.Permalink` set to `https://example.com/`.**
-
-When you run `hugo server` we will start multiple HTTP servers. You will typically see something like this in the console:
-
-```text
-Web Server is available at 127.0.0.1:1313 (bind address 127.0.0.1)
-Web Server is available at 127.0.0.1:1314 (bind address 127.0.0.1)
-Press Ctrl+C to stop
-```
-
-Live reload and `--navigateToChanged` between the servers work as expected.
-
-### Taxonomies and Blackfriday
-
-Taxonomies and [Blackfriday configuration][config] can also be set per language:
-
-{{< code-toggle file="config" >}}
-[Taxonomies]
-tag = "tags"
-
-[blackfriday]
-angledQuotes = true
-hrefTargetBlank = true
-
-[languages]
-[languages.en]
-weight = 1
-title = "English"
-[languages.en.blackfriday]
-angledQuotes = false
-
-[languages.fr]
-weight = 2
-title = "Français"
-[languages.fr.Taxonomies]
-plaque = "plaques"
-{{ code-toggle >}}
-
-## Translate Your Content
+## Translate your content
There are two ways to manage your content translations. Both ensure each page is assigned a language and is linked to its counterpart translations.
-### Translation by filename
+### Translation by file name
Considering the following example:
1. `/content/about.en.md`
-2. `/content/about.fr.md`
+1. `/content/about.fr.md`
The first file is assigned the English language and is linked to the second.
The second file is assigned the French language and is linked to the first.
-Their language is __assigned__ according to the language code added as a __suffix to the filename__.
+Their language is assigned according to the language code added as a suffix to the file name.
-By having the same **path and base filename**, the content pieces are __linked__ together as translated pages.
+By having the same path and base file name, the content pieces are linked together as translated pages.
-{{< note >}}
-If a file has no language code, it will be assigned the default language.
-{{ note >}}
+> [!note]
+> If a file has no language code, it will be assigned the default language.
### Translation by content directory
-This system uses different content directories for each of the languages. Each language's content directory is set using the `contentDir` param.
-
-{{< code-toggle file="config" >}}
-languages:
- en:
- weight: 10
- languageName: "English"
- contentDir: "content/english"
- fr:
- weight: 20
- languageName: "Français"
- contentDir: "content/french"
+This system uses different content directories for each of the languages. Each language's `content` directory is set using the `contentDir` parameter.
+
+{{< code-toggle file=hugo >}}
+[languages.en]
+contentDir = 'content/english'
+label = "English"
+weight = 10
+
+[languages.fr]
+contentDir = 'content/french'
+label = "Français"
+weight = 20
{{< /code-toggle >}}
The value of `contentDir` can be any valid path -- even absolute path references. The only restriction is that the content directories cannot overlap.
@@ -209,14 +53,14 @@ The value of `contentDir` can be any valid path -- even absolute path references
Considering the following example in conjunction with the configuration above:
1. `/content/english/about.md`
-2. `/content/french/about.md`
+1. `/content/french/about.md`
The first file is assigned the English language and is linked to the second.
The second file is assigned the French language and is linked to the first.
-Their language is __assigned__ according to the content directory they are __placed__ in.
+Their language is assigned according to the `content` directory they are placed in.
-By having the same **path and basename** (relative to their language content directory), the content pieces are __linked__ together as translated pages.
+By having the same path and basename (relative to their language `content` directory), the content pieces are linked together as translated pages.
### Bypassing default linking
@@ -225,192 +69,70 @@ Any pages sharing the same `translationKey` set in front matter will be linked a
Considering the following example:
1. `/content/about-us.en.md`
-2. `/content/om.nn.md`
-3. `/content/presentation/a-propos.fr.md`
+1. `/content/om.nn.md`
+1. `/content/presentation/a-propos.fr.md`
-{{< code-toggle >}}
+{{< code-toggle file=hugo >}}
translationKey: "about"
{{< /code-toggle >}}
-By setting the `translationKey` front matter param to `about` in all three pages, they will be __linked__ as translated pages.
+By setting the `translationKey` front matter parameter to `about` in all three pages, they will be linked as translated pages.
### Localizing permalinks
-Because paths and filenames are used to handle linking, all translated pages will share the same URL (apart from the language subdirectory).
+Because paths and file names are used to handle linking, all translated pages will share the same URL (apart from the language subdirectory).
+
+To localize URLs:
-To localize the URLs, the [`slug`]({{< ref "/content-management/organization/index.md#slug" >}}) or [`url`]({{< ref "/content-management/organization/index.md#url" >}}) front matter param can be set in any of the non-default language file.
+- For a regular page, set either [`slug`] or [`url`] in front matter
+- For a section page, set [`url`] in front matter
-For example, a French translation (`content/about.fr.md`) can have its own localized slug.
+For example, a French translation can have its own localized slug.
-{{< code-toggle >}}
-Title: A Propos
+{{< code-toggle file=content/about.fr.md fm=true >}}
+title: A Propos
slug: "a-propos"
{{< /code-toggle >}}
-At render, Hugo will build both `/about/` and `/fr/a-propos/` while maintaining their translation linking.
+At render, Hugo will build both `/about/` and `/fr/a-propos/` without affecting the translation link.
-{{% note %}}
-If using `url`, remember to include the language part as well: `/fr/compagnie/a-propos/`.
-{{%/ note %}}
+### Page bundles
-### Page Bundles
-
-To avoid the burden of having to duplicate files, each Page Bundle inherits the resources of its linked translated pages' bundles except for the content files (markdown files, html files etc...).
+To avoid the burden of having to duplicate files, each Page Bundle inherits the resources of its linked translated pages' bundles except for the content files (Markdown files, HTML files etc.).
Therefore, from within a template, the page will have access to the files from all linked pages' bundles.
If, across the linked bundles, two or more files share the same basename, only one will be included and chosen as follows:
-* File from current language bundle, if present.
-* First file found across bundles by order of language `Weight`.
-
-{{% note %}}
-Page Bundle resources follow the same language assignment logic as content files, both by filename (`image.jpg`, `image.fr.jpg`) and by directory (`english/about/header.jpg`, `french/about/header.jpg`).
-{{%/ note %}}
-
-## Reference the Translated Content
-
-To create a list of links to translated content, use a template similar to the following:
-
-{{< code file="layouts/partials/i18nlist.html" >}}
-{{ if .IsTranslated }}
-{{ i18n "translations" }}
-
- {{ range .Translations }}
-
-{{ end }}
-{{< /code >}}
-
-The above can be put in a `partial` (i.e., inside `layouts/partials/`) and included in any template, whether a [single content page][contenttemplate] or the [homepage]. It will not print anything if there are no translations for a given page.
-
-The above also uses the [`i18n` function][i18func] described in the next section.
-
-### List All Available Languages
-
-`.AllTranslations` on a `Page` can be used to list all translations, including the page itself. On the home page it can be used to build a language navigator:
-
-{{< code file="layouts/partials/allLanguages.html" >}}
-
-{{ range $.Site.Home.AllTranslations }}
-
-{{< /code >}}
-
-## Translation of Strings
-
-Hugo uses [go-i18n] to support string translations. [See the project's source repository][go-i18n-source] to find tools that will help you manage your translation workflows.
+- File from current language bundle, if present.
+- First file found across bundles by order of language `Weight`.
-Translations are collected from the `themes/
- {{- $currentPage := . -}}
- {{ range .Site.Menus.main -}}
-
+{{ or (T .Identifier) .Name | safeHTML }}
```
-## Missing Translations
+It queries the translation table for the current language using the menu entry's `identifier` and returns the translated string. If the translation table does not exist, or if the `identifier` key is not present in the translation table, it falls back to `name`.
+
+The `identifier` depends on how you define menu entries:
+
+- If you define the menu entry [automatically] using the section pages menu, the `identifier` is the page's `.Section`.
+- If you define the menu entry in your [project configuration] or in [front matter], set the `identifier` property to the desired value.
+
+For example, if you define menu entries in project configuration:
+
+{{< code-toggle file=hugo >}}
+[[menus.main]]
+ identifier = 'products'
+ name = 'Products'
+ pageRef = '/products'
+ weight = 10
+[[menus.main]]
+ identifier = 'services'
+ name = 'Services'
+ pageRef = '/services'
+ weight = 20
+{{< / code-toggle >}}
+
+Create corresponding entries in the translation tables:
+
+{{< code-toggle file=i18n/de >}}
+products = 'Produkte'
+services = 'Leistungen'
+{{< / code-toggle >}}
+
+## Missing translations
If a string does not have a translation for the current language, Hugo will use the value from the default language. If no default value is set, an empty string will be shown.
While translating a Hugo website, it can be handy to have a visual indicator of missing translations. The [`enableMissingTranslationPlaceholders` configuration option][config] will flag all untranslated strings with the placeholder `[i18n] identifier`, where `identifier` is the id of the missing translation.
-{{% note %}}
-Hugo will generate your website with these missing translation placeholders. It might not be suitable for production environments.
-{{% /note %}}
+> [!note]
+> Hugo will generate your website with these missing translation placeholders. It might not be suitable for production environments.
For merging of content from other languages (i.e. missing content translations), see [lang.Merge].
-To track down missing translation strings, run Hugo with the `--i18n-warnings` flag:
+To track down missing translation strings, run Hugo with the `--printI18nWarnings` flag:
-```bash
-hugo --i18n-warnings | grep i18n
+```sh
+hugo build --printI18nWarnings | grep i18n
i18n|MISSING_TRANSLATION|en|wordCount
```
-## Multilingual Themes support
+## Multilingual themes support
To support Multilingual mode in your themes, some considerations must be taken for the URLs in the templates. If there is more than one language, URLs must meet the following criteria:
-* Come from the built-in `.Permalink` or `.RelPermalink`
-* Be constructed with the [`relLangURL` template function][rellangurl] or the [`absLangURL` template function][abslangurl] **OR** be prefixed with `{{ .LanguagePrefix }}`
-
-If there is more than one language defined, the `LanguagePrefix` variable will equal `/en` (or whatever your `CurrentLanguage` is). If not enabled, it will be an empty string (and is therefore harmless for single-language Hugo websites).
-
-[abslangurl]: /functions/abslangurl
-[config]: /getting-started/configuration/
-[contenttemplate]: /templates/single-page-templates/
-[go-i18n-source]: https://github.com/nicksnyder/go-i18n
-[go-i18n]: https://github.com/nicksnyder/go-i18n
-[homepage]: /templates/homepage/
-[Hugo Multilingual Part 1: Content translation]: https://regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/
-[i18func]: /functions/i18n/
-[lang.FormatAccounting]: /functions/lang/#langformataccounting
-[lang.FormatCurrency]: /functions/lang/#langformatcurrency
-[lang.FormatNumber]: /functions/lang/#langformatnumber
-[lang.FormatNumberCustom]: functions/lang/#langformatnumbercustom
-[lang.FormatPercent]: /functions/lang/#langformatpercent
-[lang.Merge]: /functions/lang.merge/
-[menus]: /content-management/menus/
-[OS environment]: /getting-started/configuration/#configure-with-environment-variables
-[rellangurl]: /functions/rellangurl
-[RFC 5646]: https://tools.ietf.org/html/rfc5646
-[single page templates]: /templates/single-page-templates/
-[time.Format]: /functions/dateformat
+- Come from the built-in `.Permalink` or `.RelPermalink`
+- Be constructed with the [`relLangURL`] or [`absLangURL`] template function, or be prefixed with `{{ .LanguagePrefix }}`
+
+If there is more than one language defined, the `LanguagePrefix` method will return `/en` (or whatever the current language is). If not enabled, it will be an empty string (and is therefore harmless for single-language Hugo websites).
+
+## Generate multilingual content with `hugo new content`
+
+If you organize content with translations in the same directory:
+
+```sh
+hugo new content post/test.en.md
+hugo new content post/test.de.md
+```
+
+If you organize content with translations in different directories:
+
+```sh
+hugo new content content/en/post/test.md
+hugo new content content/de/post/test.md
+```
+
+[`absLangURL`]: /functions/urls/abslangurl/
+[`lang.Translate`]: /functions/lang/translate
+[`relLangURL`]: /functions/urls/rellangurl/
+[`slug`]: /content-management/urls/#slug
+[`time.Format`]: /functions/time/format/
+[`url`]: /content-management/urls/#url
+[automatically]: /content-management/menus/#define-automatically
+[config]: /configuration/
+[configuration directory]: /configuration/introduction/#configuration-directory
+[example menu template]: /templates/menu/#example
+[front matter]: /content-management/menus/#define-in-front-matter
+[lang.FormatAccounting]: /functions/lang/formataccounting/
+[lang.FormatCurrency]: /functions/lang/formatcurrency/
+[lang.FormatNumberCustom]: /functions/lang/formatnumbercustom/
+[lang.FormatNumber]: /functions/lang/formatnumber/
+[lang.FormatPercent]: /functions/lang/formatpercent/
+[lang.Merge]: /functions/lang/merge/
+[project configuration]: /content-management/menus/#define-in-project-configuration
diff --git a/docs/content/en/content-management/organization/1-featured-content-bundles.png b/docs/content/en/content-management/organization/1-featured-content-bundles.png
deleted file mode 100644
index 501e671e2f4..00000000000
Binary files a/docs/content/en/content-management/organization/1-featured-content-bundles.png and /dev/null differ
diff --git a/docs/content/en/content-management/organization/index.md b/docs/content/en/content-management/organization/index.md
index 10e22c2d359..5762e0d4ec6 100644
--- a/docs/content/en/content-management/organization/index.md
+++ b/docs/content/en/content-management/organization/index.md
@@ -1,91 +1,90 @@
---
-title: Content Organization
-linktitle: Organization
+title: Content organization
+linkTitle: Organization
description: Hugo assumes that the same structure that works to organize your source content is used to organize the rendered site.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
-categories: [content management,fundamentals]
-keywords: [sections,content,organization,bundle,resources]
-menu:
- docs:
- parent: "content-management"
- weight: 10
-weight: 10 #rem
-draft: false
+categories: []
+keywords: []
aliases: [/content/sections/]
-toc: true
---
-## Page Bundles
-
-Hugo `0.32` announced page-relative images and other resources packaged into `Page Bundles`.
-
-These terms are connected, and you also need to read about [Page Resources]({{< relref "/content-management/page-resources" >}}) and [Image Processing]({{< relref "/content-management/image-processing" >}}) to get the full picture.
-
-{{< imgproc 1-featured Resize "300x" >}}
-The illustration shows three bundles. Note that the home page bundle cannot contain other content pages, although other files (images etc.) are allowed.
-{{< /imgproc >}}
-
-
-{{% note %}}
-The bundle documentation is a **work in progress**. We will publish more comprehensive docs about this soon.
-{{% /note %}}
-
+## Page bundles
+
+Hugo supports page-relative images and other resources packaged into `Page Bundles`.
+
+These terms are connected, and you also need to read about [Page Resources](/content-management/page-resources) and [Image Processing](/content-management/image-processing) to get the full picture.
+
+```text
+content/
+├── blog/
+│ ├── hugo-is-cool/
+│ │ ├── images/
+│ │ │ ├── funnier-cat.jpg
+│ │ │ └── funny-cat.jpg
+│ │ ├── cats-info.md
+│ │ └── index.md
+│ ├── posts/
+│ │ ├── post1.md
+│ │ └── post2.md
+│ ├── 1-landscape.jpg
+│ ├── 2-sunset.jpg
+│ ├── _index.md
+│ ├── content-1.md
+│ └── content-2.md
+├── 1-logo.png
+└── _index.md
+```
-## Organization of Content Source
+The file tree above shows three bundles. Note that the home page bundle cannot contain other content pages, although other files (images etc.) are allowed.
+## Organization of content source
In Hugo, your content should be organized in a manner that reflects the rendered website.
-While Hugo supports content nested at any level, the top levels (i.e. `content/Authors
-{{ range $reusablePages }}
- {{ .Title }}
- {{ .Content }}
-{{ end }}
+```text
+content/
+├── about
+│ └── index.md
+├── posts
+│ ├── my-post
+│ │ ├── content-1.md
+│ │ ├── content-2.md
+│ │ ├── image-1.jpg
+│ │ ├── image-2.png
+│ │ └── index.md
+│ └── my-other-post
+│ └── index.md
+└── another-section
+ ├── foo.md
+ └── not-a-leaf-bundle
+ ├── bar.md
+ └── another-leaf-bundle
+ └── index.md
```
-_In this example, we are assuming the `some-headless-bundle` to be a headless
- bundle containing one or more **page** resources whose `.Name` matches
- `"author*"`._
-
-Explanation of the above example:
-
-1. Get the `some-headless-bundle` Page "object".
-2. Collect a *slice* of resources in this *Page Bundle* that matches
- `"author*"` using `.Resources.Match`.
-3. Loop through that *slice* of nested pages, and output their `.Title` and
- `.Content`.
-
----
+There are four leaf bundles in the example above:
-A leaf bundle can be made headless by adding below in the Front Matter
-(in the `index.md`):
+about
+: This leaf bundle does not contain any page resources.
-```toml
-headless = true
-```
+my-post
+: This leaf bundle contains an index file, two resources of [resource type](g) `page`, and two resources of resource type `image`.
-There are many use cases of such headless page bundles:
+ - content-1, content-2
-- Shared media galleries
-- Reusable page content "snippets"
+ These are resources of resource type `page`, accessible via the [`Resources`] method on the `Page` object. Hugo will not render these as individual pages.
+ - image-1, image-2
-## Branch Bundles {#branch-bundles}
+ These are resources of resource type `image`, accessible via the `Resources` method on the `Page` object
-A _Branch Bundle_ is any directory at any hierarchy within the
-`content/` directory, that contains at least an **`_index.md`** file.
+my-other-post
+: This leaf bundle does not contain any page resources.
-This `_index.md` can also be directly under the `content/` directory.
+another-leaf-bundle
+: This leaf bundle does not contain any page resources.
-{{% note %}}
-Here `md` (markdown) is used just as an example. You can use any file
-type as a content resource as long as it is a content type recognized by Hugo.
-{{% /note %}}
+> [!note]
+> Create leaf bundles at any depth within the `content` directory, but a leaf bundle may not contain another bundle. Leaf bundles do not have descendants.
+## Branch bundles
-### Examples of Branch Bundle organization {#examples-of-branch-bundle-organization}
+A _branch bundle_ is a directory that contains an `_index.md` file and zero or more resources. Analogous to a physical branch, a branch bundle may have descendants including leaf bundles and other branch bundles. Top-level directories with or without `_index.md` files are also branch bundles. This includes the home page.
```text
content/
-├── branch-bundle-1
-│ ├── branch-content1.md
-│ ├── branch-content2.md
-│ ├── image1.jpg
-│ ├── image2.png
-│ └── _index.md
-└── branch-bundle-2
- ├── _index.md
- └── a-leaf-bundle
- └── index.md
+├── branch-bundle-1/
+│ ├── _index.md
+│ ├── content-1.md
+│ ├── content-2.md
+│ ├── image-1.jpg
+│ └── image-2.png
+├── branch-bundle-2/
+│ ├── a-leaf-bundle/
+│ │ └── index.md
+│ └── _index.md
+└── _index.md
```
-In the above example `content/` directory, there are two branch
-bundles (and a leaf bundle):
+There are three branch bundles in the example above:
+
+home page
+: This branch bundle contains an index file, two descendant branch bundles, and no resources.
+
+branch-bundle-1
+: This branch bundle contains an index file, two resources of [resource type](g) `page`, and two resources of resource type `image`.
+
+branch-bundle-2
+: This branch bundle contains an index file and a leaf bundle.
-`branch-bundle-1`
-: This branch bundle has the `_index.md`, two
- other content Markdown files and two image files.
+> [!note]
+> Create branch bundles at any depth within the `content` directory. Branch bundles may have descendants.
-`branch-bundle-2`
-: This branch bundle has the `_index.md` and a
- nested leaf bundle.
+## Headless bundles
-{{% note %}}
-The hierarchy depth at which a branch bundle is created does not
-matter.
-{{% /note %}}
+Use [build options] in front matter to create an unpublished leaf or branch bundle whose content and resources you can include in other pages.
-[^fn:1]: The `.md` extension is just an example. The extension can be `.html`, `.json` or any valid MIME type.
+[`Resources`]: /methods/page/resources/
+[build options]: /content-management/build-options/
+[home]: /templates/types/#home
+[page resources]: /content-management/page-resources/
+[section]: /templates/types/#section
+[single]: /templates/types/#single
+[taxonomy]: /templates/types/#taxonomy
+[term]: /templates/types/#term
diff --git a/docs/content/en/content-management/page-resources.md b/docs/content/en/content-management/page-resources.md
index 9f2c0cfab1b..db92734c181 100644
--- a/docs/content/en/content-management/page-resources.md
+++ b/docs/content/en/content-management/page-resources.md
@@ -1,21 +1,12 @@
---
-title : "Page Resources"
-description : "Page resources -- images, other pages, documents, etc. -- have page-relative URLs and their own metadata."
-date: 2018-01-24
-categories: ["content management"]
-keywords: [bundle,content,resources]
-weight: 4003
-draft: false
-toc: true
-linktitle: "Page Resources"
-menu:
- docs:
- parent: "content-management"
- weight: 31
+title: Page resources
+description: Use page resources to logically associate assets with a page.
+categories: []
+keywords: []
---
-Page resources are only accessible from [page bundles]({{< relref
-"/content-management/page-bundles" >}}), those directories with `index.md` or
-`_index.md` files at their root. Page resources are only available to the
+
+Page resources are only accessible from [page bundles](/content-management/page-bundles), those directories with `index.md` or
+`_index.md` files at their root. Page resources are only available to the
page with which they are bundled.
In this example, `first-post` is a page bundle with access to 10 page resources including audio, data, documents, images, and video. Although `second-post` is also a page bundle, it has no page resources and is unable to directly access the page resources associated with `first-post`.
@@ -40,133 +31,126 @@ content
└── index.md (root of page bundle)
```
-## Properties
-
-ResourceType
-: The main type of the resource's [Media Type](/templates/output-formats/#media-types). For example, a file of MIME type `image/jpeg` has the ResourceType `image`. A `Page` will have `ResourceType` with value `page`.
+## Examples
-{{< new-in "0.80.0" >}} Note that we in Hugo `v0.80.0` fixed a bug where non-image resources (e.g. video) would return the MIME sub type, e.g. `json`.
+Use any of these methods on a `Page` object to capture page resources:
-Name
-: Default value is the filename (relative to the owning page). Can be set in front matter.
+- [`Resources.ByType`]
+- [`Resources.Get`]
+- [`Resources.GetMatch`]
+- [`Resources.Match`]
-Title
-: Default value is the same as `.Name`. Can be set in front matter.
+ Once you have captured a resource, use any of the applicable [`Resource`] methods to return a value or perform an action.
-Permalink
-: The absolute URL to the resource. Resources of type `page` will have no value.
+The following examples assume this content structure:
-RelPermalink
-: The relative URL to the resource. Resources of type `page` will have no value.
+```text
+content/
+└── example/
+ ├── data/
+ │ └── books.json <-- page resource
+ ├── images/
+ │ ├── a.jpg <-- page resource
+ │ └── b.jpg <-- page resource
+ ├── snippets/
+ │ └── text.md <-- page resource
+ └── index.md
+```
-Content
-: The content of the resource itself. For most resources, this returns a string
-with the contents of the file. Use this to create inline resources.
+Render a single image, and throw an error if the file does not exist:
```go-html-template
-{{ with .Resources.GetMatch "script.js" }}
-
+{{ $path := "images/a.jpg" }}
+{{ with .Resources.Get $path }}
+
+{{ else }}
+ {{ errorf "Unable to get page resource %q" $path }}
{{ end }}
+```
-{{ with .Resources.GetMatch "style.css" }}
-
-{{ end }}
+Render all images, resized to 300 px wide:
-{{ with .Resources.GetMatch "img.png" }}
-
+```go-html-template
+{{ range .Resources.ByType "image" }}
+ {{ with .Resize "300x" }}
+
+ {{ end }}
{{ end }}
```
-MediaType
-: The MIME type of the resource, such as `image/jpeg`.
-
-MediaType.MainType
-: The main type of the resource's MIME type. For example, a file of MIME type `application/pdf` has for MainType `application`.
-
-MediaType.SubType
-: The subtype of the resource's MIME type. For example, a file of MIME type `application/pdf` has for SubType `pdf`. Note that this is not the same as the file extension - PowerPoint files have a subtype of `vnd.mspowerpoint`.
-
-MediaType.Suffixes
-: A slice of possible suffixes for the resource's MIME type.
+Render the markdown snippet:
-## Methods
-ByType
-: Returns the page resources of the given type.
-
-```go
-{{ .Resources.ByType "image" }}
-```
-Match
-: Returns all the page resources (as a slice) whose `Name` matches the given Glob pattern ([examples](https://github.com/gobwas/glob/blob/master/readme.md)). The matching is case-insensitive.
-
-```go
-{{ .Resources.Match "images/*" }}
+```go-html-template
+{{ with .Resources.Get "snippets/text.md" }}
+ {{ .Content }}
+{{ end }}
```
-GetMatch
-: Same as `Match` but will return the first match.
-
-### Pattern Matching
-```go
-// Using Match/GetMatch to find this images/sunset.jpg ?
-.Resources.Match "images/sun*" ✅
-.Resources.Match "**/sunset.jpg" ✅
-.Resources.Match "images/*.jpg" ✅
-.Resources.Match "**.jpg" ✅
-.Resources.Match "*" 🚫
-.Resources.Match "sunset.jpg" 🚫
-.Resources.Match "*sunset.jpg" 🚫
+List the titles in the data file, and throw an error if the file does not exist.
+```go-html-template
+{{ $path := "data/books.json" }}
+{{ with .Resources.Get $path }}
+ {{ with . | transform.Unmarshal }}
+
+ {{ range . }}
+
+ {{ end }}
+{{ else }}
+ {{ errorf "Unable to get page resource %q" $path }}
+{{ end }}
```
-## Page Resources Metadata
+## Metadata
The page resources' metadata is managed from the corresponding page's front matter with an array/table parameter named `resources`. You can batch assign values using [wildcards](https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm).
-{{% note %}}
-Resources of type `page` get `Title` etc. from their own front matter.
-{{% /note %}}
+> [!note]
+> Resources of type `page` get `Title` etc. from their own front matter.
name
-: Sets the value returned in `Name`.
+: (`string`) Sets the value returned in `Name`.
-{{% warning %}}
-The methods `Match` and `GetMatch` use `Name` to match the resources.
-{{%/ warning %}}
+> [!note]
+> The methods `Match`, `Get` and `GetMatch` use `Name` to match the resources.
title
-: Sets the value returned in `Title`
+: (`string`) Sets the value returned in `Title`
params
-: A map of custom key/values.
+: (`map`) A map of custom key-value pairs.
+### Resources metadata example
-### Resources metadata example
-
-{{< code-toggle copy="false">}}
+
+{{< code-toggle file=content/example.md fm=true >}}
title: Application
-date : 2018-01-25
-resources :
-- src : "images/sunset.jpg"
- name : "header"
-- src : "documents/photo_specs.pdf"
- title : "Photo Specifications"
- params:
- icon : "photo"
-- src : "documents/guide.pdf"
- title : "Instruction Guide"
-- src : "documents/checklist.pdf"
- title : "Document Checklist"
-- src : "documents/payment.docx"
- title : "Proof of Payment"
-- src : "**.pdf"
- name : "pdf-file-:counter"
- params :
- icon : "pdf"
-- src : "**.docx"
- params :
- icon : "word"
+date: 2018-01-25
+resources:
+ - src: images/sunset.jpg
+ name: header
+ - src: documents/photo_specs.pdf
+ title: Photo Specifications
+ params:
+ icon: photo
+ - src: documents/guide.pdf
+ title: Instruction Guide
+ - src: documents/checklist.pdf
+ title: Document Checklist
+ - src: documents/payment.docx
+ title: Proof of Payment
+ - src: "**.pdf"
+ name: pdf-file-:counter
+ params:
+ icon: pdf
+ - src: "**.docx"
+ params:
+ icon: word
{{ code-toggle >}}
+
From the example above:
@@ -177,9 +161,8 @@ From the example above:
- All `PDF` files will get a new `Name`. The `name` parameter contains a special placeholder [`:counter`](#the-counter-placeholder-in-name-and-title), so the `Name` will be `pdf-file-1`, `pdf-file-2`, `pdf-file-3`.
- Every docx in the bundle will receive the `word` icon.
-{{% warning %}}
-The __order matters__ --- Only the **first set** values of the `title`, `name` and `params`-**keys** will be used. Consecutive parameters will be set only for the ones not already set. In the above example, `.Params.icon` is first set to `"photo"` in `src = "documents/photo_specs.pdf"`. So that would not get overridden to `"pdf"` by the later set `src = "**.pdf"` rule.
-{{%/ warning %}}
+> [!note]
+> The order matters; only the first set values of the `title`, `name` and `params` keys will be used. Consecutive parameters will be set only for the ones not already set. In the above example, `.Params.icon` is first set to `"photo"` in `src = "documents/photo_specs.pdf"`. So that would not get overridden to `"pdf"` by the later set `src = "**.pdf"` rule.
### The `:counter` placeholder in `name` and `title`
@@ -189,13 +172,14 @@ The counter starts at 1 the first time they are used in either `name` or `title`
For example, if a bundle has the resources `photo_specs.pdf`, `other_specs.pdf`, `guide.pdf` and `checklist.pdf`, and the front matter has specified the `resources` as:
-{{< code-toggle copy="false">}}
+{{< code-toggle file=content/inspections/engine/index.md fm=true >}}
+title = 'Engine inspections'
[[resources]]
- src = "*specs.pdf"
- title = "Specification #:counter"
+ src = '*specs.pdf'
+ title = 'Specification #:counter'
[[resources]]
- src = "**.pdf"
- name = "pdf-file-:counter"
+ src = '**.pdf'
+ name = 'pdf-file-:counter'
{{ code-toggle >}}
the `Name` and `Title` will be assigned to the resource files as follows:
@@ -204,5 +188,110 @@ the `Name` and `Title` will be assigned to the resource files as follows:
|-------------------|-------------------|-----------------------|
| checklist.pdf | `"pdf-file-1.pdf` | `"checklist.pdf"` |
| guide.pdf | `"pdf-file-2.pdf` | `"guide.pdf"` |
-| other\_specs.pdf | `"pdf-file-3.pdf` | `"Specification #1"` |
-| photo\_specs.pdf | `"pdf-file-4.pdf` | `"Specification #2"` |
+| other\_specs.pdf | `"pdf-file-3.pdf` | `"Specification #1"` |
+| photo\_specs.pdf | `"pdf-file-4.pdf` | `"Specification #2"` |
+
+## Multilingual
+
+By default, with a multilingual single-host project, Hugo does not duplicate shared page during the build.
+
+> [!note]
+> This behavior is limited to Markdown content. Shared page resources for other [content formats] are copied into each language bundle.
+
+Consider this project configuration:
+
+{{< code-toggle file=hugo >}}
+defaultContentLanguage = 'de'
+defaultContentLanguageInSubdir = true
+
+[languages.de]
+label = 'Deutsch'
+locale = 'de-DE'
+weight = 1
+
+[languages.en]
+label = 'English'
+locale = 'en-US'
+weight = 2
+{{< /code-toggle >}}
+
+And this content:
+
+```text
+content/
+└── my-bundle/
+ ├── a.jpg <-- shared page resource
+ ├── b.jpg <-- shared page resource
+ ├── c.de.jpg
+ ├── c.en.jpg
+ ├── index.de.md
+ └── index.en.md
+```
+
+With v0.122.0 and earlier, Hugo duplicated the shared page resources, creating copies for each language:
+
+```text
+public/
+├── de/
+│ ├── my-bundle/
+│ │ ├── a.jpg <-- shared page resource
+│ │ ├── b.jpg <-- shared page resource
+│ │ ├── c.de.jpg
+│ │ └── index.html
+│ └── index.html
+├── en/
+│ ├── my-bundle/
+│ │ ├── a.jpg <-- shared page resource (duplicate)
+│ │ ├── b.jpg <-- shared page resource (duplicate)
+│ │ ├── c.en.jpg
+│ │ └── index.html
+│ └── index.html
+└── index.html
+
+```
+
+With v0.123.0 and later, Hugo places the shared resources in the page bundle for the default content language:
+
+```text
+public/
+├── de/
+│ ├── my-bundle/
+│ │ ├── a.jpg <-- shared page resource
+│ │ ├── b.jpg <-- shared page resource
+│ │ ├── c.de.jpg
+│ │ └── index.html
+│ └── index.html
+├── en/
+│ ├── my-bundle/
+│ │ ├── c.en.jpg
+│ │ └── index.html
+│ └── index.html
+└── index.html
+```
+
+This approach reduces build times, storage requirements, bandwidth consumption, and deployment times, ultimately reducing cost.
+
+> [!important]
+> To resolve Markdown link and image destinations to the correct location, you must use link and image render hooks that capture the page resource with the [`Resources.Get`] method, and then invoke its [`RelPermalink`] method.
+>
+> In its default configuration, Hugo automatically uses the [embedded link render hook] and the [embedded image render hook] for multilingual single-host projects, specifically when the [duplication of shared page resources] feature is disabled. This is the default behavior for such projects. If custom link or image render hooks are defined by your project, modules, or themes, these will be used instead.
+>
+> You can also configure Hugo to `always` use the embedded link or image render hook, use it only as a `fallback`, or `never` use it. See [details](/configuration/markup/#renderhookslinkuseembedded).
+
+Although duplicating shared page resources is inefficient, you can enable this feature in your project configuration if desired:
+
+{{< code-toggle file=hugo >}}
+[markup.goldmark]
+duplicateResourceFiles = true
+{{< /code-toggle >}}
+
+[`RelPermalink`]: /methods/resource/relpermalink/
+[`Resource`]: /methods/resource
+[`Resources.ByType`]: /methods/page/resources#bytype
+[`Resources.Get`]: /methods/page/resources/#get
+[`Resources.GetMatch`]: /methods/page/resources#getmatch
+[`Resources.Match`]: /methods/page/resources#match
+[content formats]: /content-management/formats/
+[duplication of shared page resources]: /configuration/markup/#duplicateresourcefiles
+[embedded image render hook]: /render-hooks/images/#embedded
+[embedded link render hook]: /render-hooks/links/#embedded
diff --git a/docs/content/en/content-management/related-content.md b/docs/content/en/content-management/related-content.md
new file mode 100644
index 00000000000..48009ec4612
--- /dev/null
+++ b/docs/content/en/content-management/related-content.md
@@ -0,0 +1,102 @@
+---
+title: Related content
+description: List related content in "See Also" sections.
+categories: []
+keywords: []
+aliases: [/content/related/,/related/,/content-management/related/]
+---
+
+Hugo uses a set of factors to identify a page's related content based on front matter parameters. This can be tuned to the desired set of indices and parameters or left to Hugo's default [related content configuration](/configuration/related-content/).
+
+## List related content
+
+To list up to 5 related pages (which share the same _date_ or _keyword_ parameters) is as simple as including something similar to this partial in your template:
+
+```go-html-template {file="layouts/_partials/related.html" copy=true}
+{{ with site.RegularPages.Related . | first 5 }}
+
+ {{ range . }}
+
+{{ end }}
+```
+
+The `Related` method takes one argument which may be a `Page` or an options map. The options map has these options:
+
+indices
+: (`slice`) The indices to search within.
+
+document
+: (`page`) The page for which to find related content. Required when specifying an options map.
+
+namedSlices
+: (`slice`) The keywords to search for, expressed as a slice of `KeyValues` using the [`keyVals`] function.
+
+fragments
+: (`slice`) A list of special keywords that is used for indices configured as type "fragments". This will match the [fragment](g) identifiers of the documents.
+
+A fictional example using all of the above options:
+
+```go-html-template
+{{ $page := . }}
+{{ $opts := dict
+ "indices" (slice "tags" "keywords")
+ "document" $page
+ "namedSlices" (slice (keyVals "tags" "hugo" "rocks") (keyVals "date" $page.Date))
+ "fragments" (slice "heading-1" "heading-2")
+}}
+```
+
+> [!note]
+> We improved and simplified this feature in Hugo 0.111.0. Before this we had 3 different methods: `Related`, `RelatedTo` and `RelatedIndices`. Now we have only one method: `Related`. The old methods are still available but deprecated. Also see [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.
+
+## Index content headings
+
+Hugo can index the headings in your content and use this to find related content. You can enable this by adding a index of type `fragments` to your `related` configuration:
+
+{{< code-toggle file=hugo >}}
+[related]
+threshold = 20
+includeNewer = true
+toLower = false
+[[related.indices]]
+name = 'fragmentrefs'
+type = 'fragments'
+applyFilter = true
+weight = 80
+{{< /code-toggle >}}
+
+- The `name` maps to a optional front matter slice attribute that can be used to link from the page level down to the fragment/heading level.
+- If `applyFilter` is enabled, the `.HeadingsFiltered` on each page in the result will reflect the filtered headings. This is useful if you want to show the headings in the related content listing:
+
+```go-html-template
+{{ $related := .Site.RegularPages.Related . | first 5 }}
+{{ with $related }}
+ See Also
+
+ {{ range $i, $p := . }}
+
+{{ end }}
+```
+
+## Configuration
+
+See [configure related content](/configuration/related-content/).
+
+[`keyVals`]: /functions/collections/keyvals/
diff --git a/docs/content/en/content-management/related.md b/docs/content/en/content-management/related.md
deleted file mode 100644
index a42cec32e92..00000000000
--- a/docs/content/en/content-management/related.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-title: Related Content
-description: List related content in "See Also" sections.
-date: 2017-09-05
-categories: [content management]
-keywords: [content]
-menu:
- docs:
- parent: "content-management"
- weight: 40
-weight: 30
-draft: false
-aliases: [/content/related/,/related/]
-toc: true
----
-
-
-Hugo uses a set of factors to identify a page's related content based on Front Matter parameters. This can be tuned to the desired set of indices and parameters or left to Hugo's default [Related Content configuration](#configure-related-content).
-
-## List Related Content
-
-
-To list up to 5 related pages (which share the same _date_ or _keyword_ parameters) is as simple as including something similar to this partial in your single page template:
-
-{{< code file="layouts/partials/related.html" >}}
-{{ $related := .Site.RegularPages.Related . | first 5 }}
-{{ with $related }}
-
+ {{ range . }}
+ {{ $link := printf "%s#%s" $p.RelPermalink .ID | safeURL }}
+
+ {{ end }}
+ 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 above 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 user="scott_lowe" id="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 --git a/docs/content/en/content-management/sections.md b/docs/content/en/content-management/sections.md
index 6806e342c10..3dfad5bd4f2 100644
--- a/docs/content/en/content-management/sections.md
+++ b/docs/content/en/content-management/sections.md
@@ -1,101 +1,139 @@
---
-title: Content Sections
-linktitle: Sections
-description: "Hugo generates a **section tree** that matches your content."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
-categories: [content management]
-keywords: [lists,sections,content types,organization]
-menu:
- docs:
- parent: "content-management"
- weight: 50
-weight: 50 #rem
-draft: false
+title: Sections
+description: Organize content into sections.
+
+categories: []
+keywords: []
aliases: [/content/sections/]
-toc: true
---
-A **Section** is a collection of pages that gets defined based on the
-organization structure under the `content/` directory.
+## Overview
+
+{{% glossary-term "section" %}}
+
+```text
+content/
+├── articles/ <-- section (top-level directory)
+│ ├── 2022/
+│ │ ├── article-1/
+│ │ │ ├── cover.jpg
+│ │ │ └── index.md
+│ │ └── article-2.md
+│ └── 2023/
+│ ├── article-3.md
+│ └── article-4.md
+├── products/ <-- section (top-level directory)
+│ ├── product-1/ <-- section (has _index.md file)
+│ │ ├── benefits/ <-- section (has _index.md file)
+│ │ │ ├── _index.md
+│ │ │ ├── benefit-1.md
+│ │ │ └── benefit-2.md
+│ │ ├── features/ <-- section (has _index.md file)
+│ │ │ ├── _index.md
+│ │ │ ├── feature-1.md
+│ │ │ └── feature-2.md
+│ │ └── _index.md
+│ └── product-2/ <-- section (has _index.md file)
+│ ├── benefits/ <-- section (has _index.md file)
+│ │ ├── _index.md
+│ │ ├── benefit-1.md
+│ │ └── benefit-2.md
+│ ├── features/ <-- section (has _index.md file)
+│ │ ├── _index.md
+│ │ ├── feature-1.md
+│ │ └── feature-2.md
+│ └── _index.md
+├── _index.md
+└── about.md
+```
-By default, all the **first-level** directories under `content/` form their own
-sections (**root sections**) provided they constitute [Branch Bundles][branch bundles].
-Directories which are just [Leaf Bundles][leaf bundles] do *not* form
-their own sections, despite being first-level directories.
+The example above has two top-level sections: articles and products. None of the directories under articles are sections, while all of the directories under products are sections. A section within a section is a known as a nested section or subsection.
-If a user needs to define a section `foo` at a deeper level, they need to create
-a directory named `foo` with an `_index.md` file (see [Branch Bundles][branch bundles]
-for more information).
+## Explanation
+Sections and non-sections behave differently.
-{{% note %}}
-A **section** cannot be defined or overridden by a front matter parameter -- it
-is strictly derived from the content organization structure.
-{{% /note %}}
+ |Sections|Non-sections
+:--|:-:|:-:
+Directory names become URL segments|:heavy_check_mark:|:heavy_check_mark:
+Have logical ancestors and descendants|:heavy_check_mark:|:x:
+Have list pages|:heavy_check_mark:|:x:
-## Nested Sections
+With the file structure from the [example above](#overview):
-The sections can be nested as deeply as you need.
+1. The list page for the articles section includes all articles, regardless of directory structure; none of the subdirectories are sections.
+1. The articles/2022 and articles/2023 directories do not have list pages; they are not sections.
+1. The list page for the products section, by default, includes product-1 and product-2, but not their descendant pages. To include descendant pages, use the `RegularPagesRecursive` method instead of the `Pages` method in the _section_ template.
+1. All directories in the products section have list pages; each directory is a section.
-```bash
-content
-└── blog <-- Section, because first-level dir under content/
- ├── funny-cats
- │ ├── mypost.md
- │ └── kittens <-- Section, because contains _index.md
- │ └── _index.md
- └── tech <-- Section, because contains _index.md
- └── _index.md
-```
+## Template selection
-**The important part to understand is, that to make the section tree fully navigational, at least the lower-most section needs a content file. (e.g. `_index.md`).**
+Hugo has a defined [lookup order] to determine which template to use when rendering a page. The [lookup rules] consider the top-level section name; subsection names are not considered when selecting a template.
-{{% note %}}
-When we talk about a **section** in correlation with template selection, it is
-currently always the *root section* only (`/blog/funny-cats/mypost/ => blog`).
+With the file structure from the [example above](#overview):
-If you need a specific template for a sub-section, you need to adjust either the `type` or `layout` in front matter.
-{{% /note %}}
+Content directory|Section template
+:--|:--
+`content/products`|`layouts/products/section.html`
+`content/products/product-1`|`layouts/products/section.html`
+`content/products/product-1/benefits`|`layouts/products/section.html`
-## Example: Breadcrumb Navigation
+Content directory|Page template
+:--|:--
+`content/products`|`layouts/products/page.html`
+`content/products/product-1`|`layouts/products/page.html`
+`content/products/product-1/benefits`|`layouts/products/page.html`
-With the available [section variables and methods](#section-page-variables-and-methods) you can build powerful navigation. One common example would be a partial to show Breadcrumb navigation:
+If you need to use a different template for a subsection, specify `type` and/or `layout` in front matter.
-{{< code file="layouts/partials/breadcrumb.html" download="breadcrumb.html" >}}
-
-{{ define "breadcrumbnav" }}
-{{ if .p1.Parent }}
-{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
-{{ else if not .p1.IsHome }}
-{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
-{{ end }}
-
` Tag"%}}
-Hugo injects the LiveReload `
-```
+See the [`resources.Fingerprint`](/functions/resources/fingerprint/) function.
diff --git a/docs/content/en/hugo-pipes/introduction.md b/docs/content/en/hugo-pipes/introduction.md
index 7cace938a71..fa9493f202a 100755
--- a/docs/content/en/hugo-pipes/introduction.md
+++ b/docs/content/en/hugo-pipes/introduction.md
@@ -1,109 +1,63 @@
---
-title: Hugo Pipes Introduction
-linkTitle: Hugo Pipes
+title: Hugo Pipes
+linkTitle: Introduction
description: Hugo Pipes is Hugo's asset processing set of functions.
-date: 2018-07-14
-publishdate: 2018-07-14
-lastmod: 2018-07-14
-categories: [asset management]
+categories: []
keywords: []
-menu:
- docs:
- parent: "pipes"
- weight: 20
-weight: 01
-sections_weight: 01
-draft: false
-toc: true
+weight: 10
aliases: [/assets/]
---
-## Get Resource with resources.Get
+## Find resources in assets
-In order to process an asset with Hugo Pipes, it must be retrieved as a `Resource` using `resources.Get`. The first argument can be either a local the path to file relative to the `asset` directory/directories or a remote URL.
+This is about global and remote resources.
-```go-html-template
-{{ $local := resources.Get "sass/main.scss" }}
-{{ $remote := resources.Get "https://www.example.com/styles.scss" }}
-```
+global resource
+: A file within the `assets` directory, or within any directory [mounted] to the `assets` directory.
-`resources.Get` will always return `nil` if the resource could not be found.
+remote resource
+: A file on a remote server, accessible via HTTP or HTTPS.
-### Error Handling
+For `.Page` scoped resources, see the [page resources] section.
-{{< new-in "0.90.1" >}}
+[mounted]: /configuration/module/#mounts
+[page resources]: /content-management/page-resources/
-The return value from `resources.Get` includes an `.Err` method that will return an error if the call failed. If you want to just log any error as a `WARNING` you can use a construct similar to the one below.
+## Get a resource
-```go-html-template
-{{ with resources.Get "https://gohugo.io/images/gohugoio-card-1.png" }}
- {{ with .Err }}
- {{ warnf "%s" . }}
- {{ else }}
-
- {{ end }}
-{{ end }}
-```
+In order to process an asset with Hugo Pipes, it must be retrieved as a resource.
-Note that if you do not handle `.Err` yourself, Hugo will fail the build the first time you start using the `Resource` object.
+For global resources, use:
-### Remote Options
+- [`resources.ByType`](/functions/resources/bytype/)
+- [`resources.Get`](/functions/resources/get/)
+- [`resources.GetMatch`](/functions/resources/getmatch/)
+- [`resources.Match`](/functions/resources/match/)
-When fetching a remote `Resource`, `resources.Get` takes an optional options map as the last argument, e.g.:
+For remote resources, use:
-```go-html-template
-{{ $resource := resources.Get "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }}
-```
+- [`resources.GetRemote`](/functions/resources/getremote/)
-If you need multiple values for the same header key, use a slice:
+See the [GoDoc Page](https://pkg.go.dev/github.com/gohugoio/hugo/tpl/resources) for the `resources` package for an up to date overview of all template functions in this namespace.
-```go-html-template
-{{ $resource := resources.Get "https://example.org/api" (dict "headers" (dict "X-List" (slice "a" "b" "c"))) }}
-```
-
-You can also change the request method and set the request body:
+## Copy a resource
-```go-html-template
-{{ $postResponse := resources.Get "https://example.org/api" (dict
- "method" "post"
- "body" `{"complete": true}`
- "headers" (dict
- "Content-Type" "application/json"
- )
-)}}
-```
-
-### Caching of Remote Resources
-
-Remote resources fetched with `resources.Get` will be cached on disk. See [Configure File Caches](/getting-started/configuration/#configure-file-caches) for details.
+See the [`resources.Copy`](/functions/resources/copy/) function.
## Asset directory
-Asset files must be stored in the asset directory. This is `/assets` by default, but can be configured via the configuration file's `assetDir` key.
-
+Asset files must be stored in the asset directory. This is `assets` by default, but can be configured via the configuration file's `assetDir` key.
-### Asset Publishing
+## Asset publishing
-Assets will only be published (to `/public`) if `.Permalink` or `.RelPermalink` is used. You can use `.Content` to inline the asset.
+Hugo publishes assets to the `publishDir` (typically `public`) when you invoke `.Permalink`, `.RelPermalink`, or `.Publish`. You can use `.Content` to inline the asset.
## Go Pipes
For improved readability, the Hugo Pipes examples of this documentation will be written using [Go Pipes](/templates/introduction/#pipes):
```go-html-template
-{{ $style := resources.Get "sass/main.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint }}
-
-```
-
-## Method aliases
-
-Each Hugo Pipes `resources` transformation method uses a __camelCased__ alias (`toCSS` for `resources.ToCSS`).
-Non-transformation methods deprived of such aliases are `resources.Get`, `resources.FromString`, `resources.ExecuteAsTemplate` and `resources.Concat`.
-
-The example above can therefore also be written as follows:
-
-```go-html-template
-{{ $style := resources.Get "sass/main.scss" | toCSS | minify | fingerprint }}
+{{ $style := resources.Get "sass/main.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
```
diff --git a/docs/content/en/hugo-pipes/js.md b/docs/content/en/hugo-pipes/js.md
index 63bd8bdd95a..18572d5386f 100644
--- a/docs/content/en/hugo-pipes/js.md
+++ b/docs/content/en/hugo-pipes/js.md
@@ -1,171 +1,9 @@
---
-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]
+title: JavaScript
+linkTitle: JavaScript building
+description: Bundle, transpile, tree shake, code split, and minify JavaScript resources.
+categories: []
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.
-
-inject [slice] {{< new-in "0.81.0" >}}
-: This option allows you to automatically replace a global variable with an import from another file. The path names must be relative to `assets`. See https://esbuild.github.io/api/#inject
-
-shims {{< new-in "0.81.0" >}}
-: This option allows swapping out a component with another. A common use case is to load dependencies like React from a CDN (with _shims_) when in production, but running with the full bundled `node_modules` dependency during development:
-
-```
-{{ $shims := dict "react" "js/shims/react.js" "react-dom" "js/shims/react-dom.js" }}
-{{ $js = $js | js.Build dict "shims" $shims }}
-```
-
-The _shim_ files may look like these:
-
-```js
-// js/shims/react.js
-module.exports = window.React;
-```
-
-```js
-// js/shims/react-dom.js
-module.exports = window.ReactDOM;
-```
-
-
-With the above, these imports should work in both scenarios:
-
-```js
-import * as React from 'react'
-import * as ReactDOM from 'react-dom';
-```
-
-target [string]
-: The language target.
- One of: `es5`, `es2015`, `es2016`, `es2017`, `es2018`, `es2019`, `es2020` or `esnext`.
- Default is `esnext`.
-
-externals [slice]
-: External dependencies. Use this to trim dependencies you know will never be executed. See https://esbuild.github.io/api/#external
-
-
-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
-```
-
-
+See [JS functions](/functions/js/).
diff --git a/docs/content/en/hugo-pipes/minification.md b/docs/content/en/hugo-pipes/minification.md
index d11ee58a90e..4ba1ea641f2 100755
--- a/docs/content/en/hugo-pipes/minification.md
+++ b/docs/content/en/hugo-pipes/minification.md
@@ -1,27 +1,9 @@
---
-title: Asset minification
-description: Hugo Pipes allows the minification of any CSS, JS, JSON, HTML, SVG or XML resource.
-date: 2018-07-14
-publishdate: 2018-07-14
-lastmod: 2018-07-14
-categories: [asset management]
+title: Minify
+linkTitle: Asset minification
+description: Minify a given resource.
+categories: []
keywords: []
-menu:
- docs:
- parent: "pipes"
- weight: 50
-weight: 50
-sections_weight: 50
-draft: false
---
-
-Any resource of the aforementioned types can be minified using `resources.Minify` which takes for argument the resource object.
-
-
-```go-html-template
-{{ $css := resources.Get "css/main.css" }}
-{{ $style := $css | resources.Minify }}
-```
-
-Note that you can also minify the final HTML output to `/public` by running `hugo --minify`.
+See the [`resources.Minify`](/functions/resources/minify/) function.
diff --git a/docs/content/en/hugo-pipes/postcss.md b/docs/content/en/hugo-pipes/postcss.md
index fddc7e9cf10..1b47e8aefcc 100755
--- a/docs/content/en/hugo-pipes/postcss.md
+++ b/docs/content/en/hugo-pipes/postcss.md
@@ -1,84 +1,8 @@
---
title: PostCSS
-description: Hugo Pipes can process CSS files with PostCSS.
-date: 2018-07-14
-publishdate: 2018-07-14
-lastmod: 2018-07-14
-categories: [asset management]
+description: Process the given resource with PostCSS using any PostCSS plugin.
+categories: []
keywords: []
-menu:
- docs:
- parent: "pipes"
- weight: 40
-weight: 40
-sections_weight: 40
-draft: false
---
-Any asset file can be processed using `resources.PostCSS` which takes for argument the resource object and a slice of options listed below.
-
-The resource will be processed using the project's or theme's own `postcss.config.js` or any file set with the `config` option.
-
-```go-html-template
-{{ $css := resources.Get "css/main.css" }}
-{{ $style := $css | resources.PostCSS }}
-```
-
-{{% note %}}
-Hugo Pipe's PostCSS requires the `postcss-cli` JavaScript package to be installed in the environment (`npm install -g postcss postcss-cli`) along with any PostCSS plugin(s) used (e.g., `npm install -g autoprefixer`).
-
-If you are using the Hugo Snap package, PostCSS and plugin(s) need to be installed locally within your Hugo site directory, e.g., `npm install postcss-cli` without the `-g` flag.
-{{% /note %}}
-
-### Options
-
-config [string]
-: Path to the PostCSS configuration file
-
-noMap [bool]
-: Default is `false`. Disable the default inline sourcemaps
-
-inlineImports [bool] {{< new-in "0.66.0" >}}
-: Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once.
-URL imports (e.g. `@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');`) and imports with media queries will be ignored.
-Note that this import routine does not care about the CSS spec, so you can have @import anywhere in the file.
-Hugo will look for imports relative to the module mount and will respect theme overrides.
-
-_If no configuration file is used:_
-
-use [string]
-: Space-delimited list of PostCSS plugins to use
-
-parser [string]
-: Custom PostCSS parser
-
-stringifier [string]
-: Custom PostCSS stringifier
-
-syntax [string]
-: Custom postcss syntax
-
-```go-html-template
-{{ $options := dict "config" "customPostCSS.js" "noMap" true }}
-{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }}
-
-{{ $options := dict "use" "autoprefixer postcss-color-alpha" }}
-{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }}
-```
-
-## Check Hugo Environment from postcss.config.js
-
-{{< new-in "0.66.0" >}}
-
-The current Hugo environment name (set by `--environment` or in config or OS environment) is available in the Node context, which allows constructs like this:
-
-```js
-module.exports = {
- plugins: [
- require('autoprefixer'),
- ...process.env.HUGO_ENVIRONMENT === 'production'
- ? [purgecss]
- : []
- ]
-}
-```
+See the [`css.PostCSS`](/functions/css/postcss/) function.
diff --git a/docs/content/en/hugo-pipes/postprocess.md b/docs/content/en/hugo-pipes/postprocess.md
index aafb786a473..72540fd5db4 100755
--- a/docs/content/en/hugo-pipes/postprocess.md
+++ b/docs/content/en/hugo-pipes/postprocess.md
@@ -1,70 +1,8 @@
---
title: PostProcess
-description: Allows delaying of resource transformations to after the build.
-date: 2020-04-09
-categories: [asset management]
+description: Process the given resource after the build.
+categories: []
keywords: []
-menu:
- docs:
- parent: "pipes"
- weight: 39
-weight: 39
-sections_weight: 39
---
-Marking a resource with `resources.PostProcess` delays any transformations to after the build, typically because one or more of the steps in the transformation chain depends on the result of the build (e.g. files in `public`).{{< new-in "0.69.0" >}}
-
-A prime use case for this is [CSS purging with PostCSS](#css-purging-with-postcss).
-
-There are currently two limitations to this:
-
-1. This only works in `*.html` templates (i.e. templates that produces HTML files).
-2. You cannot manipulate the values returned from the resource's methods. E.g. the `upper` in this example will not work as expected:
-
- ```go-html-template
- {{ $css := resources.Get "css/main.css" }}
- {{ $css = $css | resources.PostCSS | minify | fingerprint | resources.PostProcess }}
- {{ $css.RelPermalink | upper }}
- ```
-
-## CSS purging with PostCSS
-
-{{% note %}}
-There are several ways to set up CSS purging with PostCSS in Hugo. If you have a simple project, you should consider going the simpler route and drop the use of `resources.PostProcess` and just extract keywords from the templates. See the [Tailwind documentation](https://tailwindcss.com/docs/controlling-file-size/#app) for some examples.
-{{% /note %}}
-
-The below configuration will write a `hugo_stats.json` file to the project root as part of the build. If you're only using this for the production build, you should consider placing it below [config/production](/getting-started/configuration/#configuration-directory).
-
-{{< code-toggle file="config" >}}
-[build]
- writeStats = true
-{{< /code-toggle >}}
-
-`postcss.config.js`
-
-```js
-const purgecss = require('@fullhuman/postcss-purgecss')({
- content: [ './hugo_stats.json' ],
- defaultExtractor: (content) => {
- let els = JSON.parse(content).htmlElements;
- return els.tags.concat(els.classes, els.ids);
- }
-});
-
-module.exports = {
- plugins: [
- ...(process.env.HUGO_ENVIRONMENT === 'production' ? [ purgecss ] : [])
- ]
- };
-```
-
-Note that in the example above, the "CSS purge step" will only be applied to the production build. This means that you need to do something like this in your head template to build and include your CSS:
-
-```go-html-template
-{{ $css := resources.Get "css/main.css" }}
-{{ $css = $css | resources.PostCSS }}
-{{ if hugo.IsProduction }}
-{{ $css = $css | minify | fingerprint | resources.PostProcess }}
-{{ end }}
-
-```
+See the [`resources.PostProcess`](/functions/resources/postprocess/) function.
diff --git a/docs/content/en/hugo-pipes/resource-from-string.md b/docs/content/en/hugo-pipes/resource-from-string.md
index 8b942d2f32b..ed5eaff8029 100755
--- a/docs/content/en/hugo-pipes/resource-from-string.md
+++ b/docs/content/en/hugo-pipes/resource-from-string.md
@@ -1,31 +1,9 @@
---
-title: Creating a resource from a string
-linkTitle: Resource from String
-description: Hugo Pipes allows the creation of a resource from a string.
-date: 2018-07-14
-publishdate: 2018-07-14
-lastmod: 2018-07-14
-categories: [asset management]
+title: FromString
+linkTitle: Resource from string
+description: Create a resource from a string.
+categories: []
keywords: []
-menu:
- docs:
- parent: "pipes"
- weight: 90
-weight: 90
-sections_weight: 90
-draft: false
---
-It is possible to create a resource directly from the template using `resources.FromString` which takes two arguments, the given string and the resource target path.
-
-The following example creates a resource file containing localized variables for every project's languages.
-
-```go-html-template
-{{ $string := (printf "var rootURL = '%s'; var apiURL = '%s';" (absURL "/") (.Param "API_URL")) }}
-{{ $targetPath := "js/vars.js" }}
-{{ $vars := $string | resources.FromString $targetPath }}
-{{ $global := resources.Get "js/global.js" | resources.Minify }}
-
-
-
-```
+See the [`resources.FromString`](/functions/resources/fromstring/) function.
diff --git a/docs/content/en/hugo-pipes/resource-from-template.md b/docs/content/en/hugo-pipes/resource-from-template.md
index 9bc8c7e9d9b..bc50f630b48 100755
--- a/docs/content/en/hugo-pipes/resource-from-template.md
+++ b/docs/content/en/hugo-pipes/resource-from-template.md
@@ -1,38 +1,9 @@
---
-title: Creating a resource from template
-linkTitle: Resource from Template
-description: Hugo Pipes allows the creation of a resource from an asset file using Go Template.
-date: 2018-07-14
-publishdate: 2018-07-14
-lastmod: 2018-07-14
-categories: [asset management]
+title: ExecuteAsTemplate
+linkTitle: Resource from template
+description: Create a resource from a Go template, parsed and executed with the given context.
+categories: []
keywords: []
-menu:
- docs:
- parent: "pipes"
- weight: 80
-weight: 80
-sections_weight: 80
-draft: false
---
-In order to use Hugo Pipes function on an asset file containing Go Template magic the function `resources.ExecuteAsTemplate` must be used.
-
-The function takes three arguments: the resource target path, the template context, and the resource object.
-
-```go-html-template
-// assets/sass/template.scss
-$backgroundColor: {{ .Param "backgroundColor" }};
-$textColor: {{ .Param "textColor" }};
-body{
- background-color:$backgroundColor;
- color: $textColor;
-}
-// [...]
-```
-
-
-```go-html-template
-{{ $sassTemplate := resources.Get "sass/template.scss" }}
-{{ $style := $sassTemplate | resources.ExecuteAsTemplate "main.scss" . | resources.ToCSS }}
-```
+See the [`resources.ExecuteAsTemplate`](/functions/resources/executeastemplate/) function.
diff --git a/docs/content/en/hugo-pipes/scss-sass.md b/docs/content/en/hugo-pipes/scss-sass.md
deleted file mode 100755
index 12cebc0142c..00000000000
--- a/docs/content/en/hugo-pipes/scss-sass.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-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. We will try to improve the installation process when it has stable releases, 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) (Hugo after 0.81.0 requires beta 6 or newer) 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 --git a/docs/content/en/hugo-pipes/transpile-sass-to-css.md b/docs/content/en/hugo-pipes/transpile-sass-to-css.md
new file mode 100644
index 00000000000..75691429748
--- /dev/null
+++ b/docs/content/en/hugo-pipes/transpile-sass-to-css.md
@@ -0,0 +1,10 @@
+---
+title: ToCSS
+linkTitle: Transpile Sass to CSS
+description: Transpile Sass to CSS.
+categories: []
+keywords: []
+aliases: [/hugo-pipes/transform-to-css/]
+---
+
+See the [`css.Sass`](/functions/css/sass) function.
diff --git a/docs/content/en/installation/_index.md b/docs/content/en/installation/_index.md
new file mode 100644
index 00000000000..fdcb8f9eb8f
--- /dev/null
+++ b/docs/content/en/installation/_index.md
@@ -0,0 +1,8 @@
+---
+title: Installation
+description: Install Hugo on macOS, Linux, Windows, BSD, and on any machine that can run the Go compiler tool chain.
+categories: []
+keywords: []
+weight: 10
+aliases: [/getting-started/installing/]
+---
diff --git a/docs/content/en/installation/bsd.md b/docs/content/en/installation/bsd.md
new file mode 100644
index 00000000000..7b8e8c82c97
--- /dev/null
+++ b/docs/content/en/installation/bsd.md
@@ -0,0 +1,71 @@
+---
+title: BSD
+description: Install Hugo on BSD derivatives.
+categories: []
+keywords: []
+weight: 40
+---
+
+{{% include "/_common/installation/01-editions.md" %}}
+
+{{% include "/_common/installation/02-prerequisites.md" %}}
+
+{{% include "/_common/installation/03-prebuilt-binaries.md" %}}
+
+## Repository packages
+
+Most BSD derivatives maintain a repository for commonly installed applications. Please note that these repositories may not contain the [latest release].
+
+[latest release]: https://github.com/gohugoio/hugo/releases/latest
+
+### DragonFly BSD
+
+[DragonFly BSD] includes Hugo in its package repository. To install the extended edition of Hugo:
+
+```sh
+sudo pkg install gohugo
+```
+
+[DragonFly BSD]: https://www.dragonflybsd.org/
+
+### FreeBSD
+
+[FreeBSD] includes Hugo in its package repository. To install the extended edition of Hugo:
+
+```sh
+sudo pkg install gohugo
+```
+
+[FreeBSD]: https://www.freebsd.org/
+
+### NetBSD
+
+[NetBSD] includes Hugo in its package repository. To install the extended edition of Hugo:
+
+```sh
+sudo pkgin install go-hugo
+```
+
+[NetBSD]: https://www.netbsd.org/
+
+### OpenBSD
+
+[OpenBSD] includes Hugo in its package repository. This will prompt you to select which edition of Hugo to install:
+
+```sh
+doas pkg_add hugo
+```
+
+[OpenBSD]: https://www.openbsd.org/
+
+{{% include "/_common/installation/04-build-from-source.md" %}}
+
+## Comparison
+
+ |Prebuilt binaries|Repository packages|Build from source
+:--|:--:|:--:|:--:
+Easy to install?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+Easy to upgrade?|:heavy_check_mark:|varies|:heavy_check_mark:
+Easy to downgrade?|:heavy_check_mark:|varies|:heavy_check_mark:
+Automatic updates?|:x:|varies|:x:
+Latest version available?|:heavy_check_mark:|varies|:heavy_check_mark:
diff --git a/docs/content/en/installation/linux.md b/docs/content/en/installation/linux.md
new file mode 100644
index 00000000000..6e8c9cd49c6
--- /dev/null
+++ b/docs/content/en/installation/linux.md
@@ -0,0 +1,216 @@
+---
+title: Linux
+description: Install Hugo on Linux.
+categories: []
+keywords: []
+weight: 20
+---
+
+{{% include "/_common/installation/01-editions.md" %}}
+
+{{% include "/_common/installation/02-prerequisites.md" %}}
+
+{{% include "/_common/installation/03-prebuilt-binaries.md" %}}
+
+## Package managers
+
+### Snap
+
+[Snap] is a free and open-source package manager for Linux. Available for [most distributions], snap packages are simple to install and are automatically updated.
+
+The Hugo snap package is [strictly confined]. Strictly confined snaps run in complete isolation, up to a minimal access level that's deemed always safe. The sites you create and build must be located within your home directory, or on removable media.
+
+To install the extended edition of Hugo:
+
+```sh
+sudo snap install hugo
+```
+
+To control automatic updates:
+
+```sh
+# disable automatic updates
+sudo snap refresh --hold hugo
+
+# enable automatic updates
+sudo snap refresh --unhold hugo
+```
+
+To control access to removable media:
+
+```sh
+# allow access
+sudo snap connect hugo:removable-media
+
+# revoke access
+sudo snap disconnect hugo:removable-media
+```
+
+To control access to SSH keys:
+
+```sh
+# allow access
+sudo snap connect hugo:ssh-keys
+
+# revoke access
+sudo snap disconnect hugo:ssh-keys
+```
+
+[strictly confined]: https://snapcraft.io/docs/snap-confinement
+[most distributions]: https://snapcraft.io/docs/installing-snapd
+[Snap]: https://snapcraft.io/
+
+{{% include "/_common/installation/homebrew.md" %}}
+
+## Repository packages
+
+Most Linux distributions maintain a repository for commonly installed applications.
+
+> [!note]
+> The Hugo version available in package repositories varies based on Linux distribution and release, and in some cases will not be the [latest version].
+>
+> Use one of the other installation methods if your package repository does not provide the desired version.
+
+### Alpine Linux
+
+To install the extended edition of Hugo on [Alpine Linux]:
+
+```sh
+doas apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community hugo
+```
+
+### Arch Linux
+
+Derivatives of the [Arch Linux] distribution of Linux include [EndeavourOS], [Garuda Linux], [Manjaro], and others. To install the extended edition of Hugo:
+
+```sh
+sudo pacman -S hugo
+```
+
+### Debian
+
+Derivatives of the [Debian] distribution of Linux include [elementary OS], [KDE neon], [Linux Lite], [Linux Mint], [MX Linux], [Pop!_OS], [Ubuntu], [Zorin OS], and others. To install the extended edition of Hugo:
+
+```sh
+sudo apt install hugo
+```
+
+You can also download Debian packages from the [latest release][] page.
+
+### Exherbo
+
+To install the extended edition of Hugo on [Exherbo]:
+
+1. Add this line to /etc/paludis/options.conf:
+
+ ```text
+ www-apps/hugo extended
+ ```
+
+1. Install using the Paludis package manager:
+
+ ```sh
+ cave resolve -x repository/heirecka
+ cave resolve -x hugo
+ ```
+
+### Fedora
+
+Derivatives of the [Fedora] distribution of Linux include [CentOS], [Red Hat Enterprise Linux], and others. To install the extended edition of Hugo:
+
+```sh
+sudo dnf install hugo
+```
+
+### Gentoo
+
+Derivatives of the [Gentoo] distribution of Linux include [Calculate Linux], [Funtoo], and others. To install the extended edition of Hugo:
+
+1. Specify the `extended` [USE] flag in /etc/portage/package.use/hugo:
+
+ ```text
+ www-apps/hugo extended
+ ```
+
+1. Build using the Portage package manager:
+
+ ```sh
+ sudo emerge www-apps/hugo
+ ```
+
+### NixOS
+
+The NixOS distribution of Linux includes Hugo in its package repository. To install the extended edition of Hugo:
+
+```sh
+nix-env -iA nixos.hugo
+```
+
+### openSUSE
+
+Derivatives of the [openSUSE] distribution of Linux include [GeckoLinux], [Linux Karmada], and others. To install the extended edition of Hugo:
+
+```sh
+sudo zypper install hugo
+```
+
+### Solus
+
+The [Solus] distribution of Linux includes Hugo in its package repository. To install the extended edition of Hugo:
+
+```sh
+sudo eopkg install hugo
+```
+
+### Void Linux
+
+To install the extended edition of Hugo on [Void Linux]:
+
+```sh
+sudo xbps-install -S hugo
+```
+
+{{% include "/_common/installation/04-build-from-source.md" %}}
+
+## Comparison
+
+ |Prebuilt binaries|Package managers|Repository packages|Build from source
+:--|:--:|:--:|:--:|:--:
+Easy to install?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+Easy to upgrade?|:heavy_check_mark:|:heavy_check_mark:|varies|:heavy_check_mark:
+Easy to downgrade?|:heavy_check_mark:|:heavy_check_mark: [^1]|varies|:heavy_check_mark:
+Automatic updates?|:x:|varies [^2]|:x:|:x:
+Latest version available?|:heavy_check_mark:|:heavy_check_mark:|varies|:heavy_check_mark:
+
+[^1]: Easy if a previous version is still installed.
+[^2]: Snap packages are automatically updated. Homebrew requires advanced configuration.
+
+[Alpine Linux]: https://alpinelinux.org/
+[Arch Linux]: https://archlinux.org/
+[Calculate Linux]: https://www.calculate-linux.org/
+[CentOS]: https://www.centos.org/
+[Debian]: https://www.debian.org/
+[elementary OS]: https://elementary.io/
+[EndeavourOS]: https://endeavouros.com/
+[Exherbo]: https://www.exherbolinux.org/
+[Fedora]: https://getfedora.org/
+[Funtoo]: https://www.funtoo.org/
+[Garuda Linux]: https://garudalinux.org/
+[GeckoLinux]: https://geckolinux.github.io/
+[Gentoo]: https://www.gentoo.org/
+[KDE neon]: https://neon.kde.org/
+[latest release]: https://github.com/gohugoio/hugo/releases/latest
+[latest version]: https://github.com/gohugoio/hugo/releases/latest
+[Linux Karmada]: https://linuxkamarada.com/
+[Linux Lite]: https://www.linuxliteos.com/
+[Linux Mint]: https://linuxmint.com/
+[Manjaro]: https://manjaro.org/
+[MX Linux]: https://mxlinux.org/
+[openSUSE]: https://www.opensuse.org/
+[Pop!_OS]: https://pop.system76.com/
+[Red Hat Enterprise Linux]: https://www.redhat.com/
+[Solus]: https://getsol.us/
+[Ubuntu]: https://ubuntu.com/
+[USE]: https://packages.gentoo.org/packages/www-apps/hugo
+[Void Linux]: https://voidlinux.org/
+[Zorin OS]: https://zorin.com/os/
diff --git a/docs/content/en/installation/macos.md b/docs/content/en/installation/macos.md
new file mode 100644
index 00000000000..1984d1a8eeb
--- /dev/null
+++ b/docs/content/en/installation/macos.md
@@ -0,0 +1,42 @@
+---
+title: macOS
+description: Install Hugo on macOS.
+categories: []
+keywords: []
+weight: 10
+---
+
+{{% include "/_common/installation/01-editions.md" %}}
+
+{{% include "/_common/installation/02-prerequisites.md" %}}
+
+{{% include "/_common/installation/03-prebuilt-binaries.md" %}}
+
+## Package managers
+
+{{% include "/_common/installation/homebrew.md" %}}
+
+### MacPorts
+
+[MacPorts] is a free and open-source package manager for macOS. To install the extended edition of Hugo:
+
+```sh
+sudo port install hugo
+```
+
+[MacPorts]: https://www.macports.org/
+
+{{% include "/_common/installation/04-build-from-source.md" %}}
+
+## Comparison
+
+ |Prebuilt binaries|Package managers|Build from source
+:--|:--:|:--:|:--:
+Easy to install?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+Easy to upgrade?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+Easy to downgrade?|:heavy_check_mark:|:heavy_check_mark: [^1]|:heavy_check_mark:
+Automatic updates?|:x:|:x: [^2]|:x:
+Latest version available?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+
+[^1]: Easy if a previous version is still installed.
+[^2]: Possible but requires advanced configuration.
diff --git a/docs/content/en/installation/windows.md b/docs/content/en/installation/windows.md
new file mode 100644
index 00000000000..8563ab7eed0
--- /dev/null
+++ b/docs/content/en/installation/windows.md
@@ -0,0 +1,70 @@
+---
+title: Windows
+description: Install Hugo on Windows.
+categories: []
+keywords: []
+weight: 30
+---
+
+> [!note]
+> Hugo v0.121.1 and later require at least Windows 10 or Windows Server 2016.
+
+{{% include "/_common/installation/01-editions.md" %}}
+
+{{% include "/_common/installation/02-prerequisites.md" %}}
+
+{{% include "/_common/installation/03-prebuilt-binaries.md" %}}
+
+## Package managers
+
+### Chocolatey
+
+[Chocolatey] is a free and open-source package manager for Windows. To install the extended edition of Hugo:
+
+```sh
+choco install hugo-extended
+```
+
+### Scoop
+
+[Scoop] is a free and open-source package manager for Windows. To install the extended edition of Hugo:
+
+```sh
+scoop install hugo-extended
+```
+
+### Winget
+
+[Winget] is Microsoft's official free and open-source package manager for Windows. To install the extended edition of Hugo:
+
+```sh
+winget install Hugo.Hugo.Extended
+```
+
+To uninstall the extended edition of Hugo:
+
+```sh
+winget uninstall --name "Hugo (Extended)"
+```
+
+{{% include "/_common/installation/04-build-from-source.md" %}}
+
+> [!note]
+> See these [detailed instructions](https://discourse.gohugo.io/t/41370) to install GCC on Windows.
+
+## Comparison
+
+ |Prebuilt binaries|Package managers|Build from source
+:--|:--:|:--:|:--:
+Easy to install?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+Easy to upgrade?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+Easy to downgrade?|:heavy_check_mark:|:heavy_check_mark: [^2]|:heavy_check_mark:
+Automatic updates?|:x:|:x: [^1]|:x:
+Latest version available?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:
+
+[^1]: Possible but requires advanced configuration.
+[^2]: Easy if a previous version is still installed.
+
+[Chocolatey]: https://chocolatey.org/
+[Scoop]: https://scoop.sh/
+[Winget]: https://learn.microsoft.com/en-us/windows/package-manager/
diff --git a/docs/content/en/maintenance/_index.md b/docs/content/en/maintenance/_index.md
deleted file mode 100644
index 691a5d47ce0..00000000000
--- a/docs/content/en/maintenance/_index.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Maintenance
-description: Some lists useful for the maintenance of the Hugo docs site.
-date: 2018-02-09
-categories: [maintenance]
-keywords: [maintenance]
-menu:
- docs:
- weight: 200
-slug:
-aliases: []
-toc: true
----
-
diff --git a/docs/content/en/methods/_index.md b/docs/content/en/methods/_index.md
new file mode 100644
index 00000000000..39f2b614607
--- /dev/null
+++ b/docs/content/en/methods/_index.md
@@ -0,0 +1,8 @@
+---
+title: Methods
+description: Use these methods within your templates.
+categories: []
+keywords: []
+weight: 10
+aliases: ['/variables/']
+---
diff --git a/docs/content/en/methods/duration/Abs.md b/docs/content/en/methods/duration/Abs.md
new file mode 100644
index 00000000000..2e85797ea0f
--- /dev/null
+++ b/docs/content/en/methods/duration/Abs.md
@@ -0,0 +1,15 @@
+---
+title: Abs
+description: Returns the absolute value of the given time.Duration value.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Duration
+ signatures: [DURATION.Abs]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "-3h" }}
+{{ $d.Abs }} → 3h0m0s
+```
diff --git a/docs/content/en/methods/duration/Hours.md b/docs/content/en/methods/duration/Hours.md
new file mode 100644
index 00000000000..23655510e1f
--- /dev/null
+++ b/docs/content/en/methods/duration/Hours.md
@@ -0,0 +1,15 @@
+---
+title: Hours
+description: Returns the time.Duration value as a floating point number of hours.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: float64
+ signatures: [DURATION.Hours]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+{{ $d.Hours }} → 3.5420833333333333
+```
diff --git a/docs/content/en/methods/duration/Microseconds.md b/docs/content/en/methods/duration/Microseconds.md
new file mode 100644
index 00000000000..c090316d028
--- /dev/null
+++ b/docs/content/en/methods/duration/Microseconds.md
@@ -0,0 +1,15 @@
+---
+title: Microseconds
+description: Returns the time.Duration value as an integer microsecond count.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [DURATION.Microseconds]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+{{ $d.Microseconds }} → 12751500000
+```
diff --git a/docs/content/en/methods/duration/Milliseconds.md b/docs/content/en/methods/duration/Milliseconds.md
new file mode 100644
index 00000000000..288f3695a6c
--- /dev/null
+++ b/docs/content/en/methods/duration/Milliseconds.md
@@ -0,0 +1,15 @@
+---
+title: Milliseconds
+description: Returns the time.Duration value as an integer millisecond count.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [DURATION.Milliseconds]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+{{ $d.Milliseconds }} → 12751500
+```
diff --git a/docs/content/en/methods/duration/Minutes.md b/docs/content/en/methods/duration/Minutes.md
new file mode 100644
index 00000000000..aec904fa790
--- /dev/null
+++ b/docs/content/en/methods/duration/Minutes.md
@@ -0,0 +1,15 @@
+---
+title: Minutes
+description: Returns the time.Duration value as a floating point number of minutes.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: float64
+ signatures: [DURATION.Minutes]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+{{ $d.Minutes }} → 212.525
+```
diff --git a/docs/content/en/methods/duration/Nanoseconds.md b/docs/content/en/methods/duration/Nanoseconds.md
new file mode 100644
index 00000000000..fd1b9e4969b
--- /dev/null
+++ b/docs/content/en/methods/duration/Nanoseconds.md
@@ -0,0 +1,15 @@
+---
+title: Nanoseconds
+description: Returns the time.Duration value as an integer nanosecond count.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [DURATION.Nanoseconds]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+{{ $d.Nanoseconds }} → 12751500000000
+```
diff --git a/docs/content/en/methods/duration/Round.md b/docs/content/en/methods/duration/Round.md
new file mode 100644
index 00000000000..dfd06253f9f
--- /dev/null
+++ b/docs/content/en/methods/duration/Round.md
@@ -0,0 +1,18 @@
+---
+title: Round
+description: Returns the result of rounding DURATION1 to the nearest multiple of DURATION2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType:
+ signatures: [DURATION1.Round DURATION2]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+
+{{ $d.Round (time.ParseDuration "2h") }} → 4h0m0s
+{{ $d.Round (time.ParseDuration "3m") }} → 3h33m0s
+{{ $d.Round (time.ParseDuration "4s") }} → 3h32m32s
+```
diff --git a/docs/content/en/methods/duration/Seconds.md b/docs/content/en/methods/duration/Seconds.md
new file mode 100644
index 00000000000..8b6d060b9ca
--- /dev/null
+++ b/docs/content/en/methods/duration/Seconds.md
@@ -0,0 +1,15 @@
+---
+title: Seconds
+description: Returns the time.Duration value as a floating point number of seconds.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: float64
+ signatures: [DURATION.Seconds]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+{{ $d.Seconds }} → 12751.5
+```
diff --git a/docs/content/en/methods/duration/Truncate.md b/docs/content/en/methods/duration/Truncate.md
new file mode 100644
index 00000000000..5a785a77a55
--- /dev/null
+++ b/docs/content/en/methods/duration/Truncate.md
@@ -0,0 +1,18 @@
+---
+title: Truncate
+description: Returns the result of rounding DURATION1 toward zero to a multiple of DURATION2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Duration
+ signatures: [DURATION1.Truncate DURATION2]
+---
+
+```go-html-template
+{{ $d = time.ParseDuration "3.5h2.5m1.5s" }}
+
+{{ $d.Truncate (time.ParseDuration "2h") }} → 2h0m0s
+{{ $d.Truncate (time.ParseDuration "3m") }} → 3h30m0s
+{{ $d.Truncate (time.ParseDuration "4s") }} → 3h32m28s
+```
diff --git a/docs/content/en/methods/duration/_index.md b/docs/content/en/methods/duration/_index.md
new file mode 100644
index 00000000000..4c690ecc39c
--- /dev/null
+++ b/docs/content/en/methods/duration/_index.md
@@ -0,0 +1,7 @@
+---
+title: Duration methods
+linkTitle: Duration
+description: Use these methods with a time.Duration value.
+categories: []
+keywords: []
+---
diff --git a/docs/content/en/methods/menu-entry/Children.md b/docs/content/en/methods/menu-entry/Children.md
new file mode 100644
index 00000000000..16cec71d96e
--- /dev/null
+++ b/docs/content/en/methods/menu-entry/Children.md
@@ -0,0 +1,66 @@
+---
+title: Children
+description: Returns a collection of child menu entries, if any, under the given menu entry.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: navigation.Menu
+ signatures: [MENUENTRY.Children]
+---
+
+Use the `Children` method when rendering a nested menu.
+
+With this project configuration:
+
+{{< code-toggle file=hugo >}}
+[[menus.main]]
+name = 'Products'
+pageRef = '/product'
+weight = 10
+
+[[menus.main]]
+name = 'Product 1'
+pageRef = '/products/product-1'
+parent = 'Products'
+weight = 1
+
+[[menus.main]]
+name = 'Product 2'
+pageRef = '/products/product-2'
+parent = 'Products'
+weight = 2
+{{< /code-toggle >}}
+
+And this template:
+
+```go-html-template
+
+``` + +Hugo renders this HTML: + +```html +
+``` diff --git a/docs/content/en/methods/menu-entry/HasChildren.md b/docs/content/en/methods/menu-entry/HasChildren.md new file mode 100644 index 00000000000..59ef2e19e63 --- /dev/null +++ b/docs/content/en/methods/menu-entry/HasChildren.md @@ -0,0 +1,66 @@ +--- +title: HasChildren +description: Reports whether the given menu entry has child menu entries. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [MENUENTRY.HasChildren] +--- + +Use the `HasChildren` method when rendering a nested menu. + +With this project configuration: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Products' +pageRef = '/product' +weight = 10 + +[[menus.main]] +name = 'Product 1' +pageRef = '/products/product-1' +parent = 'Products' +weight = 1 + +[[menus.main]] +name = 'Product 2' +pageRef = '/products/product-2' +parent = 'Products' +weight = 2 +{{< /code-toggle >}} + +And this template: + +```go-html-template +
+``` + +Hugo renders this HTML: + +```html +
+``` diff --git a/docs/content/en/methods/menu-entry/Identifier.md b/docs/content/en/methods/menu-entry/Identifier.md new file mode 100644 index 00000000000..7310ff3ba8d --- /dev/null +++ b/docs/content/en/methods/menu-entry/Identifier.md @@ -0,0 +1,41 @@ +--- +title: Identifier +description: Returns the `identifier` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.Identifier] +--- + +The `Identifier` method returns the `identifier` property of the menu entry. If you define the menu entry [automatically], it returns the page's section. + +{{< code-toggle file=hugo >}} +[[menus.main]] +identifier = 'about' +name = 'About' +pageRef = '/about' +weight = 10 + +[[menus.main]] +identifier = 'contact' +name = 'Contact' +pageRef = '/contact' +weight = 20 +{{< /code-toggle >}} + +This example uses the `Identifier` method when querying the translation table on a multilingual project, falling back the `name` property if a matching key in the translation table does not exist: + +```go-html-template +
+``` + +> [!note] +> In the menu definition above, note that the `identifier` property is only required when two or more menu entries have the same name, or when localizing the name using translation tables. + +[automatically]: /content-management/menus/#define-automatically diff --git a/docs/content/en/methods/menu-entry/KeyName.md b/docs/content/en/methods/menu-entry/KeyName.md new file mode 100644 index 00000000000..abf6396674a --- /dev/null +++ b/docs/content/en/methods/menu-entry/KeyName.md @@ -0,0 +1,39 @@ +--- +title: KeyName +description: Returns the `identifier` property of the given menu entry, falling back to its `name` property. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.KeyName] +--- + +In this menu definition, the second entry does not contain an `identifier`, so the `Identifier` method returns its `name` property instead: + +{{< code-toggle file=hugo >}} +[[menus.main]] +identifier = 'about' +name = 'About' +pageRef = '/about' +weight = 10 + +[[menus.main]] +name = 'Contact' +pageRef = '/contact' +weight = 20 +{{< /code-toggle >}} + +This example uses the `KeyName` method when querying the translation table on a multilingual project, falling back the `name` property if a matching key in the translation table does not exist: + +```go-html-template +
+``` + +In the example above, we need to pass the value returned by `.KeyName` through the [`lower`] function because the keys in the translation table are lowercase. + +[`lower`]: /functions/strings/tolower/ diff --git a/docs/content/en/methods/menu-entry/Menu.md b/docs/content/en/methods/menu-entry/Menu.md new file mode 100644 index 00000000000..074911eeb13 --- /dev/null +++ b/docs/content/en/methods/menu-entry/Menu.md @@ -0,0 +1,22 @@ +--- +title: Menu +description: Returns the identifier of the menu that contains the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.Menu] +--- + +```go-html-template +{{ range .Site.Menus.main }} + {{ .Menu }} → main +{{ end }} +``` + +Use this method with the [`IsMenuCurrent`] and [`HasMenuCurrent`] methods on a `Page` object to set "active" and "ancestor" classes on a rendered entry. See [this example]. + +[`HasMenuCurrent`]: /methods/page/hasmenucurrent/ +[`IsMenuCurrent`]: /methods/page/ismenucurrent/ +[this example]: /templates/menu/#example diff --git a/docs/content/en/methods/menu-entry/Name.md b/docs/content/en/methods/menu-entry/Name.md new file mode 100644 index 00000000000..a00601b2de5 --- /dev/null +++ b/docs/content/en/methods/menu-entry/Name.md @@ -0,0 +1,28 @@ +--- +title: Name +description: Returns the `name` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.Name] +--- + +If you define the menu entry [automatically], the `Name` method returns the page's [`LinkTitle`], falling back to its [`Title`]. + +If you define the menu entry in [front matter] or in your [project configuration], the `Name` method returns the `name` property of the given menu entry. If the `name` is not defined, and the menu entry resolves to a page, the `Name` returns the page [`LinkTitle`], falling back to its [`Title`]. + +```go-html-template +
+``` + +[`LinkTitle`]: /methods/page/linktitle/ +[`Title`]: /methods/page/title/ +[automatically]: /content-management/menus/#define-automatically +[front matter]: /content-management/menus/#define-in-front-matter +[project configuration]: /content-management/menus/#define-in-project-configuration diff --git a/docs/content/en/methods/menu-entry/Page.md b/docs/content/en/methods/menu-entry/Page.md new file mode 100644 index 00000000000..489ee7accba --- /dev/null +++ b/docs/content/en/methods/menu-entry/Page.md @@ -0,0 +1,53 @@ +--- +title: Page +description: Returns the Page object associated with the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [MENUENTRY.Page] +--- + +Regardless of how you [define menu entries], an entry associated with a page has access to its [methods]. + +In this menu definition, the first two entries are associated with a page, the last entry is not: + +{{< code-toggle file=hugo >}} +[[menus.main]] +pageRef = '/about' +weight = 10 + +[[menus.main]] +pageRef = '/contact' +weight = 20 + +[[menus.main]] +name = 'Hugo' +url = 'https://gohugo.io' +weight = 30 +{{< /code-toggle >}} + +In this example, if the menu entry is associated with a page, we use page's [`RelPermalink`] and [`LinkTitle`] when rendering the anchor element. + +If the entry is not associated with a page, we use its `url` and `name` properties. + +```go-html-template +
+``` + +See the [menu templates] section for more information. + +[`LinkTitle`]: /methods/page/linktitle/ +[`RelPermalink`]: /methods/page/relpermalink/ +[define menu entries]: /content-management/menus/ +[menu templates]: /templates/menu/#page-references +[methods]: /methods/page/ diff --git a/docs/content/en/methods/menu-entry/PageRef.md b/docs/content/en/methods/menu-entry/PageRef.md new file mode 100644 index 00000000000..8d4e536566c --- /dev/null +++ b/docs/content/en/methods/menu-entry/PageRef.md @@ -0,0 +1,109 @@ +--- +title: PageRef +description: Returns the `pageRef` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.PageRef] +--- + +> [!note] +> The use case for this method is rare. +> In almost also scenarios you should use the [`URL`] method instead. + +## Explanation + +If you specify a `pageRef` property when [defining a menu entry] in your project configuration, Hugo looks for a matching page when rendering the entry. + +If a matching page is found: + +- The [`URL`] method returns the page's relative permalink +- The [`Page`] method returns the corresponding `Page` object +- The [`HasMenuCurrent`] and [`IsMenuCurrent`] methods on a `Page` object return the expected values + +If a matching page is not found: + +- The [`URL`] method returns the entry's `url` property if set, else an empty string +- The [`Page`] method returns nil +- The [`HasMenuCurrent`] and [`IsMenuCurrent`] methods on a `Page` object return `false` + +> [!note] +> In almost also scenarios you should use the [`URL`] method instead. + +## Example + +This example is contrived. + +> [!note] +> In almost also scenarios you should use the [`URL`] method instead. + +Consider this content structure: + +```text +content/ +├── products.md +└── _index.md +``` + +And this menu definition: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Products' +pageRef = '/products' +weight = 10 +[[menus.main]] +name = 'Services' +pageRef = '/services' +weight = 20 +{{< /code-toggle >}} + +With this template code: + +```go-html-template {file="layouts/_partials/menu.html"} +
+``` + +Hugo render this HTML: + +```html +
+``` + +In the above note that the `href` attribute of the second `anchor` element is blank because Hugo was unable to find the "services" page. + +With this template code: + +```go-html-template {file="layouts/_partials/menu.html"} +
+``` + +Hugo renders this HTML: + +```html +
+``` + +In the above note that Hugo populates the `href` attribute of the second `anchor` element with the `pageRef` property as defined in your project configuration because the template code falls back to the `PageRef` method. + +[`HasMenuCurrent`]: /methods/page/hasmenucurrent/ +[`IsMenuCurrent`]: /methods/page/ismenucurrent/ +[`Page`]: /methods/menu-entry/page/ +[`URL`]: /methods/menu-entry/url/ +[defining a menu entry]: /content-management/menus/#define-in-project-configuration diff --git a/docs/content/en/methods/menu-entry/Params.md b/docs/content/en/methods/menu-entry/Params.md new file mode 100644 index 00000000000..1131781471d --- /dev/null +++ b/docs/content/en/methods/menu-entry/Params.md @@ -0,0 +1,61 @@ +--- +title: Params +description: Returns the `params` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Params + signatures: [MENUENTRY.Params] +--- + +When you define menu entries in your [project configuration] or in [front matter], you can include a `params` key to attach additional information to the entry. For example: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'About' +pageRef = '/about' +weight = 10 + +[[menus.main]] +name = 'Contact' +pageRef = '/contact' +weight = 20 + +[[menus.main]] +name = 'Hugo' +url = 'https://gohugo.io' +weight = 30 +[menus.main.params] + rel = 'external' +{{< /code-toggle >}} + +With this template: + +```go-html-template +
+``` + +Hugo renders: + +```html +
+``` + +See the [menu templates] section for more information. + +[menu templates]: /templates/menu/#menu-entry-parameters +[front matter]: /content-management/menus/#define-in-front-matter +[project configuration]: /content-management/menus/ diff --git a/docs/content/en/methods/menu-entry/Parent.md b/docs/content/en/methods/menu-entry/Parent.md new file mode 100644 index 00000000000..7c617527b9a --- /dev/null +++ b/docs/content/en/methods/menu-entry/Parent.md @@ -0,0 +1,50 @@ +--- +title: Parent +description: Returns the `parent` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.Parent] +--- + +With this menu definition: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Products' +pageRef = '/product' +weight = 10 + +[[menus.main]] +name = 'Product 1' +pageRef = '/products/product-1' +parent = 'Products' +weight = 1 + +[[menus.main]] +name = 'Product 2' +pageRef = '/products/product-2' +parent = 'Products' +weight = 2 +{{< /code-toggle >}} + +This template renders the nested menu, listing the `parent` property next each of the child entries: + +```go-html-template +
+``` diff --git a/docs/content/en/methods/menu-entry/Post.md b/docs/content/en/methods/menu-entry/Post.md new file mode 100644 index 00000000000..2da8c38d8a1 --- /dev/null +++ b/docs/content/en/methods/menu-entry/Post.md @@ -0,0 +1,12 @@ +--- +title: Post +description: Returns the `post` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [MENUENTRY.Post] +--- + +{{% include "/_common/menu-entries/pre-and-post.md" %}} diff --git a/docs/content/en/methods/menu-entry/Pre.md b/docs/content/en/methods/menu-entry/Pre.md new file mode 100644 index 00000000000..19af243e7fc --- /dev/null +++ b/docs/content/en/methods/menu-entry/Pre.md @@ -0,0 +1,12 @@ +--- +title: Pre +description: Returns the `pre` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [MENUENTRY.Pre] +--- + +{{% include "/_common/menu-entries/pre-and-post.md" %}} diff --git a/docs/content/en/methods/menu-entry/Title.md b/docs/content/en/methods/menu-entry/Title.md new file mode 100644 index 00000000000..526132d7c14 --- /dev/null +++ b/docs/content/en/methods/menu-entry/Title.md @@ -0,0 +1,22 @@ +--- +title: Title +description: Returns the `title` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [MENUENTRY.Title] +--- + +The `Title` method returns the `title` property of the given menu entry. If the `title` is not defined, and the menu entry resolves to a page, the `Title` returns the page [`Title`]. + +[`Title`]: /methods/page/title/ + +```go-html-template +
+``` + +[`RelPermalink`]: /methods/page/relpermalink/ diff --git a/docs/content/en/methods/menu-entry/Weight.md b/docs/content/en/methods/menu-entry/Weight.md new file mode 100644 index 00000000000..17fc3a43b46 --- /dev/null +++ b/docs/content/en/methods/menu-entry/Weight.md @@ -0,0 +1,31 @@ +--- +title: Weight +description: Returns the `weight` property of the given menu entry. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [MENUENTRY.Weight] +--- + +If you define the menu entry [automatically], the `Weight` method returns the page's [`Weight`]. + +If you define the menu entry in [front matter] or in your [project configuration], the `Weight` method returns the `weight` property, falling back to the page's `Weight`. + +In this contrived example, we limit the number of menu entries based on weight: + +```go-html-template +
+``` + +[`Weight`]: /methods/page/weight/ +[automatically]: /content-management/menus/#define-automatically +[front matter]: /content-management/menus/#define-in-front-matter +[project configuration]: /content-management/menus/#define-in-project-configuration diff --git a/docs/content/en/methods/menu-entry/_index.md b/docs/content/en/methods/menu-entry/_index.md new file mode 100644 index 00000000000..129e9bcdce2 --- /dev/null +++ b/docs/content/en/methods/menu-entry/_index.md @@ -0,0 +1,7 @@ +--- +title: Menu entry methods +linkTitle: Menu entry +description: Use these methods in your menu templates. +categories: [] +keywords: [] +--- diff --git a/docs/content/en/methods/menu/ByName.md b/docs/content/en/methods/menu/ByName.md new file mode 100644 index 00000000000..d98a4aced3a --- /dev/null +++ b/docs/content/en/methods/menu/ByName.md @@ -0,0 +1,65 @@ +--- +title: ByName +description: Returns the given menu with its entries sorted by name. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: navigation.Menu + signatures: [MENU.ByName] +--- + +The `Sort` method returns the given menu with its entries sorted by `name`. + +Consider this menu definition: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Services' +pageRef = '/services' +weight = 10 + +[[menus.main]] +name = 'About' +pageRef = '/about' +weight = 20 + +[[menus.main]] +name = 'Contact' +pageRef = '/contact' +weight = 30 +{{< /code-toggle >}} + +To sort the entries by `name`: + +```go-html-template +
+``` + +Hugo renders this to: + +```html +
+``` + +You can also sort menu entries using the [`sort`] function. For example, to sort by `name` in descending order: + +```go-html-template +
+``` + +When using the sort function with menu entries, specify any of the following keys: `Identifier`, `Name`, `Parent`, `Post`, `Pre`, `Title`, `URL`, or `Weight`. + +[`sort`]: /functions/collections/sort/ diff --git a/docs/content/en/methods/menu/ByWeight.md b/docs/content/en/methods/menu/ByWeight.md new file mode 100644 index 00000000000..013d37e1311 --- /dev/null +++ b/docs/content/en/methods/menu/ByWeight.md @@ -0,0 +1,71 @@ +--- +title: ByWeight +description: Returns the given menu with its entries sorted by weight, then by name, then by identifier. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: navigation.Menu + signatures: [MENU.ByWeight] +--- + +The `ByWeight` method returns the given menu with its entries sorted by [`weight`](g), then by `name`, then by `identifier`. This is the default sort order. + +Consider this menu definition: + +{{< code-toggle file=hugo >}} +[[menus.main]] +identifier = 'about' +name = 'About' +pageRef = '/about' +weight = 20 + +[[menus.main]] +identifier = 'services' +name = 'Services' +pageRef = '/services' +weight = 10 + +[[menus.main]] +identifier = 'contact' +name = 'Contact' +pageRef = '/contact' +weight = 30 +{{< /code-toggle >}} + +To sort the entries by `weight`, then by `name`, then by `identifier`: + +```go-html-template +
+``` + +Hugo renders this to: + +```html +
+``` + +> [!note] +> In the menu definition above, note that the `identifier` property is only required when two or more menu entries have the same name, or when localizing the name using translation tables. + +You can also sort menu entries using the [`sort`] function. For example, to sort by `weight` in descending order: + +```go-html-template +
+``` + +When using the sort function with menu entries, specify any of the following keys: `Identifier`, `Name`, `Parent`, `Post`, `Pre`, `Title`, `URL`, or `Weight`. + +[`sort`]: /functions/collections/sort/ diff --git a/docs/content/en/methods/menu/Limit.md b/docs/content/en/methods/menu/Limit.md new file mode 100644 index 00000000000..005fef14440 --- /dev/null +++ b/docs/content/en/methods/menu/Limit.md @@ -0,0 +1,50 @@ +--- +title: Limit +description: Returns the given menu, limited to the first N entries. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: navigation.Menu + signatures: [MENU.Limit N] +--- + +The `Limit` method returns the given menu, limited to the first N entries. + +Consider this menu definition: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Services' +pageRef = '/services' +weight = 10 + +[[menus.main]] +name = 'About' +pageRef = '/about' +weight = 20 + +[[menus.main]] +name = 'Contact' +pageRef = '/contact' +weight = 30 +{{< /code-toggle >}} + +To sort the entries by name, and limit to the first 2 entries: + +```go-html-template +
+``` + +Hugo renders this to: + +```html +
+``` diff --git a/docs/content/en/methods/menu/Reverse.md b/docs/content/en/methods/menu/Reverse.md new file mode 100644 index 00000000000..1ee31aa5120 --- /dev/null +++ b/docs/content/en/methods/menu/Reverse.md @@ -0,0 +1,51 @@ +--- +title: Reverse +description: Returns the given menu, reversing the sort order of its entries. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: navigation.Menu + signatures: [MENU.Reverse] +--- + +The `Reverse` method returns the given menu, reversing the sort order of its entries. + +Consider this menu definition: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Services' +pageRef = '/services' +weight = 10 + +[[menus.main]] +name = 'About' +pageRef = '/about' +weight = 20 + +[[menus.main]] +name = 'Contact' +pageRef = '/contact' +weight = 30 +{{< /code-toggle >}} + +To sort the entries by name in descending order: + +```go-html-template +
+``` + +Hugo renders this to: + +```html +
+``` diff --git a/docs/content/en/methods/menu/_index.md b/docs/content/en/methods/menu/_index.md new file mode 100644 index 00000000000..41084fdba17 --- /dev/null +++ b/docs/content/en/methods/menu/_index.md @@ -0,0 +1,7 @@ +--- +title: Menu methods +linkTitle: Menu +description: Use these methods when ranging through menu entries. +categories: [] +keywords: [] +--- diff --git a/docs/content/en/methods/output-format/MediaType.md b/docs/content/en/methods/output-format/MediaType.md new file mode 100644 index 00000000000..45f6267a1f2 --- /dev/null +++ b/docs/content/en/methods/output-format/MediaType.md @@ -0,0 +1,36 @@ +--- +title: MediaType +description: Returns the media type of the given output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: media.Type + signatures: [OUTPUTFORMAT.MediaType] +--- + +{{% include "/_common/methods/output-formats/to-use-this-method.md" %}} + +```go-html-template +{{ with .Site.Home.OutputFormats.Get "rss" }} + {{ with .MediaType }} + {{ .Type }} → application/rss+xml + {{ .MainType }} → application + {{ .SubType }} → rss + {{ end }} +{{ end }} +``` + +## Methods + +### MainType + +(`string`) Returns the main type of the output format's media type. + +### SubType + +(`string`) Returns the subtype of the current format's media type. + +### Type + +(`string`) Returns the the current format's media type. diff --git a/docs/content/en/methods/output-format/Name.md b/docs/content/en/methods/output-format/Name.md new file mode 100644 index 00000000000..307f940e7a5 --- /dev/null +++ b/docs/content/en/methods/output-format/Name.md @@ -0,0 +1,18 @@ +--- +title: Name +description: Returns the identifier of the given output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [OUTPUTFORMAT.Name] +--- + +{{% include "/_common/methods/output-formats/to-use-this-method.md" %}} + +```go-html-template +{{ with .Site.Home.OutputFormats.Get "rss" }} + {{ .Name }} → rss +{{ end }} +``` diff --git a/docs/content/en/methods/output-format/Permalink.md b/docs/content/en/methods/output-format/Permalink.md new file mode 100644 index 00000000000..09b98dc7ccb --- /dev/null +++ b/docs/content/en/methods/output-format/Permalink.md @@ -0,0 +1,18 @@ +--- +title: Permalink +description: Returns the permalink of the page generated by the current output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [OUTPUTFORMAT.Permalink] +--- + +{{% include "/_common/methods/output-formats/to-use-this-method.md" %}} + +```go-html-template +{{ with .Site.Home.OutputFormats.Get "rss" }} + {{ .Permalink }} → https://example.org/index.xml +{{ end }} +``` diff --git a/docs/content/en/methods/output-format/Rel.md b/docs/content/en/methods/output-format/Rel.md new file mode 100644 index 00000000000..4c3db9791b0 --- /dev/null +++ b/docs/content/en/methods/output-format/Rel.md @@ -0,0 +1,18 @@ +--- +title: Rel +description: Returns the rel value of the given output format, either the default or as defined in your project configuration. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [OUTPUTFORMAT.Rel] +--- + +{{% include "/_common/methods/output-formats/to-use-this-method.md" %}} + +```go-html-template +{{ with .Site.Home.OutputFormats.Get "rss" }} + {{ .Rel }} → alternate +{{ end }} +``` diff --git a/docs/content/en/methods/output-format/RelPermalink.md b/docs/content/en/methods/output-format/RelPermalink.md new file mode 100644 index 00000000000..434100c56ff --- /dev/null +++ b/docs/content/en/methods/output-format/RelPermalink.md @@ -0,0 +1,18 @@ +--- +title: RelPermalink +description: Returns the relative permalink of the page generated by the current output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [OUTPUTFORMAT.RelPermalink] +--- + +{{% include "/_common/methods/output-formats/to-use-this-method.md" %}} + +```go-html-template +{{ with .Site.Home.OutputFormats.Get "rss" }} + {{ .RelPermalink }} → /index.xml +{{ end }} +``` diff --git a/docs/content/en/methods/output-format/_index.md b/docs/content/en/methods/output-format/_index.md new file mode 100644 index 00000000000..dd374de144c --- /dev/null +++ b/docs/content/en/methods/output-format/_index.md @@ -0,0 +1,7 @@ +--- +title: Output format methods +linkTitle: Output format +description: Use these methods with an OutputFormat object. +categories: [] +keywords: [] +--- diff --git a/docs/content/en/methods/page/Aliases.md b/docs/content/en/methods/page/Aliases.md new file mode 100644 index 00000000000..f159ba86864 --- /dev/null +++ b/docs/content/en/methods/page/Aliases.md @@ -0,0 +1,138 @@ +--- +title: Aliases +description: Returns the aliases defined in front matter as server-relative URLs, resolved according to the current content dimension. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: '[]string' + signatures: [PAGE.Aliases] +--- + +The `Aliases` method on a `Page` object returns the values defined in the [`aliases`][] front matter field as server-relative URLs, resolved according to the current [content dimension](g). + +The `Aliases` method is useful for generating a `_redirects` file, which contains a source URL, a target URL, and an HTTP status code for each alias. You can use a `_redirects` file with hosting services such as Cloudflare, GitLab Pages, and Netlify. + +## Redirects + +By default, Hugo handles aliases by creating individual HTML files for each alias path. These files contain a `meta http-equiv="refresh"` tag to redirect the visitor via the browser. + +While functional, generating a single `_redirects` file allows your hosting provider to handle redirects at the server level. This is more efficient than client-side redirection and improves performance by eliminating the need to load a middle-man HTML page. + +> [!tip] +> You can use the same general approach to generate an `.htaccess` file. + +## Example + +The following example demonstrates how to configure your site and create a template to automate the generation of a `_redirects` file. + +### Content structure + +The content structure for this multilingual example looks like this: + +```text +content/ +├── examples/ +│ ├── a.de.md aliases = ['a-old'] +│ ├── a.en.md aliases = ['a-old', 'a-older'] +│ ├── b.de.md aliases = ['b-old'] +│ └── b.en.md aliases = ['b-old', 'b-older'] +└── _index.md +``` + +In the example above, the aliases are [page-relative](g). To specify a [site-relative](g) path, preface the entry with a slash (`/`). Both forms are resolved to [server-relative](g) paths. + +Page-relative paths can also include directory traversal: + +| Path type | File path | Alias | Server-relative path | +| :--- | :--- | :--- | :--- | +| page-relative | `content/examples/a.en.md` | `a-old` | `/en/examples/a-old/` | +| page-relative | `content/examples/a.en.md` | `../a-old` | `/en/a-old/` | +| site-relative | `content/examples/a.en.md` | `/a-old` | `/en/a-old/` | + +### Project configuration + +To implement this, you must update your project configuration to: + +1. Disable the generation of default HTML redirect files by setting `disableAliases` to `true`. +1. Define a [media type][] named `text/redirects` to handle the file format. +1. Define a custom [output format][] named `redirects` to set the filename to `_redirects` and place it at the root of the published site. +1. Configure the home page [outputs][] to include the `redirects` format in addition to `html`. + +{{< code-toggle file=hugo >}} +baseURL = 'https://example.org/' +disableAliases = true + +defaultContentLanguage = 'en' +defaultContentLanguageInSubdir = true + +[languages.en] + locale = 'en-US' + direction = 'ltr' + name = 'English' + weight = 1 + title = 'My Site in English' + +[languages.de] + locale = 'de-DE' + direction = 'ltr' + name = 'Deutsch' + weight = 2 + title = 'My Site in German' + +[mediaTypes] + [mediaTypes.'text/redirects'] + delimiter = '' + +[outputFormats] + [outputFormats.redirects] + baseName = '_redirects' + isPlainText = true + mediaType = 'text/redirects' + root = true + +[outputs] + home = ['html', 'redirects'] +{{< /code-toggle >}} + +### Template implementation + +Next, create a home page template specifically for the `redirects` output format. The following template iterates through every page in every language and extracts its aliases. + +To ensure the resulting `_redirects` file is valid, the template uses the [`strings.FindRE`][] function to check for whitespace such as tabs or newlines within the alias string. If whitespace is detected, Hugo will throw an error and fail the build to prevent generating an invalid file. + +```go-html-template {file="layouts/home.redirects" copy=true} +{{- if site.IsDefault -}} + {{- range hugo.Sites -}} + {{- range $p := .Pages -}} + {{- range .Aliases -}} + {{- if findRE `\s` . -}} + {{- errorf "One of the front matter aliases in %q contains whitespace" $p.String -}} + {{- end -}} + {{- printf "%s %s 301\n" . $p.RelPermalink -}} + {{- end -}} + {{- end -}} + {{- end -}} +{{- end -}} +``` + +### Generated output + +Once Hugo processes the template, it produces a clean list of redirect rules. Each line follows the required format: the source URL, the destination URL, and the HTTP status code. + +The resulting `_redirects` file looks like this: + +```text +/de/examples/a-old /de/examples/a/ 301 +/de/examples/b-old /de/examples/b/ 301 +/en/examples/b-old /en/examples/b/ 301 +/en/examples/b-older /en/examples/b/ 301 +/en/examples/a-old /en/examples/a/ 301 +/en/examples/a-older /en/examples/a/ 301 +``` + +[`aliases`]: /content-management/front-matter/#aliases +[`strings.FindRE`]: /functions/strings/findre/ +[media type]: /configuration/media-types/ +[output format]: /configuration/output-formats/ +[outputs]: /configuration/outputs/ diff --git a/docs/content/en/methods/page/AllTranslations.md b/docs/content/en/methods/page/AllTranslations.md new file mode 100644 index 00000000000..e34c8b74581 --- /dev/null +++ b/docs/content/en/methods/page/AllTranslations.md @@ -0,0 +1,88 @@ +--- +title: AllTranslations +description: Returns all translations of the given page, including the current language, sorted by language weight then language name. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.AllTranslations] +--- + +With this project configuration: + +{{< code-toggle file=hugo >}} +defaultContentLanguage = 'en' + +[languages.en] +contentDir = 'content/en' +label = 'English' +locale = 'en-US' +weight = 1 + +[languages.de] +contentDir = 'content/de' +label = 'Deutsch' +locale = 'de-DE' +weight = 2 + +[languages.fr] +contentDir = 'content/fr' +label = 'Français' +locale = 'fr-FR' +weight = 3 +{{< /code-toggle >}} + +And this content: + +```text +content/ +├── de/ +│ ├── books/ +│ │ ├── book-1.md +│ │ └── book-2.md +│ └── _index.md +├── en/ +│ ├── books/ +│ │ ├── book-1.md +│ │ └── book-2.md +│ └── _index.md +├── fr/ +│ ├── books/ +│ │ └── book-1.md +│ └── _index.md +└── _index.md +``` + +And this template: + +```go-html-template +{{ with .AllTranslations }} +
+{{ end }} +``` + +Hugo will render this list on the "Book 1" page of each site: + +```html +
+``` + +On the "Book 2" page of the English and German sites, Hugo will render this: + +```html +
+``` diff --git a/docs/content/en/methods/page/AlternativeOutputFormats.md b/docs/content/en/methods/page/AlternativeOutputFormats.md new file mode 100644 index 00000000000..72ef9f5d05f --- /dev/null +++ b/docs/content/en/methods/page/AlternativeOutputFormats.md @@ -0,0 +1,29 @@ +--- +title: AlternativeOutputFormats +description: Returns a slice of OutputFormat objects, excluding the current output format, each representing one of the output formats enabled for the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.OutputFormats + signatures: [PAGE.AlternativeOutputFormats] +--- + +{{% glossary-term "output format" %}} + +The `AlternativeOutputFormats` method on a `Page` object returns a slice of `OutputFormat` objects, excluding the current output format, each representing one of the output formats enabled for the given page. See [details](/configuration/output-formats/). + +For example, to generate a `link` element for each of the alternative output formats: + +```go-html-template +{{ range .AlternativeOutputFormats }} + {{ printf "" .Rel .MediaType.Type .Permalink | safeHTML }} +{{ end }} +``` + +Hugo renders this to something like: + +```html + + +``` diff --git a/docs/content/en/methods/page/Ancestors.md b/docs/content/en/methods/page/Ancestors.md new file mode 100644 index 00000000000..d8275cf7636 --- /dev/null +++ b/docs/content/en/methods/page/Ancestors.md @@ -0,0 +1,76 @@ +--- +title: Ancestors +description: Returns a collection of Page objects, one for each ancestor section of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.Ancestors] +--- + +With this content structure: + +```text +content/ +├── auctions/ +│ ├── 2023-11/ +│ │ ├── _index.md <-- front matter: weight = 202311 +│ │ ├── auction-1.md +│ │ └── auction-2.md +│ ├── 2023-12/ +│ │ ├── _index.md <-- front matter: weight = 202312 +│ │ ├── auction-3.md +│ │ └── auction-4.md +│ ├── _index.md <-- front matter: weight = 30 +│ ├── bidding.md +│ └── payment.md +├── books/ +│ ├── _index.md <-- front matter: weight = 10 +│ ├── book-1.md +│ └── book-2.md +├── films/ +│ ├── _index.md <-- front matter: weight = 20 +│ ├── film-1.md +│ └── film-2.md +└── _index.md +``` + +And this template: + +```go-html-template +{{ range .Ancestors }} + {{ .LinkTitle }} +{{ end }} +``` + +On the November 2023 auctions page, Hugo renders: + +```html +Auctions in November 2023 +Auctions +Home +``` + +In the example above, notice that Hugo orders the ancestors from closest to furthest. This makes breadcrumb navigation simple: + +```go-html-template + +``` + +With some CSS, the code above renders something like this, where each breadcrumb links to its page: + +```text +Home > Auctions > Auctions in November 2023 > Auction 1 +``` diff --git a/docs/content/en/methods/page/BundleType.md b/docs/content/en/methods/page/BundleType.md new file mode 100644 index 00000000000..e919511dab4 --- /dev/null +++ b/docs/content/en/methods/page/BundleType.md @@ -0,0 +1,33 @@ +--- +title: BundleType +description: Returns the bundle type of the given page, or an empty string if the page is not a page bundle. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.BundleType] +--- + +A page bundle is a directory that encapsulates both content and associated [resources](g). There are two types of page bundles: [leaf bundles](g) and [branch bundles](g). See [details](/content-management/page-bundles/). + +The `BundleType` method on a `Page` object returns `branch` for branch bundles, `leaf` for leaf bundles, and an empty string if the page is not a page bundle. + +```text +content/ +├── films/ +│ ├── film-1/ +│ │ ├── a.jpg +│ │ └── index.md <-- leaf bundle +│ ├── _index.md <-- branch bundle +│ ├── b.jpg +│ ├── film-2.md +│ └── film-3.md +└── _index.md <-- branch bundle +``` + +To get the value within a template: + +```go-html-template +{{ .BundleType }} +``` diff --git a/docs/content/en/methods/page/CodeOwners.md b/docs/content/en/methods/page/CodeOwners.md new file mode 100644 index 00000000000..00afa754938 --- /dev/null +++ b/docs/content/en/methods/page/CodeOwners.md @@ -0,0 +1,65 @@ +--- +title: CodeOwners +description: Returns of slice of code owners for the given page, derived from the CODEOWNERS file in the root of the project directory. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: '[]string' + signatures: [PAGE.CodeOwners] +--- + +GitHub and GitLab support CODEOWNERS files. This file specifies the users responsible for developing and maintaining software and documentation. This definition can apply to the entire repository, specific directories, or to individual files. To learn more: + +- [GitHub CODEOWNERS documentation] +- [GitLab CODEOWNERS documentation] + +Use the `CodeOwners` method on a `Page` object to determine the code owners for the given page. + +[GitHub CODEOWNERS documentation]: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners +[GitLab CODEOWNERS documentation]: https://docs.gitlab.com/ee/user/project/code_owners.html + +To use the `CodeOwners` method you must enable access to your local Git repository: + +{{< code-toggle file=hugo >}} +enableGitInfo = true +{{< /code-toggle >}} + +Consider this project structure: + +```text +my-project/ +├── content/ +│ ├── books/ +│ │ └── les-miserables.md +│ └── films/ +│ └── the-hunchback-of-notre-dame.md +└── CODEOWNERS +``` + +And this CODEOWNERS file: + +```text +* @jdoe +/content/books/ @tjones +/content/films/ @mrichards @rsmith +``` + +The table below shows the slice of code owners returned for each file: + +Path|Code owners +:--|:-- +`books/les-miserables.md`|`[@tjones]` +`films/the-hunchback-of-notre-dame.md`|`[@mrichards @rsmith]` + +Render the code owners for each content page: + +```go-html-template +{{ range .CodeOwners }} + {{ . }} +{{ end }} +``` + +Combine this method with [`resources.GetRemote`] to retrieve names and avatars from your Git provider by querying their API. + +[`resources.GetRemote`]: /functions/resources/getremote/ diff --git a/docs/content/en/methods/page/Content.md b/docs/content/en/methods/page/Content.md new file mode 100644 index 00000000000..21348ebe67b --- /dev/null +++ b/docs/content/en/methods/page/Content.md @@ -0,0 +1,16 @@ +--- +title: Content +description: Returns the rendered content of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [PAGE.Content] +--- + +The `Content` method on a `Page` object renders Markdown and shortcodes to HTML. + +```go-html-template +{{ .Content }} +``` diff --git a/docs/content/en/methods/page/ContentWithoutSummary.md b/docs/content/en/methods/page/ContentWithoutSummary.md new file mode 100644 index 00000000000..4923b1197e5 --- /dev/null +++ b/docs/content/en/methods/page/ContentWithoutSummary.md @@ -0,0 +1,22 @@ +--- +title: ContentWithoutSummary +description: Returns the rendered content of the given page, excluding the content summary. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [PAGE.ContentWithoutSummary] +--- + +{{< new-in 0.134.0 />}} + +Applicable when using manual or automatic [content summaries], the `ContentWithoutSummary` method on a `Page` object renders Markdown and shortcodes to HTML, excluding the content summary from the result. + +[content summaries]: /content-management/summaries/#manual-summary + +```go-html-template +{{ .ContentWithoutSummary }} +``` + +The `ContentWithoutSummary` method returns the same as `Content` if you define the content summary in front matter. diff --git a/docs/content/en/methods/page/CurrentSection.md b/docs/content/en/methods/page/CurrentSection.md new file mode 100644 index 00000000000..93457f13f20 --- /dev/null +++ b/docs/content/en/methods/page/CurrentSection.md @@ -0,0 +1,48 @@ +--- +title: CurrentSection +description: Returns the Page object of the section in which the given page resides. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGE.CurrentSection] +--- + +{{% glossary-term section %}} + +> [!note] +> The current section of a [section page](g), [taxonomy page](g), [term page](g), or the home page, is itself. + +Consider this content structure: + +```text +content/ +├── auctions/ +│ ├── 2023-11/ +│ │ ├── _index.md <-- current section: 2023-11 +│ │ ├── auction-1.md +│ │ └── auction-2.md <-- current section: 2023-11 +│ ├── 2023-12/ +│ │ ├── _index.md +│ │ ├── auction-3.md +│ │ └── auction-4.md +│ ├── _index.md <-- current section: auctions +│ ├── bidding.md +│ └── payment.md <-- current section: auctions +├── books/ +│ ├── _index.md <-- current section: books +│ ├── book-1.md +│ └── book-2.md <-- current section: books +├── films/ +│ ├── _index.md <-- current section: films +│ ├── film-1.md +│ └── film-2.md <-- current section: films +└── _index.md <-- current section: home +``` + +To create a link to the current section page: + +```go-html-template +{{ .CurrentSection.LinkTitle }} +``` diff --git a/docs/content/en/methods/page/Data.md b/docs/content/en/methods/page/Data.md new file mode 100644 index 00000000000..3d4433a8eb8 --- /dev/null +++ b/docs/content/en/methods/page/Data.md @@ -0,0 +1,101 @@ +--- +title: Data +description: Returns a unique data object for each page kind. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Data + signatures: [PAGE.Data] +--- + +The `Data` method on a `Page` object returns a unique data object for each [page kind](g). + +> [!note] +> The `Data` method is only useful within [taxonomy](g) and [term](g) templates. +> +> Themes that are not actively maintained may still use `.Data.Pages` in their templates. Although that syntax remains functional, use one of these methods instead: [`Pages`], [`RegularPages`], or [`RegularPagesRecursive`] + +The examples that follow are based on this project configuration: + +{{< code-toggle file=hugo >}} +[taxonomies] +genre = 'genres' +author = 'authors' +{{< /code-toggle >}} + +And this content structure: + +```text +content/ +├── books/ +│ ├── and-then-there-were-none.md --> genres: suspense +│ ├── death-on-the-nile.md --> genres: suspense +│ └── jamaica-inn.md --> genres: suspense, romance +│ └── pride-and-prejudice.md --> genres: romance +└── _index.md +``` + +## In a taxonomy template + +Use these methods on the `Data` object within a _taxonomy_ template. + +Singular +: (`string`) Returns the singular name of the taxonomy. + +```go-html-template +{{ .Data.Singular }} → genre +``` + +Plural +: (`string`) Returns the plural name of the taxonomy. + +```go-html-template +{{ .Data.Plural }} → genres +``` + +Terms +: (`page.Taxonomy`) Returns the `Taxonomy` object, consisting of a map of terms and the [weighted pages](g) associated with each term. + +```go-html-template +{{ $taxonomyObject := .Data.Terms }} +``` + +> [!note] +> Once you have captured the `Taxonomy` object, use any of the [taxonomy methods] to sort, count, or capture a subset of its weighted pages. + +Learn more about [taxonomy templates]. + +## In a term template + +Use these methods on the `Data` object within a _term_ template. + +Singular +: (`string`) Returns the singular name of the taxonomy. + +```go-html-template +{{ .Data.Singular }} → genre +``` + +Plural +: (`string`) Returns the plural name of the taxonomy. + +```go-html-template +{{ .Data.Plural }} → genres +``` + +Term +: (`string`) Returns the name of the term. + +```go-html-template +{{ .Data.Term }} → suspense +``` + +Learn more about [term templates]. + +[`Pages`]: /methods/page/pages/ +[`RegularPages`]: /methods/page/regularpages/ +[`RegularPagesRecursive`]: /methods/page/regularpagesrecursive/ +[taxonomy methods]: /methods/taxonomy/ +[taxonomy templates]: /templates/types/#taxonomy +[term templates]: /templates/types/#term diff --git a/docs/content/en/methods/page/Date.md b/docs/content/en/methods/page/Date.md new file mode 100644 index 00000000000..ffddcf047fe --- /dev/null +++ b/docs/content/en/methods/page/Date.md @@ -0,0 +1,33 @@ +--- +title: Date +description: Returns the date of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: time.Time + signatures: [PAGE.Date] +--- + +Set the date in front matter: + +{{< code-toggle file=content/news/article-1.md fm=true >}} +title = 'Article 1' +date = 2023-10-19T00:40:04-07:00 +{{< /code-toggle >}} + +> [!note] +> The date field in front matter is often considered to be the creation date, You can change its meaning, and its effect on your project, in your project configuration. See [details]. + +The date is a [time.Time] value. Format and localize the value with the [`time.Format`] function, or use it with any of the [time methods]. + +```go-html-template +{{ .Date | time.Format ":date_medium" }} → Oct 19, 2023 +``` + +In the example above we explicitly set the date in front matter. With Hugo's default configuration, the `Date` method returns the front matter value. This behavior is configurable, allowing you to set fallback values if the date is not defined in front matter. See [details]. + +[`time.Format`]: /functions/time/format/ +[details]: /configuration/front-matter/#dates +[time methods]: /methods/time/ +[time.Time]: https://pkg.go.dev/time#Time diff --git a/docs/content/en/methods/page/Description.md b/docs/content/en/methods/page/Description.md new file mode 100644 index 00000000000..7a609bb071a --- /dev/null +++ b/docs/content/en/methods/page/Description.md @@ -0,0 +1,27 @@ +--- +title: Description +description: Returns the description of the given page as defined in front matter. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Description] +--- + +Conceptually different from a [content summary], a page description is typically used in metadata about the page. + +{{< code-toggle file=content/recipes/sushi.md fm=true >}} +title = 'How to make spicy tuna hand rolls' +description = 'Instructions for making spicy tuna hand rolls.' +{{< /code-toggle >}} + +```go-html-template {file="layouts/baseof.html"} +
+ ... + + ... + +``` + +[content summary]: /content-management/summaries/ diff --git a/docs/content/en/methods/page/Draft.md b/docs/content/en/methods/page/Draft.md new file mode 100644 index 00000000000..d814d854190 --- /dev/null +++ b/docs/content/en/methods/page/Draft.md @@ -0,0 +1,21 @@ +--- +title: Draft +description: Reports whether the given page is a draft as defined in front matter. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGE.Draft] +--- + +By default, Hugo does not publish draft pages when you build your project. To include draft pages when you build your project, use the `--buildDrafts` command line flag. + +{{< code-toggle file=content/posts/post-1.md fm=true >}} +title = 'Post 1' +draft = true +{{< /code-toggle >}} + +```go-html-template +{{ .Draft }} → true +``` diff --git a/docs/content/en/methods/page/Eq.md b/docs/content/en/methods/page/Eq.md new file mode 100644 index 00000000000..0cfe1f1f741 --- /dev/null +++ b/docs/content/en/methods/page/Eq.md @@ -0,0 +1,21 @@ +--- +title: Eq +description: Reports whether two Page objects are equal. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGE1.Eq PAGE2] +--- + +In this contrived example we list all pages in the current section except for the current page. + +```go-html-template {file="layouts/page.html"} +{{ $currentPage := . }} +{{ range .CurrentSection.Pages }} + {{ if not (.Eq $currentPage) }} + {{ .LinkTitle }} + {{ end }} +{{ end }} +``` diff --git a/docs/content/en/methods/page/ExpiryDate.md b/docs/content/en/methods/page/ExpiryDate.md new file mode 100644 index 00000000000..67e6b30d39c --- /dev/null +++ b/docs/content/en/methods/page/ExpiryDate.md @@ -0,0 +1,32 @@ +--- +title: ExpiryDate +description: Returns the expiry date of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: time.Time + signatures: [PAGE.ExpiryDate] +--- + +By default, Hugo excludes expired pages when building your project. To include expired pages, use the `--buildExpired` command line flag. + +Set the expiry date in front matter: + +{{< code-toggle file=content/news/article-1.md fm=true >}} +title = 'Article 1' +expiryDate = 2024-10-19T00:32:13-07:00 +{{< /code-toggle >}} + +The expiry date is a [time.Time] value. Format and localize the value with the [`time.Format`] function, or use it with any of the [time methods]. + +```go-html-template +{{ .ExpiryDate | time.Format ":date_medium" }} → Oct 19, 2024 +``` + +In the example above we explicitly set the expiry date in front matter. With Hugo's default configuration, the `ExpiryDate` method returns the front matter value. This behavior is configurable, allowing you to set fallback values if the expiry date is not defined in front matter. See [details]. + +[`time.Format`]: /functions/time/format/ +[details]: /configuration/front-matter/#dates +[time methods]: /methods/time/ +[time.Time]: https://pkg.go.dev/time#Time diff --git a/docs/content/en/methods/page/File.md b/docs/content/en/methods/page/File.md new file mode 100644 index 00000000000..0bf2fdecf42 --- /dev/null +++ b/docs/content/en/methods/page/File.md @@ -0,0 +1,192 @@ +--- +title: File +description: For pages backed by a file, returns file information for the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: hugolib.fileInfo + signatures: [PAGE.File] +--- + +By default, not all pages are backed by a file, including top-level [section pages](g), [taxonomy pages](g), and [term pages](g). By definition, you cannot retrieve file information when the file does not exist. + +To back one of the pages above with a file, create an `_index.md` file in the corresponding directory. For example: + +```text +content/ +└── books/ + ├── _index.md <-- the top-slevel section page + ├── book-1.md + └── book-2.md +``` + +> [!note] +> Code defensively by verifying file existence as shown in the examples below. + +## Methods + +> [!note] +> The path separators (slash or backslash) in `Path`, `Dir`, and `Filename` depend on the operating system. + +### BaseFileName + +(`string`) The file name, excluding the extension. + +```go-html-template +{{ with .File }} + {{ .BaseFileName }} +{{ end }} +``` + +### ContentBaseName + +(`string`) If the page is a branch or leaf bundle, the name of the containing directory, else the `TranslationBaseName`. + +```go-html-template +{{ with .File }} + {{ .ContentBaseName }} +{{ end }} +``` + +### Dir + +(`string`) The file path, excluding the file name, relative to the `content` directory. + +```go-html-template +{{ with .File }} + {{ .Dir }} +{{ end }} +``` + +### Ext + +(`string`) The file extension. + +```go-html-template +{{ with .File }} + {{ .Ext }} +{{ end }} +``` + +### Filename + +(`string`) The absolute file path. + +```go-html-template +{{ with .File }} + {{ .Filename }} +{{ end }} +``` + +### IsContentAdapter + +(`bool`) Reports whether the file is a [content adapter]. + +```go-html-template +{{ with .File }} + {{ .IsContentAdapter }} +{{ end }} +``` + +### LogicalName + +(`string`) The file name. + +```go-html-template +{{ with .File }} + {{ .LogicalName }} +{{ end }} +``` + +### Path + +(`string`) The file path, relative to the `content` directory. + +```go-html-template +{{ with .File }} + {{ .Path }} +{{ end }} +``` + +### Section + +(`string`) The name of the top-level section in which the file resides. + +```go-html-template +{{ with .File }} + {{ .Section }} +{{ end }} +``` + +### TranslationBaseName + +(`string`) The file name, excluding the extension and language identifier. + +```go-html-template +{{ with .File }} + {{ .TranslationBaseName }} +{{ end }} +``` + +### UniqueID + +(`string`) The MD5 hash of `.File.Path`. + +```go-html-template +{{ with .File }} + {{ .UniqueID }} +{{ end }} +``` + +## Examples + +Consider this content structure in a multilingual project: + +```text +content/ +├── news/ +│ ├── b/ +│ │ ├── index.de.md <-- leaf bundle +│ │ └── index.en.md <-- leaf bundle +│ ├── a.de.md <-- regular content +│ ├── a.en.md <-- regular content +│ ├── _index.de.md <-- branch bundle +│ └── _index.en.md <-- branch bundle +├── _index.de.md +└── _index.en.md +``` + +With the English language site: + + |regular content|leaf bundle|branch bundle +:--|:--|:--|:-- +BaseFileName|a.en|index.en|_index.en +ContentBaseName|a|b|news +Dir|news/|news/b/|news/ +Ext|md|md|md +Filename|/home/user/...|/home/user/...|/home/user/... +IsContentAdapter|false|false|false +LogicalName|a.en.md|index.en.md|_index.en.md +Path|news/a.en.md|news/b/index.en.md|news/_index.en.md +Section|news|news|news +TranslationBaseName|a|index|_index +UniqueID|15be14b...|186868f...|7d9159d... + +## Defensive coding + +Some of the pages on a site may not be backed by a file. For example: + +- Top-level section pages +- Taxonomy pages +- Term pages + +Without a backing file, Hugo will throw an error if you attempt to access a `.File` property. To code defensively, first check for file existence: + +```go-html-template +{{ with .File }} + {{ .ContentBaseName }} +{{ end }} +``` + +[content adapter]: /content-management/content-adapters/ diff --git a/docs/content/en/methods/page/FirstSection.md b/docs/content/en/methods/page/FirstSection.md new file mode 100644 index 00000000000..73ddd2d7ba2 --- /dev/null +++ b/docs/content/en/methods/page/FirstSection.md @@ -0,0 +1,48 @@ +--- +title: FirstSection +description: Returns the Page object of the top-level section of which the given page is a descendant. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGE.FirstSection] +--- + +{{% glossary-term section %}} + +> [!note] +> When called on the home page, the `FirstSection` method returns the `Page` object of the home page itself. + +Consider this content structure: + +```text +content/ +├── auctions/ +│ ├── 2023-11/ +│ │ ├── _index.md <-- first section: auctions +│ │ ├── auction-1.md +│ │ └── auction-2.md <-- first section: auctions +│ ├── 2023-12/ +│ │ ├── _index.md +│ │ ├── auction-3.md +│ │ └── auction-4.md +│ ├── _index.md <-- first section: auctions +│ ├── bidding.md +│ └── payment.md <-- first section: auctions +├── books/ +│ ├── _index.md <-- first section: books +│ ├── book-1.md +│ └── book-2.md <-- first section: books +├── films/ +│ ├── _index.md <-- first section: films +│ ├── film-1.md +│ └── film-2.md <-- first section: films +└── _index.md <-- first section: home +``` + +To link to the top-level section of which the current page is a descendant: + +```go-html-template +{{ .FirstSection.LinkTitle }} +``` diff --git a/docs/content/en/methods/page/Fragments.md b/docs/content/en/methods/page/Fragments.md new file mode 100644 index 00000000000..9df47f31c2d --- /dev/null +++ b/docs/content/en/methods/page/Fragments.md @@ -0,0 +1,109 @@ +--- +title: Fragments +description: Returns a data structure of the fragments in the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: tableofcontents.Fragments + signatures: [PAGE.Fragments] +--- + +In a URL, whether absolute or relative, the [fragment](g) links to an `id` attribute of an HTML element on the page. + +```text +/articles/article-1#section-2 +------------------- --------- + path fragment +``` + +Hugo assigns an `id` attribute to each Markdown [ATX] and [setext] heading within the page content. You can override the `id` with a [Markdown attribute](g) as needed. This creates the relationship between an entry in the [table of contents] (TOC) and a heading on the page. + +Use the `Fragments` method on a `Page` object to create a table of contents with the `Fragments.ToHTML` method, or by [walking](g) the `Fragments.Map` data structure. + +## Methods + +### Headings + +(`slice`) A slice of maps of all headings on the page, with first-level keys for each heading. Each map contains the following keys: `ID`, `Level`, `Title` and `Headings`. To inspect the data structure: + +```go-html-template +
{{ debug.Dump .Fragments.Headings }}+``` + +### HeadingsMap + +(`map`) A nested map of all headings on the page. Each map contains the following keys: `ID`, `Level`, `Title` and `Headings`. To inspect the data structure: + +```go-html-template +
{{ debug.Dump .Fragments.HeadingsMap }}+``` + +### Identifiers + +(`slice`) A slice containing the `id` attribute of each heading on the page. If so configured, will also contain the `id` attribute of each description term (i.e., `dt` element) on the page. + +See [configure Markup](/configuration/markup/#parserautodefinitiontermid). + +To inspect the data structure: + +```go-html-template +
{{ debug.Dump .Fragments.Identifiers }}+``` + +### Identifiers.Contains ID + +(`bool`) Reports whether one or more headings on the page has the given `id` attribute, useful for validating fragments within a link [render hook](g). + +```go-html-template +{{ .Fragments.Identifiers.Contains "section-2" }} → true +``` + +### Identifiers.Count ID + +(`int`) The number of headings on a page with the given `id` attribute, useful for detecting duplicates. + +```go-html-template +{{ .Fragments.Identifiers.Count "section-2" }} → 1 +``` + +### ToHTML + +(`template.HTML`) Returns a TOC as a nested list, either ordered or unordered, identical to the HTML returned by the [`TableOfContents`] method. This method take three arguments: the start level (`int`), the end level (`int`), and a boolean (`true` to return an ordered list, `false` to return an unordered list). + +Use this method when you want to control the start level, end level, or list type independently from the table of contents settings in your project configuration. + +```go-html-template +{{ $startLevel := 2 }} +{{ $endLevel := 3 }} +{{ $ordered := true }} +{{ .Fragments.ToHTML $startLevel $endLevel $ordered }} +``` + +Hugo renders this to: + +```html + +``` + +> [!note] +> It is safe to use the `Fragments` methods within a render hook, even for the current page. +> +> When using the `Fragments` methods within a shortcode, call the shortcode using [standard notation]. If you use [Markdown notation] the rendered shortcode is included in the creation of the fragments map, resulting in a circular loop. + +[`TableOfContents`]: /methods/page/tableofcontents/ +[ATX]: https://spec.commonmark.org/current/#atx-headings +[Markdown notation]: /content-management/shortcodes/#notation +[setext]: https://spec.commonmark.org/current/#setext-headings +[standard notation]: /content-management/shortcodes/#notation +[table of contents]: /methods/page/tableofcontents/ diff --git a/docs/content/en/methods/page/FuzzyWordCount.md b/docs/content/en/methods/page/FuzzyWordCount.md new file mode 100644 index 00000000000..815a0740215 --- /dev/null +++ b/docs/content/en/methods/page/FuzzyWordCount.md @@ -0,0 +1,18 @@ +--- +title: FuzzyWordCount +description: Returns the number of words in the content of the given page, rounded up to the nearest multiple of 100. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGE.FuzzyWordCount] +--- + +```go-html-template +{{ .FuzzyWordCount }} → 200 +``` + +To get the exact word count, use the [`WordCount`] method. + +[`WordCount`]: /methods/page/wordcount/ diff --git a/docs/content/en/methods/page/GetPage.md b/docs/content/en/methods/page/GetPage.md new file mode 100644 index 00000000000..7c1e45dd935 --- /dev/null +++ b/docs/content/en/methods/page/GetPage.md @@ -0,0 +1,64 @@ +--- +title: GetPage +description: Returns a Page object from the given path. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGE.GetPage PATH] +aliases: [/functions/getpage] +--- + +The `GetPage` method is also available on a `Site` object. See [details]. + +[details]: /methods/site/getpage/ + +When using the `GetPage` method on the `Page` object, specify a path relative to the current directory or relative to the `content` directory. + +If Hugo cannot resolve the path to a page, the method returns nil. If the path is ambiguous, Hugo throws an error and fails the build. + +Consider this content structure: + +```text +content/ +├── works/ +│ ├── paintings/ +│ │ ├── _index.md +│ │ ├── starry-night.md +│ │ └── the-mona-lisa.md +│ ├── sculptures/ +│ │ ├── _index.md +│ │ ├── david.md +│ │ └── the-thinker.md +│ └── _index.md +└── _index.md +``` + +The examples below depict the result of rendering `works/paintings/the-mona-lisa.md`: + +```go-html-template {file="layouts/works/page.html"} +{{ with .GetPage "starry-night" }} + {{ .Title }} → Starry Night +{{ end }} + +{{ with .GetPage "./starry-night" }} + {{ .Title }} → Starry Night +{{ end }} + +{{ with .GetPage "../paintings/starry-night" }} + {{ .Title }} → Starry Night +{{ end }} + +{{ with .GetPage "/works/paintings/starry-night" }} + {{ .Title }} → Starry Night +{{ end }} + +{{ with .GetPage "../sculptures/david" }} + {{ .Title }} → David +{{ end }} + +{{ with .GetPage "/works/sculptures/david" }} + {{ .Title }} → David +{{ end }} +``` diff --git a/docs/content/en/methods/page/GetTerms.md b/docs/content/en/methods/page/GetTerms.md new file mode 100644 index 00000000000..53b996fc519 --- /dev/null +++ b/docs/content/en/methods/page/GetTerms.md @@ -0,0 +1,41 @@ +--- +title: GetTerms +description: Returns a collection of term pages for terms defined on the given page in the given taxonomy, ordered according to the sequence in which they appear in front matter. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.GetTerms TAXONOMY] +--- + +Given this front matter: + +{{< code-toggle file=content/books/les-miserables.md fm=true >}} +title = 'Les Misérables' +tags = ['historical','classic','fiction'] +{{< /code-toggle >}} + +This template code: + +```go-html-template +{{ with .GetTerms "tags" }} +
Tags
+
+{{ end }} +``` + +Is rendered to: + +```html +
Tags
+
+``` diff --git a/docs/content/en/methods/page/GitInfo.md b/docs/content/en/methods/page/GitInfo.md new file mode 100644 index 00000000000..8a60f0934b6 --- /dev/null +++ b/docs/content/en/methods/page/GitInfo.md @@ -0,0 +1,194 @@ +--- +title: GitInfo +description: Provides access to commit metadata for a given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: '*gitmap.GitInfo' + signatures: [PAGE.GitInfo] +--- + +The `GitInfo` method on a `Page` object provides access to commit metadata from your Git history, such as the author's name, the commit hash, and the commit message. + +> [!note] +> Hugo's Git integration is performant, but may increase build times for large projects. + +## Prerequisites + +Install Git, create a repository, and commit your project files. + +You must also allow Hugo to access your repository by adding this to your project configuration: + +{{< code-toggle file=hugo >}} +enableGitInfo = true +{{< /code-toggle >}} + +> [!note] +> When you set [`enableGitInfo`][] to `true`, the last modification date for each content page will automatically be the Author Date of the last commit for that file. +> +> This is configurable. See [details][]. + +## Scope + +Commit metadata is available for content stored in your local repository and for content provided by [modules](g). + +### Local content + +Hugo retrieves commit metadata for files tracked within your project's local repository. This includes all content files managed by Git in your main project directory. + +### Module content + +{{< new-in 0.157.0 />}} + +Hugo also retrieves commit metadata for content provided by modules. This allows you to display commit data for remote repositories that are mounted as content directories, such as when aggregating documentation from multiple sources. + +## Methods + +### AbbreviatedHash + +(`string`) Returns the seven-character shortened version of the commit hash. + +```go-html-template +{{ with .GitInfo }} + {{ .AbbreviatedHash }} → aab9ec0 +{{ end }} +``` + +### AuthorDate + +(`time.Time`) Returns the date the author originally created the commit. + +```go-html-template +{{ with .GitInfo }} + {{ .AuthorDate.Format "2006-01-02" }} → 2023-10-09 +{{ end }} +``` + +### AuthorEmail + +(`string`) Returns the author's email address, respecting [gitmailmap][]. + +```go-html-template +{{ with .GitInfo }} + {{ .AuthorEmail }} → jsmith@example.org +{{ end }} +``` + +### AuthorName + +(`string`) Returns the author's name, respecting [gitmailmap][]. + +```go-html-template +{{ with .GitInfo }} + {{ .AuthorName }} → John Smith +{{ end }} +``` + +### CommitDate + +(`time.Time`) Returns the date the commit was applied to the branch. + +```go-html-template +{{ with .GitInfo }} + {{ .CommitDate.Format "2006-01-02" }} → 2023-10-09 +{{ end }} +``` + +### Hash + +(`string`) Returns the full SHA-1 commit hash. + +```go-html-template +{{ with .GitInfo }} + {{ .Hash }} → aab9ec0b31ebac916a1468c4c9c305f2bebf78d4 +{{ end }} +``` + +### Subject + +(`string`) Returns the first line of the commit message (the summary). + +```go-html-template +{{ with .GitInfo }} + {{ .Subject }} → Add tutorials +{{ end }} +``` + +### Body + +(`string`) Returns the full content of the commit message, excluding the subject line. + +```go-html-template +{{ with .GitInfo }} + {{ .Body }} → Two new pages added. +{{ end }} +``` + +### Ancestors + +(`gitmap.GitInfos`) Returns a list of previous commits for this specific file, ordered from most recent to oldest. + +For example, to list the last 5 commits: + +```go-html-template +{{ with .GitInfo }} + {{ range .Ancestors | first 5 }} + {{ .CommitDate.Format "2006-01-02" }}: {{ .Subject }} + {{ end }} +{{ end }} +``` + +To reverse the order: + +```go-html-template +{{ with .GitInfo }} + {{ range .Ancestors.Reverse | first 5 }} + {{ .CommitDate.Format "2006-01-02" }}: {{ .Subject }} + {{ end }} +{{ end }} +``` + +### Parent + +(`*gitmap.GitInfo`) Returns the most recent ancestor commit for the file, if any. + +## Last modified date + +By default, when `enableGitInfo` is `true`, the `Lastmod` method on a `Page` object returns the Git AuthorDate of the last commit that included the file. + +You can change this behavior in your [project configuration][]. + +## Hosting considerations + +On a [CI/CD](g) platform, the step that clones your project repository must perform a deep clone. If the clone is shallow, the Git information for a given file may be inaccurate. It might incorrectly reflect the most recent repository commit, rather than the commit that actually modified the file. + +While some providers perform a deep clone by default, others require you to configure the depth yourself. + +Hosting service|Default clone depth|Configurable +:--|:--|:-- +AWS Amplify|Deep|N/A +Cloudflare|Shallow|Yes [^1] +DigitalOcean App Platform|Deep|N/A +GitHub Pages|Shallow|Yes [^2] +GitLab Pages|Shallow|Yes [^3] +Netlify|Deep|N/A +Render|Shallow|Yes [^1] +Vercel|Shallow|Yes [^1] + +[^1]: To perform a deep clone when hosting on Cloudflare, Render, or Vercel, include this code in the build script after the repository has been cloned: + + ```text + if [ "$(git rev-parse --is-shallow-repository)" = "true" ]; then + git fetch --unshallow + fi + ``` + +[^2]: To perform a deep clone when hosting on GitHub Pages, set `fetch-depth: 0` in the `checkout` step of the GitHub Action. See [example](/host-and-deploy/host-on-github-pages/#step-7). + +[^3]: To perform a deep clone when hosting on GitLab Pages, set the `GIT_DEPTH` environment variable to `0` in the workflow file. See [example](/host-and-deploy/host-on-gitlab-pages/#configure-gitlab-cicd). + +[`enableGitInfo`]: /configuration/all/#enablegitinfo +[details]: /configuration/front-matter/#dates +[gitmailmap]: https://git-scm.com/docs/gitmailmap +[project configuration]: /configuration/front-matter/ diff --git a/docs/content/en/methods/page/HasMenuCurrent.md b/docs/content/en/methods/page/HasMenuCurrent.md new file mode 100644 index 00000000000..22bcc6483c1 --- /dev/null +++ b/docs/content/en/methods/page/HasMenuCurrent.md @@ -0,0 +1,33 @@ +--- +title: HasMenuCurrent +description: Reports whether the given Page object matches the Page object associated with one of the child menu entries under the given menu entry in the given menu. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGE.HasMenuCurrent MENU MENUENTRY] +aliases: [/functions/hasmenucurrent] +--- + +If the `Page` object associated with the menu entry is a section, this method also returns `true` for any descendant of that section. + +```go-html-template +{{ $currentPage := . }} +{{ range site.Menus.main }} + {{ if $currentPage.IsMenuCurrent .Menu . }} + {{ .Name }} + {{ else if $currentPage.HasMenuCurrent .Menu . }} + {{ .Name }} + {{ else }} + {{ .Name }} + {{ end }} +{{ end }} +``` + +See [menu templates] for a complete example. + +> [!note] +> When using this method you must either define the menu entry in front matter, or specify a `pageRef` property when defining the menu entry in your project configuration. + +[menu templates]: /templates/menu/#example diff --git a/docs/content/en/methods/page/HasShortcode.md b/docs/content/en/methods/page/HasShortcode.md new file mode 100644 index 00000000000..2e585da31e4 --- /dev/null +++ b/docs/content/en/methods/page/HasShortcode.md @@ -0,0 +1,50 @@ +--- +title: HasShortcode +description: Reports whether the given shortcode is called by the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGE.HasShortcode NAME] +--- + +By example, let's use [Plotly] to render a chart: + +[Plotly]: https://plotly.com/javascript/ + +```text {file="content/example.md"} +{{* plotly */>}} +{ + "data": [ + { + "x": ["giraffes", "orangutans", "monkeys"], + "y": [20, 14, 23], + "type": "bar" + } + ], +} +{{* /plotly */>}} +``` + +The shortcode is simple: + +```go-html-template {file="layouts/_shortcodes/plotly.html"} +{{ $id := printf "plotly-%02d" .Ordinal }} +
+ +``` + +Now we can selectively load the required JavaScript on pages that call the "plotly" shortcode: + +```go-html-template {file="layouts/baseof.html"} +
+ ...
+ {{ if .HasShortcode "plotly" }}
+
+ {{ end }}
+ ...
+
+```
diff --git a/docs/content/en/methods/page/HeadingsFiltered.md b/docs/content/en/methods/page/HeadingsFiltered.md
new file mode 100644
index 00000000000..86c989d4333
--- /dev/null
+++ b/docs/content/en/methods/page/HeadingsFiltered.md
@@ -0,0 +1,16 @@
+---
+title: HeadingsFiltered
+description: Returns a slice of headings for each page related to the given page.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: tableofcontents.Headings
+ signatures: [PAGE.HeadingsFiltered]
+---
+
+Use in conjunction with the [`Related`] method on a [`Pages`] object. See [details].
+
+[`Pages`]: /methods/pages/
+[`Related`]: /methods/pages/related/
+[details]: /content-management/related-content/#index-content-headings
diff --git a/docs/content/en/methods/page/InSection.md b/docs/content/en/methods/page/InSection.md
new file mode 100644
index 00000000000..adca82d8644
--- /dev/null
+++ b/docs/content/en/methods/page/InSection.md
@@ -0,0 +1,91 @@
+---
+title: InSection
+description: Reports whether the given page is in the given section.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.InSection SECTION]
+---
+
+{{% glossary-term section %}}
+
+The `InSection` method on a `Page` object reports whether the given page is in the given section. Note that the method returns `true` when comparing a page to a sibling.
+
+With this content structure:
+
+```text
+content/
+├── auctions/
+│ ├── 2023-11/
+│ │ ├── _index.md
+│ │ ├── auction-1.md
+│ │ └── auction-2.md
+│ ├── 2023-12/
+│ │ ├── _index.md
+│ │ ├── auction-3.md
+│ │ └── auction-4.md
+│ ├── _index.md
+│ ├── bidding.md
+│ └── payment.md
+└── _index.md
+```
+
+When rendering the "auction-1" page:
+
+```go-html-template
+{{ with .Site.GetPage "/" }}
+ {{ $.InSection . }} → false
+{{ end }}
+
+{{ with .Site.GetPage "/auctions" }}
+ {{ $.InSection . }} → false
+{{ end }}
+
+{{ with .Site.GetPage "/auctions/2023-11" }}
+ {{ $.InSection . }} → true
+{{ end }}
+
+{{ with .Site.GetPage "/auctions/2023-11/auction-2" }}
+ {{ $.InSection . }} → true
+{{ end }}
+```
+
+In the examples above we are coding defensively using the [`with`] statement, returning nothing if the page does not exist. By adding an [`else`] clause we can do some error reporting:
+
+```go-html-template
+{{ $path := "/auctions/2023-11" }}
+{{ with .Site.GetPage $path }}
+ {{ $.InSection . }} → true
+{{ else }}
+ {{ errorf "Unable to find the section with path %s" $path }}
+{{ end }}
+ ```
+
+## Understanding context
+
+Inside of the `with` block, the [context](g) (the dot) is the section `Page` object, not the `Page` object passed into the template. If we were to use this syntax:
+
+```go-html-template
+{{ with .Site.GetPage "/auctions" }}
+ {{ .InSection . }} → true
+{{ end }}
+```
+
+The result would be wrong when rendering the "auction-1" page because we are comparing the section page to itself.
+
+> [!note]
+> Use the `$` to get the context passed into the template.
+
+```go-html-template
+{{ with .Site.GetPage "/auctions" }}
+ {{ $.InSection . }} → true
+{{ end }}
+```
+
+> [!note]
+> Gaining a thorough understanding of context is critical for anyone writing template code.
+
+[`else`]: /functions/go-template/else/
+[`with`]: /functions/go-template/with/
diff --git a/docs/content/en/methods/page/IsAncestor.md b/docs/content/en/methods/page/IsAncestor.md
new file mode 100644
index 00000000000..fe1b7845419
--- /dev/null
+++ b/docs/content/en/methods/page/IsAncestor.md
@@ -0,0 +1,87 @@
+---
+title: IsAncestor
+description: Reports whether PAGE1 is an ancestor of PAGE2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE1.IsAncestor PAGE2]
+---
+
+With this content structure:
+
+```text
+content/
+├── auctions/
+│ ├── 2023-11/
+│ │ ├── _index.md
+│ │ ├── auction-1.md
+│ │ └── auction-2.md
+│ ├── 2023-12/
+│ │ ├── _index.md
+│ │ ├── auction-3.md
+│ │ └── auction-4.md
+│ ├── _index.md
+│ ├── bidding.md
+│ └── payment.md
+└── _index.md
+```
+
+When rendering the "auctions" page:
+
+```go-html-template
+{{ with .Site.GetPage "/" }}
+ {{ $.IsAncestor . }} → false
+{{ end }}
+
+{{ with .Site.GetPage "/auctions" }}
+ {{ $.IsAncestor . }} → false
+{{ end }}
+
+{{ with .Site.GetPage "/auctions/2023-11" }}
+ {{ $.IsAncestor . }} → true
+{{ end }}
+
+{{ with .Site.GetPage "/auctions/2023-11/auction-2" }}
+ {{ $.IsAncestor . }} → true
+{{ end }}
+```
+
+In the examples above we are coding defensively using the [`with`] statement, returning nothing if the page does not exist. By adding an [`else`] clause we can do some error reporting:
+
+```go-html-template
+{{ $path := "/auctions/2023-11" }}
+{{ with .Site.GetPage $path }}
+ {{ $.IsAncestor . }} → true
+{{ else }}
+ {{ errorf "Unable to find the section with path %s" $path }}
+{{ end }}
+ ```
+
+## Understanding context
+
+Inside of the `with` block, the [context](g) (the dot) is the section `Page` object, not the `Page` object passed into the template. If we were to use this syntax:
+
+```go-html-template
+{{ with .Site.GetPage "/auctions" }}
+ {{ .IsAncestor . }} → true
+{{ end }}
+```
+
+The result would be wrong when rendering the "auction-1" page because we are comparing the section page to itself.
+
+> [!note]
+> Use the `$` to get the context passed into the template.
+
+```go-html-template
+{{ with .Site.GetPage "/auctions" }}
+ {{ $.IsAncestor . }} → true
+{{ end }}
+```
+
+> [!note]
+> Gaining a thorough understanding of context is critical for anyone writing template code.
+
+[`else`]: /functions/go-template/else/
+[`with`]: /functions/go-template/with/
diff --git a/docs/content/en/methods/page/IsDescendant.md b/docs/content/en/methods/page/IsDescendant.md
new file mode 100644
index 00000000000..6ee8d3c4f76
--- /dev/null
+++ b/docs/content/en/methods/page/IsDescendant.md
@@ -0,0 +1,87 @@
+---
+title: IsDescendant
+description: Reports whether PAGE1 is a descendant of PAGE2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE1.IsDescendant PAGE2]
+---
+
+With this content structure:
+
+```text
+content/
+├── auctions/
+│ ├── 2023-11/
+│ │ ├── _index.md
+│ │ ├── auction-1.md
+│ │ └── auction-2.md
+│ ├── 2023-12/
+│ │ ├── _index.md
+│ │ ├── auction-3.md
+│ │ └── auction-4.md
+│ ├── _index.md
+│ ├── bidding.md
+│ └── payment.md
+└── _index.md
+```
+
+When rendering the "auctions" page:
+
+```go-html-template
+{{ with .Site.GetPage "/" }}
+ {{ $.IsDescendant . }} → true
+{{ end }}
+
+{{ with .Site.GetPage "/auctions" }}
+ {{ $.IsDescendant . }} → false
+{{ end }}
+
+{{ with .Site.GetPage "/auctions/2023-11" }}
+ {{ $.IsDescendant . }} → false
+{{ end }}
+
+{{ with .Site.GetPage "/auctions/2023-11/auction-2" }}
+ {{ $.IsDescendant . }} → false
+{{ end }}
+```
+
+In the examples above we are coding defensively using the [`with`] statement, returning nothing if the page does not exist. By adding an [`else`] clause we can do some error reporting:
+
+```go-html-template
+{{ $path := "/auctions/2023-11" }}
+{{ with .Site.GetPage $path }}
+ {{ $.IsDescendant . }} → true
+{{ else }}
+ {{ errorf "Unable to find the section with path %s" $path }}
+{{ end }}
+ ```
+
+## Understanding context
+
+Inside of the `with` block, the [context](g) (the dot) is the section `Page` object, not the `Page` object passed into the template. If we were to use this syntax:
+
+```go-html-template
+{{ with .Site.GetPage "/auctions" }}
+ {{ .IsDescendant . }} → true
+{{ end }}
+```
+
+The result would be wrong when rendering the "auction-1" page because we are comparing the section page to itself.
+
+> [!note]
+> Use the `$` to get the context passed into the template.
+
+```go-html-template
+{{ with .Site.GetPage "/auctions" }}
+ {{ $.IsDescendant . }} → true
+{{ end }}
+```
+
+> [!note]
+> Gaining a thorough understanding of context is critical for anyone writing template code.
+
+[`else`]: /functions/go-template/else/
+[`with`]: /functions/go-template/with/
diff --git a/docs/content/en/methods/page/IsHome.md b/docs/content/en/methods/page/IsHome.md
new file mode 100644
index 00000000000..66d8180b067
--- /dev/null
+++ b/docs/content/en/methods/page/IsHome.md
@@ -0,0 +1,26 @@
+---
+title: IsHome
+description: Reports whether the given page is the home page.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.IsHome]
+---
+
+The `IsHome` method on a `Page` object returns `true` if the [page kind](g) is `home`.
+
+```text
+content/
+├── books/
+│ ├── book-1/
+│ │ └── index.md <-- kind = page
+│ ├── book-2.md <-- kind = page
+│ └── _index.md <-- kind = section
+└── _index.md <-- kind = home
+```
+
+```go-html-template
+{{ .IsHome }}
+```
diff --git a/docs/content/en/methods/page/IsMenuCurrent.md b/docs/content/en/methods/page/IsMenuCurrent.md
new file mode 100644
index 00000000000..60b68428a6a
--- /dev/null
+++ b/docs/content/en/methods/page/IsMenuCurrent.md
@@ -0,0 +1,31 @@
+---
+title: IsMenuCurrent
+description: Reports whether the given Page object matches the Page object associated with the given menu entry in the given menu.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.IsMenuCurrent MENU MENUENTRY]
+aliases: [/functions/ismenucurrent]
+---
+
+```go-html-template
+{{ $currentPage := . }}
+{{ range site.Menus.main }}
+ {{ if $currentPage.IsMenuCurrent .Menu . }}
+ {{ .Name }}
+ {{ else if $currentPage.HasMenuCurrent .Menu . }}
+ {{ .Name }}
+ {{ else }}
+ {{ .Name }}
+ {{ end }}
+{{ end }}
+```
+
+See [menu templates] for a complete example.
+
+> [!note]
+> When using this method you must either define the menu entry in front matter, or specify a `pageRef` property when defining the menu entry in your project configuration.
+
+[menu templates]: /templates/menu/#example
diff --git a/docs/content/en/methods/page/IsNode.md b/docs/content/en/methods/page/IsNode.md
new file mode 100644
index 00000000000..24e7c033ea1
--- /dev/null
+++ b/docs/content/en/methods/page/IsNode.md
@@ -0,0 +1,30 @@
+---
+title: IsNode
+description: Reports whether the given page is a node.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.IsNode]
+---
+
+The `IsNode` method on a `Page` object checks if the [page kind](g) is one of the following: `home`, `section`, `taxonomy`, or `term`. If it is, the method returns `true`, indicating the page is a [node](g). Otherwise, if the page kind is page, it returns `false`.
+
+```text
+content/
+├── books/
+│ ├── book-1/
+│ │ └── index.md <-- kind = page IsNode = false
+│ ├── book-2.md <-- kind = page IsNode = false
+│ └── _index.md <-- kind = section IsNode = true
+├── tags
+│ ├── fiction
+│ │ └── _index.md <-- kind = term IsNode = true
+│ └── _index.md <-- kind = taxonomy IsNode = true
+└── _index.md <-- kind = home IsNode = true
+```
+
+```go-html-template
+{{ .IsNode }}
+```
diff --git a/docs/content/en/methods/page/IsPage.md b/docs/content/en/methods/page/IsPage.md
new file mode 100644
index 00000000000..910a3a7e10b
--- /dev/null
+++ b/docs/content/en/methods/page/IsPage.md
@@ -0,0 +1,26 @@
+---
+title: IsPage
+description: Reports whether the given page is a regular page.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.IsPage]
+---
+
+The `IsPage` method on a `Page` object returns `true` if the [page kind](g) is `page`.
+
+```text
+content/
+├── books/
+│ ├── book-1/
+│ │ └── index.md <-- kind = page
+│ ├── book-2.md <-- kind = page
+│ └── _index.md <-- kind = section
+└── _index.md <-- kind = home
+```
+
+```go-html-template
+{{ .IsPage }}
+```
diff --git a/docs/content/en/methods/page/IsSection.md b/docs/content/en/methods/page/IsSection.md
new file mode 100644
index 00000000000..7a04fbd8fba
--- /dev/null
+++ b/docs/content/en/methods/page/IsSection.md
@@ -0,0 +1,26 @@
+---
+title: IsSection
+description: Reports whether the given page is a section page.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.IsSection]
+---
+
+The `IsSection` method on a `Page` object returns `true` if the [page kind](g) is `section`.
+
+```text
+content/
+├── books/
+│ ├── book-1/
+│ │ └── index.md <-- kind = page
+│ ├── book-2.md <-- kind = page
+│ └── _index.md <-- kind = section
+└── _index.md <-- kind = home
+```
+
+```go-html-template
+{{ .IsSection }}
+```
diff --git a/docs/content/en/methods/page/IsTranslated.md b/docs/content/en/methods/page/IsTranslated.md
new file mode 100644
index 00000000000..a9d12b9fb6e
--- /dev/null
+++ b/docs/content/en/methods/page/IsTranslated.md
@@ -0,0 +1,56 @@
+---
+title: IsTranslated
+description: Reports whether the given page has one or more translations.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [PAGE.IsTranslated]
+---
+
+With this project configuration:
+
+{{< code-toggle file=hugo >}}
+defaultContentLanguage = 'en'
+
+[languages.en]
+contentDir = 'content/en'
+label = 'English'
+locale = 'en-US'
+weight = 1
+
+[languages.de]
+contentDir = 'content/de'
+label = 'Deutsch'
+locale = 'de-DE'
+weight = 2
+{{< /code-toggle >}}
+
+And this content:
+
+```text
+content/
+├── de/
+│ ├── books/
+│ │ └── book-1.md
+│ └── _index.md
+├── en/
+│ ├── books/
+│ │ ├── book-1.md
+│ │ └── book-2.md
+│ └── _index.md
+└── _index.md
+```
+
+When rendering `content/en/books/book-1.md`:
+
+```go-html-template
+{{ .IsTranslated }} → true
+```
+
+When rendering `content/en/books/book-2.md`:
+
+```go-html-template
+{{ .IsTranslated }} → false
+```
diff --git a/docs/content/en/methods/page/Keywords.md b/docs/content/en/methods/page/Keywords.md
new file mode 100644
index 00000000000..7c940984eff
--- /dev/null
+++ b/docs/content/en/methods/page/Keywords.md
@@ -0,0 +1,46 @@
+---
+title: Keywords
+description: Returns a slice of keywords as defined in front matter.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: '[]string'
+ signatures: [PAGE.Keywords]
+---
+
+By default, Hugo evaluates the keywords when creating collections of [related content].
+
+[related content]: /content-management/related-content/
+
+{{< code-toggle file=content/recipes/sushi.md fm=true >}}
+title = 'How to make spicy tuna hand rolls'
+keywords = ['tuna','sriracha','nori','rice']
+{{< /code-toggle >}}
+
+To list the keywords within a template:
+
+```go-html-template
+{{ range .Keywords }}
+ {{ . }}
+{{ end }}
+```
+
+Or use the [delimit] function:
+
+```go-html-template
+{{ delimit .Keywords ", " ", and " }} → tuna, sriracha, nori, and rice
+```
+
+[delimit]: /functions/collections/delimit/
+
+Keywords are also a useful [taxonomy]:
+
+{{< code-toggle file=hugo >}}
+[taxonomies]
+tag = 'tags'
+keyword = 'keywords'
+category = 'categories'
+{{< /code-toggle >}}
+
+[taxonomy]: /content-management/taxonomies/
diff --git a/docs/content/en/methods/page/Kind.md b/docs/content/en/methods/page/Kind.md
new file mode 100644
index 00000000000..a01877e8c5e
--- /dev/null
+++ b/docs/content/en/methods/page/Kind.md
@@ -0,0 +1,32 @@
+---
+title: Kind
+description: Returns the kind of the given page.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [PAGE.Kind]
+---
+
+The [page kind](g) is one of `home`, `page`, `section`, `taxonomy`, or `term`.
+
+```text
+content/
+├── books/
+│ ├── book-1/
+│ │ └── index.md <-- kind = page
+│ ├── book-2.md <-- kind = page
+│ └── _index.md <-- kind = section
+├── tags/
+│ ├── fiction/
+│ │ └── _index.md <-- kind = term
+│ └── _index.md <-- kind = taxonomy
+└── _index.md <-- kind = home
+```
+
+To get the value within a template:
+
+```go-html-template
+{{ .Kind }}
+```
diff --git a/docs/content/en/methods/page/Language.md b/docs/content/en/methods/page/Language.md
new file mode 100644
index 00000000000..26a40e5e05f
--- /dev/null
+++ b/docs/content/en/methods/page/Language.md
@@ -0,0 +1,135 @@
+---
+title: Language
+description: Returns the Language object for the given page.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: langs.Language
+ signatures: [PAGE.Language]
+---
+
+The `Language` method on a `Page` object returns the `Language` object for the given page, derived from the language definition in your project configuration.
+
+You can also use the `Language` method on a `Site` object. See [details][].
+
+## Methods
+
+The examples below assume the following language definition.
+
+{{< code-toggle file=hugo >}}
+[languages.de]
+direction = 'ltr'
+label = 'Deutsch'
+locale = 'de-DE'
+weight = 2
+{{< /code-toggle >}}
+
+### Direction
+
+{{< new-in 0.158.0 />}}
+
+(`string`) Returns the [`direction`][] from the language definition.
+
+```go-html-template
+{{ .Language.Direction }} → ltr
+```
+
+### IsDefault
+
+{{< new-in 0.153.0 />}}
+
+(`bool`) Reports whether this is the [default language][].
+
+```go-html-template
+{{ .Language.IsDefault }} → true
+```
+
+### Label
+
+{{< new-in 0.158.0 />}}
+
+(`string`) Returns the [`label`][] from the language definition.
+
+```go-html-template
+{{ .Language.Label }} → Deutsch
+```
+
+### Lang
+
+{{
+{{ end }} +``` + +Consider this content structure: + +```text +content/ +├── lessons/ +│ ├── lesson-1/ +│ │ ├── _index.md +│ │ ├── part-1.md +│ │ └── part-2.md +│ ├── lesson-2/ +│ │ ├── resources/ +│ │ │ ├── task-list.md +│ │ │ └── worksheet.md +│ │ ├── _index.md +│ │ ├── part-1.md +│ │ └── part-2.md +│ ├── _index.md +│ ├── grading-policy.md +│ └── lesson-plan.md +├── _index.md +├── contact.md +└── legal.md +``` + +When rendering the home page, the `Pages` method returns: + + contact.md + legal.md + lessons/_index.md + +When rendering the lessons page, the `Pages` method returns: + + lessons/grading-policy.md + lessons/lesson-plan.md + lessons/lesson-1/_index.md + lessons/lesson-2/_index.md + +When rendering lesson-1, the `Pages` method returns: + + lessons/lesson-1/part-1.md + lessons/lesson-1/part-2.md + +When rendering lesson-2, the `Pages` method returns: + + lessons/lesson-2/part-1.md + lessons/lesson-2/part-2.md + lessons/lesson-2/resources/task-list.md + lessons/lesson-2/resources/worksheet.md + +In the last example, the collection includes pages in the resources subdirectory. That directory is not a [section](g)---it does not contain an `_index.md` file. Its contents are part of the lesson-2 section. + +> [!note] +> When used with a `Site` object, the `Pages` method recursively returns all pages within the site. See [details]. + +```go-html-template +{{ range .Site.Pages.ByTitle }} +
+{{ end }} +``` + +[details]: /methods/site/pages/ diff --git a/docs/content/en/methods/page/Paginate.md b/docs/content/en/methods/page/Paginate.md new file mode 100644 index 00000000000..452bf9daf8a --- /dev/null +++ b/docs/content/en/methods/page/Paginate.md @@ -0,0 +1,47 @@ +--- +title: Paginate +description: Paginates a collection of pages. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pager + signatures: ['PAGE.Paginate COLLECTION [N]'] +--- + +Pagination is the process of splitting a list page into two or more pagers, where each pager contains a subset of the page collection and navigation links to other pagers. + +By default, the number of elements on each pager is determined by your [project configuration]. The default is `10`. Override that value by providing a second argument, an integer, when calling the `Paginate` method. + +> [!note] +> There is also a `Paginator` method on `Page` objects, but it can neither filter nor sort the page collection. +> +> The `Paginate` method is more flexible. + +You can invoke pagination in [home], [section], [taxonomy], and [term] templates. + +```go-html-template {file="layouts/section.html"} +{{ $pages := where .Site.RegularPages "Section" "articles" }} +{{ $pages = $pages.ByTitle }} +{{ range (.Paginate $pages 7).Pages }} +
+{{ end }} +{{ partial "pagination.html" . }} +``` + +In the example above, we: + +1. Build a page collection +1. Sort the collection by title +1. Paginate the collection, with 7 elements per pager +1. Range over the paginated page collection, rendering a link to each page +1. Call the embedded pagination template to create navigation links between pagers + +> [!note] +> Please note that the results of pagination are cached. Once you have invoked either the `Paginator` or `Paginate` method, the paginated collection is immutable. Additional invocations of these methods will have no effect. + +[home]: /templates/types/#home +[section]: /templates/types/#section +[project configuration]: /configuration/pagination/ +[taxonomy]: /templates/types/#taxonomy +[term]: /templates/types/#term diff --git a/docs/content/en/methods/page/Paginator.md b/docs/content/en/methods/page/Paginator.md new file mode 100644 index 00000000000..059e55e2d6d --- /dev/null +++ b/docs/content/en/methods/page/Paginator.md @@ -0,0 +1,40 @@ +--- +title: Paginator +description: Paginates the collection of regular pages received in context. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pager + signatures: [PAGE.Paginator] +--- + +Pagination is the process of splitting a list page into two or more pagers, where each pager contains a subset of the page collection and navigation links to other pagers. + +The number of elements on each pager is determined by your [project configuration]. The default is `10`. + +You can invoke pagination in [home], [section], [taxonomy], and [term] templates. Each of these receives a collection of regular pages in [context](g). When you invoke the `Paginator` method, it paginates the page collection received in context. + +```go-html-template {file="layouts/section.html"} +{{ range .Paginator.Pages }} +
+{{ end }} +{{ partial "pagination.html" . }} +``` + +In the example above, the embedded pagination template creates navigation links between pagers. + +> [!note] +> Although simple to invoke, with the `Paginator` method you can neither filter nor sort the page collection. It acts upon the page collection received in context. +> +> The [`Paginate`] method is more flexible, and strongly recommended. + +> [!note] +> Please note that the results of pagination are cached. Once you have invoked either the `Paginator` or `Paginate` method, the paginated collection is immutable. Additional invocations of these methods will have no effect. + +[home]: /templates/types/#home +[section]: /templates/types/#section +[project configuration]: /configuration/pagination/ +[taxonomy]: /templates/types/#taxonomy +[term]: /templates/types/#term +[`Paginate`]: /methods/page/paginate/ diff --git a/docs/content/en/methods/page/Param.md b/docs/content/en/methods/page/Param.md new file mode 100644 index 00000000000..b07c1cd920f --- /dev/null +++ b/docs/content/en/methods/page/Param.md @@ -0,0 +1,48 @@ +--- +title: Param +description: Returns a page parameter with the given key, falling back to a site parameter if present. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: any + signatures: [PAGE.Param KEY] +aliases: [/functions/param] +--- + +The `Param` method on a `Page` object looks for the given `KEY` in page parameters, and returns the corresponding value. If it cannot find the `KEY` in page parameters, it looks for the `KEY` in site parameters. If it cannot find the `KEY` in either location, the `Param` method returns `nil`. + +Site and theme developers commonly set parameters at the site level, allowing content authors to override those parameters at the page level. + +For example, to show a table of contents on every page, but allow authors to hide the table of contents as needed: + +Configuration: + +{{< code-toggle file=hugo >}} +[params] +display_toc = true +{{< /code-toggle >}} + +Content: + +{{< code-toggle file=content/example.md fm=true >}} +title = 'Example' +date = 2023-01-01 +draft = false +[params] +display_toc = false +{{< /code-toggle >}} + +Template: + +```go-html-template +{{ if .Param "display_toc" }} + {{ .TableOfContents }} +{{ end }} +``` + +The `Param` method returns the value associated with the given `KEY`, regardless of whether the value is truthy or falsy. If you need to ignore falsy values, use this construct instead: + +```go-html-template +{{ or .Params.foo site.Params.foo }} +``` diff --git a/docs/content/en/methods/page/Params.md b/docs/content/en/methods/page/Params.md new file mode 100644 index 00000000000..eeb2534378e --- /dev/null +++ b/docs/content/en/methods/page/Params.md @@ -0,0 +1,42 @@ +--- +title: Params +description: Returns a map of custom parameters as defined in the front matter of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Params + signatures: [PAGE.Params] +--- + +By way of example, consider this front matter: + +{{< code-toggle file=content/annual-conference.md fm=true >}} +title = 'Annual conference' +date = 2023-10-17T15:11:37-07:00 +[params] +display_related = true +key-with-hyphens = 'must use index function' +[params.author] + email = 'jsmith@example.org' + name = 'John Smith' +{{< /code-toggle >}} + +The `title` and `date` fields are standard [front matter fields], while the other fields are user-defined. + +Access the custom fields by [chaining](g) the [identifiers](g) when needed: + +```go-html-template +{{ .Params.display_related }} → true +{{ .Params.author.email }} → jsmith@example.org +{{ .Params.author.name }} → John Smith +``` + +In the template example above, each of the keys is a valid identifier. For example, none of the keys contains a hyphen. To access a key that is not a valid identifier, use the [`index`] function: + +```go-html-template +{{ index .Params "key-with-hyphens" }} → must use index function +``` + +[`index`]: /functions/collections/indexfunction/ +[front matter fields]: /content-management/front-matter/#fields diff --git a/docs/content/en/methods/page/Parent.md b/docs/content/en/methods/page/Parent.md new file mode 100644 index 00000000000..0946a79937d --- /dev/null +++ b/docs/content/en/methods/page/Parent.md @@ -0,0 +1,52 @@ +--- +title: Parent +description: Returns the Page object of the parent section of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGE.Parent] +--- + +{{% glossary-term section %}} + +> [!note] +> The parent section of a regular page is the [current section]. + +Consider this content structure: + +```text +content/ +├── auctions/ +│ ├── 2023-11/ +│ │ ├── _index.md <-- parent: auctions +│ │ ├── auction-1.md +│ │ └── auction-2.md <-- parent: 2023-11 +│ ├── 2023-12/ +│ │ ├── _index.md +│ │ ├── auction-3.md +│ │ └── auction-4.md +│ ├── _index.md <-- parent: home +│ ├── bidding.md +│ └── payment.md <-- parent: auctions +├── books/ +│ ├── _index.md <-- parent: home +│ ├── book-1.md +│ └── book-2.md <-- parent: books +├── films/ +│ ├── _index.md <-- parent: home +│ ├── film-1.md +│ └── film-2.md <-- parent: films +└── _index.md <-- parent: nil +``` + +In the example above, note the parent section of the home page is nil. Code defensively by verifying existence of the parent section before calling methods on its `Page` object. To create a link to the parent section page of the current page: + +```go-html-template +{{ with .Parent }} + {{ .LinkTitle }} +{{ end }} +``` + +[current section]: /methods/page/currentsection/ diff --git a/docs/content/en/methods/page/Path.md b/docs/content/en/methods/page/Path.md new file mode 100644 index 00000000000..b2ef7a031d5 --- /dev/null +++ b/docs/content/en/methods/page/Path.md @@ -0,0 +1,138 @@ +--- +title: Path +description: Returns the logical path of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Path] +--- + +The `Path` method on a `Page` object returns the logical path of the given page, regardless of whether the page is backed by a file. + +{{% glossary-term "logical path" %}} + +```go-html-template +{{ .Path }} → /posts/post-1 +``` + +> [!note] +> Beginning with the release of [v0.92.0] in January 2022, Hugo emitted a warning whenever calling the `Path` method. The warning indicated that this method would change in a future release. +> +> The meaning of, and value returned by, the `Path` method on a `Page` object changed with the release of [v0.123.0] in February 2024. + +The value returned by the `Path` method on a `Page` object is independent of content format, language, and URL modifiers such as the `slug` and `url` front matter fields. + +## Examples + +### Monolingual project + +Note that the logical path is independent of content format and URL modifiers. + +File path|Front matter slug|Logical path +:--|:--|:-- +`content/_index.md`||`/` +`content/posts/_index.md`||`/posts` +`content/posts/post-1.md`|`foo`|`/posts/post-1` +`content/posts/post-2.html`|`bar`|`/posts/post-2` + +### Multilingual site + +Note that the logical path is independent of content format, language identifiers, and URL modifiers. + +File path|Front matter slug|Logical path +:--|:--|:-- +`content/_index.en.md`||`/` +`content/_index.de.md`||`/` +`content/posts/_index.en.md`||`/posts` +`content/posts/_index.de.md`||`/posts` +`content/posts/posts-1.en.md`|`foo`|`/posts/post-1` +`content/posts/posts-1.de.md`|`foo`|`/posts/post-1` +`content/posts/posts-2.en.html`|`bar`|`/posts/post-2` +`content/posts/posts-2.de.html`|`bar`|`/posts/post-2` + +### Pages not backed by a file + +The `Path` method on a `Page` object returns a value regardless of whether the page is backed by a file. + +```text +content/ +└── posts/ + └── post-1.md <-- front matter: tags = ['hugo'] +``` + +When you build the site: + +```text +public/ +├── posts/ +│ ├── post-1/ +│ │ └── index.html .Page.Path = /posts/post-1 +│ └── index.html .Page.Path = /posts +├── tags/ +│ ├── hugo/ +│ │ └── index.html .Page.Path = /tags/hugo +│ └── index.html .Page.Path = /tags +└── index.html .Page.Path = / +``` + +## Finding pages + +These methods, functions, and shortcodes use the logical path to find the given page: + +Methods|Functions|Shortcodes +:--|:--|:-- +[`Site.GetPage`]|[`urls.Ref`]|[`ref`] +[`Page.GetPage`]|[`urls.RelRef`]|[`relref`] +[`Page.Ref`]| | +[`Page.RelRef`]| | +[`Shortcode.Ref`]| | +[`Shortcode.RelRef`]| | + +> [!note] +> Specify the logical path when using any of these methods, functions, or shortcodes. If you include a file extension or language identifier, Hugo will strip these values before finding the page in the logical tree. + +## Logical tree + +Just as file paths form a file tree, logical paths form a logical tree. + +A file tree: + +```text +content/ +└── s1/ + ├── p1/ + │ └── index.md + └── p2.md +``` + +The same content represented as a logical tree: + +```text +content/ +└── s1/ + ├── p1 + └── p2 +``` + +A key difference between these trees is the relative path from p1 to p2: + +- In the file tree, the relative path from p1 to p2 is `../p2.md` +- In the logical tree, the relative path is `p2` + +> [!note] +> Remember to use the logical path when using any of the methods, functions, or shortcodes listed in the previous section. If you include a file extension or language identifier, Hugo will strip these values before finding the page in the logical tree. + +[`Page.GetPage`]: /methods/page/getpage/ +[`Page.Ref`]: /methods/page/ref/ +[`Page.RelRef`]: /methods/page/relref/ +[`ref`]: /shortcodes/ref/ +[`relref`]: /shortcodes/relref/ +[`Shortcode.Ref`]: /methods/shortcode/ref +[`Shortcode.RelRef`]: /methods/shortcode/relref +[`Site.GetPage`]: /methods/site/getpage/ +[`urls.Ref`]: /functions/urls/ref/ +[`urls.RelRef`]: /functions/urls/relref/ +[v0.123.0]: https://github.com/gohugoio/hugo/releases/tag/v0.123.0 +[v0.92.0]: https://github.com/gohugoio/hugo/releases/tag/v0.92.0 diff --git a/docs/content/en/methods/page/Permalink.md b/docs/content/en/methods/page/Permalink.md new file mode 100644 index 00000000000..ffd6ede0b69 --- /dev/null +++ b/docs/content/en/methods/page/Permalink.md @@ -0,0 +1,24 @@ +--- +title: Permalink +description: Returns the permalink of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Permalink] +--- + +Project configuration: + +{{< code-toggle file=hugo >}} +title = 'Documentation' +baseURL = 'https://example.org/docs/' +{{< /code-toggle >}} + +Template: + +```go-html-template +{{ $page := .Site.GetPage "/about" }} +{{ $page.Permalink }} → https://example.org/docs/about/ +``` diff --git a/docs/content/en/methods/page/Plain.md b/docs/content/en/methods/page/Plain.md new file mode 100644 index 00000000000..23bc214130a --- /dev/null +++ b/docs/content/en/methods/page/Plain.md @@ -0,0 +1,23 @@ +--- +title: Plain +description: Returns the rendered content of the given page, removing all HTML tags. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Plain] +--- + +The `Plain` method on a `Page` object renders Markdown and [shortcodes](g) to HTML, then strips the HTML [tags][]. It does not strip HTML [entities][]. + +To prevent Go's [`html/template`][] package from escaping HTML entities, pass the result through the [`htmlUnescape`][] function. + +```go-html-template +{{ .Plain | htmlUnescape }} +``` + +[`html/template`]: https://pkg.go.dev/html/template +[entities]: https://developer.mozilla.org/en-US/docs/Glossary/Entity +[tags]: https://developer.mozilla.org/en-US/docs/Glossary/Tag +[`htmlUnescape`]: /functions/transform/htmlunescape/ diff --git a/docs/content/en/methods/page/PlainWords.md b/docs/content/en/methods/page/PlainWords.md new file mode 100644 index 00000000000..5749a21f9d4 --- /dev/null +++ b/docs/content/en/methods/page/PlainWords.md @@ -0,0 +1,31 @@ +--- +title: PlainWords +description: Calls the Plain method, splits the result into a slice of words, and returns the slice. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: '[]string' + signatures: [PAGE.PlainWords] +--- + +The `PlainWords` method on a `Page` object calls the [`Plain`] method, then uses Go's [`strings.Fields`] function to split the result into words. + +> [!note] +> `Fields` splits the string `s` around each instance of one or more consecutive whitespace characters, as defined by [`unicode.IsSpace`], returning a slice of substrings of `s` or an empty slice if `s` contains only whitespace. + +As a result, elements within the slice may contain leading or trailing punctuation. + +```go-html-template +{{ .PlainWords }} +``` + +To determine the approximate number of unique words on a page: + +```go-html-template +{{ .PlainWords | uniq }} → 42 +``` + +[`Plain`]: /methods/page/plain/ +[`strings.Fields`]: https://pkg.go.dev/strings#Fields +[`unicode.IsSpace`]: https://pkg.go.dev/unicode#IsSpace diff --git a/docs/content/en/methods/page/Prev.md b/docs/content/en/methods/page/Prev.md new file mode 100644 index 00000000000..5a6e2162d8e --- /dev/null +++ b/docs/content/en/methods/page/Prev.md @@ -0,0 +1,12 @@ +--- +title: Prev +description: Returns the previous page in a site's collection of regular pages, relative to the current page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGE.Prev] +--- + +{{% include "/_common/methods/page/next-and-prev.md" %}} diff --git a/docs/content/en/methods/page/PrevInSection.md b/docs/content/en/methods/page/PrevInSection.md new file mode 100644 index 00000000000..14d3ca082c6 --- /dev/null +++ b/docs/content/en/methods/page/PrevInSection.md @@ -0,0 +1,12 @@ +--- +title: PrevInSection +description: Returns the previous regular page in a section, relative to the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGE.PrevInSection] +--- + +{{% include "/_common/methods/page/nextinsection-and-previnsection.md" %}} diff --git a/docs/content/en/methods/page/PublishDate.md b/docs/content/en/methods/page/PublishDate.md new file mode 100644 index 00000000000..ec3c1337786 --- /dev/null +++ b/docs/content/en/methods/page/PublishDate.md @@ -0,0 +1,32 @@ +--- +title: PublishDate +description: Returns the publish date of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: time.Time + signatures: [PAGE.PublishDate] +--- + +By default, Hugo excludes pages with future publish dates when building your project. To include future pages, use the `--buildFuture` command line flag. + +Set the publish date in front matter: + +{{< code-toggle file=content/news/article-1.md fm=true >}} +title = 'Article 1' +publishDate = 2023-10-19T00:40:04-07:00 +{{< /code-toggle >}} + +The publish date is a [time.Time] value. Format and localize the value with the [`time.Format`] function, or use it with any of the [time methods]. + +```go-html-template +{{ .PublishDate | time.Format ":date_medium" }} → Oct 19, 2023 +``` + +In the example above we explicitly set the publish date in front matter. With Hugo's default configuration, the `PublishDate` method returns the front matter value. This behavior is configurable, allowing you to set fallback values if the publish date is not defined in front matter. See [details]. + +[`time.Format`]: /functions/time/format/ +[details]: /configuration/front-matter/#dates +[time methods]: /methods/time/ +[time.Time]: https://pkg.go.dev/time#Time diff --git a/docs/content/en/methods/page/RawContent.md b/docs/content/en/methods/page/RawContent.md new file mode 100644 index 00000000000..41215ef53c6 --- /dev/null +++ b/docs/content/en/methods/page/RawContent.md @@ -0,0 +1,23 @@ +--- +title: RawContent +description: Returns the raw content of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.RawContent] +--- + +The `RawContent` method on a `Page` object returns the raw content. The raw content does not include front matter. + +```go-html-template +{{ .RawContent }} +``` + +This is useful when rendering a page in a plain text [output format](g). + +> [!note] +> [Shortcodes](g) within the content are not rendered. To get the raw content with shortcodes rendered, use the [`RenderShortcodes`] method on a `Page` object. + +[`RenderShortcodes`]: /methods/page/rendershortcodes/ diff --git a/docs/content/en/methods/page/ReadingTime.md b/docs/content/en/methods/page/ReadingTime.md new file mode 100644 index 00000000000..2fd2ea4d764 --- /dev/null +++ b/docs/content/en/methods/page/ReadingTime.md @@ -0,0 +1,47 @@ +--- +title: ReadingTime +description: Returns the estimated reading time, in minutes, for the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGE.ReadingTime] +--- + +The estimated reading time is calculated by dividing the number of words in the content by the reading speed. + +By default, Hugo assumes a reading speed of 212 words per minute. For CJK languages, it assumes 500 words per minute. + +```go-html-template +{{ printf "Estimated reading time: %d minutes" .ReadingTime }} +``` + +Reading speed varies by language. Create language-specific estimated reading times on your multilingual project using site parameters. + +{{< code-toggle file=hugo >}} +[languages] + [languages.de] + contentDir = 'content/de' + label = 'Deutsch' + locale = 'de-DE' + weight = 2 + [languages.de.params] + reading_speed = 179 + [languages.en] + contentDir = 'content/en' + label = 'English' + locale = 'en-US' + weight = 1 + [languages.en.params] + reading_speed = 228 +{{< /code-toggle >}} + +Then in your template: + +```go-html-template +{{ $readingTime := div (float .WordCount) .Site.Params.reading_speed }} +{{ $readingTime = math.Ceil $readingTime }} +``` + +We cast the `.WordCount` to a float to obtain a float when we divide by the reading speed. Then round up to the nearest integer. diff --git a/docs/content/en/methods/page/Ref.md b/docs/content/en/methods/page/Ref.md new file mode 100644 index 00000000000..35f9460bae8 --- /dev/null +++ b/docs/content/en/methods/page/Ref.md @@ -0,0 +1,37 @@ +--- +title: Ref +description: Returns the absolute URL of the page with the given path, language, and output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Ref OPTIONS] +--- + +## Usage + +The `Ref` method accepts a single argument: an options map. + +## Options + +{{% include "_common/ref-and-relref-options.md" %}} + +## Examples + +The following examples show the rendered output for a page on the English version of the site: + +```go-html-template +{{ $opts := dict "path" "/books/book-1" }} +{{ .Ref $opts }} → https://example.org/en/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" }} +{{ .Ref $opts }} → https://example.org/de/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" "outputFormat" "json" }} +{{ .Ref $opts }} → https://example.org/de/books/book-1/index.json +``` + +## Error handling + +{{% include "_common/ref-and-relref-error-handling.md" %}} diff --git a/docs/content/en/methods/page/RegularPages.md b/docs/content/en/methods/page/RegularPages.md new file mode 100644 index 00000000000..761de3af527 --- /dev/null +++ b/docs/content/en/methods/page/RegularPages.md @@ -0,0 +1,79 @@ +--- +title: RegularPages +description: Returns a collection of regular pages within the current section. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.RegularPages] +--- + +The `RegularPages` method on a `Page` object is available to these [page kinds](g): `home`, `section`, `taxonomy`, and `term`. The templates for these page kinds receive a page [collection](g) in [context](g), in the [default sort order](g). + +Range through the page collection in your template: + +```go-html-template +{{ range .RegularPages.ByTitle }} +
+{{ end }} +``` + +Consider this content structure: + +```text +content/ +├── lessons/ +│ ├── lesson-1/ +│ │ ├── _index.md +│ │ ├── part-1.md +│ │ └── part-2.md +│ ├── lesson-2/ +│ │ ├── resources/ +│ │ │ ├── task-list.md +│ │ │ └── worksheet.md +│ │ ├── _index.md +│ │ ├── part-1.md +│ │ └── part-2.md +│ ├── _index.md +│ ├── grading-policy.md +│ └── lesson-plan.md +├── _index.md +├── contact.md +└── legal.md +``` + +When rendering the home page, the `RegularPages` method returns: + + contact.md + legal.md + +When rendering the lessons page, the `RegularPages` method returns: + + lessons/grading-policy.md + lessons/lesson-plan.md + +When rendering lesson-1, the `RegularPages` method returns: + + lessons/lesson-1/part-1.md + lessons/lesson-1/part-2.md + +When rendering lesson-2, the `RegularPages` method returns: + + lessons/lesson-2/part-1.md + lessons/lesson-2/part-2.md + lessons/lesson-2/resources/task-list.md + lessons/lesson-2/resources/worksheet.md + +In the last example, the collection includes pages in the resources subdirectory. That directory is not a [section](g)---it does not contain an `_index.md` file. Its contents are part of the lesson-2 section. + +> [!note] +> When used with the `Site` object, the `RegularPages` method recursively returns all regular pages within the site. See [details]. + +```go-html-template +{{ range .Site.RegularPages.ByTitle }} +
+{{ end }} +``` + +[details]: /methods/site/regularpages/ diff --git a/docs/content/en/methods/page/RegularPagesRecursive.md b/docs/content/en/methods/page/RegularPagesRecursive.md new file mode 100644 index 00000000000..d85cd0b48ee --- /dev/null +++ b/docs/content/en/methods/page/RegularPagesRecursive.md @@ -0,0 +1,83 @@ +--- +title: RegularPagesRecursive +description: Returns a collection of regular pages within the current section, and regular pages within all descendant sections. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.RegularPagesRecursive] +--- + +The `RegularPagesRecursive` method on a `Page` object is available to these [page kinds](g): `home`, `section`, `taxonomy`, and `term`. The templates for these page kinds receive a page [collection](g) in [context](g), in the [default sort order](g). + +Range through the page collection in your template: + +```go-html-template +{{ range .RegularPagesRecursive.ByTitle }} +
+{{ end }} +``` + +Consider this content structure: + +```text +content/ +├── lessons/ +│ ├── lesson-1/ +│ │ ├── _index.md +│ │ ├── part-1.md +│ │ └── part-2.md +│ ├── lesson-2/ +│ │ ├── resources/ +│ │ │ ├── task-list.md +│ │ │ └── worksheet.md +│ │ ├── _index.md +│ │ ├── part-1.md +│ │ └── part-2.md +│ ├── _index.md +│ ├── grading-policy.md +│ └── lesson-plan.md +├── _index.md +├── contact.md +└── legal.md +``` + +When rendering the home page, the `RegularPagesRecursive` method returns: + + contact.md + lessons/grading-policy.md + legal.md + lessons/lesson-plan.md + lessons/lesson-2/part-1.md + lessons/lesson-1/part-1.md + lessons/lesson-2/part-2.md + lessons/lesson-1/part-2.md + lessons/lesson-2/resources/task-list.md + lessons/lesson-2/resources/worksheet.md + +When rendering the lessons page, the `RegularPagesRecursive` method returns: + + lessons/grading-policy.md + lessons/lesson-plan.md + lessons/lesson-2/part-1.md + lessons/lesson-1/part-1.md + lessons/lesson-2/part-2.md + lessons/lesson-1/part-2.md + lessons/lesson-2/resources/task-list.md + lessons/lesson-2/resources/worksheet.md + +When rendering lesson-1, the `RegularPagesRecursive` method returns: + + lessons/lesson-1/part-1.md + lessons/lesson-1/part-2.md + +When rendering lesson-2, the `RegularPagesRecursive` method returns: + + lessons/lesson-2/part-1.md + lessons/lesson-2/part-2.md + lessons/lesson-2/resources/task-list.md + lessons/lesson-2/resources/worksheet.md + +> [!note] +> The `RegularPagesRecursive` method is not available on a `Site` object. diff --git a/docs/content/en/methods/page/RelPermalink.md b/docs/content/en/methods/page/RelPermalink.md new file mode 100644 index 00000000000..ba03dc1bbb0 --- /dev/null +++ b/docs/content/en/methods/page/RelPermalink.md @@ -0,0 +1,24 @@ +--- +title: RelPermalink +description: Returns the relative permalink of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.RelPermalink] +--- + +Project configuration: + +{{< code-toggle file=hugo >}} +title = 'Documentation' +baseURL = 'https://example.org/docs/' +{{< /code-toggle >}} + +Template: + +```go-html-template +{{ $page := .Site.GetPage "/about" }} +{{ $page.RelPermalink }} → /docs/about/ +``` diff --git a/docs/content/en/methods/page/RelRef.md b/docs/content/en/methods/page/RelRef.md new file mode 100644 index 00000000000..7edab574013 --- /dev/null +++ b/docs/content/en/methods/page/RelRef.md @@ -0,0 +1,37 @@ +--- +title: RelRef +description: Returns the relative URL of the page with the given path, language, and output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.RelRef OPTIONS] +--- + +## Usage + +The `RelRef` method accepts a single argument: an options map. + +## Options + +{{% include "_common/ref-and-relref-options.md" %}} + +## Examples + +The following examples show the rendered output for a page on the English version of the site: + +```go-html-template +{{ $opts := dict "path" "/books/book-1" }} +{{ .RelRef $opts }} → /en/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" }} +{{ .RelRef $opts }} → /de/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" "outputFormat" "json" }} +{{ .RelRef $opts }} → /de/books/book-1/index.json +``` + +## Error handling + +{{% include "_common/ref-and-relref-error-handling.md" %}} diff --git a/docs/content/en/methods/page/Render.md b/docs/content/en/methods/page/Render.md new file mode 100644 index 00000000000..cd24419c2b6 --- /dev/null +++ b/docs/content/en/methods/page/Render.md @@ -0,0 +1,71 @@ +--- +title: Render +description: Renders the given template with the given page as context. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [PAGE.Render NAME] +aliases: [/functions/render] +--- + +Typically used when ranging over a page collection, the `Render` method on a `Page` object renders the given template, passing the given page as context. + +```go-html-template +{{ range site.RegularPages }} +
+ {{ .Render "summary" }} +{{ end }} +``` + +In the example above, note that the template ("summary") is identified by its file name without directory or extension. + +Although similar to the [`partial`] function, there are key differences. + +`Render` method|`partial` function +:--|:-- +The `Page` object is automatically passed to the given template. You cannot pass additional context.|You must specify the context, allowing you to pass a combination of objects, slices, maps, and scalars. +The path to the template is determined by the [content type](g).|You must specify the path to the template, relative to the `layouts/_partials` directory. + +Consider this layout structure: + +```text +layouts/ +├── books/ +│ └── li.html <-- used when content type is "books" +├── baseof.html +├── home.html +├── li.html <-- used for other content types +├── page.html +├── section.html +├── taxonomy.html +└── term.html +``` + +And this template: + +```go-html-template +
+``` + +When rendering content of type "books" the `Render` method calls: + +```text +layouts/books/li.html +``` + +For all other content types the `Render` methods calls: + +```text +layouts/li.html +``` + +See [content views] for more examples. + +[content views]: /templates/types/#content-view +[`partial`]: /functions/partials/include/ diff --git a/docs/content/en/methods/page/RenderShortcodes.md b/docs/content/en/methods/page/RenderShortcodes.md new file mode 100644 index 00000000000..e440302dc10 --- /dev/null +++ b/docs/content/en/methods/page/RenderShortcodes.md @@ -0,0 +1,87 @@ +--- +title: RenderShortcodes +description: Renders all shortcodes in the content of the given page, preserving the surrounding markup. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [PAGE.RenderShortcodes] +--- + +Use this method in _shortcode_ templates to compose a page from multiple content files, while preserving a global context for footnotes and the table of contents. + +For example: + +```go-html-template {file="layouts/_shortcodes/include.html" copy=true} +{{ with .Get 0 }} + {{ with $.Page.GetPage . }} + {{- .RenderShortcodes }} + {{ else }} + {{ errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} + {{ end }} +{{ else }} + {{ errorf "The %q shortcode requires a positional parameter indicating the logical path of the file to include. See %s" .Name .Position }} +{{ end }} +``` + +Then call the shortcode in your Markdown: + +```text {file="content/about.md"} +{{%/* include "/snippets/services" */%}} +{{%/* include "/snippets/values" */%}} +{{%/* include "/snippets/leadership" */%}} +``` + +Each of the included Markdown files can contain calls to other shortcodes. + +## Shortcode notation + +In the example above it's important to understand the difference between the two delimiters used when calling a shortcode: + +- `{{* myshortcode */>}}` tells Hugo that the rendered shortcode does not need further processing. For example, the shortcode content is HTML. +- `{{%/* myshortcode */%}}` tells Hugo that the rendered shortcode needs further processing. For example, the shortcode content is Markdown. + +Use the latter for the "include" shortcode described above. + +## Further explanation + +To understand what is returned by the `RenderShortcodes` method, consider this content file + +```text {file="content/about.md"} ++++ +title = 'About' +date = 2023-10-07T12:28:33-07:00 ++++ + +{{* ref "privacy" */>}} + +An *emphasized* word. +``` + +With this template code: + +```go-html-template +{{ $p := site.GetPage "/about" }} +{{ $p.RenderShortcodes }} +``` + +Hugo renders this:; + +```html +https://example.org/privacy/ + +An *emphasized* word. +``` + +Note that the shortcode within the content file was rendered, but the surrounding Markdown was preserved. + +## Limitations + +The primary use case for `.RenderShortcodes` is inclusion of Markdown content. If you try to use `.RenderShortcodes` inside `HTML` blocks when inside Markdown, you will get a warning similar to this: + +```text +WARN .RenderShortcodes detected inside HTML block in "/content/mypost.md"; this may not be what you intended ... +``` + +The above warning can be turned off is this is what you really want. diff --git a/docs/content/en/methods/page/RenderString.md b/docs/content/en/methods/page/RenderString.md new file mode 100644 index 00000000000..5f97e3576b8 --- /dev/null +++ b/docs/content/en/methods/page/RenderString.md @@ -0,0 +1,49 @@ +--- +title: RenderString +description: Renders markup to HTML. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: ['PAGE.RenderString [OPTIONS] MARKUP'] +aliases: [/functions/renderstring] +--- + +```go-html-template +{{ $s := "An *emphasized* word" }} +{{ $s | .RenderString }} → An emphasized word +``` + +This method takes an optional map of options: + +display +: (`string`) Specify either `inline` or `block`. If `inline`, removes surrounding `p` tags from short snippets. Default is `inline`. + +markup +: (`string`) Specify a [markup identifier] for the provided markup. Default is the `markup` front matter value, falling back to the value derived from the page's file extension. + +Render with the default markup renderer: + +```go-html-template +{{ $s := "An *emphasized* word" }} +{{ $s | .RenderString }} → An emphasized word + +{{ $opts := dict "display" "block" }} +{{ $s | .RenderString $opts }} →
An emphasized word
+``` + +Render with [Pandoc]: + +```go-html-template +{{ $s := "H~2~O" }} + +{{ $opts := dict "markup" "pandoc" }} +{{ $s | .RenderString $opts }} → H2O + +{{ $opts := dict "display" "block" "markup" "pandoc" }} +{{ .RenderString $opts $s }} →
H2O
+```
+
+[markup identifier]: /content-management/formats/#classification
+[pandoc]: https://pandoc.org/
diff --git a/docs/content/en/methods/page/Resources.md b/docs/content/en/methods/page/Resources.md
new file mode 100644
index 00000000000..a99ca2f21b6
--- /dev/null
+++ b/docs/content/en/methods/page/Resources.md
@@ -0,0 +1,90 @@
+---
+title: Resources
+description: Returns a collection of page resources.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: resource.Resources
+ signatures: [PAGE.Resources]
+---
+
+The `Resources` method on a `Page` object returns a collection of page resources. A page resource is a file within a [page bundle](g).
+
+To work with global or remote resources, see the [`resources`] functions.
+
+## Methods
+
+### ByType
+
+(`resource.Resources`) Returns a collection of page resources of the given [media type], or nil if none found. The media type is typically one of `image`, `text`, `audio`, `video`, or `application`.
+
+```go-html-template
+{{ range .Resources.ByType "image" }}
+
+{{ end }}
+```
+
+When working with global resources instead of page resources, use the [`resources.ByType`] function.
+
+### Get
+
+(`resource.Resource`) Returns a page resource from the given path, or nil if none found.
+
+```go-html-template
+{{ with .Resources.Get "images/a.jpg" }}
+
+{{ end }}
+```
+
+When working with global resources instead of page resources, use the [`resources.Get`] function.
+
+### GetMatch
+
+(`resource.Resource`) Returns the first page resource from paths matching the given [glob pattern](g), or nil if none found.
+
+```go-html-template
+{{ with .Resources.GetMatch "images/*.jpg" }}
+
+{{ end }}
+```
+
+When working with global resources instead of page resources, use the [`resources.GetMatch`] function.
+
+### Match
+
+(`resource.Resources`) Returns a collection of page resources from paths matching the given [glob pattern](g), or nil if none found.
+
+```go-html-template
+{{ range .Resources.Match "images/*.jpg" }}
+
+{{ end }}
+```
+
+When working with global resources instead of page resources, use the [`resources.Match`] function.
+
+### Mount
+
+{{< new-in 0.140.0 />}}
+
+(`ResourceGetter`) Mounts the given resources from the two arguments base (`string`) to the given target path (`string`) and returns an object that implements [Get](#get). Note that leading slashes in target marks an absolute path. Relative target paths allows you to mount resources relative to another set, e.g. a [Page bundle](/content-management/page-bundles/):
+
+```go-html-template
+{{ $common := resources.Match "/js/headlessui/*.*" }}
+{{ $importContext := (slice $.Page ($common.Mount "/js/headlessui" ".")) }}
+```
+
+This method is currently only useful in [js.Batch](/functions/js/batch/#import-context).
+
+## Pattern matching
+
+With the `GetMatch` and `Match` methods, Hugo determines a match using a case-insensitive [glob pattern](g).
+
+{{% include "/_common/glob-patterns.md" %}}
+
+[`resources.ByType`]: /functions/resources/ByType/
+[`resources.GetMatch`]: /functions/resources/ByType/
+[`resources.Get`]: /functions/resources/ByType/
+[`resources.Match`]: /functions/resources/ByType/
+[`resources`]: /functions/resources/
+[media type]: https://en.wikipedia.org/wiki/Media_type
diff --git a/docs/content/en/methods/page/Rotate.md b/docs/content/en/methods/page/Rotate.md
new file mode 100644
index 00000000000..643945d85bb
--- /dev/null
+++ b/docs/content/en/methods/page/Rotate.md
@@ -0,0 +1,55 @@
+---
+title: Rotate
+description: Returns a collection of pages that vary along the specified dimension while sharing the current page's values for the other dimensions, including the current page, sorted by the dimension's default sort order.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: page.Pages
+ signatures: [PAGE.Rotate DIMENSION]
+---
+
+{{< new-in 0.153.0 />}}
+
+The rotate method on a page object returns a collection of pages that vary along the specified [dimension](g), while holding the other dimensions constant. The result includes the current page and is sorted according to the rules of the specified dimension. For example, rotating along [language](g) returns all language variants that share the current page's [version](g) and [role](g).
+
+The `DIMENSION` argument must be one of `language`, `version`, or `role`.
+
+## Sort order
+
+Use the following rules to understand how Hugo sorts the collection returned by the `Rotate` method.
+
+| Dimension | Primary Sort | Secondary Sort |
+| :--- | :--- | :--- |
+| Language | Weight ascending | Lexicographical ascending |
+| Version | Weight ascending | Semantic version descending |
+| Role | Weight ascending | Lexicographical ascending |
+
+## Examples
+
+To render a list of the current page's language variants, including the current page, while sharing its current version and role:
+
+```go-html-template
+{{/* Returns languages sorted by weight ascending, then lexicographically ascending */}}
+{{ range .Rotate "language" }}
+
+{{ end }} +``` + +To render a list of the current page's version variants, including the current page, while sharing its current language and role: + +```go-html-template +{{/* Returns versions sorted by weight ascending, then semantic version descending */}} +{{ range .Rotate "version" }} +
+{{ end }} +``` + +To render a list of the current page's role variants, including the current page, while sharing its current language and version: + +```go-html-template +{{/* Returns roles sorted by weight ascending, then lexicographically ascending */}} +{{ range .Rotate "role" }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/page/Scratch.md b/docs/content/en/methods/page/Scratch.md new file mode 100644 index 00000000000..61c5dc19eb0 --- /dev/null +++ b/docs/content/en/methods/page/Scratch.md @@ -0,0 +1,21 @@ +--- +title: Scratch +description: Returns a "scratch pad" to store and manipulate data, scoped to the current page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Scratch + signatures: [PAGE.Scratch] +expiryDate: 2026-11-18 # deprecated 2024-11-18 (soft) +--- + +{{< deprecated-in 0.138.0 >}} +Use the [`PAGE.Store`] method instead. + +This is a soft deprecation. This method will be removed in a future release, but the removal date has not been established. Although Hugo will not emit a warning if you continue to use this method, you should begin using `PAGE.Store` as soon as possible. + +Beginning with v0.138.0 the `PAGE.Scratch` method is aliased to `PAGE.Store`. + +[`PAGE.Store`]: /methods/page/store/ +{{< /deprecated-in >}} diff --git a/docs/content/en/methods/page/Section.md b/docs/content/en/methods/page/Section.md new file mode 100644 index 00000000000..04c6a8a241b --- /dev/null +++ b/docs/content/en/methods/page/Section.md @@ -0,0 +1,54 @@ +--- +title: Section +description: Returns the name of the top-level section in which the given page resides. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Section] +--- + +{{% glossary-term section %}} + +With this content structure: + +```text +content/ +├── lessons/ +│ ├── math/ +│ │ ├── _index.md +│ │ ├── lesson-1.md +│ │ └── lesson-2.md +│ └── _index.md +└── _index.md +``` + +When rendering lesson-1.md: + +```go-html-template +{{ .Section }} → lessons +``` + +In the example above "lessons" is the top-level section. + +The `Section` method is often used with the [`where`] function to build a page collection. + +```go-html-template +{{ range where .Site.RegularPages "Section" "lessons" }} +
+{{ end }} +``` + +This is similar to using the [`Type`] method with the `where` function + +```go-html-template +{{ range where .Site.RegularPages "Type" "lessons" }} +
+{{ end }} +``` + +However, if the `type` field in front matter has been defined on one or more pages, the page collection based on `Type` will be different than the page collection based on `Section`. + +[`where`]: /functions/collections/where/ +[`Type`]: /methods/page/type/ diff --git a/docs/content/en/methods/page/Sections.md b/docs/content/en/methods/page/Sections.md new file mode 100644 index 00000000000..12f0a8c241b --- /dev/null +++ b/docs/content/en/methods/page/Sections.md @@ -0,0 +1,62 @@ +--- +title: Sections +description: Returns a collection of section pages, one for each immediate descendant section of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.Sections] +--- + +The `Sections` method on a `Page` object is available to these [page kinds](g): `home`, `section`, and `taxonomy`. The templates for these page kinds receive a page [collection](g) in [context](g), in the [default sort order](g). + +With this content structure: + +```text +content/ +├── auctions/ +│ ├── 2023-11/ +│ │ ├── _index.md <-- front matter: weight = 202311 +│ │ ├── auction-1.md +│ │ └── auction-2.md +│ ├── 2023-12/ +│ │ ├── _index.md <-- front matter: weight = 202312 +│ │ ├── auction-3.md +│ │ └── auction-4.md +│ ├── _index.md <-- front matter: weight = 30 +│ ├── bidding.md +│ └── payment.md +├── books/ +│ ├── _index.md <-- front matter: weight = 20 +│ ├── book-1.md +│ └── book-2.md +├── films/ +│ ├── _index.md <-- front matter: weight = 10 +│ ├── film-1.md +│ └── film-2.md +└── _index.md +``` + +And this template: + +```go-html-template +{{ range .Sections.ByWeight }} +
+{{ end }} +``` + +On the home page, Hugo renders: + +```html +
+
+
+``` + +On the auctions page, Hugo renders: + +```html +
+
+```
diff --git a/docs/content/en/methods/page/Site.md b/docs/content/en/methods/page/Site.md
new file mode 100644
index 00000000000..4649e5e0002
--- /dev/null
+++ b/docs/content/en/methods/page/Site.md
@@ -0,0 +1,18 @@
+---
+title: Site
+description: Returns the Site object.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: page.siteWrapper
+ signatures: [PAGE.Site]
+---
+
+See [Site methods].
+
+[Site methods]: /methods/site/
+
+```go-html-template
+{{ .Site.Title }}
+```
diff --git a/docs/content/en/methods/page/Sitemap.md b/docs/content/en/methods/page/Sitemap.md
new file mode 100644
index 00000000000..53f8cae8211
--- /dev/null
+++ b/docs/content/en/methods/page/Sitemap.md
@@ -0,0 +1,79 @@
+---
+title: Sitemap
+description: Returns the sitemap settings for the given page as defined in front matter, falling back to the sitemap settings as defined in your project configuration.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: config.SitemapConfig
+ signatures: [PAGE.Sitemap]
+---
+
+Access to the `Sitemap` method on a `Page` object is restricted to [sitemap templates].
+
+## Methods
+
+### ChangeFreq
+
+(`string`) How frequently a page is likely to change. Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, and `never`. With the default value of `""` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#changefreqdef).
+
+```go-html-template
+{{ .Sitemap.ChangeFreq }}
+```
+
+### Disable
+
+(`bool`) Whether to disable page inclusion. Default is `false`. Set to `true` in front matter to exclude the page.
+
+```go-html-template
+{{ .Sitemap.Disable }}
+```
+
+### Priority
+
+(`float`) The priority of a page relative to any other page on the site. Valid values range from 0.0 to 1.0. With the default value of `-1` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#prioritydef).
+
+```go-html-template
+{{ .Sitemap.Priority }}
+```
+
+## Example
+
+With this project configuration:
+
+{{< code-toggle file=hugo >}}
+[sitemap]
+changeFreq = 'monthly'
+{{< /code-toggle >}}
+
+And this content:
+
+{{< code-toggle file=content/news.md fm=true >}}
+title = 'News'
+[sitemap]
+changeFreq = 'hourly'
+{{< /code-toggle >}}
+
+And this simplistic sitemap template:
+
+```xml {file="layouts/sitemap.xml"}
+{{ printf "" | safeHTML }}
+
+ {{ .Summary }} +{{ end }} +``` + +> [!warning] +> Automatic `.Summary` may cut block tags (e.g., `blockquote`) in the middle, causing the browser to recover the end tag. See [automatic summary] for details and for ways to avoid this. + +Depending on content length and how you define the summary, the summary may be equivalent to the content itself. To determine whether the content length exceeds the summary length, use the [`Truncated`] method on a `Page` object. This is useful for conditionally rendering a “read more” link: + +```go-html-template +{{ range .Pages }} +
+ {{ .Summary }} + {{ if .Truncated }} + Read more... + {{ end }} +{{ end }} +``` + +> [!note] +> The `Truncated` method returns `false` if you define the summary in front matter. + +[`Truncated`]: /methods/page/truncated +[summary]: /content-management/summaries/ +[automatic summary]: /content-management/summaries/#automatic-summary diff --git a/docs/content/en/methods/page/TableOfContents.md b/docs/content/en/methods/page/TableOfContents.md new file mode 100644 index 00000000000..d5ae2163951 --- /dev/null +++ b/docs/content/en/methods/page/TableOfContents.md @@ -0,0 +1,47 @@ +--- +title: TableOfContents +description: Returns a table of contents for the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [PAGE.TableOfContents] +aliases: [/content-management/toc/] +--- + +The `TableOfContents` method on a `Page` object returns an ordered or unordered list of the Markdown [ATX] and [setext] headings within the page content. + +[atx]: https://spec.commonmark.org/current/#atx-headings +[setext]: https://spec.commonmark.org/current/#setext-headings + +This template code: + +```go-html-template +{{ .TableOfContents }} +``` + +Produces this HTML: + +```html + +``` + +By default, the `TableOfContents` method returns an unordered list of level 2 and level 3 headings. You can adjust this in your project configuration: + +{{< code-toggle file=hugo >}} +[markup.tableOfContents] +endLevel = 3 +ordered = false +startLevel = 2 +{{< /code-toggle >}} diff --git a/docs/content/en/methods/page/Title.md b/docs/content/en/methods/page/Title.md new file mode 100644 index 00000000000..5135c5ac4ed --- /dev/null +++ b/docs/content/en/methods/page/Title.md @@ -0,0 +1,46 @@ +--- +title: Title +description: Returns the title of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Title] +--- + +With pages backed by a file, the `Title` method returns the `title` field as defined in front matter: + +{{< code-toggle file=content/about.md fm=true >}} +title = 'About us' +{{< /code-toggle >}} + +```go-html-template +{{ .Title }} → About us +``` + +When a page is not backed by a file, the value returned by the `Title` method depends on the page [kind](g). + +Page kind|Page title when the page is not backed by a file +:--|:-- +home|site title +section|section name (capitalized and pluralized) +taxonomy|taxonomy name (capitalized and pluralized) +term|term name (capitalized and pluralized) + +You can disable automatic capitalization and pluralization in your project configuration: + +{{< code-toggle file=hugo >}} +capitalizeListTitles = false +pluralizeListTitles = false +{{< /code-toggle >}} + +You can change the capitalization style in your project configuration to one of `ap`, `chicago`, `go`, `firstupper`, or `none`. For example: + +{{< code-toggle file=hugo >}} +titleCaseStyle = "firstupper" +{{< /code-toggle >}} + +See [details]. + +[details]: /configuration/all/#title-case-style diff --git a/docs/content/en/methods/page/TranslationKey.md b/docs/content/en/methods/page/TranslationKey.md new file mode 100644 index 00000000000..3cbcb4acd44 --- /dev/null +++ b/docs/content/en/methods/page/TranslationKey.md @@ -0,0 +1,71 @@ +--- +title: TranslationKey +description: Returns the translation key of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.TranslationKey] +--- + +The translation key creates a relationship between all translations of a given page. The translation key is derived from the file path, or from the `translationKey` parameter if defined in front matter. + +With this project configuration: + +{{< code-toggle file=hugo >}} +defaultContentLanguage = 'en' + +[languages.en] +contentDir = 'content/en' +label = 'English' +locale = 'en-US' +weight = 1 + +[languages.de] +contentDir = 'content/de' +label = 'Deutsch' +locale = 'de-DE' +weight = 2 +{{< /code-toggle >}} + +And this content: + +```text +content/ +├── de/ +│ ├── books/ +│ │ ├── buch-1.md +│ │ └── book-2.md +│ └── _index.md +├── en/ +│ ├── books/ +│ │ ├── book-1.md +│ │ └── book-2.md +│ └── _index.md +└── _index.md +``` + +And this front matter: + +{{< code-toggle file=content/en/books/book-1.md fm=true >}} +title = 'Book 1' +translationKey = 'foo' +{{< /code-toggle >}} + +{{< code-toggle file=content/de/books/buch-1.md fm=true >}} +title = 'Buch 1' +translationKey = 'foo' +{{< /code-toggle >}} + +When rendering either either of the pages above: + +```go-html-template +{{ .TranslationKey }} → page/foo +``` + +If the front matter of Book 2, in both languages, does not include a translation key: + +```go-html-template +{{ .TranslationKey }} → page/books/book-2 +``` diff --git a/docs/content/en/methods/page/Translations.md b/docs/content/en/methods/page/Translations.md new file mode 100644 index 00000000000..da3715cf1cf --- /dev/null +++ b/docs/content/en/methods/page/Translations.md @@ -0,0 +1,86 @@ +--- +title: Translations +description: Returns all translations of the given page, excluding the current language, sorted by language weight then language name. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGE.Translations] +--- + +With this project configuration: + +{{< code-toggle file=hugo >}} +defaultContentLanguage = 'en' + +[languages.en] +contentDir = 'content/en' +label = 'English' +locale = 'en-US' +weight = 1 + +[languages.de] +contentDir = 'content/de' +label = 'Deutsch' +locale = 'de-DE' +weight = 2 + +[languages.fr] +contentDir = 'content/fr' +label = 'Français' +locale = 'fr-FR' +weight = 3 +{{< /code-toggle >}} + +And this content: + +```text +content/ +├── de/ +│ ├── books/ +│ │ ├── book-1.md +│ │ └── book-2.md +│ └── _index.md +├── en/ +│ ├── books/ +│ │ ├── book-1.md +│ │ └── book-2.md +│ └── _index.md +├── fr/ +│ ├── books/ +│ │ └── book-1.md +│ └── _index.md +└── _index.md +``` + +And this template: + +```go-html-template +{{ with .Translations }} +
+{{ end }} +``` + +Hugo will render this list on the "Book 1" page of the English site: + +```html +
+``` + +Hugo will render this list on the "Book 2" page of the English site: + +```html +
+``` diff --git a/docs/content/en/methods/page/Truncated.md b/docs/content/en/methods/page/Truncated.md new file mode 100644 index 00000000000..8c257306973 --- /dev/null +++ b/docs/content/en/methods/page/Truncated.md @@ -0,0 +1,29 @@ +--- +title: Truncated +description: Reports whether the content length exceeds the summary length. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGE.Truncated] +--- + +You can define a [summary] manually, in front matter, or automatically. A manual summary takes precedence over a front matter summary, and a front matter summary takes precedence over an automatic summary. + +[summary]: /content-management/summaries/ + +The `Truncated` method returns `true` if the content length exceeds the summary length. This is useful for conditionally rendering a "read more" link: + +```go-html-template +{{ range .Pages }} +
+ {{ .Summary }} + {{ if .Truncated }} + Read more... + {{ end }} +{{ end }} +``` + +> [!note] +> The `Truncated` method returns `false` if you define the summary in front matter. diff --git a/docs/content/en/methods/page/Type.md b/docs/content/en/methods/page/Type.md new file mode 100644 index 00000000000..6f855fbe339 --- /dev/null +++ b/docs/content/en/methods/page/Type.md @@ -0,0 +1,51 @@ +--- +title: Type +description: Returns the content type of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGE.Type] +--- + +The `Type` method on a `Page` object returns the [content type](g) of the given page. The content type is defined by the `type` field in front matter, or inferred from the top-level directory name if the `type` field in front matter is not defined. + +With this content structure: + +```text +content/ +├── auction/ +│ ├── _index.md +│ ├── item-1.md +│ └── item-2.md <-- front matter: type = books +├── books/ +│ ├── _index.md +│ ├── book-1.md +│ └── book-2.md +├── films/ +│ ├── _index.md +│ ├── film-1.md +│ └── film-2.md +└── _index.md +``` + +To list the books, regardless of [section](g): + +```go-html-template +{{ range where .Site.RegularPages.ByTitle "Type" "books" }} +
+{{ end }} +``` + +Hugo renders this to; + +```html +
+
+
+``` + +The `type` field in front matter is also useful for targeting a template. See [details]. + +[details]: /templates/lookup-order/#target-a-template diff --git a/docs/content/en/methods/page/Weight.md b/docs/content/en/methods/page/Weight.md new file mode 100644 index 00000000000..c14af025715 --- /dev/null +++ b/docs/content/en/methods/page/Weight.md @@ -0,0 +1,25 @@ +--- +title: Weight +description: Returns the weight of the given page as defined in front matter. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGE.Weight] +--- + +The `Weight` method on a `Page` object returns the [weight](g) of the given page as defined in front matter. + +{{< code-toggle file=content/recipes/sushi.md fm=true >}} +title = 'How to make spicy tuna hand rolls' +weight = 42 +{{< /code-toggle >}} + +Page weight controls the position of a page within a collection that is sorted by weight. Assign weights using non-zero integers. Lighter items float to the top, while heavier items sink to the bottom. Unweighted or zero-weighted elements are placed at the end of the collection. + +Although rarely used within a template, you can access the value with: + +```go-html-template +{{ .Weight }} → 42 +``` diff --git a/docs/content/en/methods/page/WordCount.md b/docs/content/en/methods/page/WordCount.md new file mode 100644 index 00000000000..3950244ca84 --- /dev/null +++ b/docs/content/en/methods/page/WordCount.md @@ -0,0 +1,18 @@ +--- +title: WordCount +description: Returns the number of words in the content of the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGE.WordCount] +--- + +```go-html-template +{{ .WordCount }} → 103 +``` + +To round up to nearest multiple of 100, use the [`FuzzyWordCount`] method. + +[`FuzzyWordCount`]: /methods/page/fuzzywordcount/ diff --git a/docs/content/en/methods/page/_index.md b/docs/content/en/methods/page/_index.md new file mode 100644 index 00000000000..c7ae7ad5d4c --- /dev/null +++ b/docs/content/en/methods/page/_index.md @@ -0,0 +1,8 @@ +--- +title: Page methods +linkTitle: Page +description: Use these methods with a Page object. +categories: [] +keywords: [] +aliases: [/variables/page/] +--- diff --git a/docs/content/en/methods/pager/First.md b/docs/content/en/methods/pager/First.md new file mode 100644 index 00000000000..9cd58989bdb --- /dev/null +++ b/docs/content/en/methods/pager/First.md @@ -0,0 +1,38 @@ +--- +title: First +description: Returns the first pager in the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pager + signatures: [PAGER.First] +--- + +Use the `First` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/HasNext.md b/docs/content/en/methods/pager/HasNext.md new file mode 100644 index 00000000000..cf3688efd93 --- /dev/null +++ b/docs/content/en/methods/pager/HasNext.md @@ -0,0 +1,66 @@ +--- +title: HasNext +description: Reports whether there is a pager after the current pager. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGER.HasNext] +--- + +Use the `HasNext` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` + +You can also write the above without using the `HasNext` method: + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/HasPrev.md b/docs/content/en/methods/pager/HasPrev.md new file mode 100644 index 00000000000..4b486b7c52e --- /dev/null +++ b/docs/content/en/methods/pager/HasPrev.md @@ -0,0 +1,66 @@ +--- +title: HasPrev +description: Reports whether there is a pager before the current pager. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [PAGER.HasPrev] +--- + +Use the `HasPrev` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` + +You can also write the above without using the `HasPrev` method: + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/Last.md b/docs/content/en/methods/pager/Last.md new file mode 100644 index 00000000000..71dea183d4f --- /dev/null +++ b/docs/content/en/methods/pager/Last.md @@ -0,0 +1,38 @@ +--- +title: Last +description: Returns the last pager in the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pager + signatures: [PAGER.Last] +--- + +Use the `Last` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/Next.md b/docs/content/en/methods/pager/Next.md new file mode 100644 index 00000000000..d7ea9caa43b --- /dev/null +++ b/docs/content/en/methods/pager/Next.md @@ -0,0 +1,38 @@ +--- +title: Next +description: Returns the next pager in the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pager + signatures: [PAGER.Next] +--- + +Use the `Next` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/NumberOfElements.md b/docs/content/en/methods/pager/NumberOfElements.md new file mode 100644 index 00000000000..9f88126fc99 --- /dev/null +++ b/docs/content/en/methods/pager/NumberOfElements.md @@ -0,0 +1,23 @@ +--- +title: NumberOfElements +description: Returns the number of pages in the current pager. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGER.NumberOfElements] +--- + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} + {{ .NumberOfElements }} +{{ end }} +``` diff --git a/docs/content/en/methods/pager/PageGroups.md b/docs/content/en/methods/pager/PageGroups.md new file mode 100644 index 00000000000..df668ddd291 --- /dev/null +++ b/docs/content/en/methods/pager/PageGroups.md @@ -0,0 +1,28 @@ +--- +title: PageGroups +description: Returns the page groups in the current pager. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: [PAGER.PageGroups] +--- + +Use the `PageGroups` method with any of the [grouping methods]. + +[grouping methods]: /quick-reference/page-collections/#group + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate ($pages.GroupByDate "Jan 2006") }} + +{{ range $paginator.PageGroups }} +
+ {{ range .Pages }} +
+ {{ end }} +{{ end }} + +{{ partial "pagination.html" . }} +``` diff --git a/docs/content/en/methods/pager/PageNumber.md b/docs/content/en/methods/pager/PageNumber.md new file mode 100644 index 00000000000..6d0b8e35d19 --- /dev/null +++ b/docs/content/en/methods/pager/PageNumber.md @@ -0,0 +1,29 @@ +--- +title: PageNumber +description: Returns the current pager's number within the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGER.PageNumber] +--- + +Use the `PageNumber` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/PagerSize.md b/docs/content/en/methods/pager/PagerSize.md new file mode 100644 index 00000000000..1bec9e4ea63 --- /dev/null +++ b/docs/content/en/methods/pager/PagerSize.md @@ -0,0 +1,29 @@ +--- +title: PagerSize +description: Returns the number of pages per pager. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGER.PagerSize] +aliases: [/methods/pager/pagesize/] +--- + +The number of pages per pager is determined by the optional second argument passed to the [`Paginate`] method, falling back to the `pagerSize` as defined in your [project configuration]. + +[`Paginate`]: /methods/page/paginate/ +[project configuration]: /templates/pagination/#configuration + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} + {{ .PagerSize }} +{{ end }} +``` diff --git a/docs/content/en/methods/pager/Pagers.md b/docs/content/en/methods/pager/Pagers.md new file mode 100644 index 00000000000..e431069f463 --- /dev/null +++ b/docs/content/en/methods/pager/Pagers.md @@ -0,0 +1,29 @@ +--- +title: Pagers +description: Returns the pagers collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.pagers + signatures: [PAGER.Pagers] +--- + +Use the `Pagers` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/Pages.md b/docs/content/en/methods/pager/Pages.md new file mode 100644 index 00000000000..bb5ac927aa1 --- /dev/null +++ b/docs/content/en/methods/pager/Pages.md @@ -0,0 +1,21 @@ +--- +title: Pages +description: Returns the pages in the current pager. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGER.Pages] +--- + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ partial "pagination.html" . }} +``` diff --git a/docs/content/en/methods/pager/Prev.md b/docs/content/en/methods/pager/Prev.md new file mode 100644 index 00000000000..eb79f96e9fd --- /dev/null +++ b/docs/content/en/methods/pager/Prev.md @@ -0,0 +1,38 @@ +--- +title: Prev +description: Returns the previous pager in the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pager + signatures: [PAGER.Prev] +--- + +Use the `Prev` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/TotalNumberOfElements.md b/docs/content/en/methods/pager/TotalNumberOfElements.md new file mode 100644 index 00000000000..ad29a01f378 --- /dev/null +++ b/docs/content/en/methods/pager/TotalNumberOfElements.md @@ -0,0 +1,23 @@ +--- +title: TotalNumberOfElements +description: Returns the number of pages in the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGER.TotalNumberOfElements] +--- + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} + {{ .TotalNumberOfElements }} +{{ end }} +``` diff --git a/docs/content/en/methods/pager/TotalPages.md b/docs/content/en/methods/pager/TotalPages.md new file mode 100644 index 00000000000..63da5d78620 --- /dev/null +++ b/docs/content/en/methods/pager/TotalPages.md @@ -0,0 +1,39 @@ +--- +title: TotalPages +description: Returns the number of pagers in the pager collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGER.TotalPages] +--- + +Use the `TotalPages` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
Pager {{ .PageNumber }} of {{ .TotalPages }}
+
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/URL.md b/docs/content/en/methods/pager/URL.md new file mode 100644 index 00000000000..a3558ba7cd5 --- /dev/null +++ b/docs/content/en/methods/pager/URL.md @@ -0,0 +1,38 @@ +--- +title: URL +description: Returns the URL of the current pager relative to the site root. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [PAGER.URL] +--- + +Use the `URL` method to build navigation between pagers. + +```go-html-template +{{ $pages := where site.RegularPages "Type" "posts" }} +{{ $paginator := .Paginate $pages }} + +{{ range $paginator.Pages }} +
+{{ end }} + +{{ with $paginator }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pager/_index.md b/docs/content/en/methods/pager/_index.md new file mode 100644 index 00000000000..200640c3ac1 --- /dev/null +++ b/docs/content/en/methods/pager/_index.md @@ -0,0 +1,6 @@ +--- +title: Pager methods +linkTitle: Pager +description: Use these methods with a Pager object when building navigation for a paginated list page. +keywords: [] +--- diff --git a/docs/content/en/methods/pages/ByDate.md b/docs/content/en/methods/pages/ByDate.md new file mode 100644 index 00000000000..5d1e339a02c --- /dev/null +++ b/docs/content/en/methods/pages/ByDate.md @@ -0,0 +1,28 @@ +--- +title: ByDate +description: Returns the given page collection sorted by date in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByDate] +--- + +When sorting by date, the value is determined by your [project configuration], defaulting to the `date` field in front matter. + +[project configuration]: /configuration/front-matter/#dates + +```go-html-template +{{ range .Pages.ByDate }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByDate.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByExpiryDate.md b/docs/content/en/methods/pages/ByExpiryDate.md new file mode 100644 index 00000000000..4f34c6e03bc --- /dev/null +++ b/docs/content/en/methods/pages/ByExpiryDate.md @@ -0,0 +1,28 @@ +--- +title: ByExpiryDate +description: Returns the given page collection sorted by expiration date in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByExpiryDate] +--- + +When sorting by expiration date, the value is determined by your [project configuration], defaulting to the `expiryDate` field in front matter. + +[project configuration]: /configuration/front-matter/#dates + +```go-html-template +{{ range .Pages.ByExpiryDate }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByExpiryDate.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByLanguage.md b/docs/content/en/methods/pages/ByLanguage.md new file mode 100644 index 00000000000..751e1d8f582 --- /dev/null +++ b/docs/content/en/methods/pages/ByLanguage.md @@ -0,0 +1,45 @@ +--- +title: ByLanguage +description: Returns the given page collection sorted by language. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByLanguage] +--- + +When sorting by language, Hugo orders the page collection using the following priority: + +1. Language weight (ascending) +1. Date (descending) +1. LinkTitle (ascending) + +This method is rarely, if ever, needed. Page collections that already contain multiple languages, such as those returned by the [`Rotate`][], [`Translations`][], or [`AllTranslations`][] methods on a `Page` object, are already sorted by language weight. + +This contrived example aggregates pages from all sites and then sorts them by language: + +```go-html-template +{{ $p := slice }} +{{ range hugo.Sites }} + {{ range .Pages }} + {{ $p = $p | append . }} + {{ end }} +{{ end }} + +{{ range $p.ByLanguage }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range $p.ByLanguage.Reverse }} +
+{{ end }} +``` + +[`AllTranslations`]: /methods/page/alltranslations/ +[`Rotate`]: /methods/page/rotate/ +[`Translations`]: /methods/page/translations/ diff --git a/docs/content/en/methods/pages/ByLastmod.md b/docs/content/en/methods/pages/ByLastmod.md new file mode 100644 index 00000000000..7fc865e0a68 --- /dev/null +++ b/docs/content/en/methods/pages/ByLastmod.md @@ -0,0 +1,28 @@ +--- +title: ByLastmod +description: Returns the given page collection sorted by last modification date in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByLastmod] +--- + +When sorting by last modification date, the value is determined by your [project configuration], defaulting to the `lastmod` field in front matter. + +[project configuration]: /configuration/front-matter/#dates + +```go-html-template +{{ range .Pages.ByLastmod }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByLastmod.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByLength.md b/docs/content/en/methods/pages/ByLength.md new file mode 100644 index 00000000000..c47bf98ba7c --- /dev/null +++ b/docs/content/en/methods/pages/ByLength.md @@ -0,0 +1,24 @@ +--- +title: ByLength +description: Returns the given page collection sorted by content length in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByLength] +--- + +```go-html-template +{{ range .Pages.ByLength }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByLength.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByLinkTitle.md b/docs/content/en/methods/pages/ByLinkTitle.md new file mode 100644 index 00000000000..4a024d25a14 --- /dev/null +++ b/docs/content/en/methods/pages/ByLinkTitle.md @@ -0,0 +1,24 @@ +--- +title: ByLinkTitle +description: Returns the given page collection sorted by link title in ascending order, falling back to title if link title is not defined. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByLinkTitle] +--- + +```go-html-template +{{ range .Pages.ByLinkTitle }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByLinkTitle.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByParam.md b/docs/content/en/methods/pages/ByParam.md new file mode 100644 index 00000000000..fcc9b287fa6 --- /dev/null +++ b/docs/content/en/methods/pages/ByParam.md @@ -0,0 +1,34 @@ +--- +title: ByParam +description: Returns the given page collection sorted by the given parameter in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByParam PARAM] +--- + +If the given parameter is not present in front matter, Hugo will use the matching parameter in your project configuration if present. + +```go-html-template +{{ range .Pages.ByParam "author" }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range (.Pages.ByParam "author").Reverse }} +
+{{ end }} +``` + +If the targeted parameter is nested, access the field using dot notation: + +```go-html-template +{{ range .Pages.ByParam "author.last_name" }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByPublishDate.md b/docs/content/en/methods/pages/ByPublishDate.md new file mode 100644 index 00000000000..76d2b2b5867 --- /dev/null +++ b/docs/content/en/methods/pages/ByPublishDate.md @@ -0,0 +1,28 @@ +--- +title: ByPublishDate +description: Returns the given page collection sorted by publish date in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByPublishDate] +--- + +When sorting by publish date, the value is determined by your [project configuration], defaulting to the `publishDate` field in front matter. + +[project configuration]: /configuration/front-matter/#dates + +```go-html-template +{{ range .Pages.ByPublishDate }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByPublishDate.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByTitle.md b/docs/content/en/methods/pages/ByTitle.md new file mode 100644 index 00000000000..e10c4171458 --- /dev/null +++ b/docs/content/en/methods/pages/ByTitle.md @@ -0,0 +1,24 @@ +--- +title: ByTitle +description: Returns the given page collection sorted by title in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByTitle] +--- + +```go-html-template +{{ range .Pages.ByTitle }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByTitle.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/ByWeight.md b/docs/content/en/methods/pages/ByWeight.md new file mode 100644 index 00000000000..ba255d3c332 --- /dev/null +++ b/docs/content/en/methods/pages/ByWeight.md @@ -0,0 +1,26 @@ +--- +title: ByWeight +description: Returns the given page collection sorted by weight in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.ByWeight] +--- + +Assign a [weight](g) to a page using the `weight` field in front matter. The weight must be a non-zero integer. Lighter items float to the top, while heavier items sink to the bottom. Unweighted or zero-weighted pages are placed at the end of the collection. + +```go-html-template +{{ range .Pages.ByWeight }} +
+{{ end }} +``` + +To sort in descending order: + +```go-html-template +{{ range .Pages.ByWeight.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/GroupBy.md b/docs/content/en/methods/pages/GroupBy.md new file mode 100644 index 00000000000..aff0800e947 --- /dev/null +++ b/docs/content/en/methods/pages/GroupBy.md @@ -0,0 +1,36 @@ +--- +title: GroupBy +description: Returns the given page collection grouped by the given field in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupBy FIELD [SORT]'] +--- + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +```go-html-template +{{ range .Pages.GroupBy "Section" }} +
{{ .Key }}
+
+{{ end }} +``` + +To sort the groups in descending order: + +```go-html-template +{{ range .Pages.GroupBy "Section" "desc" }} +
{{ .Key }}
+
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/GroupByDate.md b/docs/content/en/methods/pages/GroupByDate.md new file mode 100644 index 00000000000..19f7918865e --- /dev/null +++ b/docs/content/en/methods/pages/GroupByDate.md @@ -0,0 +1,63 @@ +--- +title: GroupByDate +description: Returns the given page collection grouped by date in descending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupByDate LAYOUT [SORT]'] +--- + +When grouping by date, the value is determined by your [project configuration], defaulting to the `date` field in front matter. + +The [layout string] has the same format as the layout string for the [`time.Format`] function. The resulting group key is [localized](g) for language and region. + +[`time.Format`]: /functions/time/format/ +[layout string]: #layout-string +[project configuration]: /configuration/front-matter/#dates + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +To group content by year and month: + +```go-html-template +{{ range .Pages.GroupByDate "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +To sort the groups in ascending order: + +```go-html-template +{{ range .Pages.GroupByDate "January 2006" "asc" }} +
{{ .Key }}
+
+{{ end }} +``` + +The pages within each group will also be sorted by date, either ascending or descending depending on the grouping option. To sort the pages within each group, use one of the sorting methods. For example, to sort the pages within each group by title: + +```go-html-template +{{ range .Pages.GroupByDate "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +## Layout string + +{{% include "/_common/time-layout-string.md" %}} diff --git a/docs/content/en/methods/pages/GroupByExpiryDate.md b/docs/content/en/methods/pages/GroupByExpiryDate.md new file mode 100644 index 00000000000..7fe0282c2ca --- /dev/null +++ b/docs/content/en/methods/pages/GroupByExpiryDate.md @@ -0,0 +1,63 @@ +--- +title: GroupByExpiryDate +description: Returns the given page collection grouped by expiration date in descending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupByExpiryDate LAYOUT [SORT]'] +--- + +When grouping by expiration date, the value is determined by your [project configuration], defaulting to the `expiryDate` field in front matter. + +The [layout string] has the same format as the layout string for the [`time.Format`] function. The resulting group key is [localized](g) for language and region. + +[`time.Format`]: /functions/time/format/ +[layout string]: #layout-string +[project configuration]: /configuration/front-matter/#dates + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +To group content by year and month: + +```go-html-template +{{ range .Pages.GroupByExpiryDate "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +To sort the groups in ascending order: + +```go-html-template +{{ range .Pages.GroupByExpiryDate "January 2006" "asc" }} +
{{ .Key }}
+
+{{ end }} +``` + +The pages within each group will also be sorted by expiration date, either ascending or descending depending on your grouping option. To sort the pages within each group, use one of the sorting methods. For example, to sort the pages within each group by title: + +```go-html-template +{{ range .Pages.GroupByExpiryDate "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +## Layout string + +{{% include "/_common/time-layout-string.md" %}} diff --git a/docs/content/en/methods/pages/GroupByLastmod.md b/docs/content/en/methods/pages/GroupByLastmod.md new file mode 100644 index 00000000000..45da5af31ad --- /dev/null +++ b/docs/content/en/methods/pages/GroupByLastmod.md @@ -0,0 +1,63 @@ +--- +title: GroupByLastmod +description: Returns the given page collection grouped by last modification date in descending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupByLastmod LAYOUT [SORT]'] +--- + +When grouping by last modification date, the value is determined by your [project configuration], defaulting to the `lastmod` field in front matter. + +The [layout string] has the same format as the layout string for the [`time.Format`] function. The resulting group key is [localized](g) for language and region. + +[`time.Format`]: /functions/time/format/ +[layout string]: #layout-string +[project configuration]: /configuration/front-matter/#dates + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +To group content by year and month: + +```go-html-template +{{ range .Pages.GroupByLastmod "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +To sort the groups in ascending order: + +```go-html-template +{{ range .Pages.GroupByLastmod "January 2006" "asc" }} +
{{ .Key }}
+
+{{ end }} +``` + +The pages within each group will also be sorted by last modification date, either ascending or descending depending on your grouping option. To sort the pages within each group, use one of the sorting methods. For example, to sort the pages within each group by title: + +```go-html-template +{{ range .Pages.GroupByLastmod "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +## Layout string + +{{% include "/_common/time-layout-string.md" %}} diff --git a/docs/content/en/methods/pages/GroupByParam.md b/docs/content/en/methods/pages/GroupByParam.md new file mode 100644 index 00000000000..6764144d6fe --- /dev/null +++ b/docs/content/en/methods/pages/GroupByParam.md @@ -0,0 +1,36 @@ +--- +title: GroupByParam +description: Returns the given page collection grouped by the given parameter in ascending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupByParam PARAM [SORT]'] +--- + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +```go-html-template +{{ range .Pages.GroupByParam "color" }} +
{{ .Key | title }}
+
+{{ end }} +``` + +To sort the groups in descending order: + +```go-html-template +{{ range .Pages.GroupByParam "color" "desc" }} +
{{ .Key | title }}
+
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/GroupByParamDate.md b/docs/content/en/methods/pages/GroupByParamDate.md new file mode 100644 index 00000000000..b05a096d285 --- /dev/null +++ b/docs/content/en/methods/pages/GroupByParamDate.md @@ -0,0 +1,60 @@ +--- +title: GroupByParamDate +description: Returns the given page collection grouped by the given date parameter in descending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupByParamDate PARAM LAYOUT [SORT]'] +--- + +The [layout string] has the same format as the layout string for the [`time.Format`] function. The resulting group key is [localized](g) for language and region. + +[`time.Format`]: /functions/time/format/ +[layout string]: #layout-string + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +To group content by year and month: + +```go-html-template +{{ range .Pages.GroupByParamDate "eventDate" "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +To sort the groups in ascending order: + +```go-html-template +{{ range .Pages.GroupByParamDate "eventDate" "January 2006" "asc" }} +
{{ .Key }}
+
+{{ end }} +``` + +The pages within each group will also be sorted by the parameter date, either ascending or descending depending on your grouping option. To sort the pages within each group, use one of the sorting methods. For example, to sort the pages within each group by title: + +```go-html-template +{{ range .Pages.GroupByParamDate "eventDate" "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +## Layout string + +{{% include "/_common/time-layout-string.md" %}} diff --git a/docs/content/en/methods/pages/GroupByPublishDate.md b/docs/content/en/methods/pages/GroupByPublishDate.md new file mode 100644 index 00000000000..629a8480a70 --- /dev/null +++ b/docs/content/en/methods/pages/GroupByPublishDate.md @@ -0,0 +1,63 @@ +--- +title: GroupByPublishDate +description: Returns the given page collection grouped by publish date in descending order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.PagesGroup + signatures: ['PAGES.GroupByPublishDate LAYOUT [SORT]'] +--- + +When grouping by publish date, the value is determined by your [project configuration], defaulting to the `publishDate` field in front matter. + +The [layout string] has the same format as the layout string for the [`time.Format`] function. The resulting group key is [localized](g) for language and region. + +[`time.Format`]: /functions/time/format/ +[layout string]: #layout-string +[project configuration]: /configuration/front-matter/#dates + +{{% include "/_common/methods/pages/group-sort-order.md" %}} + +To group content by year and month: + +```go-html-template +{{ range .Pages.GroupByPublishDate "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +To sort the groups in ascending order: + +```go-html-template +{{ range .Pages.GroupByPublishDate "January 2006" "asc" }} +
{{ .Key }}
+
+{{ end }} +``` + +The pages within each group will also be sorted by publish date, either ascending or descending depending on your grouping option. To sort the pages within each group, use one of the sorting methods. For example, to sort the pages within each group by title: + +```go-html-template +{{ range .Pages.GroupByPublishDate "January 2006" }} +
{{ .Key }}
+
+{{ end }} +``` + +## Layout string + +{{% include "/_common/time-layout-string.md" %}} diff --git a/docs/content/en/methods/pages/Len.md b/docs/content/en/methods/pages/Len.md new file mode 100644 index 00000000000..85b3267cd27 --- /dev/null +++ b/docs/content/en/methods/pages/Len.md @@ -0,0 +1,14 @@ +--- +title: Len +description: Returns the number of pages in the given page collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [PAGES.Len] +--- + +```go-html-template +{{ .Pages.Len }} → 42 +``` diff --git a/docs/content/en/methods/pages/Limit.md b/docs/content/en/methods/pages/Limit.md new file mode 100644 index 00000000000..6ee3de24db9 --- /dev/null +++ b/docs/content/en/methods/pages/Limit.md @@ -0,0 +1,16 @@ +--- +title: Limit +description: Returns the first N pages from the given page collection. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.Limit NUMBER] +--- + +```go-html-template +{{ range .Pages.Limit 3 }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/Next.md b/docs/content/en/methods/pages/Next.md new file mode 100644 index 00000000000..ce091c1abaa --- /dev/null +++ b/docs/content/en/methods/pages/Next.md @@ -0,0 +1,12 @@ +--- +title: Next +description: Returns the next page in a page collection, relative to the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [PAGES.Next PAGE] +--- + +{{% include "/_common/methods/pages/next-and-prev.md" %}} diff --git a/docs/content/en/methods/pages/Prev.md b/docs/content/en/methods/pages/Prev.md new file mode 100644 index 00000000000..004b9496d30 --- /dev/null +++ b/docs/content/en/methods/pages/Prev.md @@ -0,0 +1,12 @@ +--- +title: Prev +description: Returns the previous page in a page collection, relative to the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.Prev PAGE] +--- + +{{% include "/_common/methods/pages/next-and-prev.md" %}} diff --git a/docs/content/en/methods/pages/Related.md b/docs/content/en/methods/pages/Related.md new file mode 100644 index 00000000000..6d385956017 --- /dev/null +++ b/docs/content/en/methods/pages/Related.md @@ -0,0 +1,75 @@ +--- +title: Related +description: Returns a collection of pages related to the given page. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: + - PAGES.Related PAGE + - PAGES.Related OPTIONS +--- + +Based on front matter, Hugo uses several factors to identify content related to the given page. Use the default [related content configuration], or tune the results to the desired indices and parameters. See [details]. + +The argument passed to the `Related` method may be a `Page` or an options map. For example, to pass the current page: + +```go-html-template {file="layouts/page.html"} +{{ with .Site.RegularPages.Related . | first 5 }} +
Related pages:
+
+{{ end }} +``` + +To pass an options map: + +```go-html-template {file="layouts/page.html"} +{{ $opts := dict + "document" . + "indices" (slice "tags" "keywords") +}} +{{ with .Site.RegularPages.Related $opts | first 5 }} +
Related pages:
+
+{{ end }} +``` + +## Options + +indices +: (`slice`) The indices to search within. + +document +: (`page`) The page for which to find related content. Required when specifying an options map. + +namedSlices +: (`slice`) The keywords to search for, expressed as a slice of `KeyValues` using the [`keyVals`] function. + +[`keyVals`]: /functions/collections/keyvals/ + +fragments +: (`slice`) A list of special keywords that is used for indices configured as type "fragments". This will match the [fragment](g) identifiers of the documents. + +A contrived example using all of the above: + +```go-html-template +{{ $page := . }} +{{ $opts := dict + "indices" (slice "tags" "keywords") + "document" $page + "namedSlices" (slice (keyVals "tags" "hugo" "rocks") (keyVals "date" $page.Date)) + "fragments" (slice "heading-1" "heading-2") +}} +``` + +[details]: /content-management/related-content/ +[related content configuration]: /configuration/related-content/ diff --git a/docs/content/en/methods/pages/Reverse.md b/docs/content/en/methods/pages/Reverse.md new file mode 100644 index 00000000000..23c4b03243f --- /dev/null +++ b/docs/content/en/methods/pages/Reverse.md @@ -0,0 +1,16 @@ +--- +title: Reverse +description: Returns the given page collection in reverse order. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [PAGES.Reverse] +--- + +```go-html-template +{{ range .Pages.ByDate.Reverse }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/pages/_index.md b/docs/content/en/methods/pages/_index.md new file mode 100644 index 00000000000..f2495ae49e0 --- /dev/null +++ b/docs/content/en/methods/pages/_index.md @@ -0,0 +1,8 @@ +--- +title: Pages methods +linkTitle: Pages +description: Use these methods with a collection of Page objects. +categories: [] +keywords: [] +aliases: [/variables/pages] +--- diff --git a/docs/content/en/methods/resource/Colors.md b/docs/content/en/methods/resource/Colors.md new file mode 100644 index 00000000000..b2490688e45 --- /dev/null +++ b/docs/content/en/methods/resource/Colors.md @@ -0,0 +1,176 @@ +--- +title: Colors +description: Applicable to images, returns a slice of the most dominant colors using a simple histogram method. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: '[]images.Color' + signatures: [RESOURCE.Colors] +--- + +{{% include "/_common/methods/resource/global-page-remote-resources.md" %}} + +The `Colors` method returns a slice of the most dominant colors in a [processable image](g), ordered from most dominant to least dominant. + +> [!note] +> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed. + +## Usage + +This method is fast, but if you downscale your image first, you can further improve performance by extracting colors from the smaller resource. + +## Methods + +Each color in the slice is an object with the following methods: + +### ColorHex + +(`string`) Returns the [hexadecimal color][] value, prefixed with a hash sign. + +### Luminance + +(`float64`) Returns the [relative luminance][] of the color in the sRGB colorspace in the range [0, 1]. A value of `0` represents the darkest black, while a value of `1` represents the lightest white. + +> [!note] +> Image filters such as [`images.Dither`][], [`images.Padding`][], and [`images.Text`][] accept either hexadecimal color values or `images.Color` objects as arguments. Hugo renders an `images.Color` object as a hexadecimal color value. + +## Sorting + +As a contrived example, create a table of an image's dominant colors with the most dominant color first, and display the relative luminance of each dominant color: + +```go-html-template +{{ with resources.Get "images/a.jpg" }} +
| Color | +Relative luminance | +
|---|---|
| {{ .ColorHex }} | +{{ .Luminance | lang.FormatNumber 4 }} | +
+{{ end }}
+```
+
+Hugo renders this to:
+
+ColorHex|Relative luminance
+:--|:--
+`#bebebd`|`0.5145`
+`#514947`|`0.0697`
+`#768a9a`|`0.2436`
+`#647789`|`0.1771`
+`#90725e`|`0.1877`
+`#a48974`|`0.2704`
+
+To sort by dominance with the least dominant color first:
+
+```go-html-template
+{{ range .Colors | collections.Reverse }}
+```
+
+To sort by relative luminance with the darkest color first:
+
+```go-html-template
+{{ range sort .Colors "Luminance" }}
+```
+
+To sort by relative luminance with the lightest color first, use either of these constructs:
+
+```go-html-template
+{{ range sort .Colors "Luminance" | collections.Reverse }}
+{{ range sort .Colors "Luminance" "desc" }}
+```
+
+## Examples
+
+### Image borders
+
+To add a 5 pixel border to an image using the most dominant color:
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ $mostDominant := index .Colors 0 }}
+ {{ $filter := images.Padding 5 $mostDominant }}
+ {{ with .Filter $filter }}
+
+ {{ end }}
+{{ end }}
+```
+
+To add a 5 pixel border to an image using the darkest dominant color:
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ $darkest := index (sort .Colors "Luminance") 0 }}
+ {{ $filter := images.Padding 5 $darkest }}
+ {{ with .Filter $filter }}
+
+ {{ end }}
+{{ end }}
+```
+
+### Light text on dark background
+
+To create a text box where the foreground and background colors are derived from an image's lightest and darkest dominant colors:
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ $darkest := index (sort .Colors "Luminance") 0 }}
+ {{ $lightest := index (sort .Colors "Luminance" "desc") 0 }}
+
This is light text on a dark background.
+
+{{ end }}
+```
+
+### WCAG contrast ratio
+
+In the previous example we placed light text on a dark background, but does this color combination conform to [WCAG][] guidelines for either the [minimum][] or the [enhanced][] contrast ratio?
+
+The WCAG defines the [contrast ratio][] as:
+
+$$contrast\ ratio = { L_1 + 0.05 \over L_2 + 0.05 }$$
+
+where \(L_1\) is the relative luminance of the lightest color and \(L_2\) is the relative luminance of the darkest color.
+
+Calculate the contrast ratio to determine WCAG conformance:
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ $lightest := index (sort .Colors "Luminance" "desc") 0 }}
+ {{ $darkest := index (sort .Colors "Luminance") 0 }}
+ {{ $cr := div
+ (add $lightest.Luminance 0.05)
+ (add $darkest.Luminance 0.05)
+ }}
+ {{ if ge $cr 7.5 }}
+ {{ printf "The %.2f contrast ratio conforms to WCAG Level AAA." $cr }}
+ {{ else if ge $cr 4.5 }}
+ {{ printf "The %.2f contrast ratio conforms to WCAG Level AA." $cr }}
+ {{ else }}
+ {{ printf "The %.2f contrast ratio does not conform to WCAG guidelines." $cr }}
+ {{ end }}
+{{ end }}
+```
+
+[WCAG]: https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines
+[`images.Dither`]: /functions/images/dither/
+[`images.Padding`]: /functions/images/padding/
+[`images.Text`]: /functions/images/text/
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+[contrast ratio]: https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio
+[enhanced]: https://www.w3.org/WAI/WCAG22/quickref/?showtechniques=145#contrast-enhanced
+[hexadecimal color]: https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color
+[minimum]: https://www.w3.org/WAI/WCAG22/quickref/?showtechniques=145#contrast-minimum
+[relative luminance]: https://www.w3.org/TR/WCAG21/#dfn-relative-luminance
diff --git a/docs/content/en/methods/resource/Content.md b/docs/content/en/methods/resource/Content.md
new file mode 100644
index 00000000000..ff2ad6de87f
--- /dev/null
+++ b/docs/content/en/methods/resource/Content.md
@@ -0,0 +1,60 @@
+---
+title: Content
+description: Returns the content of the given resource.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: any
+ signatures: [RESOURCE.Content]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Content` method on a `Resource` object returns `template.HTML` when the [resource type] is `page`, otherwise it returns a `string`.
+
+[resource type]: /methods/resource/resourcetype/
+
+```text {file="assets/quotations/kipling.txt"}
+He travels the fastest who travels alone.
+```
+
+To get the content:
+
+```go-html-template
+{{ with resources.Get "quotations/kipling.txt" }}
+ {{ .Content }} → He travels the fastest who travels alone.
+{{ end }}
+```
+
+To get the size in bytes:
+
+```go-html-template
+{{ with resources.Get "quotations/kipling.txt" }}
+ {{ .Content | len }} → 42
+{{ end }}
+```
+
+To create an inline image:
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+
+{{ end }}
+```
+
+To create inline CSS:
+
+```go-html-template
+{{ with resources.Get "css/style.css" }}
+
+{{ end }}
+```
+
+To create inline JavaScript:
+
+```go-html-template
+{{ with resources.Get "js/script.js" }}
+
+{{ end }}
+```
diff --git a/docs/content/en/methods/resource/Crop.md b/docs/content/en/methods/resource/Crop.md
new file mode 100644
index 00000000000..e764be1676e
--- /dev/null
+++ b/docs/content/en/methods/resource/Crop.md
@@ -0,0 +1,54 @@
+---
+title: Crop
+description: Applicable to images, returns a new image resource cropped according to the given processing specification.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: images.ImageResource
+ signatures: [RESOURCE.Crop SPECIFICATION]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Crop` method returns a new resource from a [processable image](g) according to the given [processing specification][].
+
+> [!note]
+> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed.
+
+## Usage
+
+When cropping, you must provide both width and height (such as `200x200`) within the specification. This method does not perform any resizing; it simply extracts a region of the image based on the dimensions and the [anchor](#anchor) provided, if any.
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Crop "200x200 TopRight" }}
+
+ {{ end }}
+{{ end }}
+```
+
+In the example above, `"200x200 TopRight"` is the processing specification.
+
+{{% include "/_common/methods/resource/processing-spec.md" %}}
+
+## Example
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Crop "200x200 TopRight" }}
+
+ {{ end }}
+{{ end }}
+```
+
+{{< img
+ src="images/examples/zion-national-park.jpg"
+ alt="Zion National Park"
+ filter="Process"
+ filterArgs="crop 200x200 TopRight"
+ example=true
+>}}
+
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+[processing specification]: #processing-specification
diff --git a/docs/content/en/methods/resource/Data.md b/docs/content/en/methods/resource/Data.md
new file mode 100644
index 00000000000..01b22823d12
--- /dev/null
+++ b/docs/content/en/methods/resource/Data.md
@@ -0,0 +1,64 @@
+---
+title: Data
+description: Applicable to resources returned by the resources.GetRemote function, returns information from the HTTP response.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: map
+ signatures: [RESOURCE.Data]
+---
+
+The `Data` method on a resource returned by the [`resources.GetRemote`] function returns information from the HTTP response.
+
+## Example
+
+```go-html-template
+{{ $url := "https://example.org/images/a.jpg" }}
+{{ $opts := dict "responseHeaders" (slice "Server") }}
+{{ with try (resources.GetRemote $url) }}
+ {{ with .Err }}
+ {{ errorf "%s" . }}
+ {{ else with .Value }}
+ {{ with .Data }}
+ {{ .ContentLength }} → 42764
+ {{ .ContentType }} → image/jpeg
+ {{ .Headers }} → map[Server:[Netlify]]
+ {{ .Status }} → 200 OK
+ {{ .StatusCode }} → 200
+ {{ .TransferEncoding }} → []
+ {{ end }}
+ {{ else }}
+ {{ errorf "Unable to get remote resource %q" $url }}
+ {{ end }}
+{{ end }}
+```
+
+## Methods
+
+### ContentLength
+
+(`int`) The content length in bytes.
+
+### ContentType
+
+(`string`) The content type.
+
+### Headers
+
+(`map[string][]string`) A map of response headers matching those requested in the [`responseHeaders`] option passed to the `resources.GetRemote` function. The header name matching is case-insensitive. In most cases there will be one value per header key.
+
+### Status
+
+(`string`) The HTTP status text.
+
+### StatusCode
+
+(`int`) The HTTP status code.
+
+### TransferEncoding
+
+(`string`) The transfer encoding.
+
+[`resources.GetRemote`]: /functions/resources/getremote/
+[`responseHeaders`]: /functions/resources/getremote/#responseheaders
diff --git a/docs/content/en/methods/resource/Err.md b/docs/content/en/methods/resource/Err.md
new file mode 100644
index 00000000000..aa0d076b15b
--- /dev/null
+++ b/docs/content/en/methods/resource/Err.md
@@ -0,0 +1,17 @@
+---
+title: Err
+description: Applicable to resources returned by the resources.GetRemote function, returns an error message if the HTTP request fails, else nil.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: resource.resourceError
+ signatures: [RESOURCE.Err]
+expiryDate: 2027-01-16 # deprecated 2025-01-16 in v0.141.0
+---
+
+{{< deprecated-in 0.141.0 >}}
+Use the `try` statement instead. See [example].
+
+[example]: /functions/go-template/try/#example
+{{< /deprecated-in >}}
diff --git a/docs/content/en/methods/resource/Exif.md b/docs/content/en/methods/resource/Exif.md
new file mode 100644
index 00000000000..bc060f4c9c4
--- /dev/null
+++ b/docs/content/en/methods/resource/Exif.md
@@ -0,0 +1,15 @@
+---
+title: Exif
+description: Returns an object containing Exif metadata for supported image formats.
+categories: []
+keywords: ['metadata']
+params:
+ functions_and_methods:
+ returnType: meta.ExifInfo
+ signatures: [RESOURCE.Exif]
+expiryDate: 2028-01-28 # deprecated 2026-01-28 in v0.155.0
+---
+
+{{< deprecated-in 0.155.0 >}}
+Use [`Meta`](/methods/resource/meta/) instead.
+{{< /deprecated-in >}}
diff --git a/docs/content/en/methods/resource/Fill.md b/docs/content/en/methods/resource/Fill.md
new file mode 100644
index 00000000000..c510afe6d44
--- /dev/null
+++ b/docs/content/en/methods/resource/Fill.md
@@ -0,0 +1,54 @@
+---
+title: Fill
+description: Applicable to images, returns a new image resource cropped and resized according to the given processing specification.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: images.ImageResource
+ signatures: [RESOURCE.Fill SPECIFICATION]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Fill` method returns a new resource from a [processable image](g) according to the given [processing specification][].
+
+> [!note]
+> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed.
+
+## Usage
+
+When filling, you must provide both width and height (such as `500x200`) within the specification. `Fill` maintains the original aspect ratio by resizing the image to cover the target area and cropping any overflowing pixels based on the [anchor](#anchor) provided.
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Fill "500x200 TopRight" }}
+
+ {{ end }}
+{{ end }}
+```
+
+In the example above, `"500x200 TopRight"` is the _processing specification.
+
+{{% include "/_common/methods/resource/processing-spec.md" %}}
+
+## Example
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Fill "500x200 TopRight" }}
+
+ {{ end }}
+{{ end }}
+```
+
+{{< img
+ src="images/examples/zion-national-park.jpg"
+ alt="Zion National Park"
+ filter="Process"
+ filterArgs="fill 500x200 TopRight"
+ example=true
+>}}
+
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+[processing specification]: #processing-specification
diff --git a/docs/content/en/methods/resource/Filter.md b/docs/content/en/methods/resource/Filter.md
new file mode 100644
index 00000000000..812466a5532
--- /dev/null
+++ b/docs/content/en/methods/resource/Filter.md
@@ -0,0 +1,75 @@
+---
+title: Filter
+description: Applicable to images, applies one or more image filters to the given image resource.
+categories: []
+keywords: [filter]
+params:
+ alt_title: RESOURCE.Filter
+ functions_and_methods:
+ returnType: images.ImageResource
+ signatures: [RESOURCE.Filter FILTER...]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Filter` method returns a new resource from a [processable image](g) after applying one or more [image filters](#image-filters).
+
+> [!note]
+> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed.
+
+## Usage
+
+Use the `Filter` method to apply effects such as blurring, sharpening, or grayscale conversion. You can pass a single filter or a slice of filters. When providing a slice, Hugo applies the filters from left to right.
+
+To apply a single filter:
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Filter images.Grayscale }}
+
+ {{ end }}
+{{ end }}
+```
+
+To apply multiple filters:
+
+```go-html-template
+{{ $filters := slice
+ images.Grayscale
+ (images.GaussianBlur 8)
+}}
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Filter $filters }}
+
+ {{ end }}
+{{ end }}
+```
+
+You can also apply image filters using the [`images.Filter`][] function.
+
+## Example
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Filter images.Grayscale }}
+
+ {{ end }}
+{{ end }}
+```
+
+{{< img
+ src="images/examples/zion-national-park.jpg"
+ alt="Zion National Park"
+ filter="Grayscale"
+ filterArgs=""
+ example=true
+>}}
+
+## Image filters
+
+Use any of these filters with the `Filter` method.
+
+{{% render-list-of-pages-in-section path=/functions/images filter=functions_images_no_filters filterType=exclude %}}
+
+[`images.Filter`]: /functions/images/filter/
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
diff --git a/docs/content/en/methods/resource/Fit.md b/docs/content/en/methods/resource/Fit.md
new file mode 100644
index 00000000000..2c0a7c91c53
--- /dev/null
+++ b/docs/content/en/methods/resource/Fit.md
@@ -0,0 +1,56 @@
+---
+title: Fit
+description: Applicable to images, returns a new image resource downscaled to fit according to the given processing specification.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: images.ImageResource
+ signatures: [RESOURCE.Fit SPECIFICATION]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Fit` method returns a new resource from a [processable image](g) according to the given [processing specification][].
+
+> [!note]
+> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed.
+
+## Usage
+
+When fitting, you must provide both width and height (such as `300x175`) within the specification. `Fit` maintains the original aspect ratio by downscaling the image until it fits within the specified dimensions. Unlike [`Fill`][] or [`Resize`][], this method will never upscale an image; if the source image is smaller than the target dimensions, the dimensions of the resulting image are the same as the original.
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Fit "300x175" }}
+
+ {{ end }}
+{{ end }}
+```
+
+In the example above, `"300x175"` is the processing specification.
+
+{{% include "/_common/methods/resource/processing-spec.md" %}}
+
+## Example
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Fit "300x175" }}
+
+ {{ end }}
+{{ end }}
+```
+
+{{< img
+ src="images/examples/zion-national-park.jpg"
+ alt="Zion National Park"
+ filter="Process"
+ filterArgs="fit 300x175"
+ example=true
+>}}
+
+[`Fill`]: /methods/resource/fill/
+[`Resize`]: /methods/resource/resize/
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+[processing specification]: #processing-specification
diff --git a/docs/content/en/methods/resource/Height.md b/docs/content/en/methods/resource/Height.md
new file mode 100644
index 00000000000..726802cb005
--- /dev/null
+++ b/docs/content/en/methods/resource/Height.md
@@ -0,0 +1,26 @@
+---
+title: Height
+description: Applicable to images, returns the height of the given resource.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [RESOURCE.Height]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+Use the [`reflect.IsImageResourceWithMeta`][] function to verify that Hugo can determine the dimensions before calling the `Height` method.
+
+```go-html-template
+{{ with resources.GetMatch "images/featured.*" }}
+ {{ if reflect.IsImageResourceWithMeta . }}
+
+ {{ else }}
+
+ {{ end }}
+{{ end }}
+```
+
+[`reflect.IsImageResourceWithMeta`]: /functions/reflect/isimageresourcewithmeta/
diff --git a/docs/content/en/methods/resource/MediaType.md b/docs/content/en/methods/resource/MediaType.md
new file mode 100644
index 00000000000..7721f69ba1b
--- /dev/null
+++ b/docs/content/en/methods/resource/MediaType.md
@@ -0,0 +1,66 @@
+---
+title: MediaType
+description: Returns a media type object for the given resource.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: media.Type
+ signatures: [RESOURCE.MediaType]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `MediaType` method on a `Resource` object returns an object with additional methods.
+
+## Methods
+
+### Type
+
+(`string`) The resource's media type.
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .MediaType.Type }} → image/jpeg
+{{ end }}
+```
+
+### MainType
+
+(`string`) The main type of the resource's media type.
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .MediaType.MainType }} → image
+{{ end }}
+```
+
+### SubType
+
+(`string`) The subtype of the resource's media type. This may or may not correspond to the file suffix.
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .MediaType.SubType }} → jpeg
+{{ end }}
+```
+
+### Suffixes
+
+(`slice`) A slice of possible file suffixes for the resource's media type.
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .MediaType.Suffixes }} → [jpg jpeg jpe jif jfif]
+{{ end }}
+```
+
+### FirstSuffix.Suffix
+
+(`string`) The first of the possible file suffixes for the resource's media type.
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .MediaType.FirstSuffix.Suffix }} → jpg
+{{ end }}
+```
diff --git a/docs/content/en/methods/resource/Meta.md b/docs/content/en/methods/resource/Meta.md
new file mode 100644
index 00000000000..8a992ba72be
--- /dev/null
+++ b/docs/content/en/methods/resource/Meta.md
@@ -0,0 +1,110 @@
+---
+title: Meta
+description: Applicable to images, returns an object containing Exif, IPTC, and XMP metadata for supported image formats.
+categories: []
+keywords: ['metadata']
+params:
+ functions_and_methods:
+ returnType: meta.MetaInfo
+ signatures: [RESOURCE.Meta]
+---
+
+{{< new-in 0.155.3 />}}
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Meta` method on an image `Resource` object returns an object containing [Exif][Exif_Definition], [IPTC][IPTC_Definition], and [XMP][XMP_Definition] metadata.
+
+While Hugo classifies many file types as images, only certain formats support metadata extraction. Supported formats include AVIF, BMP, GIF, HEIC, HEIF, JPEG, PNG, TIFF, and WebP.
+
+> [!note]
+> Metadata is not preserved during image transformation. Use this method with the _original_ image resource to extract metadata from supported formats.
+
+## Usage
+
+Use the [`reflect.IsImageResourceWithMeta`][] function to verify that a resource supports metadata extraction before calling the `Meta` method.
+
+```go-html-template
+{{ with resources.GetMatch "images/featured.*" }}
+ {{ if reflect.IsImageResourceWithMeta . }}
+ {{ with .Meta }}
+ {{ .Date.Format "2006-01-02" }}
+ {{ end }}
+ {{ end }}
+{{ end }}
+```
+
+## Methods
+
+### Date
+
+(`time.Time`) Returns the image creation date/time. Format with the [`time.Format`][] function.
+
+### Lat
+
+(`float64`) Returns the GPS latitude in degrees from Exif metadata, with a fallback to XMP metadata.
+
+### Long
+
+(`float64`) Returns the GPS longitude in degrees from Exif metadata, with a fallback to XMP metadata.
+
+### Orientation
+
+(`int`) Returns the value of the Exif `Orientation` tag, one of eight possible values.
+
+Value|Description
+:--|:--
+`1`|Horizontal (normal)
+`2`|Mirrored horizontal
+`3`|Rotated 180 degrees
+`4`|Mirrored vertical
+`5`|Mirrored horizontal and rotated 270 degrees clockwise
+`6`|Rotated 90 degrees clockwise
+`7`|Mirrored horizontal and rotated 90 degrees clockwise
+`8`|Rotated 270 degrees clockwise
+{class="!mt-0"}
+
+> [!tip]
+> Use the [`images.AutoOrient`][] image filter to rotate and flip an image as needed per its Exif orientation tag
+
+### Exif
+
+(`meta.Tags`) Returns a collection of available Exif fields for this image. Availability is determined by the [`sources`][] setting and specific fields are managed via the [`fields`][] setting, both of which are managed in your project configuration.
+
+### IPTC
+
+(`meta.Tags`) Returns a collection of available IPTC fields for this image. Availability is determined by the [`sources`][] setting and specific fields are managed via the [`fields`][] setting, both of which are managed in your project configuration.
+
+### XMP
+
+(`meta.Tags`) Returns a collection of available XMP fields for this image. Availability is determined by the [`sources`][] setting and specific fields are managed via the [`fields`][] setting, both of which are managed in your project configuration.
+
+## Examples
+
+To list the creation date, latitude, longitude, and orientation:
+
+```go-html-template
+{{ with resources.GetMatch "images/featured.*" }}
+ {{ if reflect.IsImageResourceWithMeta . }}
+ {{ with .Meta }}
+
+ {{ printf "%-25s %v\n" "Date" .Date }}
+ {{ printf "%-25s %v\n" "Latitude" .Lat }}
+ {{ printf "%-25s %v\n" "Longitude" .Long }}
+ {{ printf "%-25s %v\n" "Orientation" .Orientation }}
+
+ {{ end }}
+ {{ end }}
+{{ end }}
+```
+
+{{% include "/_common/functions/reflect/image-reflection-functions.md" %}}
+
+[`fields`]: /configuration/imaging/#fields
+[`images.AutoOrient`]: /functions/images/autoorient/
+[`reflect.IsImageResourceWithMeta`]: /functions/reflect/isimageresourcewithmeta/
+[`sources`]: /configuration/imaging/#sources
+[`time.Format`]: /functions/time/format/
+[Exif_Definition]: https://en.wikipedia.org/wiki/Exif
+[IPTC_Definition]: https://en.wikipedia.org/wiki/IPTC_Information_Interchange_Model
+[XMP_Definition]: https://en.wikipedia.org/wiki/Extensible_Metadata_Platform
diff --git a/docs/content/en/methods/resource/Name.md b/docs/content/en/methods/resource/Name.md
new file mode 100644
index 00000000000..3331bb50d5b
--- /dev/null
+++ b/docs/content/en/methods/resource/Name.md
@@ -0,0 +1,89 @@
+---
+title: Name
+description: Returns the name of the given resource as optionally defined in front matter, falling back to its file path.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [RESOURCE.Name]
+---
+
+The value returned by the `Name` method on a `Resource` object depends on the resource type.
+
+## Global resource
+
+With a [global resource](g), the `Name` method returns the path to the resource, relative to the `assets` directory.
+
+```text
+assets/
+└── images/
+ └── Sunrise in Bryce Canyon.jpg
+```
+
+```go-html-template
+{{ with resources.Get "images/Sunrise in Bryce Canyon.jpg" }}
+ {{ .Name }} → /images/Sunrise in Bryce Canyon.jpg
+{{ end }}
+```
+
+## Page resource
+
+With a [page resource](g), if you create an element in the `resources` array in front matter, the `Name` method returns the value of the `name` parameter.
+
+```text
+content/
+├── example/
+│ ├── images/
+│ │ └── a.jpg
+│ └── index.md
+└── _index.md
+```
+
+{{< code-toggle file=content/example/index.md fm=true >}}
+title = 'Example'
+[[resources]]
+src = 'images/a.jpg'
+name = 'Sunrise in Bryce Canyon'
+{{< /code-toggle >}}
+
+```go-html-template
+{{ with .Resources.Get "images/a.jpg" }}
+ {{ .Name }} → Sunrise in Bryce Canyon
+{{ end }}
+```
+
+You can also capture the image by specifying its `name` instead of its path:
+
+```go-html-template
+{{ with .Resources.Get "Sunrise in Bryce Canyon" }}
+ {{ .Name }} → Sunrise in Bryce Canyon
+{{ end }}
+```
+
+If you do not create an element in the `resources` array in front matter, the `Name` method returns the file path, relative to the page bundle.
+
+```text
+content/
+├── example/
+│ ├── images/
+│ │ └── Sunrise in Bryce Canyon.jpg
+│ └── index.md
+└── _index.md
+```
+
+```go-html-template
+{{ with .Resources.Get "images/Sunrise in Bryce Canyon.jpg" }}
+ {{ .Name }} → images/Sunrise in Bryce Canyon.jpg
+{{ end }}
+```
+
+## Remote resource
+
+With a [remote resource](g), the `Name` method returns a hashed file name.
+
+```go-html-template
+{{ with resources.GetRemote "https://example.org/images/a.jpg" }}
+ {{ .Name }} → /a_18432433023265451104.jpg
+{{ end }}
+```
diff --git a/docs/content/en/methods/resource/Params.md b/docs/content/en/methods/resource/Params.md
new file mode 100644
index 00000000000..38f2ef6c27e
--- /dev/null
+++ b/docs/content/en/methods/resource/Params.md
@@ -0,0 +1,61 @@
+---
+title: Params
+description: Returns a map of resource parameters as defined in front matter.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: map
+ signatures: [RESOURCE.Params]
+---
+
+Use the `Params` method with [page resources](g). It is not applicable to either [global resources](g) or [remote resources](g).
+
+With this content structure:
+
+```text
+content/
+├── posts/
+│ ├── cats/
+│ │ ├── images/
+│ │ │ └── a.jpg
+│ │ └── index.md
+│ └── _index.md
+└── _index.md
+```
+
+And this front matter:
+
+{{< code-toggle file=content/posts/cats.md fm=true >}}
+title = 'Cats'
+[[resources]]
+ src = 'images/a.jpg'
+ title = 'Felix the cat'
+ [resources.params]
+ alt = 'Photograph of black cat'
+ temperament = 'vicious'
+{{< /code-toggle >}}
+
+And this template:
+
+```go-html-template
+{{ with .Resources.Get "images/a.jpg" }}
+
+
+
+ {{ end }}
+{{ end }}
+```
+
+In the example above, `"crop 200x200 TopRight webp q50"` is the processing specification.
+
+You can also use this method to apply simple transformations such as rotation and conversion:
+
+```go-html-template
+{{/* Rotate 90 degrees counter-clockwise. */}}
+{{ $image := $image.Process "r90" }}
+
+{{/* Convert to WebP. */}}
+{{ $image := $image.Process "webp" }}
+```
+
+The `Process` method is also available as a filter. This is more effective if you need to apply multiple filters to an image. See [`images.Process`][].
+
+{{% include "/_common/methods/resource/processing-spec.md" %}}
+
+## Example
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Process "crop 200x200 TopRight webp q50" }}
+
+ {{ end }}
+{{ end }}
+```
+
+{{< img
+ src="images/examples/zion-national-park.jpg"
+ alt="Zion National Park"
+ filter="Process"
+ filterArgs="crop 200x200 TopRight webp q50"
+ example=true
+>}}
+
+[`Crop`]: /methods/resource/crop/
+[`Resize`]: /methods/resource/resize/
+[`images.Process`]: /functions/images/process/
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+[processing specification]: #processing-specification
diff --git a/docs/content/en/methods/resource/Publish.md b/docs/content/en/methods/resource/Publish.md
new file mode 100644
index 00000000000..0ecdf7e7449
--- /dev/null
+++ b/docs/content/en/methods/resource/Publish.md
@@ -0,0 +1,32 @@
+---
+title: Publish
+description: Publishes the given resource.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: nil
+ signatures: [RESOURCE.Publish]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Publish` method on a `Resource` object writes the resource to the publish directory, typically `public`.
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .Publish }}
+{{ end }}
+```
+
+The `Permalink` and `RelPermalink` methods also publish a resource. `Publish` is a convenience method for publishing without a return value. For example, this:
+
+```go-html-template
+{{ $resource.Publish }}
+```
+
+Instead of this:
+
+```go-html-template
+{{ $noop := $resource.Permalink }}
+```
diff --git a/docs/content/en/methods/resource/RelPermalink.md b/docs/content/en/methods/resource/RelPermalink.md
new file mode 100644
index 00000000000..d4c907bff0c
--- /dev/null
+++ b/docs/content/en/methods/resource/RelPermalink.md
@@ -0,0 +1,20 @@
+---
+title: RelPermalink
+description: Publishes the given resource and returns its relative permalink.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [RESOURCE.RelPermalink]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Permalink` method on a `Resource` object writes the resource to the publish directory, typically `public`, and returns its [relative permalink](g).
+
+```go-html-template
+{{ with resources.Get "images/a.jpg" }}
+ {{ .RelPermalink }} → /images/a.jpg
+{{ end }}
+```
diff --git a/docs/content/en/methods/resource/Resize.md b/docs/content/en/methods/resource/Resize.md
new file mode 100644
index 00000000000..f1e08dbaf28
--- /dev/null
+++ b/docs/content/en/methods/resource/Resize.md
@@ -0,0 +1,56 @@
+---
+title: Resize
+description: Applicable to images, returns a new image resource resized according to the given processing specification.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: images.ImageResource
+ signatures: [RESOURCE.Resize SPECIFICATION]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+The `Resize` method returns a new resource from a [processable image](g) according to the given [processing specification][].
+
+> [!note]
+> Use the [`reflect.IsImageResourceProcessable`][] function to verify that an image can be processed.
+
+## Usage
+
+Resize an image according to the given processing specification. You may specify only the width (such as `300x`) or only the height (such as `x150`) for proportional scaling.
+
+If you specify both width and height (such as `300x150`), the resulting image will be scaled to those exact dimensions. If the target aspect ratio differs from the original, the image will be non-proportionally scaled (stretched or squashed).
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Resize "300x" }}
+
+ {{ end }}
+{{ end }}
+```
+
+In the example above, `"300x"` is the processing specification.
+
+{{% include "/_common/methods/resource/processing-spec.md" %}}
+
+## Example
+
+```go-html-template
+{{ with resources.Get "images/original.jpg" }}
+ {{ with .Resize "300x" }}
+
+ {{ end }}
+{{ end }}
+```
+
+{{< img
+ src="images/examples/zion-national-park.jpg"
+ alt="Zion National Park"
+ filter="Process"
+ filterArgs="resize 300x"
+ example=true
+>}}
+
+[`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+[processing specification]: #processing-specification
diff --git a/docs/content/en/methods/resource/ResourceType.md b/docs/content/en/methods/resource/ResourceType.md
new file mode 100644
index 00000000000..70dc5910848
--- /dev/null
+++ b/docs/content/en/methods/resource/ResourceType.md
@@ -0,0 +1,43 @@
+---
+title: ResourceType
+description: Returns the main type of the given resource's media type.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [RESOURCE.ResourceType]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+Common resource types include `audio`, `image`, `text`, and `video`.
+
+```go-html-template
+{{ with resources.Get "image/a.jpg" }}
+ {{ .ResourceType }} → image
+ {{ .MediaType.MainType }} → image
+{{ end }}
+```
+
+When working with content files, the resource type is `page`.
+
+```text
+content/
+├── lessons/
+│ ├── lesson-1/
+│ │ ├── _objectives.md <-- resource type = page
+│ │ ├── _topics.md <-- resource type = page
+│ │ ├── _example.jpg <-- resource type = image
+│ │ └── index.md
+│ └── _index.md
+└── _index.md
+```
+
+With the structure above, we can range through page resources of type `page` to build content:
+
+```go-html-template {file="layouts/lessons/page.html"}
+{{ range .Resources.ByType "page" }}
+ {{ .Content }}
+{{ end }}
+```
diff --git a/docs/content/en/methods/resource/Title.md b/docs/content/en/methods/resource/Title.md
new file mode 100644
index 00000000000..c02d29ff8fd
--- /dev/null
+++ b/docs/content/en/methods/resource/Title.md
@@ -0,0 +1,81 @@
+---
+title: Title
+description: Returns the title of the given resource as optionally defined in front matter, falling back to a relative path or hashed file name depending on resource type.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [RESOURCE.Title]
+---
+
+The value returned by the `Title` method on a `Resource` object depends on the resource type.
+
+## Global resource
+
+With a [global resource](g), the `Title` method returns the path to the resource, relative to the `assets` directory.
+
+```text
+assets/
+└── images/
+ └── Sunrise in Bryce Canyon.jpg
+```
+
+```go-html-template
+{{ with resources.Get "images/Sunrise in Bryce Canyon.jpg" }}
+ {{ .Title }} → /images/Sunrise in Bryce Canyon.jpg
+{{ end }}
+```
+
+## Page resource
+
+With a [page resource](g), if you create an element in the `resources` array in front matter, the `Title` method returns the value of the `title` parameter.
+
+```text
+content/
+├── example/
+│ ├── images/
+│ │ └── a.jpg
+│ └── index.md
+└── _index.md
+```
+
+{{< code-toggle file=content/example/index.md fm=true >}}
+title = 'Example'
+[[resources]]
+src = 'images/a.jpg'
+title = 'A beautiful sunrise in Bryce Canyon'
+{{< /code-toggle >}}
+
+```go-html-template
+{{ with .Resources.Get "images/a.jpg" }}
+ {{ .Title }} → A beautiful sunrise in Bryce Canyon
+{{ end }}
+```
+
+If you do not create an element in the `resources` array in front matter, the `Title` method returns the file path, relative to the page bundle.
+
+```text
+content/
+├── example/
+│ ├── images/
+│ │ └── Sunrise in Bryce Canyon.jpg
+│ └── index.md
+└── _index.md
+```
+
+```go-html-template
+{{ with .Resources.Get "Sunrise in Bryce Canyon.jpg" }}
+ {{ .Title }} → images/Sunrise in Bryce Canyon.jpg
+{{ end }}
+```
+
+## Remote resource
+
+With a [remote resource](g), the `Title` method returns a hashed file name.
+
+```go-html-template
+{{ with resources.GetRemote "https://example.org/images/a.jpg" }}
+ {{ .Title }} → /a_18432433023265451104.jpg
+{{ end }}
+```
diff --git a/docs/content/en/methods/resource/Width.md b/docs/content/en/methods/resource/Width.md
new file mode 100644
index 00000000000..74eb373c450
--- /dev/null
+++ b/docs/content/en/methods/resource/Width.md
@@ -0,0 +1,26 @@
+---
+title: Width
+description: Applicable to images, returns the width of the given resource.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [RESOURCE.Width]
+---
+
+{{% include "/_common/methods/resource/global-page-remote-resources.md" %}}
+
+Use the [`reflect.IsImageResourceWithMeta`][] function to verify that Hugo can determine the dimensions before calling the `Width` method.
+
+```go-html-template
+{{ with resources.GetMatch "images/featured.*" }}
+ {{ if reflect.IsImageResourceWithMeta . }}
+
+ {{ else }}
+
+ {{ end }}
+{{ end }}
+```
+
+[`reflect.IsImageResourceWithMeta`]: /functions/reflect/isimageresourcewithmeta/
diff --git a/docs/content/en/methods/resource/_index.md b/docs/content/en/methods/resource/_index.md
new file mode 100644
index 00000000000..c6012e75beb
--- /dev/null
+++ b/docs/content/en/methods/resource/_index.md
@@ -0,0 +1,7 @@
+---
+title: Resource methods
+linkTitle: Resource
+description: Use these methods with a global, page, or remote Resource object.
+categories: []
+keywords: []
+---
diff --git a/docs/content/en/methods/shortcode/Get.md b/docs/content/en/methods/shortcode/Get.md
new file mode 100644
index 00000000000..aef9987f098
--- /dev/null
+++ b/docs/content/en/methods/shortcode/Get.md
@@ -0,0 +1,46 @@
+---
+title: Get
+description: Returns the value of the given argument.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: any
+ signatures: [SHORTCODE.Get ARG]
+---
+
+Specify the argument by position or by name. When calling a shortcode within Markdown, use either positional or named argument, but not both.
+
+> [!note]
+> Some shortcodes support positional arguments, some support named arguments, and others support both. Refer to the shortcode's documentation for usage details.
+
+## Positional arguments
+
+This shortcode call uses positional arguments:
+
+```text {file="content/about.md"}
+{{* myshortcode "Hello" "world" */>}}
+```
+
+To retrieve arguments by position:
+
+```go-html-template {file="layouts/_shortcodes/myshortcode.html"}
+{{ printf "%s %s." (.Get 0) (.Get 1) }} → Hello world.
+```
+
+## Named arguments
+
+This shortcode call uses named arguments:
+
+```text {file="content/about.md"}
+{{* myshortcode greeting="Hello" firstName="world" */>}}
+```
+
+To retrieve arguments by name:
+
+```go-html-template {file="layouts/_shortcodes/myshortcode.html"}
+{{ printf "%s %s." (.Get "greeting") (.Get "firstName") }} → Hello world.
+```
+
+> [!note]
+> Argument names are case-sensitive.
diff --git a/docs/content/en/methods/shortcode/Inner.md b/docs/content/en/methods/shortcode/Inner.md
new file mode 100644
index 00000000000..bb5a16a0189
--- /dev/null
+++ b/docs/content/en/methods/shortcode/Inner.md
@@ -0,0 +1,143 @@
+---
+title: Inner
+description: Returns the content between opening and closing shortcode tags, applicable when the shortcode call includes a closing tag.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: template.HTML
+ signatures: [SHORTCODE.Inner]
+---
+
+This content:
+
+```text {file="content/services.md"}
+{{* card title="Product Design" */>}}
+We design the **best** widgets in the world.
+{{* /card */>}}
+```
+
+With this shortcode:
+
+```go-html-template {file="layouts/_shortcodes/card.html"}
+
+``` + +Is rendered to: + +```html +
+``` + +> [!note] +> Content between opening and closing shortcode tags may include leading and/or trailing newlines, depending on placement within the Markdown. Use the [`strings.TrimSpace`] function as shown above to remove carriage returns and newlines. + +> [!note] +> In the example above, the value returned by `Inner` is Markdown, but it was rendered as plain text. Use either of the following approaches to render Markdown to HTML. + +## Use RenderString + +Let's modify the example above to pass the value returned by `Inner` through the [`RenderString`] method on the `Page` object: + +```go-html-template {file="layouts/_shortcodes/card.html"} +
+``` + +Hugo renders this to: + +```html +
+``` + +You can use the [`markdownify`] function instead of the `RenderString` method, but the latter is more flexible. See [details]. + +## Alternative notation + +Instead of calling the shortcode with the `{{* */>}}` notation, use the `{{%/* */%}}` notation: + +```text {file="content/services.md"} +{{%/* card title="Product Design" */%}} +We design the **best** widgets in the world. +{{%/* /card */%}} +``` + +When you use the `{{%/* */%}}` notation, Hugo renders the entire shortcode as Markdown, requiring the following changes. + +First, configure the renderer to allow raw HTML within Markdown: + +{{< code-toggle file=hugo >}} +[markup.goldmark.renderer] +unsafe = true +{{< /code-toggle >}} + +This configuration is not unsafe if _you_ control the content. Read more about Hugo's [security model]. + +Second, because we are rendering the entire shortcode as Markdown, we must adhere to the rules governing [indentation] and inclusion of [raw HTML blocks] as provided in the [CommonMark] specification. + +```go-html-template {file="layouts/_shortcodes/card.html"} +
+``` + +The difference between this and the previous example is subtle but required. Note the change in indentation, the addition of a blank line, and removal of the `RenderString` method. + +```diff +--- layouts/_shortcodes/a.html ++++ layouts/_shortcodes/b.html +@@ -1,8 +1,9 @@ +
+``` + +> [!note] +> Don't process the `Inner` value with `RenderString` or `markdownify` when using [Markdown notation] to call the shortcode. + +[`markdownify`]: /functions/transform/markdownify/ +[`RenderString`]: /methods/page/renderstring/ +[`strings.TrimSpace`]: /functions/strings/trimspace/ +[CommonMark]: https://spec.commonmark.org/current/ +[details]: /methods/page/renderstring/ +[indentation]: https://spec.commonmark.org/current/#indented-code-blocks +[Markdown notation]: /content-management/shortcodes/#notation +[raw HTML blocks]: https://spec.commonmark.org/current/#html-blocks +[security model]: /about/security/ diff --git a/docs/content/en/methods/shortcode/InnerDeindent.md b/docs/content/en/methods/shortcode/InnerDeindent.md new file mode 100644 index 00000000000..3d7536b6b11 --- /dev/null +++ b/docs/content/en/methods/shortcode/InnerDeindent.md @@ -0,0 +1,98 @@ +--- +title: InnerDeindent +description: Returns the content between opening and closing shortcode tags, with indentation removed, applicable when the shortcode call includes a closing tag. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: template.HTML + signatures: [SHORTCODE.InnerDeindent] +--- + +Similar to the [`Inner`] method, `InnerDeindent` returns the content between opening and closing shortcode tags. However, with `InnerDeindent`, indentation before the content is removed. + +This allows us to effectively bypass the rules governing [indentation] as provided in the [CommonMark] specification. + +Consider this Markdown, an unordered list with a small gallery of thumbnail images within each list item: + +```text {file="content/about.md"} +- Gallery one + + {{* gallery */>}} +  +  + {{* /gallery */>}} + +- Gallery two + + {{* gallery */>}} +  +  + {{* /gallery */>}} +``` + +In the example above, notice that the content between the opening and closing shortcode tags is indented by four spaces. Per the CommonMark specification, this is treated as an indented code block. + +With this shortcode, calling `Inner` instead of `InnerDeindent`: + +```go-html-template {file="layouts/_shortcodes/gallery.html"} +
+``` + +Hugo renders the Markdown to: + +```html +
Gallery one
+
+ 
+
+ Gallery two
+
+ 
+
+ +``` + +Although technically correct per the CommonMark specification, this is not what we want. If we remove the indentation using the `InnerDeindent` method: + +```go-html-template {file="layouts/_shortcodes/gallery.html"} +
+``` + +Hugo renders the Markdown to: + +```html +
Gallery one
+
+
+ Gallery two
+
+
+
+```
+
+[commonmark]: https://commonmark.org/
+[indentation]: https://spec.commonmark.org/current/#indented-code-blocks
+[`Inner`]: /methods/shortcode/inner/
diff --git a/docs/content/en/methods/shortcode/IsNamedParams.md b/docs/content/en/methods/shortcode/IsNamedParams.md
new file mode 100644
index 00000000000..0574128ece5
--- /dev/null
+++ b/docs/content/en/methods/shortcode/IsNamedParams.md
@@ -0,0 +1,29 @@
+---
+title: IsNamedParams
+description: Reports whether the shortcode call uses named arguments.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [SHORTCODE.IsNamedParams]
+---
+
+To support both positional and named arguments when calling a shortcode, use the `IsNamedParams` method to determine how the shortcode was called.
+
+With this _shortcode_ template:
+
+```go-html-template {file="layouts/_shortcodes/myshortcode.html"}
+{{ if .IsNamedParams }}
+ {{ printf "%s %s." (.Get "greeting") (.Get "firstName") }}
+{{ else }}
+ {{ printf "%s %s." (.Get 0) (.Get 1) }}
+{{ end }}
+```
+
+Both of these calls return the same value:
+
+```text {file="content/about.md"}
+{{* myshortcode greeting="Hello" firstName="world" */>}}
+{{* myshortcode "Hello" "world" */>}}
+```
diff --git a/docs/content/en/methods/shortcode/Name.md b/docs/content/en/methods/shortcode/Name.md
new file mode 100644
index 00000000000..c42513cb290
--- /dev/null
+++ b/docs/content/en/methods/shortcode/Name.md
@@ -0,0 +1,27 @@
+---
+title: Name
+description: Returns the shortcode file name, excluding the file extension.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [SHORTCODE.Name]
+---
+
+The `Name` method is useful for error reporting. For example, if your shortcode requires a "greeting" argument:
+
+```go-html-template {file="layouts/_shortcodes/myshortcode.html"}
+{{ $greeting := "" }}
+{{ with .Get "greeting" }}
+ {{ $greeting = . }}
+{{ else }}
+ {{ errorf "The %q shortcode requires a 'greeting' argument. See %s" .Name .Position }}
+{{ end }}
+```
+
+In the absence of a "greeting" argument, Hugo will throw an error message and fail the build:
+
+```text
+ERROR The "myshortcode" shortcode requires a 'greeting' argument. See "/home/user/project/content/about.md:11:1"
+```
diff --git a/docs/content/en/methods/shortcode/Ordinal.md b/docs/content/en/methods/shortcode/Ordinal.md
new file mode 100644
index 00000000000..b1675895254
--- /dev/null
+++ b/docs/content/en/methods/shortcode/Ordinal.md
@@ -0,0 +1,52 @@
+---
+title: Ordinal
+description: Returns the zero-based ordinal of the shortcode in relation to its parent.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [SHORTCODE.Ordinal]
+---
+
+The `Ordinal` method returns the zero-based ordinal of the shortcode in relation to its parent. If the parent is the page itself, the ordinal represents the position of this shortcode in the page content.
+
+> [!note]
+> Hugo increments the ordinal with each shortcode call, regardless of the specific shortcode type. This means that the ordinal value is tracked sequentially across all shortcodes within a given page.
+
+This method is useful for, among other things, assigning unique element IDs when a shortcode is called two or more times from the same page. For example:
+
+```text {file="content/about.md"}
+{{* img src="images/a.jpg" */>}}
+
+{{* img src="images/b.jpg" */>}}
+```
+
+This shortcode performs error checking, then renders an HTML `img` element with a unique `id` attribute:
+
+```go-html-template {file="layouts/_shortcodes/img.html"}
+{{ $src := "" }}
+{{ with .Get "src" }}
+ {{ $src = . }}
+ {{ with resources.Get $src }}
+ {{ $id := printf "img-%03d" $.Ordinal }}
+
+ {{ else }}
+ {{ errorf "The %q shortcode was unable to find %s. See %s" $.Name $src $.Position }}
+ {{ end }}
+{{ else }}
+ {{ errorf "The %q shortcode requires a 'src' argument. See %s" .Name .Position }}
+{{ end }}
+```
+
+Hugo renders the page to:
+
+```html
+
+
+```
+
+> [!note]
+> In the _shortcode_ template above, the [`with`] statement is used to create conditional blocks. Remember that the `with` statement binds context (the dot) to its expression. Inside of a `with` block, preface shortcode method calls with a `$` to access the top-level context passed into the template.
+
+[`with`]: /functions/go-template/with/
diff --git a/docs/content/en/methods/shortcode/Page.md b/docs/content/en/methods/shortcode/Page.md
new file mode 100644
index 00000000000..0fa1c9cc9b0
--- /dev/null
+++ b/docs/content/en/methods/shortcode/Page.md
@@ -0,0 +1,36 @@
+---
+title: Page
+description: Returns the Page object from which the shortcode was called.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: hugolib.pageForShortcode
+ signatures: [SHORTCODE.Page]
+---
+
+With this content:
+
+{{< code-toggle file=content/books/les-miserables.md fm=true >}}
+title = 'Les Misérables'
+author = 'Victor Hugo'
+publication_year = 1862
+isbn = '978-0451419439'
+{{< /code-toggle >}}
+
+Calling this shortcode:
+
+```text
+{{* book-details */>}}
+```
+
+We can access the front matter values using the `Page` method:
+
+```go-html-template {file="layouts/_shortcodes/book-details.html"}
+
+``` diff --git a/docs/content/en/methods/shortcode/Params.md b/docs/content/en/methods/shortcode/Params.md new file mode 100644 index 00000000000..c8252f5b151 --- /dev/null +++ b/docs/content/en/methods/shortcode/Params.md @@ -0,0 +1,32 @@ +--- +title: Params +description: Returns a collection of the shortcode arguments. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: any + signatures: [SHORTCODE.Params] +--- + +When you call a shortcode using positional arguments, the `Params` method returns a slice. + +```text {file="content/about.md"} +{{* myshortcode "Hello" "world" */>}} +``` + +```go-html-template {file="layouts/_shortcodes/myshortcode.html"} +{{ index .Params 0 }} → Hello +{{ index .Params 1 }} → world +``` + +When you call a shortcode using named arguments, the `Params` method returns a map. + +```text {file="content/about.md"} +{{* myshortcode greeting="Hello" name="world" */>}} +``` + +```go-html-template {file="layouts/_shortcodes/myshortcode.html"} +{{ .Params.greeting }} → Hello +{{ .Params.name }} → world +``` diff --git a/docs/content/en/methods/shortcode/Parent.md b/docs/content/en/methods/shortcode/Parent.md new file mode 100644 index 00000000000..4597d1034f3 --- /dev/null +++ b/docs/content/en/methods/shortcode/Parent.md @@ -0,0 +1,50 @@ +--- +title: Parent +description: Returns the parent shortcode context in nested shortcodes. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: hugolib.ShortcodeWithPage + signatures: [SHORTCODE.Parent] +--- + +This is useful for inheritance of common shortcode arguments from the root. + +In this contrived example, the "greeting" shortcode is the parent, and the "now" shortcode is child. + +```text {file="content/welcome.md"} +{{* greeting dateFormat="Jan 2, 2006" */>}} +Welcome. Today is {{* now */>}}. +{{* /greeting */>}} +``` + +```go-html-template {file="layouts/_shortcodes/greeting.html"} +
+``` + +```go-html-template {file="layouts/_shortcodes/now.html"} +{{- $dateFormat := "January 2, 2006 15:04:05" }} + +{{- with .Params }} + {{- with .dateFormat }} + {{- $dateFormat = . }} + {{- end }} +{{- else }} + {{- with .Parent.Params }} + {{- with .dateFormat }} + {{- $dateFormat = . }} + {{- end }} + {{- end }} +{{- end }} + +{{- now | time.Format $dateFormat -}} +``` + +The "now" shortcode formats the current time using: + +1. The `dateFormat` argument passed to the "now" shortcode, if present +1. The `dateFormat` argument passed to the "greeting" shortcode, if present +1. The default layout string defined at the top of the shortcode diff --git a/docs/content/en/methods/shortcode/Position.md b/docs/content/en/methods/shortcode/Position.md new file mode 100644 index 00000000000..4052a735bf0 --- /dev/null +++ b/docs/content/en/methods/shortcode/Position.md @@ -0,0 +1,30 @@ +--- +title: Position +description: Returns the file name and position from which the shortcode was called. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: text.Position + signatures: [SHORTCODE.Position] +--- + +The `Position` method is useful for error reporting. For example, if your shortcode requires a "greeting" argument: + +```go-html-template {file="layouts/_shortcodes/myshortcode.html"} +{{ $greeting := "" }} +{{ with .Get "greeting" }} + {{ $greeting = . }} +{{ else }} + {{ errorf "The %q shortcode requires a 'greeting' argument. See %s" .Name .Position }} +{{ end }} +``` + +In the absence of a "greeting" argument, Hugo will throw an error message and fail the build: + +```text +ERROR The "myshortcode" shortcode requires a 'greeting' argument. See "/home/user/project/content/about.md:11:1" +``` + +> [!note] +> The position can be expensive to calculate. Limit its use to error reporting. diff --git a/docs/content/en/methods/shortcode/Ref.md b/docs/content/en/methods/shortcode/Ref.md new file mode 100644 index 00000000000..3a877d568fe --- /dev/null +++ b/docs/content/en/methods/shortcode/Ref.md @@ -0,0 +1,37 @@ +--- +title: Ref +description: Returns the absolute URL of the page with the given path, language, and output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [SHORTCODE.Ref OPTIONS] +--- + +## Usage + +The `Ref` method accepts a single argument: an options map. + +## Options + +{{% include "_common/ref-and-relref-options.md" %}} + +## Examples + +The following examples show the rendered output for a page on the English version of the site: + +```go-html-template +{{ $opts := dict "path" "/books/book-1" }} +{{ .Ref $opts }} → https://example.org/en/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" }} +{{ .Ref $opts }} → https://example.org/de/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" "outputFormat" "json" }} +{{ .Ref $opts }} → https://example.org/de/books/book-1/index.json +``` + +## Error handling + +{{% include "_common/ref-and-relref-error-handling.md" %}} diff --git a/docs/content/en/methods/shortcode/RelRef.md b/docs/content/en/methods/shortcode/RelRef.md new file mode 100644 index 00000000000..273705a95c5 --- /dev/null +++ b/docs/content/en/methods/shortcode/RelRef.md @@ -0,0 +1,37 @@ +--- +title: RelRef +description: Returns the relative URL of the page with the given path, language, and output format. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [SHORTCODE.RelRef OPTIONS] +--- + +## Usage + +The `RelRef` method accepts a single argument: an options map. + +## Options + +{{% include "_common/ref-and-relref-options.md" %}} + +## Examples + +The following examples show the rendered output for a page on the English version of the site: + +```go-html-template +{{ $opts := dict "path" "/books/book-1" }} +{{ .RelRef $opts }} → /en/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" }} +{{ .RelRef $opts }} → /de/books/book-1/ + +{{ $opts := dict "path" "/books/book-1" "lang" "de" "outputFormat" "json" }} +{{ .RelRef $opts }} → /de/books/book-1/index.json +``` + +## Error handling + +{{% include "_common/ref-and-relref-error-handling.md" %}} diff --git a/docs/content/en/methods/shortcode/Scratch.md b/docs/content/en/methods/shortcode/Scratch.md new file mode 100644 index 00000000000..6efec2097fe --- /dev/null +++ b/docs/content/en/methods/shortcode/Scratch.md @@ -0,0 +1,21 @@ +--- +title: Scratch +description: Returns a "scratch pad" to store and manipulate data, scoped to the current shortcode. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Scratch + signatures: [SHORTCODE.Scratch] +expiryDate: 2026-11-18 # deprecated 2024-11-18 (soft) +--- + +{{< deprecated-in 0.139.0 >}} +Use the [`SHORTCODE.Store`] method instead. + +This is a soft deprecation. This method will be removed in a future release, but the removal date has not been established. Although Hugo will not emit a warning if you continue to use this method, you should begin using `SHORTCODE.Store` as soon as possible. + +Beginning with v0.139.0 the `SHORTCODE.Scratch` method is aliased to `SHORTCODE.Store`. + +[`SHORTCODE.Store`]: /methods/shortcode/store/ +{{< /deprecated-in >}} diff --git a/docs/content/en/methods/shortcode/Site.md b/docs/content/en/methods/shortcode/Site.md new file mode 100644 index 00000000000..4c5a9a9b5fe --- /dev/null +++ b/docs/content/en/methods/shortcode/Site.md @@ -0,0 +1,18 @@ +--- +title: Site +description: Returns the Site object. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.siteWrapper + signatures: [SHORTCODE.Site] +--- + +See [Site methods]. + +[Site methods]: /methods/site/ + +```go-html-template +{{ .Site.Title }} +``` diff --git a/docs/content/en/methods/shortcode/Store.md b/docs/content/en/methods/shortcode/Store.md new file mode 100644 index 00000000000..76cb9237d6e --- /dev/null +++ b/docs/content/en/methods/shortcode/Store.md @@ -0,0 +1,24 @@ +--- +title: Store +description: Returns a "scratch pad" to store and manipulate data, scoped to the current shortcode. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Scratch + signatures: [SHORTCODE.Store] +--- + +{{< new-in 0.139.0 />}} + +Use the `Store` method to create a [scratch pad](g) to store and manipulate data, scoped to the current shortcode. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. + +> [!note] +> With the introduction of the [`newScratch`] function, and the ability to [assign values to template variables] after initialization, the `Store` method within a shortcode is mostly obsolete. + +{{% include "_common/store-methods.md" %}} + +{{% include "_common/scratch-pad-scope.md" %}} + +[`newScratch`]: /functions/collections/newScratch/ +[assign values to template variables]: https://go.dev/doc/go1.11#texttemplatepkgtexttemplate diff --git a/docs/content/en/methods/shortcode/_index.md b/docs/content/en/methods/shortcode/_index.md new file mode 100644 index 00000000000..0064f42aa1a --- /dev/null +++ b/docs/content/en/methods/shortcode/_index.md @@ -0,0 +1,8 @@ +--- +title: Shortcode methods +linkTitle: Shortcode +description: Use these methods in your shortcode templates. +categories: [] +keywords: [] +aliases: [/variables/shortcodes] +--- diff --git a/docs/content/en/methods/site/AllPages.md b/docs/content/en/methods/site/AllPages.md new file mode 100644 index 00000000000..84e5648e9a7 --- /dev/null +++ b/docs/content/en/methods/site/AllPages.md @@ -0,0 +1,15 @@ +--- +title: AllPages +description: Returns a collection of all pages in all languages. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [SITE.AllPages] +expiryDate: '2028-02-18' # deprecated 2026-02-18 in v0.156.0 +--- + +{{< deprecated-in 0.156.0 >}} +See [details](https://discourse.gohugo.io/t/56732). +{{< /deprecated-in >}} diff --git a/docs/content/en/methods/site/BaseURL.md b/docs/content/en/methods/site/BaseURL.md new file mode 100644 index 00000000000..7b1b5e87044 --- /dev/null +++ b/docs/content/en/methods/site/BaseURL.md @@ -0,0 +1,32 @@ +--- +title: BaseURL +description: Returns the base URL as defined in your project configuration. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [SITE.BaseURL] +--- + +Project configuration: + +{{< code-toggle file=hugo >}} +baseURL = 'https://example.org/docs/' +{{< /code-toggle >}} + +Template: + +```go-html-template +{{ .Site.BaseURL }} → https://example.org/docs/ +``` + +> [!note] +> There is almost never a good reason to use this method in your templates. Its usage tends to be fragile due to misconfiguration. +> +> Use the [`absURL`], [`absLangURL`], [`relURL`], or [`relLangURL`] functions instead. + +[`absLangURL`]: /functions/urls/absLangURL/ +[`absURL`]: /functions/urls/absURL/ +[`relLangURL`]: /functions/urls/relLangURL/ +[`relURL`]: /functions/urls/relURL/ diff --git a/docs/content/en/methods/site/BuildDrafts.md b/docs/content/en/methods/site/BuildDrafts.md new file mode 100644 index 00000000000..0a94adfd7f1 --- /dev/null +++ b/docs/content/en/methods/site/BuildDrafts.md @@ -0,0 +1,15 @@ +--- +title: BuildDrafts +description: Reports reports whether draft publishing is enabled for the current build. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: bool + signatures: [SITE.BuildDrafts] +expiryDate: '2028-02-18' # deprecated 2026-02-18 in v0.156.0 +--- + +{{< deprecated-in 0.156.0 >}} +See [details](https://discourse.gohugo.io/t/56732). +{{< /deprecated-in >}} diff --git a/docs/content/en/methods/site/Config.md b/docs/content/en/methods/site/Config.md new file mode 100644 index 00000000000..9cc8856507c --- /dev/null +++ b/docs/content/en/methods/site/Config.md @@ -0,0 +1,52 @@ +--- +title: Config +description: Returns a subset of your project configuration. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.SiteConfig + signatures: [SITE.Config] +--- + +The `Config` method on a `Site` object provides access to a subset of your project configuration, specifically the `services` and `privacy` keys. + +## Services + +See [configure services](/configuration/services). + +For example, to use Hugo's built-in Google Analytics template you must add a [Google tag ID]: + +[Google tag ID]: https://support.google.com/tagmanager/answer/12326985?hl=en + +{{< code-toggle file=hugo >}} +[services.googleAnalytics] +id = 'G-XXXXXXXXX' +{{< /code-toggle >}} + +To access this value from a template: + +```go-html-template +{{ .Site.Config.Services.GoogleAnalytics.ID }} → G-XXXXXXXXX +``` + +You must capitalize each identifier as shown above. + +## Privacy + +See [configure privacy](/configuration/privacy). + +For example, to disable usage of the built-in YouTube shortcode: + +{{< code-toggle file=hugo >}} +[privacy.youtube] +disable = true +{{< /code-toggle >}} + +To access this value from a template: + +```go-html-template +{{ .Site.Config.Privacy.YouTube.Disable }} → true +``` + +You must capitalize each identifier as shown above. diff --git a/docs/content/en/methods/site/Copyright.md b/docs/content/en/methods/site/Copyright.md new file mode 100644 index 00000000000..e73ff66bcec --- /dev/null +++ b/docs/content/en/methods/site/Copyright.md @@ -0,0 +1,22 @@ +--- +title: Copyright +description: Returns the copyright notice as defined in your project configuration. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [SITE.Copyright] +--- + +Project configuration: + +{{< code-toggle file=hugo >}} +copyright = '© 2023 ABC Widgets, Inc.' +{{< /code-toggle >}} + +Template: + +```go-html-template +{{ .Site.Copyright }} → © 2023 ABC Widgets, Inc. +``` diff --git a/docs/content/en/methods/site/Data.md b/docs/content/en/methods/site/Data.md new file mode 100644 index 00000000000..0790c4f86c1 --- /dev/null +++ b/docs/content/en/methods/site/Data.md @@ -0,0 +1,15 @@ +--- +title: Data +description: Returns a data structure composed from the files in the data directory. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: map + signatures: [SITE.Data] +expiryDate: '2028-02-18' # deprecated 2026-02-18 in v0.156.0 +--- + +{{< deprecated-in 0.156.0 >}} +Use [`hugo.Data`](/functions/hugo/data/) instead. +{{< /deprecated-in >}} diff --git a/docs/content/en/methods/site/Dimension.md b/docs/content/en/methods/site/Dimension.md new file mode 100644 index 00000000000..7c200164050 --- /dev/null +++ b/docs/content/en/methods/site/Dimension.md @@ -0,0 +1,36 @@ +--- +title: Dimension +description: Returns the dimension object for the given dimension for the given site. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.SiteDimension + signatures: [SITE.Dimension DIMENSION] +--- + +{{< new-in 0.153.0 />}} + +The `Dimension` method on a `Site` object returns the dimension object for the given [dimension](g). + +The `DIMENSION` argument must be one of `language`, `version`, or `role`. + +Example|Returns|Equivalent to +:--|:--|:-- +`{{ .Site.Dimension "language" }}`|`langs.Language`|`{{ .Site.Language }}` +`{{ .Site.Dimension "version" }}`|`version.Version`|`{{ .Site.Version }}` +`{{ .Site.Dimension "role" }}`|`roles.Role`|`{{ .Site.Role }}` + +```go-html-template +{{ $languageObject := .Site.Dimension "language" }} +{{ $languageObject.IsDefault }} → true +{{ $languageObject.Name }} → en + +{{ $versionObject := .Site.Dimension "version" }} +{{ $versionObject.IsDefault }} → true +{{ $versionObject.Name }} → v1.0.0 + +{{ $roleObject := .Site.Dimension "role" }} +{{ $roleObject.IsDefault }} → true +{{ $roleObject.Name }} → guest +``` diff --git a/docs/content/en/methods/site/GetPage.md b/docs/content/en/methods/site/GetPage.md new file mode 100644 index 00000000000..fab6e04652e --- /dev/null +++ b/docs/content/en/methods/site/GetPage.md @@ -0,0 +1,105 @@ +--- +title: GetPage +description: Returns a Page object from the given path. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Page + signatures: [SITE.GetPage PATH] +--- + +The `GetPage` method is also available on `Page` objects, allowing you to specify a path relative to the current page. See [details]. + +[details]: /methods/page/getpage/ + +When using the `GetPage` method on a `Site` object, specify a path relative to the `content` directory. + +If Hugo cannot resolve the path to a page, the method returns nil. + +Consider this content structure: + +```text +content/ +├── works/ +│ ├── paintings/ +│ │ ├── _index.md +│ │ ├── starry-night.md +│ │ └── the-mona-lisa.md +│ ├── sculptures/ +│ │ ├── _index.md +│ │ ├── david.md +│ │ └── the-thinker.md +│ └── _index.md +└── _index.md +``` + +This _home_ template: + +```go-html-template {file="layouts/home.html"} +{{ with .Site.GetPage "/works/paintings" }} +
+{{ end }} +``` + +Is rendered to: + +```html +
+```
+
+To get a regular page instead of a section page:
+
+```go-html-template {file="layouts/home.html"}
+{{ with .Site.GetPage "/works/paintings/starry-night" }}
+ {{ .Title }} → Starry Night
+ {{ .Params.artist }} → Vincent van Gogh
+{{ end }}
+```
+
+## Multilingual projects
+
+With multilingual projects, the `GetPage` method on a `Site` object resolves the given path to a page in the current language.
+
+To get a page from a different language, query the `Sites` object:
+
+```go-html-template
+{{ with where hugo.Sites "Language.Name" "eq" "de" }}
+ {{ with index . 0 }}
+ {{ with .GetPage "/works/paintings/starry-night" }}
+ {{ .Title }} → Sternenklare Nacht
+ {{ end }}
+ {{ end }}
+{{ end }}
+```
+
+## Page bundles
+
+Consider this content structure:
+
+```text
+content/
+├── headless/
+│ ├── a.jpg
+│ ├── b.jpg
+│ ├── c.jpg
+│ └── index.md <-- front matter: headless = true
+└── _index.md
+```
+
+In the _home_ template, use the `GetPage` method on a `Site` object to render all the images in the headless [page bundle](g):
+
+```go-html-template {file="layouts/home.html"}
+{{ with .Site.GetPage "/headless" }}
+ {{ range .Resources.ByType "image" }}
+
+ {{ end }}
+{{ end }}
+```
diff --git a/docs/content/en/methods/site/Home.md b/docs/content/en/methods/site/Home.md
new file mode 100644
index 00000000000..57b2ceaae6d
--- /dev/null
+++ b/docs/content/en/methods/site/Home.md
@@ -0,0 +1,39 @@
+---
+title: Home
+description: Returns the home Page object for the given site.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: page.Page
+ signatures: [SITE.Home]
+---
+
+The `Home` method on a `Site` object is a convenient way to access the home page, and is functionally equivalent to:
+
+```go-html-template
+{{ .Site.GetPage "/" }}
+```
+
+Because it returns a `Page` object, you can use any of the available [page methods][] by chaining them. For example:
+
+```go-html-template
+{{ .Site.Home.Store.Set "greeting" "Hello" }}
+```
+
+This method is commonly used to generate a link to the home page. For example:
+
+Project configuration:
+
+{{< code-toggle file=hugo >}}
+baseURL = 'https://example.org/docs/'
+{{< /code-toggle >}}
+
+Template:
+
+```go-html-template
+{{ .Site.Home.Permalink }} → https://example.org/docs/
+{{ .Site.Home.RelPermalink }} → /docs/
+```
+
+[page methods]: /methods/page/
diff --git a/docs/content/en/methods/site/IsDefault.md b/docs/content/en/methods/site/IsDefault.md
new file mode 100644
index 00000000000..543bc4f5249
--- /dev/null
+++ b/docs/content/en/methods/site/IsDefault.md
@@ -0,0 +1,50 @@
+---
+title: IsDefault
+description: Reports whether the given site is the default site across all dimensions.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [SITE.IsDefault]
+---
+
+{{< new-in 0.156.0 />}}
+
+The `IsDefault` method on a `Site` object reports whether the given site is the [default site](g) across all dimensions: [language](g), [version](g), and [role](g). This is useful to ensure that a block of code executes only once per build, regardless of the number of [sites](g) generated by your [dimensions](g).
+
+For example, the following configuration defines a matrix of sites across language and version dimensions.
+
+{{< code-toggle file=hugo >}}
+[languages.de]
+contentDir = 'content/de'
+direction = 'ltr'
+label = 'Deutsch'
+locale = 'de-DE'
+title = 'Projekt Dokumentation'
+weight = 1
+
+[languages.en]
+contentDir = 'content/en'
+direction = 'ltr'
+label = 'English'
+locale = 'en-US'
+title = 'Project Documentation'
+weight = 2
+
+[versions.'v1.0.0']
+[versions.'v2.0.0']
+[versions.'v3.0.0']
+{{< /code-toggle >}}
+
+If you call an initialization partial to handle one-time build logic or global variable setup, wrap that call in an [`if`][] statement using this function. This prevents the logic from being executed for every dimensional variation.
+
+```go-html-template
+{{ if .Site.IsDefault }}
+ {{ partial "init.html" . }}
+{{ end }}
+```
+
+In this setup, the code block is only executed for the English version v3.0.0 site. English is selected because it has the lowest weight, and version v3.0.0 is selected because it is the first version when sorted semantically in descending order.
+
+[`if`]: /functions/go-template/if/
diff --git a/docs/content/en/methods/site/Language.md b/docs/content/en/methods/site/Language.md
new file mode 100644
index 00000000000..6f2f013e7f1
--- /dev/null
+++ b/docs/content/en/methods/site/Language.md
@@ -0,0 +1,122 @@
+---
+title: Language
+description: Returns the Language object for the given site.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: langs.Language
+ signatures: [SITE.Language]
+---
+
+The `Language` method on a `Site` object returns the `Language` object for the given site, derived from the language definition in your project configuration.
+
+You can also use the `Language` method on a `Page` object. See [details][].
+
+## Methods
+
+The examples below assume the following language definition.
+
+{{< code-toggle file=hugo >}}
+[languages.de]
+direction = 'ltr'
+label = 'Deutsch'
+locale = 'de-DE'
+weight = 2
+{{< /code-toggle >}}
+
+### Direction
+
+{{< new-in 0.158.0 />}}
+
+(`string`) Returns the [`direction`][] from the language definition.
+
+```go-html-template
+{{ .Site.Language.Direction }} → ltr
+```
+
+### IsDefault
+
+{{< new-in 0.153.0 />}}
+
+(`bool`) Reports whether this is the [default language][].
+
+```go-html-template
+{{ .Site.Language.IsDefault }} → true
+```
+
+### Label
+
+{{< new-in 0.158.0 />}}
+
+(`string`) Returns the [`label`][] from the language definition.
+
+```go-html-template
+{{ .Site.Language.Label }} → Deutsch
+```
+
+### Lang
+
+{{
+{{ end }} +``` diff --git a/docs/content/en/methods/site/Menus.md b/docs/content/en/methods/site/Menus.md new file mode 100644 index 00000000000..0c8509e92ae --- /dev/null +++ b/docs/content/en/methods/site/Menus.md @@ -0,0 +1,89 @@ +--- +title: Menus +description: Returns a collection of menu objects for the given site. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: navigation.Menus + signatures: [SITE.Menus] +--- + +The `Menus` method on a `Site` object returns a collection of menus, where each menu contains one or more entries, either flat or nested. Each entry points to a page within the site, or to an external resource. + +> [!note] +> Menus can be defined and localized in several ways. Please see the [menus] section for a complete explanation and examples. + +A site can have multiple menus. For example, a main menu and a footer menu: + +{{< code-toggle file=hugo >}} +[[menus.main]] +name = 'Home' +pageRef = '/' +weight = 10 + +[[menus.main]] +name = 'Books' +pageRef = '/books' +weight = 20 + +[[menus.main]] +name = 'Films' +pageRef = '/films' +weight = 30 + +[[menus.footer]] +name = 'Legal' +pageRef = '/legal' +weight = 10 + +[[menus.footer]] +name = 'Privacy' +pageRef = '/privacy' +weight = 20 +{{< /code-toggle >}} + +This template renders the main menu: + +```go-html-template +{{ with site.Menus.main }} + +{{ end }} +``` + +When viewing the home page, the result is: + +```html + +``` + +When viewing the "books" page, the result is: + +```html + +``` + +You will typically render a menu using a _partial_ template. As the active menu entry will be different on each page, use the [`partial`] function to call the template. Do not use the [`partialCached`] function. + +The example above is simplistic. Please see the [menu templates] section for more information. + +[`partial`]: /functions/partials/include/ +[`partialCached`]: /functions/partials/includecached/ +[menu templates]: /templates/menu/ +[menus]: /content-management/menus/ diff --git a/docs/content/en/methods/site/Pages.md b/docs/content/en/methods/site/Pages.md new file mode 100644 index 00000000000..a6ba5e02923 --- /dev/null +++ b/docs/content/en/methods/site/Pages.md @@ -0,0 +1,22 @@ +--- +title: Pages +description: Returns a collection of all pages. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [SITE.Pages] +--- + +This method returns all page [kinds](g) in the current language, in the [default sort order](g). That includes the home page, section pages, taxonomy pages, term pages, and regular pages. + +In most cases you should use the [`RegularPages`] method instead. + +[`RegularPages`]: /methods/site/regularpages/ + +```go-html-template +{{ range .Site.Pages }} +
+{{ end }} +``` diff --git a/docs/content/en/methods/site/Param.md b/docs/content/en/methods/site/Param.md new file mode 100644 index 00000000000..b2ec5d9bbb0 --- /dev/null +++ b/docs/content/en/methods/site/Param.md @@ -0,0 +1,28 @@ +--- +title: Param +description: Returns the site parameter with the given key. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: any + signatures: [SITE.Param KEY] +--- + +The `Param` method on a `Site` object is a convenience method to return the value of a user-defined parameter in your project configuration. + +{{< code-toggle file=hugo >}} +[params] +display_toc = true +{{< /code-toggle >}} + +```go-html-template +{{ .Site.Param "display_toc" }} → true +``` + +The above is equivalent to either of these: + +```go-html-template +{{ .Site.Params.display_toc }} +{{ index .Site.Params "display_toc" }} +``` diff --git a/docs/content/en/methods/site/Params.md b/docs/content/en/methods/site/Params.md new file mode 100644 index 00000000000..62bc8f1f5c3 --- /dev/null +++ b/docs/content/en/methods/site/Params.md @@ -0,0 +1,42 @@ +--- +title: Params +description: Returns a map of custom parameters as defined in your project configuration. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Params + signatures: [SITE.Params] +--- + +With this project configuration: + +{{< code-toggle file=hugo >}} +[params] + subtitle = 'The Best Widgets on Earth' + copyright-year = '2023' + [params.author] + email = 'jsmith@example.org' + name = 'John Smith' + [params.layouts] + rfc_1123 = 'Mon, 02 Jan 2006 15:04:05 MST' + rfc_3339 = '2006-01-02T15:04:05-07:00' +{{< /code-toggle >}} + +Access the custom parameters by [chaining](g) the [identifiers](g): + +```go-html-template +{{ .Site.Params.subtitle }} → The Best Widgets on Earth +{{ .Site.Params.author.name }} → John Smith + +{{ $layout := .Site.Params.layouts.rfc_1123 }} +{{ .Site.Lastmod.Format $layout }} → Tue, 17 Oct 2023 13:21:02 PDT +``` + +In the template example above, each of the keys is a valid identifier. For example, none of the keys contains a hyphen. To access a key that is not a valid identifier, use the [`index`] function: + +```go-html-template +{{ index .Site.Params "copyright-year" }} → 2023 +``` + +[`index`]: /functions/collections/indexfunction/ diff --git a/docs/content/en/methods/site/RegularPages.md b/docs/content/en/methods/site/RegularPages.md new file mode 100644 index 00000000000..69a460529e6 --- /dev/null +++ b/docs/content/en/methods/site/RegularPages.md @@ -0,0 +1,32 @@ +--- +title: RegularPages +description: Returns a collection of all regular pages. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [SITE.RegularPages] +--- + +The `RegularPages` method on a `Site` object returns a collection of all [regular pages](g), in the [default sort order](g). + +```go-html-template +{{ range .Site.RegularPages }} +
+{{ end }} +``` + +{{% glossary-term "default sort order" %}} + +[default sort order](g) + +To change the sort order, use any of the `Pages` [sorting methods]. For example: + +```go-html-template +{{ range .Site.RegularPages.ByTitle }} +
+{{ end }} +``` + +[sorting methods]: /methods/pages/ diff --git a/docs/content/en/methods/site/Role.md b/docs/content/en/methods/site/Role.md new file mode 100644 index 00000000000..b8aee5f4a68 --- /dev/null +++ b/docs/content/en/methods/site/Role.md @@ -0,0 +1,34 @@ +--- +title: Role +description: Returns the Role object for the given site. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: roles.Role + signatures: [SITE.Role] +--- + +{{< new-in 0.153.0 />}} + +The `Role` method on a `Site` object returns the `Role` object for the given site, derived from the role definition in your project configuration. + +## Methods + +### IsDefault + +(`bool`) Reports whether this is the [default role][]. + +```go-html-template +{{ .Site.Role.IsDefault }} → true +``` + +### Name + +(`string`) Returns the role name. This is the lowercased key from your project configuration. + +```go-html-template +{{ .Site.Role.Name }} → guest +``` + +[default role]: /quick-reference/glossary/#default-role diff --git a/docs/content/en/methods/site/Sections.md b/docs/content/en/methods/site/Sections.md new file mode 100644 index 00000000000..0ddaf062653 --- /dev/null +++ b/docs/content/en/methods/site/Sections.md @@ -0,0 +1,40 @@ +--- +title: Sections +description: Returns a collection of top-level section pages. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Pages + signatures: [SITE.Sections] +--- + +The `Sections` method on a `Site` object returns a collection of top-level [section pages](g), in the [default sort order](g). + +Given this content structure: + +```text +content/ +├── books/ +│ ├── book-1.md +│ └── book-2.md +├── films/ +│ ├── film-1.md +│ └── film-2.md +└── _index.md +``` + +This template: + +```go-html-template +{{ range .Site.Sections }} +
+{{ end }} +``` + +Is rendered to: + +```html +
+
+``` diff --git a/docs/content/en/methods/site/Sites.md b/docs/content/en/methods/site/Sites.md new file mode 100644 index 00000000000..ef7ff8bbdde --- /dev/null +++ b/docs/content/en/methods/site/Sites.md @@ -0,0 +1,15 @@ +--- +title: Sites +description: Returns a collection of all sites for all dimensions. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.Sites + signatures: [SITE.Sites] +expiryDate: '2028-02-18' # deprecated 2026-02-18 in v0.156.0 +--- + +{{< deprecated-in 0.156.0 >}} +Use [`hugo.Sites`](/functions/hugo/sites/) instead. +{{< /deprecated-in >}} diff --git a/docs/content/en/methods/site/Store.md b/docs/content/en/methods/site/Store.md new file mode 100644 index 00000000000..6c6d57a900f --- /dev/null +++ b/docs/content/en/methods/site/Store.md @@ -0,0 +1,117 @@ +--- +title: Store +description: Returns a "scratch pad" to store and manipulate data, scoped to the current site. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: maps.Scratch + signatures: [site.Store] +--- + +{{< new-in 0.139.0 />}} + +Use the `Store` method on a `Site` object to create a [scratch pad](g) to store and manipulate data, scoped to the current site. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. + +## Methods + +### Set + +Sets the value of a given key. + +```go-html-template +{{ site.Store.Set "greeting" "Hello" }} +``` + +### Get + +Gets the value of a given key. + +```go-html-template +{{ site.Store.Set "greeting" "Hello" }} +{{ site.Store.Get "greeting" }} → Hello +``` + +### Add + +Adds a given value to existing value(s) of the given key. + +For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. + +```go-html-template +{{ site.Store.Set "greeting" "Hello" }} +{{ site.Store.Add "greeting" "Welcome" }} +{{ site.Store.Get "greeting" }} → HelloWelcome +``` + +```go-html-template +{{ site.Store.Set "total" 3 }} +{{ site.Store.Add "total" 7 }} +{{ site.Store.Get "total" }} → 10 +``` + +```go-html-template +{{ site.Store.Set "greetings" (slice "Hello") }} +{{ site.Store.Add "greetings" (slice "Welcome" "Cheers") }} +{{ site.Store.Get "greetings" }} → [Hello Welcome Cheers] + ``` + +### SetInMap + +Takes a `key`, `mapKey` and `value` and adds a map of `mapKey` and `value` to the given `key`. + +```go-html-template +{{ site.Store.SetInMap "greetings" "english" "Hello" }} +{{ site.Store.SetInMap "greetings" "french" "Bonjour" }} +{{ site.Store.Get "greetings" }} → map[english:Hello french:Bonjour] +``` + +### DeleteInMap + +Takes a `key` and `mapKey` and removes the map of `mapKey` from the given `key`. + +```go-html-template +{{ site.Store.SetInMap "greetings" "english" "Hello" }} +{{ site.Store.SetInMap "greetings" "french" "Bonjour" }} +{{ site.Store.DeleteInMap "greetings" "english" }} +{{ site.Store.Get "greetings" }} → map[french:Bonjour] +``` + +### GetSortedMapValues + +Returns an array of values from `key` sorted by `mapKey`. + +```go-html-template +{{ site.Store.SetInMap "greetings" "english" "Hello" }} +{{ site.Store.SetInMap "greetings" "french" "Bonjour" }} +{{ site.Store.GetSortedMapValues "greetings" }} → [Hello Bonjour] +``` + +### Delete + +Removes the given key. + +```go-html-template +{{ site.Store.Set "greeting" "Hello" }} +{{ site.Store.Delete "greeting" }} +``` + +{{% include "_common/scratch-pad-scope.md" %}} + +## Determinate values + +The `Store` method is often used to set scratch pad values within a _shortcode_ template, a _partial_ template called by a _shortcode_ template, or by a _render hook_ template. In all three cases, the scratch pad values are indeterminate until Hugo renders the page content. + +If you need to access a scratch pad value from a parent template, and the parent template has not yet rendered the page content, you can trigger content rendering by assigning the returned value to a [noop](g) variable: + +```go-html-template +{{ $noop := .Content }} +{{ site.Store.Get "mykey" }} +``` + +You can also trigger content rendering with the `ContentWithoutSummary`, `FuzzyWordCount`, `Len`, `Plain`, `PlainWords`, `ReadingTime`, `Summary`, `Truncated`, and `WordCount` methods. For example: + +```go-html-template +{{ $noop := .WordCount }} +{{ site.Store.Get "mykey" }} +``` diff --git a/docs/content/en/methods/site/Taxonomies.md b/docs/content/en/methods/site/Taxonomies.md new file mode 100644 index 00000000000..4417c9ef735 --- /dev/null +++ b/docs/content/en/methods/site/Taxonomies.md @@ -0,0 +1,181 @@ +--- +title: Taxonomies +description: Returns a data structure containing the site's Taxonomy objects, the terms within each Taxonomy object, and the pages to which the terms are assigned. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.TaxonomyList + signatures: [SITE.Taxonomies] +--- + +Conceptually, the `Taxonomies` method on a `Site` object returns a data structure such as: + + +{{< code-toggle file=hugo >}} +taxonomy a: + - term 1: + - page 1 + - page 2 + - term 2: + - page 1 +taxonomy b: + - term 1: + - page 2 + - term 2: + - page 1 + - page 2 +{{< /code-toggle >}} + + +For example, on a book review site you might create two taxonomies; one for genres and another for authors. + +With this project configuration: + +{{< code-toggle file=hugo >}} +[taxonomies] +genre = 'genres' +author = 'authors' +{{< /code-toggle >}} + +And this content structure: + +```text +content/ +├── books/ +│ ├── and-then-there-were-none.md --> genres: suspense +│ ├── death-on-the-nile.md --> genres: suspense +│ └── jamaica-inn.md --> genres: suspense, romance +│ └── pride-and-prejudice.md --> genres: romance +└── _index.md +``` + +Conceptually, the taxonomies data structure looks like: + + +{{< code-toggle file=hugo >}} +genres: + - suspense: + - And Then There Were None + - Death on the Nile + - Jamaica Inn + - romance: + - Jamaica Inn + - Pride and Prejudice +authors: + - achristie: + - And Then There Were None + - Death on the Nile + - ddmaurier: + - Jamaica Inn + - jausten: + - Pride and Prejudice +{{< /code-toggle >}} + + +To list the "suspense" books: + +```go-html-template +
+``` + +Hugo renders this to: + +```html +
+``` + +> [!note] +> Hugo's taxonomy system is powerful, allowing you to classify content and create relationships between pages. +> +> Please see the [taxonomies] section for a complete explanation and examples. + +## Examples + +### List content with the same taxonomy term + +If you are using a taxonomy for something like a series of posts, you can list individual pages associated with the same term. For example: + +```go-html-template +
+``` + +### List all content in a given taxonomy + +This would be very useful in a sidebar as “featured content”. You could even have different sections of “featured content” by assigning different terms to the content. + +```go-html-template + +``` + +### Render a site's taxonomies + +The following example displays all terms in a site's tags taxonomy: + +```go-html-template +
+``` + +This example will list all taxonomies and their terms, as well as all the content assigned to each of the terms. + +```go-html-template {file="layouts/_partials/all-taxonomies.html"} +{{ with .Site.Taxonomies }} + {{ $numberOfTerms := 0 }} + {{ range $taxonomy, $terms := . }} + {{ $numberOfTerms = len . | add $numberOfTerms }} + {{ end }} + + {{ if gt $numberOfTerms 0 }} +
+ {{ end }} +{{ end }} +``` + +[taxonomies]: /content-management/taxonomies/ diff --git a/docs/content/en/methods/site/Title.md b/docs/content/en/methods/site/Title.md new file mode 100644 index 00000000000..ad8a48c3cbc --- /dev/null +++ b/docs/content/en/methods/site/Title.md @@ -0,0 +1,22 @@ +--- +title: Title +description: Returns the title as defined in your project configuration. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: string + signatures: [SITE.Title] +--- + +Project configuration: + +{{< code-toggle file=hugo >}} +title = 'My Documentation Site' +{{< /code-toggle >}} + +Template: + +```go-html-template +{{ .Site.Title }} → My Documentation Site +``` diff --git a/docs/content/en/methods/site/Version.md b/docs/content/en/methods/site/Version.md new file mode 100644 index 00000000000..d424d4666ed --- /dev/null +++ b/docs/content/en/methods/site/Version.md @@ -0,0 +1,34 @@ +--- +title: Version +description: Returns the Version object for the given site. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: versions.Version + signatures: [SITE.Version] +--- + +{{< new-in 0.153.0 />}} + +The `Version` method on a `Site` object returns the `Version` object for the given site, derived from the version definition in your project configuration. + +## Methods + +### IsDefault + +(`bool`) Reports whether this is the [default version][]. + +```go-html-template +{{ .Site.Version.IsDefault }} → true +``` + +### Name + +(`string`) Returns the version name. This is the lowercased key from your project configuration. + +```go-html-template +{{ .Site.Version.Name }} → v1.0.0 +``` + +[default version]: /quick-reference/glossary/#default-version diff --git a/docs/content/en/methods/site/_index.md b/docs/content/en/methods/site/_index.md new file mode 100644 index 00000000000..4f878a10029 --- /dev/null +++ b/docs/content/en/methods/site/_index.md @@ -0,0 +1,8 @@ +--- +title: Site methods +linkTitle: Site +description: Use these methods with a Site object. +categories: [] +keywords: [] +aliases: [/variables/site/] +--- diff --git a/docs/content/en/methods/taxonomy/Alphabetical.md b/docs/content/en/methods/taxonomy/Alphabetical.md new file mode 100644 index 00000000000..af4af596c38 --- /dev/null +++ b/docs/content/en/methods/taxonomy/Alphabetical.md @@ -0,0 +1,69 @@ +--- +title: Alphabetical +description: Returns an ordered taxonomy, sorted alphabetically by term. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.OrderedTaxonomy + signatures: [TAXONOMY.Alphabetical] +--- + +The `Alphabetical` method on a `Taxonomy` object returns an [ordered taxonomy](g), sorted alphabetically by [term](g). + +While a `Taxonomy` object is a [map](g), an ordered taxonomy is a [slice](g), where each element is an object that contains the term and a slice of its [weighted pages](g). + +{{% include "/_common/methods/taxonomy/get-a-taxonomy-object.md" %}} + +## Get the ordered taxonomy + +Now that we have captured the “genres” Taxonomy object, let's get the ordered taxonomy sorted alphabetically by term: + +```go-html-template +{{ $taxonomyObject.Alphabetical }} +``` + +To reverse the sort order: + +```go-html-template +{{ $taxonomyObject.Alphabetical.Reverse }} +``` + +To inspect the data structure: + +```go-html-template +
{{ debug.Dump $taxonomyObject.Alphabetical }}+``` + +{{% include "/_common/methods/taxonomy/ordered-taxonomy-element-methods.md" %}} + +## Example + +With this template: + +```go-html-template +{{ range $taxonomyObject.Alphabetical }} +
+
+{{ end }} +``` + +Hugo renders: + +```html +
+
+
+
+``` diff --git a/docs/content/en/methods/taxonomy/ByCount.md b/docs/content/en/methods/taxonomy/ByCount.md new file mode 100644 index 00000000000..196b3176938 --- /dev/null +++ b/docs/content/en/methods/taxonomy/ByCount.md @@ -0,0 +1,69 @@ +--- +title: ByCount +description: Returns an ordered taxonomy, sorted by the number of pages associated with each term. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.OrderedTaxonomy + signatures: [TAXONOMY.ByCount] +--- + +The `ByCount` method on a `Taxonomy` object returns an [ordered taxonomy](g), sorted by the number of pages associated with each [term](g), then sorted alphabetically by term in the event of a tie. + +While a `Taxonomy` object is a [map](g), an ordered taxonomy is a [slice](g), where each element is an object that contains the term and a slice of its [weighted pages](g). + +{{% include "/_common/methods/taxonomy/get-a-taxonomy-object.md" %}} + +## Get the ordered taxonomy + +Now that we have captured the “genres” Taxonomy object, let's get the ordered taxonomy sorted by the number of pages associated with each term: + +```go-html-template +{{ $taxonomyObject.ByCount }} +``` + +To reverse the sort order: + +```go-html-template +{{ $taxonomyObject.ByCount.Reverse }} +``` + +To inspect the data structure: + +```go-html-template +
{{ debug.Dump $taxonomyObject.ByCount }}+``` + +{{% include "/_common/methods/taxonomy/ordered-taxonomy-element-methods.md" %}} + +## Example + +With this template: + +```go-html-template +{{ range $taxonomyObject.ByCount }} +
+
+{{ end }} +``` + +Hugo renders: + +```html +
+
+
+
+``` diff --git a/docs/content/en/methods/taxonomy/Count.md b/docs/content/en/methods/taxonomy/Count.md new file mode 100644 index 00000000000..76af8ee04cf --- /dev/null +++ b/docs/content/en/methods/taxonomy/Count.md @@ -0,0 +1,22 @@ +--- +title: Count +description: Returns the number of number of weighted pages to which the given term has been assigned. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: int + signatures: [TAXONOMY.Count TERM] +--- + +The `Count` method on a `Taxonomy` object returns the number of number of [weighted pages](g) to which the given [term](g) has been assigned. + +{{% include "/_common/methods/taxonomy/get-a-taxonomy-object.md" %}} + +## Count the weighted pages + +Now that we have captured the "genres" `Taxonomy` object, let's count the number of weighted pages to which the "suspense" term has been assigned: + +```go-html-template +{{ $taxonomyObject.Count "suspense" }} → 3 +``` diff --git a/docs/content/en/methods/taxonomy/Get.md b/docs/content/en/methods/taxonomy/Get.md new file mode 100644 index 00000000000..03c184868c1 --- /dev/null +++ b/docs/content/en/methods/taxonomy/Get.md @@ -0,0 +1,67 @@ +--- +title: Get +description: Returns a slice of weighted pages to which the given term has been assigned. +categories: [] +keywords: [] +params: + functions_and_methods: + returnType: page.WeightedPages + signatures: [TAXONOMY.Get TERM] +--- + +The `Get` method on a `Taxonomy` object returns a slice of [weighted pages](g) to which the given [term](g) has been assigned. + +{{% include "/_common/methods/taxonomy/get-a-taxonomy-object.md" %}} + +## Get the weighted pages + +Now that we have captured the "genres" `Taxonomy` object, let's get the weighted pages to which the "suspense" term has been assigned: + +```go-html-template +{{ $weightedPages := $taxonomyObject.Get "suspense" }} +``` + +The above is equivalent to: + +```go-html-template +{{ $weightedPages := $taxonomyObject.suspense }} +``` + +But, if the term is not a valid [identifier](g), you cannot use the [chaining](g) syntax. For example, this will throw an error because the identifier contains a hyphen: + +```go-html-template +{{ $weightedPages := $taxonomyObject.my-genre }} +``` + +You could also use the [`index`] function, but the syntax is more verbose: + +```go-html-template +{{ $weightedPages := index $taxonomyObject "my-genre" }} +``` + +To inspect the data structure: + +```go-html-template +
{{ debug.Dump $weightedPages }}+``` + +## Example + +With this template: + +```go-html-template +{{ $weightedPages := $taxonomyObject.Get "suspense" }} +{{ range $weightedPages }} +
+{{ end }} +``` + +Hugo renders: + +```html +
+
+
+```
+
+[`index`]: /functions/collections/indexfunction/
diff --git a/docs/content/en/methods/taxonomy/Page.md b/docs/content/en/methods/taxonomy/Page.md
new file mode 100644
index 00000000000..628148e4d16
--- /dev/null
+++ b/docs/content/en/methods/taxonomy/Page.md
@@ -0,0 +1,24 @@
+---
+title: Page
+description: Returns the taxonomy page or nil if the taxonomy has no terms.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: page.Page
+ signatures: [TAXONOMY.Page]
+---
+
+This `TAXONOMY` method returns nil if the taxonomy has no terms, so you must code defensively:
+
+```go-html-template
+{{ with .Site.Taxonomies.tags.Page }}
+ {{ .LinkTitle }}
+{{ end }}
+```
+
+This is rendered to:
+
+```html
+Tags
+```
diff --git a/docs/content/en/methods/taxonomy/_index.md b/docs/content/en/methods/taxonomy/_index.md
new file mode 100644
index 00000000000..9cf4c745699
--- /dev/null
+++ b/docs/content/en/methods/taxonomy/_index.md
@@ -0,0 +1,7 @@
+---
+title: Taxonomy methods
+linkTitle: Taxonomy
+description: Use these methods with a Taxonomy object.
+keywords: []
+aliases: [/variables/taxonomy/]
+---
diff --git a/docs/content/en/methods/time/Add.md b/docs/content/en/methods/time/Add.md
new file mode 100644
index 00000000000..e518a16332b
--- /dev/null
+++ b/docs/content/en/methods/time/Add.md
@@ -0,0 +1,20 @@
+---
+title: Add
+description: Returns the given time plus the given duration.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Time
+ signatures: [TIME.Add DURATION]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+
+{{ $d1 = time.ParseDuration "3h20m10s" }}
+{{ $d2 = time.ParseDuration "-3h20m10s" }}
+
+{{ $t.Add $d1 }} → 2023-01-28 03:05:08 -0800 PST
+{{ $t.Add $d2 }} → 2023-01-27 20:24:48 -0800 PST
+```
diff --git a/docs/content/en/methods/time/AddDate.md b/docs/content/en/methods/time/AddDate.md
new file mode 100644
index 00000000000..ffc93c712a7
--- /dev/null
+++ b/docs/content/en/methods/time/AddDate.md
@@ -0,0 +1,37 @@
+---
+title: AddDate
+description: Returns the time corresponding to adding the given number of years, months, and days to the given time.Time value.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Time
+ signatures: [TIME.AddDate YEARS MONTHS DAYS]
+aliases: [/functions/adddate]
+---
+
+```go-html-template
+{{ $d := "2022-01-01" | time.AsTime }}
+
+{{ $d.AddDate 0 0 1 | time.Format "2006-01-02" }} → 2022-01-02
+{{ $d.AddDate 0 1 1 | time.Format "2006-01-02" }} → 2022-02-02
+{{ $d.AddDate 1 1 1 | time.Format "2006-01-02" }} → 2023-02-02
+
+{{ $d.AddDate -1 -1 -1 | time.Format "2006-01-02" }} → 2020-11-30
+```
+
+> [!note]
+> When adding months or years, Hugo normalizes the final `time.Time` value if the resulting day does not exist. For example, adding one month to 31 January produces 2 March or 3 March, depending on the year.
+>
+> See [this explanation](https://github.com/golang/go/issues/31145#issuecomment-479067967) from the Go team.
+
+```go-html-template
+{{ $d := "2023-01-31" | time.AsTime }}
+{{ $d.AddDate 0 1 0 | time.Format "2006-01-02" }} → 2023-03-03
+
+{{ $d := "2024-01-31" | time.AsTime }}
+{{ $d.AddDate 0 1 0 | time.Format "2006-01-02" }} → 2024-03-02
+
+{{ $d := "2024-02-29" | time.AsTime }}
+{{ $d.AddDate 1 0 0 | time.Format "2006-01-02" }} → 2025-03-01
+```
diff --git a/docs/content/en/methods/time/After.md b/docs/content/en/methods/time/After.md
new file mode 100644
index 00000000000..1c8d41f640c
--- /dev/null
+++ b/docs/content/en/methods/time/After.md
@@ -0,0 +1,17 @@
+---
+title: After
+description: Reports whether TIME1 is after TIME2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [TIME1.After TIME2]
+---
+
+```go-html-template
+{{ $t1 := time.AsTime "2023-01-01T17:00:00-08:00" }}
+{{ $t2 := time.AsTime "2010-01-01T17:00:00-08:00" }}
+
+{{ $t1.After $t2 }} → true
+```
diff --git a/docs/content/en/methods/time/Before.md b/docs/content/en/methods/time/Before.md
new file mode 100644
index 00000000000..f6dc3a8e70d
--- /dev/null
+++ b/docs/content/en/methods/time/Before.md
@@ -0,0 +1,16 @@
+---
+title: Before
+description: Reports whether TIME1 is before TIME2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [TIME1.Before TIME2]
+---
+
+```go-html-template
+{{ $t1 := time.AsTime "2023-01-01T17:00:00-08:00" }}
+{{ $t2 := time.AsTime "2030-01-01T17:00:00-08:00" }}
+
+{{ $t1.Before $t2 }} → true
diff --git a/docs/content/en/methods/time/Day.md b/docs/content/en/methods/time/Day.md
new file mode 100644
index 00000000000..e9e67873cab
--- /dev/null
+++ b/docs/content/en/methods/time/Day.md
@@ -0,0 +1,15 @@
+---
+title: Day
+description: Returns the day of the month of the given time.Time value.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.Day]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Day }} → 27
+```
diff --git a/docs/content/en/methods/time/Equal.md b/docs/content/en/methods/time/Equal.md
new file mode 100644
index 00000000000..6db10423c31
--- /dev/null
+++ b/docs/content/en/methods/time/Equal.md
@@ -0,0 +1,17 @@
+---
+title: Equal
+description: Reports whether TIME1 is equal to TIME2.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [TIME1.Equal TIME2]
+---
+
+```go-html-template
+{{ $t1 := time.AsTime "2023-01-01T17:00:00-08:00" }}
+{{ $t2 := time.AsTime "2023-01-01T20:00:00-05:00" }}
+
+{{ $t1.Equal $t2 }} → true
+```
diff --git a/docs/content/en/methods/time/Format.md b/docs/content/en/methods/time/Format.md
new file mode 100644
index 00000000000..8a484b74e17
--- /dev/null
+++ b/docs/content/en/methods/time/Format.md
@@ -0,0 +1,88 @@
+---
+title: Format
+description: Returns a textual representation of the time.Time value formatted according to the layout string.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: string
+ signatures: [TIME.Format LAYOUT]
+aliases: [/methods/time/format]
+---
+
+```go-template
+{{ $t := "2023-01-27T23:44:58-08:00" }}
+{{ $t = time.AsTime $t }}
+{{ $format := "2 Jan 2006" }}
+
+{{ $t.Format $format }} → 27 Jan 2023
+```
+
+> [!note]
+> To [localize](g) the return value, use the [`time.Format`] function instead.
+
+Use the `Format` method with any `time.Time` value, including the four predefined front matter dates:
+
+```go-html-template
+{{ $format := "2 Jan 2006" }}
+
+{{ .Date.Format $format }}
+{{ .PublishDate.Format $format }}
+{{ .ExpiryDate.Format $format }}
+{{ .Lastmod.Format $format }}
+```
+
+> [!note]
+> Use the [`time.Format`] function to format string representations of dates, and to format raw TOML dates that exclude time and time zone offset.
+
+## Layout string
+
+{{% include "/_common/time-layout-string.md" %}}
+
+## Examples
+
+Given this front matter:
+
+{{< code-toggle fm=true >}}
+title = "About time"
+date = 2023-01-27T23:44:58-08:00
+{{< /code-toggle >}}
+
+The examples below were rendered in the `America/Los_Angeles` time zone:
+
+Format string|Result
+:--|:--
+`Monday, January 2, 2006`|`Friday, January 27, 2023`
+`Mon Jan 2 2006`|`Fri Jan 27 2023`
+`January 2006`|`January 2023`
+`2006-01-02`|`2023-01-27`
+`Monday`|`Friday`
+`02 Jan 06 15:04 MST`|`27 Jan 23 23:44 PST`
+`Mon, 02 Jan 2006 15:04:05 MST`|`Fri, 27 Jan 2023 23:44:58 PST`
+`Mon, 02 Jan 2006 15:04:05 -0700`|`Fri, 27 Jan 2023 23:44:58 -0800`
+
+## UTC and local time
+
+Convert and format any `time.Time` value to either Coordinated Universal Time (UTC) or local time.
+
+```go-html-template
+{{ $t := "2023-01-27T23:44:58-08:00" }}
+{{ $t = time.AsTime $t }}
+{{ $format := "2 Jan 2006 3:04:05 PM MST" }}
+
+{{ $t.UTC.Format $format }} → 28 Jan 2023 7:44:58 AM UTC
+{{ $t.Local.Format $format }} → 27 Jan 2023 11:44:58 PM PST
+```
+
+## Ordinal representation
+
+Use the [`humanize`](/functions/inflect/humanize) function to render the day of the month as an ordinal number:
+
+```go-html-template
+{{ $t := "2023-01-27T23:44:58-08:00" }}
+{{ $t = time.AsTime $t }}
+
+{{ humanize $t.Day }} of {{ $t.Format "January 2006" }} → 27th of January 2023
+```
+
+[`time.Format`]: /functions/time/format/
diff --git a/docs/content/en/methods/time/Hour.md b/docs/content/en/methods/time/Hour.md
new file mode 100644
index 00000000000..28ecf62ace6
--- /dev/null
+++ b/docs/content/en/methods/time/Hour.md
@@ -0,0 +1,15 @@
+---
+title: Hour
+description: Returns the hour within the day of the given time.Time value, in the range [0, 23].
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.Hour]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Hour }} → 23
+```
diff --git a/docs/content/en/methods/time/IsDST.md b/docs/content/en/methods/time/IsDST.md
new file mode 100644
index 00000000000..28177b105f7
--- /dev/null
+++ b/docs/content/en/methods/time/IsDST.md
@@ -0,0 +1,18 @@
+---
+title: IsDST
+description: Reports whether the given time.Time value is in Daylight Savings Time.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [TIME.IsDST]
+---
+
+```go-html-template
+{{ $t1 := time.AsTime "2023-01-01T00:00:00-08:00" }}
+{{ $t2 := time.AsTime "2023-07-01T00:00:00-07:00" }}
+
+{{ $t1.IsDST }} → false
+{{ $t2.IsDST }} → true
+```
diff --git a/docs/content/en/methods/time/IsZero.md b/docs/content/en/methods/time/IsZero.md
new file mode 100644
index 00000000000..400172794ab
--- /dev/null
+++ b/docs/content/en/methods/time/IsZero.md
@@ -0,0 +1,18 @@
+---
+title: IsZero
+description: Reports whether the given time.Time value represents the zero time instant, January 1, year 1, 00:00:00 UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: bool
+ signatures: [TIME.IsZero]
+---
+
+````go-html-template
+{{ $t1 := time.AsTime "2023-01-01T00:00:00-08:00" }}
+{{ $t2 := time.AsTime "0001-01-01T00:00:00-00:00" }}
+
+{{ $t1.IsZero }} → false
+{{ $t2.IsZero }} → true
+```
diff --git a/docs/content/en/methods/time/Local.md b/docs/content/en/methods/time/Local.md
new file mode 100644
index 00000000000..74fe889e0dd
--- /dev/null
+++ b/docs/content/en/methods/time/Local.md
@@ -0,0 +1,15 @@
+---
+title: Local
+description: Returns the given time.Time value with the location set to local time.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Time
+ signatures: [TIME.Local]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-28T07:44:58+00:00" }}
+{{ $t.Local }} → 2023-01-27 23:44:58 -0800 PST
+```
diff --git a/docs/content/en/methods/time/Minute.md b/docs/content/en/methods/time/Minute.md
new file mode 100644
index 00000000000..b53db6d8352
--- /dev/null
+++ b/docs/content/en/methods/time/Minute.md
@@ -0,0 +1,15 @@
+---
+title: Minute
+description: Returns the minute offset within the hour of the given time.Time value, in the range [0, 59].
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.Minute]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Minute }} → 44
+```
diff --git a/docs/content/en/methods/time/Month.md b/docs/content/en/methods/time/Month.md
new file mode 100644
index 00000000000..b0ccea9c398
--- /dev/null
+++ b/docs/content/en/methods/time/Month.md
@@ -0,0 +1,24 @@
+---
+title: Month
+description: Returns the month of the year of the given time.Time value.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Month
+ signatures: [TIME.Month]
+---
+
+To convert the `time.Month` value to a string:
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Month.String }} → January
+```
+
+To convert the `time.Month` value to an integer.
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Month | int }} → 1
+```
diff --git a/docs/content/en/methods/time/Nanosecond.md b/docs/content/en/methods/time/Nanosecond.md
new file mode 100644
index 00000000000..d895f962211
--- /dev/null
+++ b/docs/content/en/methods/time/Nanosecond.md
@@ -0,0 +1,15 @@
+---
+title: Nanosecond
+description: Returns the nanosecond offset within the second of the given time.Time value, in the range [0, 999999999].
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.Nanosecond]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Nanosecond }} → 0
+```
diff --git a/docs/content/en/methods/time/Round.md b/docs/content/en/methods/time/Round.md
new file mode 100644
index 00000000000..afda0e294c1
--- /dev/null
+++ b/docs/content/en/methods/time/Round.md
@@ -0,0 +1,21 @@
+---
+title: Round
+description: Returns the result of rounding TIME to the nearest multiple of DURATION since January 1, 0001, 00:00:00 UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Time
+ signatures: [TIME.Round DURATION]
+---
+
+The rounding behavior for halfway values is to round up.
+
+The `Round` method operates on TIME as an absolute duration since the [zero time](g); it does not operate on the presentation form of the time. If DURATION is a multiple of one hour, `Round` may return a time with a non-zero minute, depending on the time zone.
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $d := time.ParseDuration "1h" }}
+
+{{ ($t.Round $d).Format "2006-01-02T15:04:05-00:00" }} → 2023-01-28T00:00:00-00:00
+```
diff --git a/docs/content/en/methods/time/Second.md b/docs/content/en/methods/time/Second.md
new file mode 100644
index 00000000000..3af086fd3ca
--- /dev/null
+++ b/docs/content/en/methods/time/Second.md
@@ -0,0 +1,15 @@
+---
+title: Second
+description: Returns the second offset within the minute of the given time.Time value, in the range [0, 59].
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.Second]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Second }} → 58
+```
diff --git a/docs/content/en/methods/time/Sub.md b/docs/content/en/methods/time/Sub.md
new file mode 100644
index 00000000000..d48bf34672d
--- /dev/null
+++ b/docs/content/en/methods/time/Sub.md
@@ -0,0 +1,17 @@
+---
+title: Sub
+description: Returns the duration computed by subtracting TIME2 from TIME1.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Duration
+ signatures: [TIME1.Sub TIME2]
+---
+
+```go-html-template
+{{ $t1 := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t2 := time.AsTime "2023-01-26T22:34:38-08:00" }}
+
+{{ $t1.Sub $t2 }} → 25h10m20s
+```
diff --git a/docs/content/en/methods/time/Truncate.md b/docs/content/en/methods/time/Truncate.md
new file mode 100644
index 00000000000..b90c3847f7a
--- /dev/null
+++ b/docs/content/en/methods/time/Truncate.md
@@ -0,0 +1,19 @@
+---
+title: Truncate
+description: Returns the result of rounding TIME down to a multiple of DURATION since January 1, 0001, 00:00:00 UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Time
+ signatures: [TIME.Truncate DURATION]
+---
+
+The `Truncate` method operates on TIME as an absolute duration since the [zero time](g); it does not operate on the presentation form of the time. If DURATION is a multiple of one hour, `Truncate` may return a time with a non-zero minute, depending on the time zone.
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $d := time.ParseDuration "1h" }}
+
+{{ ($t.Truncate $d).Format "2006-01-02T15:04:05-00:00" }} → 2023-01-27T23:00:00-00:00
+```
diff --git a/docs/content/en/methods/time/UTC.md b/docs/content/en/methods/time/UTC.md
new file mode 100644
index 00000000000..e131a003eaf
--- /dev/null
+++ b/docs/content/en/methods/time/UTC.md
@@ -0,0 +1,14 @@
+---
+title: UTC
+description: Returns the given time.Time value with the location set to UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Time
+ signatures: [TIME.UTC]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.UTC }} → 2023-01-28 07:44:58 +0000 UTC
diff --git a/docs/content/en/methods/time/Unix.md b/docs/content/en/methods/time/Unix.md
new file mode 100644
index 00000000000..73deb524ee7
--- /dev/null
+++ b/docs/content/en/methods/time/Unix.md
@@ -0,0 +1,17 @@
+---
+title: Unix
+description: Returns the given time.Time value expressed as the number of seconds elapsed since January 1, 1970 UTC.
+categories: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [TIME.Unix]
+aliases: [/functions/unix]
+---
+
+See [Unix epoch](https://en.wikipedia.org/wiki/Unix_time).
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Unix }} → 1674891898
+```
diff --git a/docs/content/en/methods/time/UnixMicro.md b/docs/content/en/methods/time/UnixMicro.md
new file mode 100644
index 00000000000..fadb0916c90
--- /dev/null
+++ b/docs/content/en/methods/time/UnixMicro.md
@@ -0,0 +1,17 @@
+---
+title: UnixMicro
+description: Returns the given time.Time value expressed as the number of microseconds elapsed since January 1, 1970 UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [TIME.UnixMicro]
+---
+
+See [Unix epoch](https://en.wikipedia.org/wiki/Unix_time).
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.UnixMicro }} → 1674891898000000
+```
diff --git a/docs/content/en/methods/time/UnixMilli.md b/docs/content/en/methods/time/UnixMilli.md
new file mode 100644
index 00000000000..9d2261d9167
--- /dev/null
+++ b/docs/content/en/methods/time/UnixMilli.md
@@ -0,0 +1,17 @@
+---
+title: UnixMilli
+description: Returns the given time.Time value expressed as the number of milliseconds elapsed since January 1, 1970 UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [TIME.UnixMilli]
+---
+
+See [Unix epoch](https://en.wikipedia.org/wiki/Unix_time).
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.UnixMilli }} → 1674891898000
+```
diff --git a/docs/content/en/methods/time/UnixNano.md b/docs/content/en/methods/time/UnixNano.md
new file mode 100644
index 00000000000..4159ddee254
--- /dev/null
+++ b/docs/content/en/methods/time/UnixNano.md
@@ -0,0 +1,17 @@
+---
+title: UnixNano
+description: Returns the given time.Time value expressed as the number of nanoseconds elapsed since January 1, 1970 UTC.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int64
+ signatures: [TIME.UnixNano]
+---
+
+See [Unix epoch](https://en.wikipedia.org/wiki/Unix_time).
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.UnixNano }} → 1674891898000000000
+```
diff --git a/docs/content/en/methods/time/Weekday.md b/docs/content/en/methods/time/Weekday.md
new file mode 100644
index 00000000000..da939ff8750
--- /dev/null
+++ b/docs/content/en/methods/time/Weekday.md
@@ -0,0 +1,23 @@
+---
+title: Weekday
+description: Returns the day of the week of the given time.Time value.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: time.Weekday
+ signatures: [TIME.Weekday]
+---
+
+To convert the `time.Weekday` value to a string:
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Weekday.String }} → Friday
+```
+
+To convert the `time.Weekday` value to an integer.
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Weekday | int }} → 5
diff --git a/docs/content/en/methods/time/Year.md b/docs/content/en/methods/time/Year.md
new file mode 100644
index 00000000000..3f647ea343a
--- /dev/null
+++ b/docs/content/en/methods/time/Year.md
@@ -0,0 +1,15 @@
+---
+title: Year
+description: Returns the year of the given time.Time value.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.Year]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.Year }} → 2023
+```
diff --git a/docs/content/en/methods/time/YearDay.md b/docs/content/en/methods/time/YearDay.md
new file mode 100644
index 00000000000..a93158b4553
--- /dev/null
+++ b/docs/content/en/methods/time/YearDay.md
@@ -0,0 +1,15 @@
+---
+title: YearDay
+description: Returns the day of the year of the given time.Time value, in the range [1, 365] for non-leap years, and [1, 366] in leap years.
+categories: []
+keywords: []
+params:
+ functions_and_methods:
+ returnType: int
+ signatures: [TIME.YearDay]
+---
+
+```go-html-template
+{{ $t := time.AsTime "2023-01-27T23:44:58-08:00" }}
+{{ $t.YearDay }} → 27
+```
diff --git a/docs/content/en/methods/time/_index.md b/docs/content/en/methods/time/_index.md
new file mode 100644
index 00000000000..067d91a7e6f
--- /dev/null
+++ b/docs/content/en/methods/time/_index.md
@@ -0,0 +1,7 @@
+---
+title: Time methods
+linkTitle: Time
+description: Use these methods with a time.Time value.
+categories: []
+keywords: []
+---
diff --git a/docs/content/en/myshowcase/bio.md b/docs/content/en/myshowcase/bio.md
deleted file mode 100644
index 7d1b30895ba..00000000000
--- a/docs/content/en/myshowcase/bio.md
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Add some **general info** about Myshowcase here.
-
-The site is built by:
-
-* [Person 1](https://example.com)
-* [Person 1](https://example.com)
-
diff --git a/docs/content/en/myshowcase/featured.png b/docs/content/en/myshowcase/featured.png
deleted file mode 100644
index 4f390132eb1..00000000000
Binary files a/docs/content/en/myshowcase/featured.png and /dev/null differ
diff --git a/docs/content/en/myshowcase/index.md b/docs/content/en/myshowcase/index.md
deleted file mode 100644
index 08ea1e55f94..00000000000
--- a/docs/content/en/myshowcase/index.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-
-title: Myshowcase
-date: 2021-01-14
-
-description: "A short description of this page."
-
-# The URL to the site on the internet.
-siteURL: https://gohugo.io/
-
-# Link to the site's Hugo source code if public and you can/want to share.
-# Remove or leave blank if not needed/wanted.
-siteSource: https://github.com/gohugoio/hugoDocs
-
-# Add credit to the article author. Leave blank or remove if not needed/wanted.
-byline: "[bep](https://github.com/bep), Hugo Lead"
-
----
-
-To complete this showcase:
-
-1. Write the story about your site in this file.
-2. Add a summary to the `bio.md` file in this folder.
-3. Replace the `featured-template.png` with a screenshot of your site. You can rename it, but it must contain the word `featured`.
-4. Create a new pull request in https://github.com/gohugoio/hugoDocs/pulls
-
-The content of this bundle explained:
-
-index.md
-: The main content file. Fill in required front matter metadata and write your story. I does not have to be a novel. It can even be self-promotional, but it should include Hugo in some form.
-
-bio.md
-: A short summary of the website. Site credits (who built it) fits nicely here.
-
-featured.png
-: A reasonably sized screenshot of your website. It can be named anything, but the name must start with "featured". The sample image is `1500x750` (2:1 aspect ratio).
-
diff --git a/docs/content/en/news/0.10-relnotes/index.md b/docs/content/en/news/0.10-relnotes/index.md
deleted file mode 100644
index 060998ba0be..00000000000
--- a/docs/content/en/news/0.10-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-date: 2014-03-01T17:21:33Z
-description: "Hugo 0.10 brings syntax highlighting (powered by Pygments), automatic table of contents generation, support for Unicode, and a lot more!"
-title: "Hugo 0.10"
-categories: ["Releases"]
----
-
-- [Syntax highlighting](http://hugo.spf13.com/extras/highlighting) powered by pygments (**slow**)
-- Ability to [sort content](http://hugo.spf13.com/content/ordering) many more ways
-- Automatic [table of contents](http://hugo.spf13.com/extras/toc) generation
-- Support for unicode URLs, aliases and indexes
-- Configurable per-section [permalink](http://hugo.spf13.com/extras/permalinks) pattern support
-- Support for [paired shortcodes](http://hugo.spf13.com/extras/shortcodes)
-- Shipping with some [shortcodes](http://hugo.spf13.com/extras/shortcodes) (highlight & figure)
-- Adding [canonify](http://hugo.spf13.com/extras/urls) option to keep URLs relative
-- A bunch of [additional template functions](http://hugo.spf13.com/layouts/templatefunctions)
-- Watching very large sites now works on mac
-- RSS generation improved. Limited to 50 items by default, can limit further in [template](http://hugo.spf13.com/layout/rss)
-- Boolean params now supported in [frontmatter](http://hugo.spf13.com/content/front-matter)
-- Launched website [showcase](http://hugo.spf13.com/showcase). Show off your own hugo site!
-- A bunch of [bug fixes](https://github.com/spf13/hugo/commits/master)
diff --git a/docs/content/en/news/0.11-relnotes/index.md b/docs/content/en/news/0.11-relnotes/index.md
deleted file mode 100644
index dc4115fe0af..00000000000
--- a/docs/content/en/news/0.11-relnotes/index.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-date: 2014-05-29T22:53:22Z
-description: "Now 3–4 times faster, Hugo 0.11 brings live reload, theme engine, menu system, XML sitemap, and more!"
-title: "Hugo 0.11"
-categories: ["Releases"]
----
-
-- Considerably faster... about 3 - 4x faster on average
-- [Live Reload](/getting-started/usage/#livereload). Hugo will automatically reload the browser when the build is complete
-- Theme engine w/[Theme Repository](http://github.com/spf13/hugoThemes)
-- [Menu system](/content-management/menus/) with support for active page
-- [Builders](/extras/builders) to quickly create a new site, content or theme
-- [XML sitemap](/templates/sitemap) generation
-- [Integrated Disqus](/extras/comments) support
-- Streamlined [template organization](/templates/overview)
-- Brand new docs site
-- Support for publishDate which allows for posts to be dated in the future
-- More [sort](/functions/sort/#readout) options
-- Logging support
-- Much better error handling
-- More informative verbose output
-- Renamed Indexes > [Taxonomies](/taxonomies/overview)
-- Renamed Chrome > [Partials](/templates/partials)
diff --git a/docs/content/en/news/0.12-relnotes/index.md b/docs/content/en/news/0.12-relnotes/index.md
deleted file mode 100644
index 4401b5efc2b..00000000000
--- a/docs/content/en/news/0.12-relnotes/index.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-date: 2015-01-21T20:35:00Z
-description: "Hugo 0.12 focused on polishing the theme engine and adding critical functionality to the templates."
-title: "Hugo 0.12"
-categories: ["Releases"]
----
-
-A lot has happened since Hugo v0.11.0 was released. Most of the work has been
-focused on polishing the theme engine and adding critical functionality to the
-templates.
-
-This release represents over 90 code commits from 28 different contributors.
-
-- 10 [new themes](https://github.com/spf13/hugoThemes) created by the community
-- fully themable [partials](/templates/partials/)
-- [404 template](/templates/404/) support in themes
-- [shortcode](/extras/shortcodes/) support in themes
-- [views](/templates/views/) support in themes
-- inner [shortcode](/extras/shortcodes/) content now treated as markdown
-- support for header ids in markdown (# header {#myid})
-- [where](/templates/lists/#where) template function to filter lists of content, taxonomies, etc
-- [groupby](/templates/list) & [groupbydate](/templates/list) methods to group pages
-- taxonomy [pages list](/taxonomies/methods/) now sortable, filterable, limitable & groupable
-- general cleanup to taxonomies & documentation to make it more clear and consistent
-- [showcase](/showcase/) returned and has been expanded
-- pretty links now always have trailing slashes
-- [baseurl](/overview/configuration/) can now include a subdirectory
-- better feedback about draft & future post rendering
-- a variety of improvements to [the website](/)
diff --git a/docs/content/en/news/0.13-relnotes/index.md b/docs/content/en/news/0.13-relnotes/index.md
deleted file mode 100644
index 198f5fe7bd2..00000000000
--- a/docs/content/en/news/0.13-relnotes/index.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-date: 2015-02-22T04:10:06Z
-description: "Hugo 0.13 is the largest Hugo release to date. The release introduced some long sought after features (pagination, sequencing, data loading, tons of template improvements) as well as major internal improvements. In addition to the code changes, the Hugo community has grown significantly and now has over 3000 stars on GitHub, 134 contributors, 24 themes and 1000s of happy users."
-title: "Hugo 0.13"
-categories: ["Releases"]
----
-
-The v0.13.0 release is the largest Hugo release to date. The release introduced
-some long sought after features (pagination, sequencing, data loading, tons of
-template improvements) as well as major internal improvements. In addition to
-the code changes, the Hugo community has grown significantly and now has over
-3000 stars on GitHub, 134 contributors, 24 themes and 1000s of happy users.
-
-This release represents **448 contributions by 65 contributors**
-
-A special shout out to [@bep](https://github.com/bep) and
-[@anthonyfok](https://github.com/anthonyfok) for their new role as Hugo
-maintainers and their tremendous contributions this release.
-
-### New major features
-- Support for [data files](http://gohugo.io/extras/datafiles/) in [YAML](http://yaml.org/),
- [JSON](http://www.json.org/), or [TOML](https://github.com/toml-lang/toml)
- located in the `data` directory ([#885](https://github.com/spf13/hugo/issues/885))
-- Support for [dynamic content](http://gohugo.io/extras/dynamiccontent/) by loading JSON & CSV
- from remote sources via GetJson and GetCsv in short codes or other layout
- files ([#748](https://github.com/spf13/hugo/issues/748))
-- [Pagination support](http://gohugo.io/extras/pagination/) for home page, sections and
- taxonomies ([#750](https://github.com/spf13/hugo/issues/750))
-- Universal sequencing support
- - A new, generic Next/Prev functionality is added to all lists of pages
- (sections, taxonomies, etc.)
- - Add in-section [Next/Prev](http://gohugo.io/templates/variables/) content pointers
-- `Scratch` -- [a "scratchpad"](http://gohugo.io/extras/scratch) for your node- and page-scoped
- variables
-- [Cross Reference](http://gohugo.io/extras/crossreferences/) support to easily link documents
- together with the ref and relref shortcodes.
-- [Ace](http://ace.yoss.si/) template engine support ([#541](https://github.com/spf13/hugo/pull/541))
-- A new [shortcode](http://gohugo.io/extras/shortcodes/) token of `{{* */>}}` (raw HTML)
- alongside the existing `{{%/* */%}}` (Markdown)
-- A top level `Hugo` variable (on Page & Node) is added with various build
- information
-- Several new ways to order and group content:
- - `ByPublishDate`
- - `GroupByPublishDate(format, order)`
- - `GroupByParam(key, order)`
- - `GroupByParamDate(key, format, order)`
-- Hugo has undergone a major refactoring, with a new handler system and a
- generic file system. This sounds and is technical, but will pave the way for
- new features and make Hugo even speedier
-
-### Notable enhancements to existing features
-- The [shortcode](http://gohugo.io/extras/shortcodes/) handling is rewritten for speed and
- better error messages.
-- Several improvements to the [template functions](http://gohugo.io/templates/functions/):
- - `where` is now even more powerful and accepts SQL-like syntax with the
- operators `==`, `eq`; `!=`, `<>`, `ne`; `>=`, `ge`; `>`, `gt`; `<=`,
- `le`; `<`, `lt`; `in`, `not in`
- - `where` template function now also accepts dot chaining key argument
- (e.g. `"Params.foo.bar"`)
-- New template functions:
- - `apply`
- - `chomp`
- - `delimit`
- - `sort`
- - `markdownify`
- - `in` and `intersect`
- - `trim`
- - `replace`
- - `dateFormat`
-- Several [configurable improvements related to Markdown
- rendering](http://gohugo.io/overview/configuration/#configure-blackfriday-rendering:a66b35d20295cb764719ac8bd35837ec):
- - Configuration of footnote rendering
- - Optional support for smart angled quotes, e.g. `"Hugo"` → «Hugo»
- - Enable descriptive header IDs
-- URLs in XML output is now correctly canonified ([#725](https://github.com/spf13/hugo/issues/725), [#728](https://github.com/spf13/hugo/issues/728), and part
- of [#789](https://github.com/spf13/hugo/issues/789))
-
-### Other improvements
-- Internal change to use byte buffer pool significantly lowering memory usage
- and providing measurable performance improvements overall
-- Changes to docs:
- - A new [Troubleshooting](http://gohugo.io/troubleshooting/overview/) section is added
- - It's now searchable through Google Custom Search ([#753](https://github.com/spf13/hugo/issues/753))
- - Some new great tutorials:
- - [Automated deployments with
- Wercker](http://gohugo.io/tutorials/automated-deployments/)
- - [Creating a new theme](http://gohugo.io/tutorials/creating-a-new-theme/)
-- [`hugo new`](http://gohugo.io/content/archetypes/) now copies the content in addition to the front matter
-- Improved unit test coverage
-- Fixed a lot of Windows-related path issues
-- Improved error messages for template and rendering errors
-- Enabled soft LiveReload of CSS and images ([#490](https://github.com/spf13/hugo/pull/490))
-- Various fixes in RSS feed generation ([#789](https://github.com/spf13/hugo/issues/789))
-- `HasMenuCurrent` and `IsMenuCurrent` is now supported on Nodes
-- A bunch of [bug fixes](https://github.com/spf13/hugo/commits/master)
diff --git a/docs/content/en/news/0.14-relnotes/index.md b/docs/content/en/news/0.14-relnotes/index.md
deleted file mode 100644
index 9b7928b47e7..00000000000
--- a/docs/content/en/news/0.14-relnotes/index.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-date: 2015-05-26T01:32:45Z
-description: "The v0.14.0 Hugo release brings of the most demanded features to Hugo. The foundation of Hugo is stabilizing nicely and a lot of polish has been added. We’ve expanded support for additional content types with support for AsciiDoc, Restructured Text, HTML and Markdown."
-title: "Hugo 0.14"
-categories: ["Releases"]
----
-
-The v0.14.0 Hugo release brings of the most demanded features to Hugo. The foundation of Hugo is stabilizing nicely and a lot of polish has been added. We’ve expanded support for additional content types with support for AsciiDoc, Restructured Text, HTML and Markdown. Some of these types depend on external libraries as there does not currently exist native support in Go. We’ve tried to make the experience as seamless as possible. Look for more improvements here in upcoming releases.
-
-A lot of work has been done to improve the user experience, with extra polish to the Windows experience. Hugo errors are more helpful overall and Hugo now can detect if it’s being run in Windows Explorer and provide additional instructions to run it via the command prompt.
-
-The Hugo community continues to grow. Hugo has over 4000 stars on github, 165 contributors, 35 themes and 1000s of happy users. It is now the 5th most popular static site generator (by Stars) and has the 3rd largest contributor community.
-
-This release represents over **240 contributions by 36 contributors** to the main Hugo codebase.
-
-Big shout out to [@bep](https://github.com/bep) who led the development of Hugo this release, [@anthonyfok](https://github.com/anthonyfok), [@eparis](https://github.com/eparis), [@SchumacherFM](https://github.com/SchumacherFM), [@RickCogley](https://github.com/RickCogley) & [@mdhender](https://github.com/mdhender) for their significant contributions and [@tatsushid](https://github.com/tatsushid) for his continuous improvements to the templates. Also a big thanks to all the theme creators. 11 new themes have been added since last release and the [hugoThemes repo now has previews of all of them](https://github.com/spf13/hugoThemes/blob/master/README.md#theme-list).
-
-Hugo also depends on a lot of other great projects. A big thanks to all of our dependencies inclding:
-[cobra](https://github.com/spf13/cobra), [viper](https://github.com/spf13/viper), [blackfriday](https://github.com/russross/blackfriday), [pflag](https://github.com/spf13/pflag), [HugoThemes](https://github.com/spf13/hugothemes), [BurntSushi/Toml](github.com/BurntSushi/toml), [goYaml](https://github.com/go-yaml/yaml/tree/v2), and the Go standard library.
-
-## New features
-- Support for all file types in content directory.
- - If dedicated file type handler isn’t found it will be copied to the destination.
-- Add `AsciiDoc` support using external helpers.
-- Add experimental support for [`Mmark`](https://github.com/miekg/mmark) markdown processor
-- Bash autocomplete support via `genautocomplete` command
-- Add section menu support for a [Section Menu for Lazy Bloggers](https://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers)
-- Add support for `Ace` base templates
-- Adding `RelativeURLs = true` to site config will now make all the relative URLs relative to the content root.
-- New template functions:
- - `getenv`
- - The string functions `substr` and `slicestr`
- *`seq`, a sequence generator very similar to its Gnu counterpart
- - `absURL` and `relURL`, both of which takes the `BaseURL` setting into account
-
-## Improvements
-- Highlighting with `Pygments` is now cached to disk -- expect a major speed boost if you use it!
-- More Pygments highlighting options, including `line numbers`
-- Show help information to Windows users who try to double click on `hugo.exe`.
-- Add `bind` flag to `hugo server` to set the interface to which the server will bind
-- Add support for `canonifyurls` in `srcset`
-- Add shortcode support for HTML (content) files
-- Allow the same `shortcode` to be used with or without inline content
-- Configurable RSS output filename
-
-## Bugfixes
-- Fix panic with paginator and zero pages in result set.
-- Fix crossrefs on Windows.
-- Fix `eq` and `ne` template functions when used with a raw number combined with the result of `add`, `sub` etc.
-- Fix paginator with uglyurls
-- Fix [#998](https://github.com/spf13/hugo/issues/988), supporting UTF8 characters in Permalinks.
-
-## Notices
-- To get variable and function names in line with the rest of the Go community, a set of variable and function names has been deprecated: These will still work in 0.14, but will be removed in 0.15. What to do should be obvious by the build log; `getJson` to `getJSON`, `getCsv` to `getCSV`, `safeHtml` to `safeHTML`, `safeCss` to `safeCSS`, `safeUrl` to `safeURL`, `Url` to `URL`, `UrlPath` to `URLPath`, `BaseUrl` to `BaseURL`, `Recent` to `Pages`, `Indexes` to `Taxonomies`.
diff --git a/docs/content/en/news/0.15-relnotes/index.md b/docs/content/en/news/0.15-relnotes/index.md
deleted file mode 100644
index 5053e3fb200..00000000000
--- a/docs/content/en/news/0.15-relnotes/index.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-date: 2015-12-19T09:45:24Z
-description: "The v0.15.0 Hugo release brings a lot of polish to Hugo. Exactly 6 months after the 0.14 release, Hugo has seen massive growth and changes. Most notably, this is Hugo's first release under the Apache 2.0 license."
-title: "Hugo 0.15"
-categories: ["Releases"]
----
-
-The v0.15.0 Hugo release brings a lot of polish to Hugo. Exactly 6 months after the 0.14 release, Hugo has seen massive growth and changes. Most notably, this is Hugo's first release under the Apache 2.0 license. With this license change we hope to expand the great community around Hugo and make it easier for our many users to contribute. This release represents over **377 contributions by 87 contributors** to the main Hugo repo and hundreds of improvements to the libraries Hugo uses. Hugo also launched a [new theme showcase](http://themes.gohugo.io) and participated in [Hacktoberfest](https://hacktoberfest.digitalocean.com).
-
-Hugo now has:
-- 6700 (+2700) stars on GitHub
-- 235 (+75) contributors
-- 65 (+30) themes
-
-**Template Improvements:** This release takes Hugo to a new level of speed and usability. Considerable work has been done adding features and performance to the template system which now has full support of Ace, Amber and Go Templates.
-
-**Hugo Import:** Have a Jekyll site, but dreaming of porting it to Hugo? This release introduces a new `hugo import jekyll`command that makes this easier than ever.
-
-**Performance Improvements:** Just when you thought Hugo couldn't get any faster, Hugo continues to improve in speed while adding features. Notably Hugo 0.15 introduces the ability to render and serve directly from memory resulting in 30%+ lower render times.
-
-Huge thanks to all who participated in this release. A special thanks to [@bep](https://github.com/bep) who led the development of Hugo this release again, [@anthonyfok](https://github.com/anthonyfok), [@eparis](https://github.com/eparis), [@tatsushid](https://github.com/tatsushid) and [@DigitalCraftsman](https://github.com/digitalcraftsman/).
-
-## New features
-- new `hugo import jekyll` command. [#1469](https://github.com/spf13/hugo/pull/1469)
-- The new `Param` convenience method on `Page` and `Node` can be used to get the most specific parameter value for a given key. [#1462](https://github.com/spf13/hugo/issues/1462)
-- Several new information elements have been added to `Page` and `Node`:
- - `RuneCount`: The number of [runes](http://blog.golang.org/strings) in the content, excluding any whitespace. This may be a good alternative to `.WordCount` for Japanese and other CJK languages where a word-split by spaces makes no sense. [#1266](https://github.com/spf13/hugo/issues/1266)
- - `RawContent`: Raw Markdown as a string. One use case may be of embedding remarkjs.com slides.
- - `IsHome`: tells the truth about whether you're on the home page or not.
-
-## Improvements
-- `hugo server` now builds ~30%+ faster by rendering to memory instead of disk. To get the old behavior, start the server with `--renderToDisk=true`.
-- Hugo now supports dynamic reloading of the config file when watching.
-- We now use a custom-built `LazyFileReader` for reading file contents, which means we don't read media files in `/content` into memory anymore -- and file reading is now performed in parallel on multicore PCs. [#1181](https://github.com/spf13/hugo/issues/1181)
-- Hugo is now built with `Go 1.5` which, among many other improvements, have fixed the last known data race in Hugo. [#917](https://github.com/spf13/hugo/issues/917)
-- Paginator now also supports page groups. [#1274](https://github.com/spf13/hugo/issues/1274)
-- Markdown improvements:
- - Hugo now supports GitHub-flavoured markdown code fences for highlighting for `md`-files (Blackfriday rendered markdown) and `mmark` files (MMark rendered markdown). [#362](https://github.com/spf13/hugo/issues/362) [#1258](https://github.com/spf13/hugo/issues/1258)
- - Several new Blackfriday options are added:
- - Option to disable Blackfriday's `Smartypants`.
- - Option for Blackfriday to open links in a new window/tab. [#1220](https://github.com/spf13/hugo/issues/1220)
- - Option to disable Blackfriday's LaTeX style dashes [#1231](https://github.com/spf13/hugo/issues/1231)
- - Definition lists extension support.
-- `Scratch` now has built-in `map` support.
-- We now fall back to `link title` for the default page sort. [#1299](https://github.com/spf13/hugo/issues/1299)
-- Some notable new configuration options:
- - `IgnoreFiles` can be set with a list of Regular Expressions that matches files to be ignored during build. [#1189](https://github.com/spf13/hugo/issues/1189)
- - `PreserveTaxonomyNames`, when set to `true`, will preserve what you type as the taxonomy name both in the folders created and the taxonomy `key`, but it will be normalized for the URL. [#1180](https://github.com/spf13/hugo/issues/1180)
-- `hugo gen` can now generate man files, bash auto complete and markdown documentation
-- Hugo will now make suggestions when a command is mistyped
-- Shortcodes now have a boolean `.IsNamedParams` property. [#1597](https://github.com/spf13/hugo/pull/1597)
-
-## New Template Features
-- All template engines:
- - The new `dict` function that could be used to pass maps into a template. [#1463](https://github.com/spf13/hugo/pull/1463)
- - The new `pluralize` and `singularize` template funcs.
- - The new `base64Decode` and `base64Encode` template funcs.
- - The `sort` template func now accepts field/key chaining arguments and pointer values. [#1330](https://github.com/spf13/hugo/issues/1330)
- - Several fixes for `slicestr` and `substr`, most importantly, they now have full `utf-8`-support. [#1190](https://github.com/spf13/hugo/issues/1190) [#1333](https://github.com/spf13/hugo/issues/1333) [#1347](https://github.com/spf13/hugo/issues/1347)
- - The new `last` template function allows the user to select the last `N` items of a slice. [#1148](https://github.com/spf13/hugo/issues/1148)
- - The new `after` func allows the user to select the items after the `Nth` item. [#1200](https://github.com/spf13/hugo/pull/1200)
- - Add `time.Time` type support to the `where`, `ge`, `gt`, `le`, and `lt` template functions.
- - It is now possible to use constructs like `where Values ".Param.key" nil` to filter pages that doesn't have a particular parameter. [#1232](https://github.com/spf13/hugo/issues/1232)
- - `getJSON`/`getCSV`: Add retry on invalid content. [#1166](https://github.com/spf13/hugo/issues/1166)
- - The new `readDir` func lists local files. [#1204](https://github.com/spf13/hugo/pull/1204)
- - The new `safeJS` function allows the embedding of content into JavaScript contexts in Go templates.
- - Get the main site RSS link from any page by accessing the `.Site.RSSLink` property. [#1566](https://github.com/spf13/hugo/pull/1566)
-- Ace templates:
- - Base templates now also works in themes. [#1215](https://github.com/spf13/hugo/issues/1215).
- - And now also on Windows. [#1178](https://github.com/spf13/hugo/issues/1178)
-- Full support for Amber templates including all template functions.
-- A built-in template for Google Analytics. [#1505](https://github.com/spf13/hugo/pull/1505)
-- Hugo is now shipped with new built-in shortcodes: [#1576](https://github.com/spf13/hugo/issues/1576)
- - `youtube` for YouTube videos
- - `vimeo` for Vimeo videos
- - `gist` for GitHub gists
- - `tweet` for Twitter Tweets
- - `speakerdeck` for Speakerdeck slides
-
-## Bugfixes
-- Fix data races in page sorting and page reversal. These operations are now also cached. [#1293](https://github.com/spf13/hugo/issues/1293)
-- `page.HasMenuCurrent()` and `node.HasMenuCurrent()` now work correctly in multi-level nested menus.
-- Support `Fish and Chips` style section titles. Previously, this would end up as `Fish And Chips`. Now, the first character is made toupper, but the rest are preserved as-is. [#1176](https://github.com/spf13/hugo/issues/1176)
-- Hugo now removes superfluous p-tags around shortcodes. [#1148](https://github.com/spf13/hugo/issues/1148)
-
-## Notices
-- `hugo server` will watch by default now.
-- Some fields and methods were deprecated in `0.14`. These are now removed, so the error message isn't as friendly if you still use the old values. So please change:
- - `getJson` to `getJSON`, `getCsv` to `getCSV`, `safeHtml` to
- `safeHTML`, `safeCss` to `safeCSS`, `safeUrl` to `safeURL`, `Url` to `URL`,
- `UrlPath` to `URLPath`, `BaseUrl` to `BaseURL`, `Recent` to `Pages`.
-
-## Known Issues
-
-Using the Hugo v0.15 32-bit Windows or ARM binary, running `hugo server` would crash or hang due to a [memory alignment issue](https://golang.org/pkg/sync/atomic/#pkg-note-BUG) in [Afero](https://github.com/spf13/afero). The bug was discovered shortly after the v0.15.0 release and has since been [fixed](https://github.com/spf13/afero/pull/23) by @tpng. If you encounter this bug, you may either compile Hugo v0.16-DEV from source, or use the following solution/workaround:
-- **64-bit Windows users: Please use [hugo_0.15_windows_amd64.zip](https://github.com/spf13/hugo/releases/download/v0.15/hugo_0.15_windows_amd64.zip)** (amd64 == x86-64). It is only the 32-bit hugo_0.15_windows_386.zip that crashes/hangs (see #1621 and #1628).
-- **32-bit Windows and ARM users: Please run `hugo server --renderToDisk` as a workaround** until Hugo v0.16 is released (see [“hugo server” returns runtime error on armhf](https://discuss.gohugo.io/t/hugo-server-returns-runtime-error-on-armhf/2293) and #1716).
diff --git a/docs/content/en/news/0.16-relnotes/index.md b/docs/content/en/news/0.16-relnotes/index.md
deleted file mode 100644
index 92f6e54a022..00000000000
--- a/docs/content/en/news/0.16-relnotes/index.md
+++ /dev/null
@@ -1,248 +0,0 @@
----
-date: 2016-06-06T13:54:06-04:00
-description: "Hugo 0.16 is our best and biggest release ever. The Hugo community has outdone itself with continued performance improvements, beautiful themes and increased stability."
-title: "Hugo 0.16"
-categories: ["Releases"]
-aliases: [/0-16/]
----
-
-Hugo 0.16 is our best and biggest release ever. The Hugo community has
-outdone itself with continued performance improvements,
-[beautiful themes](http://themes.gohugo.io) for all types of sites from project
-sites to documentation to blogs to portfolios, and increased stability.
-
-This release represents **over 550 contributions by over 110 contributors** to
-the main Hugo code base. Since last release Hugo has **gained 3500 stars, 90
-contributors and 23 additional themes.**
-
-This release celebrates 3 years since {{< gh "@spf13" >}} wrote the first lines
-of Hugo. During those 3 years Hugo has accomplished some major milestones
-including...
-
-* 10,000+ stars on GitHub
-* 320+ contributors
-* 90+ themes
-* 1000s of happy websites
-* Many subprojects like {{< gh "@spf13/cobra">}}, {{< gh "@spf13/viper">}} and
- {{< gh "@spf13/afero">}} which have experienced broad usage across the Go
- ecosystem.
-
-{{< gh "@bep" >}} led the development of Hugo for the 3rd consecutive release
-with nearly half of the contributions to 0.16 in addition to his considerable
-contributions as lead maintainer. {{< gh "@anthonyfok" >}}, {{< gh
-"@DigitalCraftsman" >}}, {{< gh "@MooreReason" >}} all made significant
-contributions. A special thanks to {{< gh "@abourget" >}} for his considerable
-work on multilingual support. Due to its broad impact we wanted to spend more
-time testing it and it will be included in Hugo's next release.
-
-### Highlights
-
-**Partial Builds:** Prior to this release Hugo would always reread and rebuild
-the entire site. This release introduces support for reactive site building
-while watching (`hugo server`). Hugo will watch the filesystem for changes and
-only re-read the changed files. Depending on the files change Hugo will
-intelligently re-render only the needed portion of the site. Performance gains
-depend on the operation performed and size of the site. In our testing build
-times decreased anywhere from 10% to 99%.
-
-**Template Improvements:** Template improvements continue to be a mainstay of each Hugo release. Hugo 0.16 adds support for the new `block` keyword introduced in Go 1.6 -- think base templates with default sections -- as well as many new template functions.
-
-**Polish:** As Hugo matures releases will inevitably contain fewer huge new features. This release represents hundreds of small improvements across ever facet of Hugo which will make for a much better experience for all of our users. Worth mentioning here is the curious bug where live reloading didn't work in some editors on OS X, including the popular TextMate 2. This is now fixed. Oh, and now any error will exit with an error code, a big thing for automated deployments.
-
-### New Features
-* Support reading configuration variables from the OS environment {{ 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:
-
-
-*The Hugo team*
-
-### Highlights
-
-The primary new feature in Hugo 0.18 is that every piece of content is now a `Page` ({{See Also
-
- {{ range . }}
-
-{{ end }}
-```
-
-The above translates to _list the five regular pages mostly related to the current page_. See the [Related Content Documentation](https://gohugo.io/content-management/related/) for details and configuration options.
-
-This release represents **37 contributions by 9 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), [@yihui](https://github.com/yihui), and [@oneleaftea](https://github.com/oneleaftea) for their ongoing contributions.
-
-And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **44 contributions by 30 contributors**. A special thanks to [@bep](https://github.com/bep), [@sdomino](https://github.com/sdomino), [@gotgenes](https://github.com/gotgenes), and [@digitalcraftsman](https://github.com/digitalcraftsman) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 19464+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 455+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 178+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* We now only strip p tag in `markdownify` if there is only one paragraph. This allows blocks of paragraphs to be "markdownified" [33ae10b6](https://github.com/gohugoio/hugo/commit/33ae10b6ade67cd9618970121d7de5fd2ce7d781) [@bep](https://github.com/bep) [#3040](https://github.com/gohugoio/hugo/issues/3040)
-
-## Enhancements
-
-### Templates
-
-* Add `time.Duration` and `time.ParseDuration` template funcs [f4bf2141](https://github.com/gohugoio/hugo/commit/f4bf214137ebd24a0d12f16d3a98d9038e6eabd3) [@bep](https://github.com/bep) [#3828](https://github.com/gohugoio/hugo/issues/3828)
-* Add `cond` (ternary) template func [0462c96a](https://github.com/gohugoio/hugo/commit/0462c96a5a9da3e8adc78d96acd39575a8b46c40) [@bep](https://github.com/bep) [#3860](https://github.com/gohugoio/hugo/issues/3860)
-* Prepare for template metrics [d000cf60](https://github.com/gohugoio/hugo/commit/d000cf605091c6999b72d6c632752289bc680223) [@bep](https://github.com/bep)
-* Add `strings.TrimLeft` and `TrimRight` [7674ad73](https://github.com/gohugoio/hugo/commit/7674ad73825c61eecc4003475fe0577f225fe579) [@moorereason](https://github.com/moorereason)
-* compare, hugolib, tpl: Add `Eqer` interface [08f48b91](https://github.com/gohugoio/hugo/commit/08f48b91d68d3002b887ddf737456ff0cc4e786d) [@bep](https://github.com/bep) [#3807](https://github.com/gohugoio/hugo/issues/3807)
-* Only strip p tag in `markdownify` if only one paragraph [33ae10b6](https://github.com/gohugoio/hugo/commit/33ae10b6ade67cd9618970121d7de5fd2ce7d781) [@bep](https://github.com/bep) [#3040](https://github.com/gohugoio/hugo/issues/3040)
-* Cleanup `strings.TrimPrefix` and `TrimSuffix` [29a2da05](https://github.com/gohugoio/hugo/commit/29a2da0593b081cdd61b93c6328af2c9ea4eb20f) [@moorereason](https://github.com/moorereason)
-
-### Output
-
-* Improve the base template (aka `baseof.html`) identification [0019ce00](https://github.com/gohugoio/hugo/commit/0019ce002449d671a20a69406da37b10977f9493) [@bep](https://github.com/bep)
-
-### Core
-
-* Implement "related content" [3b4f17bb](https://github.com/gohugoio/hugo/commit/3b4f17bbc9ff789faa581ac278ad109d1ac5b816) [@bep](https://github.com/bep) [#98](https://github.com/gohugoio/hugo/issues/98)
-* Add `Page.Equals` [f0f49ed9](https://github.com/gohugoio/hugo/commit/f0f49ed9b0c9b4545a45c95d56340fcbf4aafbef) [@bep](https://github.com/bep)
-* Rewrite `replaceDivider` to reduce memory allocation [71ae9b45](https://github.com/gohugoio/hugo/commit/71ae9b4533083be185c5314c9c5b273cc3bd07bd) [@bep](https://github.com/bep)
-
-
-### Other
-
-* Set up Hugo release flow on `CircleCI` [d2249c50](https://github.com/gohugoio/hugo/commit/d2249c50991ba7b00b092aca6e315ca1a4de75a1) [@bep](https://github.com/bep) [#3779](https://github.com/gohugoio/hugo/issues/3779)
-* Maintain the scroll position if possible [7231d5a8](https://github.com/gohugoio/hugo/commit/7231d5a829f8d97336a2120afde1260db6ee6541) [@yihui](https://github.com/yihui) [#3824](https://github.com/gohugoio/hugo/issues/3824)
-* Add an `iFrame` title to the `YouTube` shortcode [919bc921](https://github.com/gohugoio/hugo/commit/919bc9210a69c801c7304c0b529df93d1dca27aa) [@nraboy](https://github.com/nraboy)
-* Remove the theme submodule from /docs [ea2cc26b](https://github.com/gohugoio/hugo/commit/ea2cc26b390476f1c605405604f8c92afd09b6ee) [@bep](https://github.com/bep) [#3791](https://github.com/gohugoio/hugo/issues/3791)
-* Add support for multiple config files via `--config a.toml,b.toml,c.toml` [0f9f73cc](https://github.com/gohugoio/hugo/commit/0f9f73cce5c3f1f05be20bcf1d23b2332623d7f9) [@jgielstra](https://github.com/jgielstra)
-* Render task list item inside `label` for correct accessibility [c8257f8b](https://github.com/gohugoio/hugo/commit/c8257f8b726478ca70dc8984cdcc17b31e4bdc0c) [@danieka](https://github.com/danieka) [#3303](https://github.com/gohugoio/hugo/issues/3303)
-* Normalize `UniqueID` between Windows & Linux [0abdeeef](https://github.com/gohugoio/hugo/commit/0abdeeef6740a3cbba0db95374853d040f2022b8) [@Shywim](https://github.com/Shywim)
-
-
-## Fixes
-
-### Output
-
-* Fix taxonomy term base template lookup [f88fe312](https://github.com/gohugoio/hugo/commit/f88fe312cb35f7de1615c095edd2f898303dd23b) [@bep](https://github.com/bep) [#3856](https://github.com/gohugoio/hugo/issues/3856)
-* Fix `published` front matter handling [202510fd](https://github.com/gohugoio/hugo/commit/202510fdc92d52a20baeaa7edb1091f6882bd95f) [@bep](https://github.com/bep) [#3867](https://github.com/gohugoio/hugo/issues/3867)
-
-
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.27.1-relnotes/index.md b/docs/content/en/news/0.27.1-relnotes/index.md
deleted file mode 100644
index 1184cc17587..00000000000
--- a/docs/content/en/news/0.27.1-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2017-09-13
-title: "Hugo 0.27.1: One bugfix"
-description: "Hugo 0.27.1 fixes an issue introduced in Go 1.9 with HTML escaping of shortcodes in multi output sites."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-
-
-
-This fixes a regression introduced in [Go 1.9](https://github.com/golang/go/issues/21844) which lead to HTML in shortcodes in multi output Hugo sites being wrongly escaped in some cases.
-
-* Fix escaped HTML Go 1.9 multioutput issue (#3880) [2d613dd9](https://github.com/gohugoio/hugo/commit/2d613dd905bb8eeb8af57e30ddd749a0f04fbd3c) [@bep](https://github.com/bep) [#3876](https://github.com/gohugoio/hugo/issues/3876)
-
-* Bump to Go 1.9 in the Snap build [642ba6ca](https://github.com/gohugoio/hugo/commit/642ba6cab24c558b16378178fe829cbc45845424) [@bep](https://github.com/bep)
-
-
-
-
diff --git a/docs/content/en/news/0.28-relnotes/index.md b/docs/content/en/news/0.28-relnotes/index.md
deleted file mode 100644
index 91128e48ee7..00000000000
--- a/docs/content/en/news/0.28-relnotes/index.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
----
-date: 2017-09-25
-title: "Hugo 0.28: High-speed Syntax Highlighting!"
-description: "Chroma is the new default syntax highlighter in Hugo."
-categories: ["Releases"]
-images:
-- images/blog/hugo-28-poster.png
----
-
- Hugo `0.28` brings **blistering fast and native syntax highlighting** from [Chroma](https://github.com/alecthomas/chroma) ([fb33d828](https://github.com/gohugoio/hugo/commit/fb33d8286d78a78a74deb44355b621852a1c4033) [@bep](https://github.com/bep) [#3888](https://github.com/gohugoio/hugo/issues/3888)). A big thank you to [Alec Thomas](https://github.com/alecthomas) for taking on this massive task of porting the popular python highlighter Pygments to Go.
-
-Hugo has been caching the highlighter output to disk, so for repeated builds it has been fine, but this little snippet, showing a build of the [gohugo.io](https://gohugo.io/) site without cache and with both Pygments and Chroma, should illustrate the improvement:
-
-{{< asciicast Lc5iwTVny2kuUC8lqvNnL6oDU >}}
-
-See the [Updated Documentation](https://gohugo.io/content-management/syntax-highlighting/) for more information about how this works.
-
-Worth mentioning is also the `liveReloadPort` flag on `hugo server`, which makes it possible to do "live reloads" behind a HTTPS proxy, which makes for very cool remote customer demos.
-
-One example would be a Hugo server running behind a [ngrok](https://ngrok.com) tunnel:
-
-```bash
-ngrok http 1313
-```
-Then start the Hugo server with:
-
-```bash
-hugo server -b https://youridhere.ngrok.io --appendPort=false --liveReloadPort=443 --navigateToChanged
-```
-
-The `navigateToChanged` flag is slightly unrelated, but it is super cool ...
-
-This release represents **15 contributions by 2 contributors** to the main Hugo code base.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **9 contributions by 7 contributors**. A special thanks to [@bep](https://github.com/bep), [@i-give-up](https://github.com/i-give-up), [@muhajirframe](https://github.com/muhajirframe), and [@icannotfly](https://github.com/icannotfly) for their work on the documentation site.
-
-Hugo now has:
-
-* 19771+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 454+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 180+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* Hugo now uses Chroma as new default syntax highlighter. This should in most cases work out-of-the box or with very little adjustments. But if you want to continue to use Pygments, set `pygmentsUseClassic=true` in your site config.
-* We now add a set of "no cache" headers to the responses for `hugo server`, which makes the most sense in most development scenarios. Run with `hugo server --noHTTPCache=false` to get the old behaviour.
-
-## Enhancements
-
-### Templates
-
-* Add `urls.Parse` function [81ed5647](https://github.com/gohugoio/hugo/commit/81ed564793609a32be20a569cc15da2cc02dd734) [@moorereason](https://github.com/moorereason) [#3849](https://github.com/gohugoio/hugo/issues/3849)
-* Add `math.Ceil`, `Floor`, and `Round` [19c59104](https://github.com/gohugoio/hugo/commit/19c5910485242838d6678c2aacd8501f7e646a53) [@moorereason](https://github.com/moorereason) [#3883](https://github.com/gohugoio/hugo/issues/3883)
-
-### Other
-
-* Use Chroma as new default syntax highlighter [fb33d828](https://github.com/gohugoio/hugo/commit/fb33d8286d78a78a74deb44355b621852a1c4033) [@bep](https://github.com/bep) [#3888](https://github.com/gohugoio/hugo/issues/3888)
-* Trim newlines in the hightlight shortcode [0d29a0f7](https://github.com/gohugoio/hugo/commit/0d29a0f7819e8d73149701052c29f090cd6db42b) [@bep](https://github.com/bep) [#3898](https://github.com/gohugoio/hugo/issues/3898)
-* Update `goorgeous` [b8fabce2](https://github.com/gohugoio/hugo/commit/b8fabce217fcb52e3f273491bef95c7977058732) [@bep](https://github.com/bep) [#3899](https://github.com/gohugoio/hugo/issues/3899)
-* Add `liveReloadPort` flag to server [b1804776](https://github.com/gohugoio/hugo/commit/b180477631555824a06293053e2b6e63c5f07361) [@bep](https://github.com/bep) [#3882](https://github.com/gohugoio/hugo/issues/3882)
-* Add `noHTTPCache` flag to hugo server (default on) [0b34af21](https://github.com/gohugoio/hugo/commit/0b34af216154367af7f53ce93d44e6b3d58c3f34) [@bep](https://github.com/bep) [#3897](https://github.com/gohugoio/hugo/issues/3897)
-* Make `noHTTPCache` default on [80c7ea60](https://github.com/gohugoio/hugo/commit/80c7ea60a0e0f488563a6b7311f3d4c23457aac7) [@bep](https://github.com/bep) [#3897](https://github.com/gohugoio/hugo/issues/3897)
-
diff --git a/docs/content/en/news/0.29-relnotes/index.md b/docs/content/en/news/0.29-relnotes/index.md
deleted file mode 100644
index 810781dda48..00000000000
--- a/docs/content/en/news/0.29-relnotes/index.md
+++ /dev/null
@@ -1,46 +0,0 @@
-
----
-date: 2017-09-26
-title: "Hugo 0.29: Template Metrics"
-description: "Makes it easy to find template bottle necks."
-categories: ["Releases"]
-images:
-- images/blog/hugo-29-poster.png
----
-
-Hugo `0.29` brings Template Metrics by [@moorereason](https://github.com/moorereason). Hugo is very fast, but it is still possible to write ineffective templates. Now these should be easy to identify. Just run:
-
-```bash
-hugo --templateMetrics
-```
-Now, that was the tasty carrot. The real reason this release comes so fast after the last one is to change the default value for the new `noHTTPCache` flag, which gives away too much performance to make sense as a default value.
-
-Hugo now has:
-
-* 19817+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 454+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 180+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* Make `noHTTPCache` default false [e94d4f01](https://github.com/gohugoio/hugo/commit/e94d4f0177852b357f40fb9686a0ff3667d86351) [@bep](https://github.com/bep)
-
-## Enhancements
-
-### Templates
-* Add simple template metrics feature [b4a14c25](https://github.com/gohugoio/hugo/commit/b4a14c25fe85c41b79497be27ead128502a4dd7b) [@moorereason](https://github.com/moorereason)
-* Set Metrics at creation time [b5e1dc58](https://github.com/gohugoio/hugo/commit/b5e1dc5892f81da798d0d4e964a1f3328532f45e) [@bep](https://github.com/bep)
-* Fix sort order [d3681f51](https://github.com/gohugoio/hugo/commit/d3681f51c08fb11e8addcf9f0b484848d20d46cc) [@bep](https://github.com/bep)
-* Add math.Ceil, Floor, and Round to method mappings [8a69d235](https://github.com/gohugoio/hugo/commit/8a69d2356703d9f2fcb75bce0ae514e70ebd8e01) [@moorereason](https://github.com/moorereason)
-
-### Other
-* Split go build in Dockerfile [d9697e27](https://github.com/gohugoio/hugo/commit/d9697e275ecb038958b3dcea2b43e11dcba28fc9) [@tjamet](https://github.com/tjamet)
-* Update Dockerfile to benefit build cache [09d960f1](https://github.com/gohugoio/hugo/commit/09d960f17396eb7fd2c8fe6527db9503d59f0b4f) [@tjamet](https://github.com/tjamet)
-* Add git to snap package for GitInfo [a3a3f5b8](https://github.com/gohugoio/hugo/commit/a3a3f5b86114213a23337499551f000662b26022) [@ghalse](https://github.com/ghalse)
-
-
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.30-relnotes/index.md b/docs/content/en/news/0.30-relnotes/index.md
deleted file mode 100644
index 9281a5c203e..00000000000
--- a/docs/content/en/news/0.30-relnotes/index.md
+++ /dev/null
@@ -1,63 +0,0 @@
-
----
-date: 2017-10-16
-title: "Hugo 0.30: Race Car Edition!"
-description: "Fast Render Mode boosts live reloading!"
-categories: ["Releases"]
-images:
-- images/blog/hugo-30-poster.png
----
-
-
-Hugo `0.30` is the **Race Car Edition**. Hugo is already very very fast, but wants much more. So we added **Fast Render Mode**. It is hard to explain, so start the Hugo development server with `hugo server` and start editing. Live reloads just got so much faster! The "how and what" is discussed at length in [other places](https://github.com/gohugoio/hugo/pull/3959), but the short version is that we now re-render only the parts of the site that you are working on.
-
-The second performance-related feature is a follow-up to the Template Metrics added in Hugo `0.29`. Now, if you add the flag `--templateMetricsHints`, we will calculate a score for how your partials can be cached (with the `partialCached` template func).
-
-This release also more or less makes the really fast Chroma highlighter a complete alternative to Pygments. Most notable is the new table `linenos` support ([7c30e2cb](https://github.com/gohugoio/hugo/commit/7c30e2cbb08fdf0e61f80c7f1aa29909aeca4211) [@bep](https://github.com/bep) [#3915](https://github.com/gohugoio/hugo/issues/3915)), which makes copy-and-paste code blocks much easier.
-
-This release represents **31 contributions by 10 contributors** to the main Hugo code base.
-[@bep](https://github.com/bep) leads the Hugo development with a significant amount of contribution, but also a big shoutout to [@moorereason](https://github.com/moorereason), [@digitalcraftsman](https://github.com/digitalcraftsman), and [@bmon](https://github.com/bmon) for their ongoing contributions.
-And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **26 contributions by 15 contributors**. A special thanks to [@bep](https://github.com/bep), [@digitalcraftsman](https://github.com/digitalcraftsman), [@moorereason](https://github.com/moorereason), and [@kaushalmodi](https://github.com/kaushalmodi) for their work on the documentation site.
-
-Hugo now has:
-
-* 20195+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 454+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 180+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* Running `hugo server` will now run with the new "Fast Render Mode" default on. To turn it off, run `hugo server --disableFastRender` or set `disableFastRender=true` in your site config.
-* There have been several fixes and enhancements in the Chroma highlighter. One is that it now creates Pygments compatible CSS classes, which means that you may want to re-generate the stylesheet. See the [Syntax Highlighting Doc](https://gohugo.io/content-management/syntax-highlighting/).
-
-## Enhancements
-
-### Performance
-* Only re-render the view(s) you're working on [60bd332c](https://github.com/gohugoio/hugo/commit/60bd332c1f68e49e6ac439047e7c660865189380) [@bep](https://github.com/bep) [#3962](https://github.com/gohugoio/hugo/issues/3962)
-* Detect `partialCached` candidates [5800a20a](https://github.com/gohugoio/hugo/commit/5800a20a258378440e203a6c4a4343f5077755df) [@bep](https://github.com/bep)
-* Move metrics output to the end of the site build [b277cb33](https://github.com/gohugoio/hugo/commit/b277cb33e4dfa7440fca3b7888026944ce056154) [@moorereason](https://github.com/moorereason)
-
-### Templates
-
-* Output `xmlns:xhtml` only if there are translations available [0859d9df](https://github.com/gohugoio/hugo/commit/0859d9dfe647db3b8a192da38ad7efb5480a29a1) [@jamieconnolly](https://github.com/jamieconnolly)
-* Add `errorf` template function [4fc67fe4](https://github.com/gohugoio/hugo/commit/4fc67fe44a3c65fc7faaed21d5fa5bb5f87edf2c) [@bmon](https://github.com/bmon) [#3817](https://github.com/gohugoio/hugo/issues/3817)
-* Add `os.FileExists` template function [28188789](https://github.com/gohugoio/hugo/commit/2818878994e906c292cbe00cb2a83f1531a21f32) [@digitalcraftsman](https://github.com/digitalcraftsman) [#3839](https://github.com/gohugoio/hugo/issues/3839)
-* Add `float` template function [57adc539](https://github.com/gohugoio/hugo/commit/57adc539fc98dcb6fba8070b9611b8bd545f6f7f) [@x3ro](https://github.com/x3ro) [#3307](https://github.com/gohugoio/hugo/issues/3307)
-* Rework the partial test and benchmarks [e2e8bcbe](https://github.com/gohugoio/hugo/commit/e2e8bcbec34702a27047b91b6b007a15f1fc0797) [@bep](https://github.com/bep)
-
-### Other
-
-* Change `SummaryLength` to be configurable (#3924) [8717a60c](https://github.com/gohugoio/hugo/commit/8717a60cc030f4310c1779c0cdd51db37ad636cd) [@bmon](https://github.com/bmon) [#3734](https://github.com/gohugoio/hugo/issues/3734)
-* Replace `make` with `mage` in CircleCI build [fe71cb6f](https://github.com/gohugoio/hugo/commit/fe71cb6f5f83cdc8374cf1fc35a6d48102bd4b12) [@bep](https://github.com/bep) [#3969](https://github.com/gohugoio/hugo/issues/3969)
-* Add table `linenos` support for Chroma highlighter [7c30e2cb](https://github.com/gohugoio/hugo/commit/7c30e2cbb08fdf0e61f80c7f1aa29909aeca4211) [@bep](https://github.com/bep) [#3915](https://github.com/gohugoio/hugo/issues/3915)
-* Replace `make` with `mage` [8d2580f0](https://github.com/gohugoio/hugo/commit/8d2580f07c0253e12524a4b5c13165f876d00b21) [@bep](https://github.com/bep) [#3937](https://github.com/gohugoio/hugo/issues/3937)
-* Create `magefile` from `Makefile` [384a6ac4](https://github.com/gohugoio/hugo/commit/384a6ac4bd2de16fcd6a1c952e7ca41b66023a12) [@natefinch](https://github.com/natefinch)
-* Clean up lint in various packages [47fdfd51](https://github.com/gohugoio/hugo/commit/47fdfd5196cd24a23b30afe1d88969ffb413ab59) [@moorereason](https://github.com/moorereason)
-
-## Fixes
-
-* Make sure `Date` and `PublishDate` are always set to a value if one is available [6a30874f](https://github.com/gohugoio/hugo/commit/6a30874f19610a38e846e120aac03c68e12f9b7b) [@bep](https://github.com/bep) [#3854](https://github.com/gohugoio/hugo/issues/3854)
-* Add correct config file name to verbose server log [15ec031d](https://github.com/gohugoio/hugo/commit/15ec031d9818d239bfbff525c00cd99cc3118a96) [@mdhender](https://github.com/mdhender)
diff --git a/docs/content/en/news/0.30.1-relnotes/index.md b/docs/content/en/news/0.30.1-relnotes/index.md
deleted file mode 100644
index 68165e877a1..00000000000
--- a/docs/content/en/news/0.30.1-relnotes/index.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
----
-date: 2017-10-19T00:00:00+02:00
-title: "Hugo 0.30.1: Two Important Bugfixes!"
-description: "Fixes `hugo -w` and validator-broken Sitemap."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-
-
-
-This is a bug-fix release with two important fixes.
-
-* Fix hugo -w [fa53b13c](https://github.com/gohugoio/hugo/commit/fa53b13ca0ffb1db6ed20f5353661d3f8a5fd455) [@bep](https://github.com/bep) [#3980](https://github.com/gohugoio/hugo/issues/3980)
-* Revert sitemap template change to make the Google validator happy [5109ed520](https://github.com/gohugoio/hugo/commit/5109ed520f2ddde815d50e7b31acbbfc57ce7719) [@bep](https://github.com/bep) [#3978](https://github.com/gohugoio/hugo/issues/3978)
-
-
-Hugo now has:
-
-* 20285+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 454+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 180+ [themes](http://themes.gohugo.io/)
diff --git a/docs/content/en/news/0.30.2-relnotes/index.md b/docs/content/en/news/0.30.2-relnotes/index.md
deleted file mode 100644
index 1d4bcd94690..00000000000
--- a/docs/content/en/news/0.30.2-relnotes/index.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
----
-date: 2017-10-19T12:00:00+02:00
-title: "Hugo 0.30.2: One More Bugfix"
-description: "Fixes Fast Render mode when having sub-path in `baseURL`."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-This release fixes Fast Render mode with sub-path in baseURL [31641033](https://github.com/gohugoio/hugo/commit/3164103310fbca1211cfa9ce4a5eb7437854b6ad) [@bep](https://github.com/bep) [#3981](https://github.com/gohugoio/hugo/issues/3981).
-
-
-
-
diff --git a/docs/content/en/news/0.31-relnotes/index.md b/docs/content/en/news/0.31-relnotes/index.md
deleted file mode 100644
index ba16dfacb86..00000000000
--- a/docs/content/en/news/0.31-relnotes/index.md
+++ /dev/null
@@ -1,79 +0,0 @@
-
----
-date: 2017-11-20
-title: "Hugo 0.31: Language Multihost Edition!"
-description: "Hugo 0.31: Multihost, smart union static dirs, and more ..."
-categories: ["Releases"]
-images:
-- images/blog/hugo-31-poster.png
----
-
- Hugo `0.31` is the **Language Multihost Edition!**
-
-> The Multihost feature is sponsored by [eSolia](https://esolia.com/), [@rickcogley](https://github.com/rickcogley)'s company.
-
-[Multihost](https://gohugo.io/content-management/multilingual/#configure-multilingual-multihost) means that you can have a **`baseURL` per language**, for example, `https://no.example.com` and `https://en.example.com`. This is seamlessly integrated, and the built-in web server with live reload and `navigateToChanged` etc. just works. A related enhancement in this release is the support for **as many static dirs as you need**, with intelligent language overrides, forming a big union file system. Add to that several other language related fixes and enhancements, it is safe to say that this is the version you want for multilingual Hugo sites!
-
-This release represents **44 contributions by 7 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 [@kaushalmodi](https://github.com/kaushalmodi), [@natefinch](https://github.com/natefinch), and [@betaveros](https://github.com/betaveros) for their ongoing contributions.
-And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **13 contributions by 9 contributors**. A special thanks to [@oncletom](https://github.com/oncletom), [@kaushalmodi](https://github.com/kaushalmodi), [@XhmikosR](https://github.com/XhmikosR), and [@digitalcraftsman](https://github.com/digitalcraftsman) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 21105+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 455+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 184+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* For mapping of translated content, Hugo now considers the full path of the content file, which makes it possible with translation of duplicate content filenames such as `index.md`. A specific translation key can be specified with the new `translationKey` front matter variable. See [#2699](https://github.com/gohugoio/hugo/issues/2699).
-
-
-## Enhancements
-
-### Language related
-
-* Support unknown language codes [23ba779f](https://github.com/gohugoio/hugo/commit/23ba779fab90ce45cddd68b4f49a2515ce6d4878) [@bep](https://github.com/bep) [#3564](https://github.com/gohugoio/hugo/issues/3564)
-* Fix `.IsTranslated` with identical filenames [b3daa1f4](https://github.com/gohugoio/hugo/commit/b3daa1f4bf1b84bcc5da028257ba609be74e3ecc) [@bep](https://github.com/bep) [#2699](https://github.com/gohugoio/hugo/issues/2699)
-* Fall back to unstranslated base template [0a81a6b4](https://github.com/gohugoio/hugo/commit/0a81a6b4bae3de53aa9c179b855c671a2d30eec7) [@bep](https://github.com/bep) [#3893](https://github.com/gohugoio/hugo/issues/3893)
-* Add support for multiple static dirs [60dfb9a6](https://github.com/gohugoio/hugo/commit/60dfb9a6e076200ab3ca3fd30e34bb3c14e0a893) [@bep](https://github.com/bep) [#36](https://github.com/gohugoio/hugo/issues/36)[#4027](https://github.com/gohugoio/hugo/issues/4027)
-* Add multilingual multihost support [2e046576](https://github.com/gohugoio/hugo/commit/2e0465764b5dacc511b977b1c9aa07324ad0ee9c) [@bep](https://github.com/bep) [#4027](https://github.com/gohugoio/hugo/issues/4027)
-
-### Templates
-
-* Refactor `Mod` with `cast` [76dc811c](https://github.com/gohugoio/hugo/commit/76dc811c6539b2ed8b4d3b22693e5088b9f6ecfe) [@artem-sidorenko](https://github.com/artem-sidorenko)
-* Add support for height argument to figure shortcode [488631fe](https://github.com/gohugoio/hugo/commit/488631fe0abc3667355345c7eb98ba7a2204deb5) [@kaushalmodi](https://github.com/kaushalmodi) [#4014](https://github.com/gohugoio/hugo/issues/4014)
-
-### Core
-
-* Use ms precision for static change logging [bb048d81](https://github.com/gohugoio/hugo/commit/bb048d811d3977adb10656335cd339cd8c945a25) [@bep](https://github.com/bep)
-* Update Chroma to get the latest SASS lexer [b32ffed6](https://github.com/gohugoio/hugo/commit/b32ffed6abc67646cad89e163846f3ffef29cec8) [@bep](https://github.com/bep) [#4069](https://github.com/gohugoio/hugo/issues/4069)
-* Bump to Go 1.9.2 [9299a16c](https://github.com/gohugoio/hugo/commit/9299a16c9952a284d3ac3f31d2662f1812f77768) [@bep](https://github.com/bep) [#4064](https://github.com/gohugoio/hugo/issues/4064)
-* Update Travis and snapcraft to Go 1.9.2 [77cbd001](https://github.com/gohugoio/hugo/commit/77cbd001ff6b2e0aaa48566ef2af49ca68e19af9) [@bep](https://github.com/bep) [#4064](https://github.com/gohugoio/hugo/issues/4064)
-* Handle Taxonomy permalinks [d9a78b61](https://github.com/gohugoio/hugo/commit/d9a78b61adefe8e1803529f4774185874af85148) [@betaveros](https://github.com/betaveros) [#1208](https://github.com/gohugoio/hugo/issues/1208)
-
-
-### Other
-
-* Support Fast Render mode with sub-path in baseURL [31641033](https://github.com/gohugoio/hugo/commit/3164103310fbca1211cfa9ce4a5eb7437854b6ad) [@bep](https://github.com/bep) [#3981](https://github.com/gohugoio/hugo/issues/3981)
-* Simplify Site benchmarks [c3c10f2c](https://github.com/gohugoio/hugo/commit/c3c10f2c7ce4ee11186f51161943efc8b37a28c9) [@bep](https://github.com/bep)
-* Replace `make` with `mage` to build Hugo [#3969](https://github.com/gohugoio/hugo/issues/3969)
-* Convert to `dep` as dependency/vendor manager for Hugo [#3988](https://github.com/gohugoio/hugo/issues/3988)
-* Pre-allocate some slices [a9be687b](https://github.com/gohugoio/hugo/commit/a9be687b81df01c7343f78f0d3760042f467baa4) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Make sure only one instance of a cached partial is rendered [#4086](https://github.com/gohugoio/hugo/issues/4086)
-
-### Other
-
-* Fix broken shortcodes for `Ace` and `Amber` [503ca6de](https://github.com/gohugoio/hugo/commit/503ca6de6ceb0b4af533f9efeff917d6f3871278) [@bep](https://github.com/bep) [#4051](https://github.com/gohugoio/hugo/issues/4051)
-* Fix error handling in `mage` build [c9c19d79](https://github.com/gohugoio/hugo/commit/c9c19d794537cf76ff281788c3d6cf5f2beac54d) [@natefinch](https://github.com/natefinch)
-* Fix `hugo -w` [fa53b13c](https://github.com/gohugoio/hugo/commit/fa53b13ca0ffb1db6ed20f5353661d3f8a5fd455) [@bep](https://github.com/bep) [#3980](https://github.com/gohugoio/hugo/issues/3980)
-
diff --git a/docs/content/en/news/0.31.1-relnotes/index.md b/docs/content/en/news/0.31.1-relnotes/index.md
deleted file mode 100644
index a74470d646b..00000000000
--- a/docs/content/en/news/0.31.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2017-11-27
-title: "Hugo 0.31.1: One Bugfix!"
-description: "Fixes broken `--appendPort=false`."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with one important bug fix:
-
-* Fix broken `--appendPort=false` [8afd7d9c](https://github.com/gohugoio/hugo/commit/8afd7d9ceb0d168300e3399c6e87a355a88c9a28) [@bep](https://github.com/bep) [#4111](https://github.com/gohugoio/hugo/issues/4111)
-
-
-
-
-
diff --git a/docs/content/en/news/0.32-relnotes/index.md b/docs/content/en/news/0.32-relnotes/index.md
deleted file mode 100644
index c3f36fe644b..00000000000
--- a/docs/content/en/news/0.32-relnotes/index.md
+++ /dev/null
@@ -1,94 +0,0 @@
-
----
-date: 2017-12-31
-title: "Hugo 0.32: Page Bundles and Image Processing!"
-description: "Images and other resources with page-relative links, resize, scale and crop images, and much more."
-categories: ["Releases"]
-images:
-- images/blog/hugo-32-poster.png
----
-
- Hugo `0.32` features **Page Bundles and Image Processing** by [@bep](https://github.com/bep), which is very cool and useful on so many levels. Read about it in more detail in the [Hugo documentation](https://gohugo.io/about/new-in-032/), but some of the highlights include:
-
-* Automatic bundling of a content page with its resources. Resources can be anything: Images, `JSON` files ... and also other content pages.
-* A `Resource` will have its `RelPermalink` and `Permalink` relative to the "owning page". This makes the complete article with both text and images portable (just send a ZIP file with a folder to your editor), and it can be previewed directly on GitHub.
-* Powerful and simple to use image processing with the new `.Resize`, `.Fill`, and `.Fit` methods on the new `Image` resource.
-* Full support for symbolic links inside `/content`, both for regular files and directories.
-
-The built-in benchmarks in Hugo show that this is also the [fastest and most memory effective](https://gist.github.com/bep/2a9bbd221de2da5d39c8b32085c658f7) Hugo version to date. But note that the build time total reported in the console is now adjusted to be the *real total*, including the copy of static files. So, if it reports more milliseconds, it is still most likely faster ...
-
-This release represents **30 contributions by 7 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 [@betaveros](https://github.com/betaveros), [@chaseadamsio](https://github.com/chaseadamsio), and [@kropp](https://github.com/kropp). And as always big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **17 contributions by 7 contributors**. A special thanks to [@bep](https://github.com/bep), [@felicianotech](https://github.com/felicianotech), [@maiki](https://github.com/maiki), and [@carlchengli](https://github.com/carlchengli) for their work on the documentation site.
-
-Hugo now has:
-
-* 22061+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 454+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 193+ [themes](http://themes.gohugo.io/)
-
-Today is **New Year's Eve.** It is the last day of 2017, a year that have seen a **string of pearls of Hugo releases**, making Hugo _the_ top choice for website development:
-
-* 0.32, December 2017: **Page Bundles and Image Processing** edition.
-* 0.31, November 2017: The Language **Multihost Edition!** with one `baseURL` per language.
-* 0.30, October 2017: The Race Car Edition with the **Fast Render Mode**.
-* 0.29, September 2017: Added **Template Metrics**.
-* 0.28, September 2017: **Blistering fast and native syntax highlighting** from [Chroma](https://github.com/alecthomas/chroma).
-* 0.27, September 2017: Fast and flexible **Related Content.**
-* 0.26, August 2017: The **Language Style Edition** with AP Style or Chicago Style Title Case and « French Guillemets ».
-* 0.25, July 2017: The **Kinder Surprise** edition added, among other cool things, `hugo server --navigateToChanged` which navigates to the content page you start editing.
-* 0.24, June 2017: Was **The Revival of the Archetypes!** Now archetype files, i.e. the content file templates, can include template syntax with all of Hugo's functions and variables.
-* 0.23, June 2017: Hugo moved to it's own GitHub organization, **gohugoio**.
-* 0.22, June 2017: Added **nested sections**, a long sought after feature.
-* 0.21, May 2017: Full support for shortcodes per output format (think **AMP**).
-* 0.20, April 2017: Was all about **Custom Output Formats**.
-* 0.19, February 2017: Native Emacs Org-mode content support and lots of internal upgrades.
-
-## Notes
-
-* The build total in the console is now the ... total (i.e. it now includes both the copy of the static files and the Hugo build). So if your Hugo site seems to build slightly slower, it is in reality probably slightly faster than before this release.
-* Images and other static resources in folders with "_index.md" will have its `RelPermalink` relative to its page.
-* Images and other static resources in or below "index.md" folders will have its `RelPermalink` relative to its page (respecting permalink settings etc.)
-* Content pages in or below "index.md" will not get their own `URL`, but will be part of the `.Resources` collection of its page.
-* `.Site.Files` is deprecated.
-* Hugo no longer minfies CSS files inside `/content`. This was an undocumented "proof of concept feature". We may revisit the "assets handling" in a future release.
-* `Page.GetParam`does not lowercase your result anymore. If you really want to lowercase your params, do it with `.GetParam "myparam" | lower` or similar.
-
-Previously deprecated that will now `ERROR`:
-
-* `disable404`: Use `disableKinds=["404"]`
-* `disableRSS`: Use `disableKinds=["RSS"]`
-* `disableSitemap`: Use `disableKinds=["sitemap"]`
-* `disableRobotsTXT`: Use `disableKinds=["robotsTXT"]`
-
-## Enhancements
-
-* Add `.Title` and `.Page` to `MenuEntry` [9df3736f](https://github.com/gohugoio/hugo/commit/9df3736fec164c51d819797416dc263f2869be77) [@rmetzler](https://github.com/rmetzler) [#2784](https://github.com/gohugoio/hugo/issues/2784)
-* Add `Pandoc` support [e69da7a4](https://github.com/gohugoio/hugo/commit/e69da7a4cb725987f153707bf2fc59c135007e2a) [@betaveros](https://github.com/betaveros) [#234](https://github.com/gohugoio/hugo/issues/234)
-* Implement Page bundling and image handling [3cdf19e9](https://github.com/gohugoio/hugo/commit/3cdf19e9b7e46c57a9bb43ff02199177feb55768) [@bep](https://github.com/bep) [#3651](https://github.com/gohugoio/hugo/issues/3651)[#3158](https://github.com/gohugoio/hugo/issues/3158)[#1014](https://github.com/gohugoio/hugo/issues/1014)[#2021](https://github.com/gohugoio/hugo/issues/2021)[#1240](https://github.com/gohugoio/hugo/issues/1240)[#3757](https://github.com/gohugoio/hugo/issues/3757)
-* Make `chomp` return the type it receives [22cd89ad](https://github.com/gohugoio/hugo/commit/22cd89adc4792a3b55389d38acd4acfae3786775) [@kropp](https://github.com/kropp) [#2187](https://github.com/gohugoio/hugo/issues/2187)
-* Reuse the `BlackFriday` config instance when possible [db4b7a5c](https://github.com/gohugoio/hugo/commit/db4b7a5c6742c75f9cd9627d3b054d3a72802ec8) [@bep](https://github.com/bep)
-* Remove the goroutines from the shortcode lexer [24369410](https://github.com/gohugoio/hugo/commit/243694102a60da2fb1050020f68384539f9f9ef5) [@bep](https://github.com/bep)
-* Improve site benchmarks [051fa343](https://github.com/gohugoio/hugo/commit/051fa343d06d6c070df742f7cbd125432fcab665) [@bep](https://github.com/bep)
-* Update `Chroma` to `v0.2.0` [79892101](https://github.com/gohugoio/hugo/commit/7989210120dbde78da3741e2ef01b13f4aa78692) [@bep](https://github.com/bep) [#4087](https://github.com/gohugoio/hugo/issues/4087)
-* Update `goorgeous` to `v1.1.0` [7f2ae3ef](https://github.com/gohugoio/hugo/commit/7f2ae3ef39f27a9bd26ddb9258b073a840faf491) [@chaseadamsio](https://github.com/chaseadamsio)
-* Add test for homepage content for all rendering engines [407c2402](https://github.com/gohugoio/hugo/commit/407c24020ef2db90cf33fd07e7522b2257013722) [@bep](https://github.com/bep) [#4166](https://github.com/gohugoio/hugo/issues/4166)
-* Add output formats definition to benchmarks [a2d81ce9](https://github.com/gohugoio/hugo/commit/a2d81ce983d45b5742c93bd472503c88286f099a) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Do not unescape input to `highlight` [c067f345](https://github.com/gohugoio/hugo/commit/c067f34558b82455b63b9ce8f5983b4b4849c7cf) [@bep](https://github.com/bep) [#4179](https://github.com/gohugoio/hugo/issues/4179)
-* Properly close image file in `imageConfig` [6d79beb5](https://github.com/gohugoio/hugo/commit/6d79beb5f67dbb54d7714c3195addf9d8e3924e8) [@bep](https://github.com/bep)
- * Fix `opengraph` video range template [23f69efb](https://github.com/gohugoio/hugo/commit/23f69efb3914946b39ce673fcc0f2e3a9ed9d878) [@drlogout](https://github.com/drlogout) [#4136](https://github.com/gohugoio/hugo/issues/4136)
-* Fix `humanize` for multi-byte runes [e7652180](https://github.com/gohugoio/hugo/commit/e7652180a13ce149041c48a1c2754c471df569c8) [@bep](https://github.com/bep) [#4133](https://github.com/gohugoio/hugo/issues/4133)
-
-### Other
-
-* Fix broken live reload without a server port. [25114986](https://github.com/gohugoio/hugo/commit/25114986086e5877a0b4108d8cf5e4e95f377241) [@sainaen](https://github.com/sainaen) [#4141](https://github.com/gohugoio/hugo/issues/4141)
-* Make sure all language homes are always re-rendered in fast render mode [72903be5](https://github.com/gohugoio/hugo/commit/72903be587e9c4e3644f60b11e26238ec03da2db) [@bep](https://github.com/bep) [#4125](https://github.com/gohugoio/hugo/issues/4125)
-* Do not `tolower` result from Page.GetParam [1c114d53](https://github.com/gohugoio/hugo/commit/1c114d539b0755724443fe28c90b12fe2a19085a) [@bep](https://github.com/bep) [#4187](https://github.com/gohugoio/hugo/issues/4187)
diff --git a/docs/content/en/news/0.32.1-relnotes/index.md b/docs/content/en/news/0.32.1-relnotes/index.md
deleted file mode 100644
index 867e3413e28..00000000000
--- a/docs/content/en/news/0.32.1-relnotes/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
-
----
-date: 2018-01-02
-title: "Hugo 0.32.1: Two bugfixes"
-description: "Fixes image processing in shortcodes."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-
-This fixes 2 bugs from the Hugo 0.32 release.
-
-* Fix image processing from shortcodes in non-server mode. [@bep](https://github.com/bep) [#4202](https://github.com/gohugoio/hugo/issues/4202)
-* Fix broken `hugo --renderToMemory`. Note that this is only useful for benchmark testing, as there is no easy way to actually view the result. [d36d71ed](https://github.com/gohugoio/hugo/commit/d36d71edd3b04df3b34edf4d108e3995a244c4f0) [@bep](https://github.com/bep) [#4212](https://github.com/gohugoio/hugo/issues/4212)
-
-
-
-
diff --git a/docs/content/en/news/0.32.2-relnotes/index.md b/docs/content/en/news/0.32.2-relnotes/index.md
deleted file mode 100644
index 7453a2678ab..00000000000
--- a/docs/content/en/news/0.32.2-relnotes/index.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
----
-date: 2018-01-03
-title: "Hugo 0.32.2: One bugfix"
-description: "Fixes one issue with publishing of processed images when no cache."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-
-* Handle publish of processed images to /public on fresh build with no image cache in /resources (as reported by one person in a Netlify build) [196da49c](https://github.com/gohugoio/hugo/commit/196da49c9d906fbae6d389fdd32b80c27cb38de4) [@bep](https://github.com/bep) [#4213](https://github.com/gohugoio/hugo/issues/4213)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.32.3-relnotes/index.md b/docs/content/en/news/0.32.3-relnotes/index.md
deleted file mode 100644
index ad795a1837c..00000000000
--- a/docs/content/en/news/0.32.3-relnotes/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
----
-date: 2018-01-08
-title: "Hugo 0.32.3: Some important bug fixes"
-description: "Fixes multilingual resource (images etc.) handling etc."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-Hugo `0.32` was a big and [really cool](https://gohugo.io/news/0.32-relnotes/) release, and the [Hugo Forum](https://discourse.gohugo.io/) has been filled with questions from people wanting to upgrade their Hugo sites to be able to use the new image processing feature etc.
-
-And with that we have discovered some issues, which this release should fix, mostly releated to multilingual sites:
-
-* Fix multihost detection for sites without language definition [8969331f](https://github.com/gohugoio/hugo/commit/8969331f5be352939883074034adac6b7086ddc8) [@bep](https://github.com/bep) [#4221](https://github.com/gohugoio/hugo/issues/4221)
-* Fix hugo benchmark --renderToMemory [059e8458](https://github.com/gohugoio/hugo/commit/059e8458d690dbb9fcd3ebd58cfc61b062d3138e) [@bep](https://github.com/bep) [#4218](https://github.com/gohugoio/hugo/issues/4218)
-* Fix URLs for bundle resources in multihost mode [ab82a27d](https://github.com/gohugoio/hugo/commit/ab82a27d055c3aa177821d81a45a5c6e972aa29e) [@bep](https://github.com/bep) [#4217](https://github.com/gohugoio/hugo/issues/4217)
-* Fix sub-folder baseURL handling for Page resources [f25d8a9e](https://github.com/gohugoio/hugo/commit/f25d8a9e17fb65fa41dafdcbf0358853d68eaf45) [@bep](https://github.com/bep) [#4228](https://github.com/gohugoio/hugo/issues/4228)
-* Avoid processing and storing same image for each language [4b04db0f](https://github.com/gohugoio/hugo/commit/4b04db0f0855a1f54895d6c93c52dcea4b1ce3ca) [@bep](https://github.com/bep) [#4231](https://github.com/gohugoio/hugo/issues/4231)
-* Resources.ByType should return Resources [97c1866e](https://github.com/gohugoio/hugo/commit/97c1866e322284dec46db6f3d235807507f5b69f) [@bep](https://github.com/bep) [#4234](https://github.com/gohugoio/hugo/issues/4234)
-* Report build time on config.toml change [6feb1387](https://github.com/gohugoio/hugo/commit/6feb138785eeb9e813428d0df30010d9b5fb1059) [@bep](https://github.com/bep) [#4232](https://github.com/gohugoio/hugo/issues/4232)[#4224](https://github.com/gohugoio/hugo/issues/4224)
-* Fix handling of mixed-case taxonomy folders with content file [2d3189b2](https://github.com/gohugoio/hugo/commit/2d3189b22760e0a8995dae082a6bc5480f770bfe) [@bep](https://github.com/bep) [#4238](https://github.com/gohugoio/hugo/issues/4238)
-
-
-
-
-
diff --git a/docs/content/en/news/0.32.4-relnotes/index.md b/docs/content/en/news/0.32.4-relnotes/index.md
deleted file mode 100644
index bd8163e0ddf..00000000000
--- a/docs/content/en/news/0.32.4-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2018-01-11
-title: "Hugo 0.32.4: Two bugfixes"
-description: "Fixes non-ASCII path handling for Page resources."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-
-This is a bug-fix release with two of important fixes.
-
-* Fix non-ASCII path handling for Page resources [f0eecc6a](https://github.com/gohugoio/hugo/commit/f0eecc6a4f541838e9930c98bc982546f65c7a4f) [@bep](https://github.com/bep) [#4241](https://github.com/gohugoio/hugo/issues/4241)
-* Fix `--cleanDestinationDir` [5235a5bf](https://github.com/gohugoio/hugo/commit/5235a5bf5ef44b3789341e1d25b681a7bb14771a) [@biodranik](https://github.com/biodranik) [#4246](https://github.com/gohugoio/hugo/issues/4246)[#4248](https://github.com/gohugoio/hugo/issues/4248)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.33-relnotes/featured-hugo-33-poster.png b/docs/content/en/news/0.33-relnotes/featured-hugo-33-poster.png
deleted file mode 100644
index c30caafcc24..00000000000
Binary files a/docs/content/en/news/0.33-relnotes/featured-hugo-33-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.33-relnotes/index.md b/docs/content/en/news/0.33-relnotes/index.md
deleted file mode 100644
index 74cd50dc49a..00000000000
--- a/docs/content/en/news/0.33-relnotes/index.md
+++ /dev/null
@@ -1,76 +0,0 @@
-
----
-date: 2018-01-18
-title: "Hugo 0.33: The New Kinder Surprise!"
-description: "Hugo 0.33 comes with resource (images etc.) metadata, `type` and `layout` for all page types, `url` in front matter for list pages …"
-categories: ["Releases"]
----
-
- Hugo `0.33` is the first main Hugo release of the new year, and it is safe to say that [@bep](https://github.com/bep) has turned off his lazy Christmas mode :smiley:
-
-This is a full makeover of the layout selection logic with full custom `layout` and `type` support (many have asked for this). Also, Hugo now respects the `url` value in front matter for all page types, including sections. Also, you can now configure `uglyURLs` per section.
-
-But this release is also a follow-up to the `0.32` release which was all about bundles with resources and powerful image processing. With this release it is now simple to add metadata to your images and other bundle resources.
-
-[@bep](https://github.com/bep) has added a section with examples of both `resources` configuration in both `YAML` and `TOML` front matter in his [test site](http://hugotest.bep.is/resourcemeta/). The example below shows a sample of how it would look like in `YAML`:
-
-```yaml
-date: 2017-01-17
-title: My Bundle With YAML Resource Metadata
-resources:
-- src: "image-4.png"
- title: "The Fourth Image"
-- src: "*.png"
- name: "my-cool-image-:counter"
- title: "The Image #:counter"
- params:
- byline: "bep"
-```
-
-This release represents **41 contributions by 3 contributors** to the main Hugo code base.
-
-Hugo now has:
-
-* 22553+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 448+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 197+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* We have re-implemented and unified the template layout lookup logic. This has made it more powerful and much simpler to understand. We don't expect any sites to break because of this. We have tested lots of Hugo sites, including the 200 [themes](http://themes.gohugo.io/).
-* The `indexes` type is removed from template lookup. It's not in the documentation, and is a legacy term inherited from very old Hugo versions.
-* If you have sub-dirs in your shiny new bundles (e.g. `my-bundle/images`) and use the `*Prefix*` methods to find them, we have made an unintended change that affects you. See [this issue](https://github.com/gohugoio/hugo/issues/4295).
-
-## Enhancements
-
-### Templates
-
-* Respect `Type` and `Layout` for list template selection [51dd462c](https://github.com/gohugoio/hugo/commit/51dd462c3958f7cf032b06503f1f200a6aceebb9) [@bep](https://github.com/bep) [#3005](https://github.com/gohugoio/hugo/issues/3005)[#3245](https://github.com/gohugoio/hugo/issues/3245)
-
-### Core
-
-* Allow `url` in front matter for list type pages [8a409894](https://github.com/gohugoio/hugo/commit/8a409894bdb0972e152a2eccc47a2738568e1cfc) [@bep](https://github.com/bep) [#4263](https://github.com/gohugoio/hugo/issues/4263)
-* Improve `.Site.GetPage` for regular translated pages. Before this change it was not possible to say "get me the current language edition of the given content page if possible." Now you can do that by doing a lookup without any extensions: `.Site.GetPage "page" "post/mypost"` [9409bc0f](https://github.com/gohugoio/hugo/commit/9409bc0f799a8057836a14ccdf2833a55902175e) [@bep](https://github.com/bep) [#4285](https://github.com/gohugoio/hugo/issues/4285)
-* Add front matter metadata to `Resource` [20c9b6ec](https://github.com/gohugoio/hugo/commit/20c9b6ec81171d1c586ea31d5d08b40b0edaffc6) [@bep](https://github.com/bep) [#4244](https://github.com/gohugoio/hugo/issues/4244)
-* Implement `Resources.ByPrefix` [46db900d](https://github.com/gohugoio/hugo/commit/46db900dab9c0e6fcd9d227f10a32fb24f5c8bd9) [@bep](https://github.com/bep) [#4266](https://github.com/gohugoio/hugo/issues/4266)
-* Make `GetByPrefix` work for Page resources [60c9f3b1](https://github.com/gohugoio/hugo/commit/60c9f3b1c34b69771e25a66906f150f460d73223) [@bep](https://github.com/bep) [#4264](https://github.com/gohugoio/hugo/issues/4264)
-* Make `Resources.GetByPrefix` case insensitive [db85e834](https://github.com/gohugoio/hugo/commit/db85e83403913cff4b8737b138932b28e5bf6160) [@bep](https://github.com/bep) [#4258](https://github.com/gohugoio/hugo/issues/4258)
-* Update `Chroma` and other third-party deps [64f0e9d1](https://github.com/gohugoio/hugo/commit/64f0e9d1c1d4ff2249fd9cf9749e70485002b36d) [@bep](https://github.com/bep) [#4267](https://github.com/gohugoio/hugo/issues/4267)
-* Remove superflous `BuildDate` logic [13d53b31](https://github.com/gohugoio/hugo/commit/13d53b31f19240879122d6b7e4aaeb60b5130a3c) [@bep](https://github.com/bep) [#4272](https://github.com/gohugoio/hugo/issues/4272)
-* Run benchmarks 3 times [b6ea6d07](https://github.com/gohugoio/hugo/commit/b6ea6d07d0b072d850fb066c78976acd6c2f5e81) [@bep](https://github.com/bep)
-* Support `uglyURLs` per section [57e10f17](https://github.com/gohugoio/hugo/commit/57e10f174e51cc5e1cf5f37eed30a0f3b153dd64) [@bep](https://github.com/bep) [#4256](https://github.com/gohugoio/hugo/issues/4256)
-* Update CONTRIBUTING.md [1046e936](https://github.com/gohugoio/hugo/commit/1046e9363f2e382fd0b4aac838735ae4cbbebe5a) [@vassudanagunta](https://github.com/vassudanagunta)
-* Support offline builds [d5803da1](https://github.com/gohugoio/hugo/commit/d5803da1befba5446d1b2c1ad16f6467dc7b3991) [@vassudanagunta](https://github.com/vassudanagunta)
-
-## Fixes
-
-* Fix handling of mixed-case taxonomy folders with content file [2d3189b2](https://github.com/gohugoio/hugo/commit/2d3189b22760e0a8995dae082a6bc5480f770bfe) [@bep](https://github.com/bep) [#4238](https://github.com/gohugoio/hugo/issues/4238)
-* Fix handling of very long image file names [ecaf1451](https://github.com/gohugoio/hugo/commit/ecaf14514e06321823bdd10235cf23e7d654ba77) [@bep](https://github.com/bep) [#4261](https://github.com/gohugoio/hugo/issues/4261)
-* Update `Afero` to avoid panic on "file name is too long" [f8a119b6](https://github.com/gohugoio/hugo/commit/f8a119b606d55aa4f31f16e5a3cadc929c99e4f8) [@bep](https://github.com/bep) [#4240](https://github.com/gohugoio/hugo/issues/4240)
-* And now really fix the server watch logic [d4f8f88e](https://github.com/gohugoio/hugo/commit/d4f8f88e67f958b8010f90cb9b9854114e52dac2) [@bep](https://github.com/bep) [#4275](https://github.com/gohugoio/hugo/issues/4275)
-* Fix server without watch [4e524ffc](https://github.com/gohugoio/hugo/commit/4e524ffcfff48c017717e261c6067416aa56410f) [@bep](https://github.com/bep) [#4275](https://github.com/gohugoio/hugo/issues/4275)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.34-relnotes/featured-34-poster.png b/docs/content/en/news/0.34-relnotes/featured-34-poster.png
deleted file mode 100644
index a5c81b8c808..00000000000
Binary files a/docs/content/en/news/0.34-relnotes/featured-34-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.34-relnotes/index.md b/docs/content/en/news/0.34-relnotes/index.md
deleted file mode 100644
index dd5418a776c..00000000000
--- a/docs/content/en/news/0.34-relnotes/index.md
+++ /dev/null
@@ -1,44 +0,0 @@
-
----
-date: 2018-01-22
-title: "Hugo 0.34: Pattern matching to filter images and other resources"
-description: "Hugo 0.34 adds full glob with super-asterisk support, for example `*.jpg`."
-categories: ["Releases"]
----
-
-Hugo `0.34` is a small release. It contains a few smaller bug-fixes, but more important is an overhaul of the API used to find images and other resources in your page bundles.
-
-We have added two simple methods on the `Resources` object:
-
-* `.Match` finds every resource matching a pattern. Examples: `.Match "images/*.jpg"` finds every JPEG image in `images` and `.Match "**.jpg"` finds every JPEG image in the bundle.
-* `.GetMatch` finds the first resource matching the pattern given.
-
-**Note: The path separators used are Unix-style forward slashes, even on Windows.**
-
-It uses [standard wildcard syntax](http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm) with the addition of the `**`, aka super-asterisk, which matches across path boundaries.
-
-Thanks to [@gobwas](https://github.com/gobwas/glob) for a fast and easy-to-use Glob library.
-
-This release represents **5 contributions by 1 contributors** to the main Hugo code base.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **25 contributions by 16 contributors**. A special thanks to [@bep](https://github.com/bep), [@rmetzler](https://github.com/rmetzler), [@chris-rudmin](https://github.com/chris-rudmin), and [@stkevintan](https://github.com/stkevintan) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 22689+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 448+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 197+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* `Resources.GetByPrefix` and `Resources.ByPrefix` are deprecated. They still work, but will eventually be removed. Use `Resources.Match` (many) and `Resources.GetMatch` (one).
-* When filtering bundles pages in sub-folders, you need to include the sub-folder when matching. This was a bug introduced in `0.33` and gets it in line with images and other resources.
-
-## Enhancements
-
-* Add `Resources.Match` and `Resources.GetMatch` [94213801](https://github.com/gohugoio/hugo/commit/9421380168f66620cb73203e1267814b3086d805) [@bep](https://github.com/bep) [#4301](https://github.com/gohugoio/hugo/issues/4301)
-
-## Fixes
-* Add validation for `defaultContentLanguage` [4d5e4f37](https://github.com/gohugoio/hugo/commit/4d5e4f379a890a3c6cbc11ddb40d77a90f14c015) [@bep](https://github.com/bep) [#4298](https://github.com/gohugoio/hugo/issues/4298)
-* Fix lookup of pages bundled in sub-folders in `ByPrefix` etc. [5d030869](https://github.com/gohugoio/hugo/commit/5d03086981b4a7d4bc450269a6a2e0fd22dbeed7) [@bep](https://github.com/bep) [#4295](https://github.com/gohugoio/hugo/issues/4295)
diff --git a/docs/content/en/news/0.35-relnotes/featured-hugo-35-poster.png b/docs/content/en/news/0.35-relnotes/featured-hugo-35-poster.png
deleted file mode 100644
index a97e3b90182..00000000000
Binary files a/docs/content/en/news/0.35-relnotes/featured-hugo-35-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.35-relnotes/index.md b/docs/content/en/news/0.35-relnotes/index.md
deleted file mode 100644
index 104cbd222f1..00000000000
--- a/docs/content/en/news/0.35-relnotes/index.md
+++ /dev/null
@@ -1,102 +0,0 @@
-
----
-date: 2018-01-31
-title: "Hugo 0.35: Headless Bundles!"
-description: "Headless Bundles, disable languages, improves fast render mode, and much more."
-categories: ["Releases"]
----
-
-The most notable new feature in Hugo `0.35` is perhaps **Headless Bundles**.
-
-This means that you in your `index.md` front matter can say:
-
-```yaml
-headless: true
-```
-And
-
-* it will have no `Permalink` and no rendered HTML in `/public`
-* it will not be part of `.Site.RegularPages` etc.
-
-But you can get it by:
-
-* `.Site.GetPage ...`
-
-The use cases are many:
-
-* Shared media libraries
-* Reusable page content "snippets"
-* ...
-
-But this release contains more goodies than possible to sum up in one paragraph, so study the release notes carefully. It represents **42 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 to [@vassudanagunta](https://github.com/vassudanagunta), [@yanzay](https://github.com/yanzay), and [@robertbasic](https://github.com/robertbasic) for their ongoing contributions.
-
-And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **28 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@kaushalmodi](https://github.com/kaushalmodi), [@regisphilibert](https://github.com/regisphilibert), and [@salim-b](https://github.com/salim-b) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 22967+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 448+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 197+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Deprecate `useModTimeAsFallback` [adfd4370](https://github.com/gohugoio/hugo/commit/adfd4370b67fd7181178bd6b3b1d07356beaac71) [@bep](https://github.com/bep) [#4351](https://github.com/gohugoio/hugo/issues/4351)
-* Deprecate CLI flags `canonifyURLs`, `pluralizeListTitles`, `preserveTaxonomyNames`, `uglyURLs` [f08ea02d](https://github.com/gohugoio/hugo/commit/f08ea02d24d42929676756950f3affaca7fd8c01) [@bep](https://github.com/bep) [#4347](https://github.com/gohugoio/hugo/issues/4347)
-* Remove undraft command [2fa70c93](https://github.com/gohugoio/hugo/commit/2fa70c9344b231c9d999bbafdfa4acbf27ed9f6e) [@robertbasic](https://github.com/robertbasic) [#4353](https://github.com/gohugoio/hugo/issues/4353)
-
-## Enhancements
-
-### Templates
-
-* Update Twitter card to also consider images in `.Resources` [25d691da](https://github.com/gohugoio/hugo/commit/25d691daff57d7c6d7d0f63af3991d22e3f788fe) [@bep](https://github.com/bep) [#4349](https://github.com/gohugoio/hugo/issues/4349)
-* Seed random on init only [83c761b7](https://github.com/gohugoio/hugo/commit/83c761b71a980aee6331179b271c7e24e999e8eb) [@liguoqinjim](https://github.com/liguoqinjim)
-* Remove duplicate layout lookup layouts [b2fcbb1f](https://github.com/gohugoio/hugo/commit/b2fcbb1f9774aa1e929b8575c0e1ac366ab2fb73) [@bep](https://github.com/bep) [#4319](https://github.com/gohugoio/hugo/issues/4319)
-* Add "removable-media" interface to `snapcraft.yaml` [f0c0ece4](https://github.com/gohugoio/hugo/commit/f0c0ece44d55b6c2997cbd106d1bc099ea1a2fa7) [@anthonyfok](https://github.com/anthonyfok) [#3837](https://github.com/gohugoio/hugo/issues/3837)
-
-### Other
-
-* Add a way to disable one or more languages [6413559f](https://github.com/gohugoio/hugo/commit/6413559f7575e2653d76227a8037a7edbaae82aa) [@bep](https://github.com/bep) [#4297](https://github.com/gohugoio/hugo/issues/4297)[#4329](https://github.com/gohugoio/hugo/issues/4329)
-* Handle newly created files in Fast Render Mode [1707dae8](https://github.com/gohugoio/hugo/commit/1707dae8d3634006017eb6d040df4dbafc53d92f) [@yanzay](https://github.com/yanzay) [#4339](https://github.com/gohugoio/hugo/issues/4339)
-* Extract the Fast Render Mode logic into a method [94e736c5](https://github.com/gohugoio/hugo/commit/94e736c5e167a0ee70a528e1c19d64a47e7929c2) [@bep](https://github.com/bep) [#4339](https://github.com/gohugoio/hugo/issues/4339)
-* Remove unused code [ae5a45be](https://github.com/gohugoio/hugo/commit/ae5a45be6f0ee4d5c52b38fd28b22b55d9cd7b2d) [@bep](https://github.com/bep)
-* Add the last lookup variant for the `GetPage` index [3446fe9b](https://github.com/gohugoio/hugo/commit/3446fe9b8937610b8b628b2c212eb25888a7c1bb) [@bep](https://github.com/bep) [#4312](https://github.com/gohugoio/hugo/issues/4312)
-* Simplify bundle lookup via `.Site.GetPage`, `ref`, `relref` [517b6b62](https://github.com/gohugoio/hugo/commit/517b6b62389d23bfe41fe3ae551a691b11bdcaa7) [@bep](https://github.com/bep) [#4312](https://github.com/gohugoio/hugo/issues/4312)
-* Remove some now superflous Fast Render Mode code [feeed073](https://github.com/gohugoio/hugo/commit/feeed073c3320b09fb38168ce272ac88b987f1d2) [@bep](https://github.com/bep) [#4339](https://github.com/gohugoio/hugo/issues/4339)
-* Make resource counters for `name` and `title` independent [df20b054](https://github.com/gohugoio/hugo/commit/df20b05463fef42aba93d5208e410a7ecc56da5d) [@bep](https://github.com/bep) [#4335](https://github.com/gohugoio/hugo/issues/4335)
-* Provide .Name to the archetype templates [863a812e](https://github.com/gohugoio/hugo/commit/863a812e07193541b42732b0e227f3d320433f01) [@bep](https://github.com/bep) [#4348](https://github.com/gohugoio/hugo/issues/4348)
-* Only set `url` if permalink in metadata and remove duplicate confirm msg [3752348e](https://github.com/gohugoio/hugo/commit/3752348ef13ced8f6f528b42ee7d76a12a97ae5c) [@lildude](https://github.com/lildude) [#1887](https://github.com/gohugoio/hugo/issues/1887)
-* Start Resources :counter first time they're used [7b472e46](https://github.com/gohugoio/hugo/commit/7b472e46084b603045b87cea870ffc73ac1cf7e7) [@bep](https://github.com/bep) [#4335](https://github.com/gohugoio/hugo/issues/4335)
-* Update to Go 1.9.3 [a91aba1c](https://github.com/gohugoio/hugo/commit/a91aba1c1562259dffd321a608f38c38dd4d5aeb) [@bep](https://github.com/bep) [#4328](https://github.com/gohugoio/hugo/issues/4328)
-* Support pages without front matter [91bb774a](https://github.com/gohugoio/hugo/commit/91bb774ae4e129f7ed0624754b31479c960ef774) [@vassudanagunta](https://github.com/vassudanagunta) [#4320](https://github.com/gohugoio/hugo/issues/4320)
-* Add page metadata dates tests [3f0379ad](https://github.com/gohugoio/hugo/commit/3f0379adb72389954ca2be6a9f2ebfcd65c6c440) [@vassudanagunta](https://github.com/vassudanagunta)
-* Re-generate CLI docs [1e27d058](https://github.com/gohugoio/hugo/commit/1e27d0589118a114e49c032e4bd68b4798e44a5b) [@bep](https://github.com/bep)
-* Remove and update deprecation status [d418c2c2](https://github.com/gohugoio/hugo/commit/d418c2c2eacdc1dc6fffe839e0a90600867878ca) [@bep](https://github.com/bep)
-* Shorten the stale setup [4a7c2b36](https://github.com/gohugoio/hugo/commit/4a7c2b3695fe7b88861f2155ea7ef635fe425cd4) [@bep](https://github.com/bep)
-* Add a `GetPage` to the site benchmarks [a1956391](https://github.com/gohugoio/hugo/commit/a19563910eec5fed08f3b02563b9a7b38026183d) [@bep](https://github.com/bep)
-* Add headless bundle support [0432c64d](https://github.com/gohugoio/hugo/commit/0432c64dd22e4610302162678bb93661ba68d758) [@bep](https://github.com/bep) [#4311](https://github.com/gohugoio/hugo/issues/4311)
-* Merge matching resources params maps [5a0819b9](https://github.com/gohugoio/hugo/commit/5a0819b9b5eb9e79826cfa0a65f235d9821b1ac4) [@bep](https://github.com/bep) [#4315](https://github.com/gohugoio/hugo/issues/4315)
-* Add some general code contribution criteria [78c86330](https://github.com/gohugoio/hugo/commit/78c863305f337ed4faf3cf0a23675f28b0ae5641) [@bep](https://github.com/bep)
-* Tighten page kind logic, introduce tests [8125b4b0](https://github.com/gohugoio/hugo/commit/8125b4b03d10eb73f8aea3f9ea41172aba8df082) [@vassudanagunta](https://github.com/vassudanagunta)
-
-## Fixes
-* Fix `robots.txt` in multihost mode [4d912e2a](https://github.com/gohugoio/hugo/commit/4d912e2aad39bfe8d76672cf53b01317792e02c5) [@bep](https://github.com/bep) [#4193](https://github.com/gohugoio/hugo/issues/4193)
-* Fix `--uglyURLs` from comand line regression [016398ff](https://github.com/gohugoio/hugo/commit/016398ffe2e0a073453cf46a9d6bf72d693c11e5) [@bep](https://github.com/bep) [#4343](https://github.com/gohugoio/hugo/issues/4343)
-* Avoid unescape in `highlight` [ebdd8cba](https://github.com/gohugoio/hugo/commit/ebdd8cba3f5965a8ac897833f313d772271de649) [@bep](https://github.com/bep) [#4219](https://github.com/gohugoio/hugo/issues/4219)
-* Fix Docker build [a34213f0](https://github.com/gohugoio/hugo/commit/a34213f0b5624de101272aab469ca9b6fe0c273f) [@skoblenick](https://github.com/skoblenick) [#4076](https://github.com/gohugoio/hugo/issues/4076)[#4077](https://github.com/gohugoio/hugo/issues/4077)
-* Fix language params handling [ae742cb1](https://github.com/gohugoio/hugo/commit/ae742cb1bdf35b81aa0ede5453da6b0c4a4fccf2) [@bep](https://github.com/bep) [#4356](https://github.com/gohugoio/hugo/issues/4356)[#4352](https://github.com/gohugoio/hugo/issues/4352)
-* Fix handling of top-level page bundles [4eb2fec6](https://github.com/gohugoio/hugo/commit/4eb2fec67c3a72a3ac98aa834dc56fd4504626d8) [@bep](https://github.com/bep) [#4332](https://github.com/gohugoio/hugo/issues/4332)
-* Fix `baseURL` server regression for multilingual sites [ed4a00e4](https://github.com/gohugoio/hugo/commit/ed4a00e46f2344320a22f07febe5aec4075cb3fb) [@bep](https://github.com/bep) [#4333](https://github.com/gohugoio/hugo/issues/4333)
-* Fix "date" page param [322c5672](https://github.com/gohugoio/hugo/commit/322c567220aa4123a5d707629c1bebd375599912) [@vassudanagunta](https://github.com/vassudanagunta) [#4323](https://github.com/gohugoio/hugo/issues/4323)
-* Fix typo in comment [912147ab](https://github.com/gohugoio/hugo/commit/912147ab896e69a450b7100c3d6bf81a7bf78b5a) [@yanzay](https://github.com/yanzay)
-
-
-
-
-
diff --git a/docs/content/en/news/0.36-relnotes/featured-hugo-36-poster.png b/docs/content/en/news/0.36-relnotes/featured-hugo-36-poster.png
deleted file mode 100644
index 12dec42fcdb..00000000000
Binary files a/docs/content/en/news/0.36-relnotes/featured-hugo-36-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.36-relnotes/index.md b/docs/content/en/news/0.36-relnotes/index.md
deleted file mode 100644
index a818924581b..00000000000
--- a/docs/content/en/news/0.36-relnotes/index.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
----
-date: 2018-02-05
-title: "Hugo 0.36: Smart Image Cropping!"
-description: "Hugo 0.36 announces smart image cropping and some important bug fixes."
-categories: ["Releases"]
----
-
-Hugo `0.36` announces **smart cropping** of images, using the [library](https://github.com/muesli/smartcrop) created by [muesli](https://github.com/muesli). We will work with him to improve this even more in the future, but this is now the default used when cropping images in Hugo.
-
-Go [here](http://hugotest.bep.is/resourcemeta/smartcrop/) for a list of examples.
-
-This release represents **7 contributions by 3 contributors** to the main Hugo code base.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **9 contributions by 4 contributors**. A special thanks to [@bep](https://github.com/bep), [@Jibec](https://github.com/Jibec), [@Nick-Rivera](https://github.com/Nick-Rivera), and [@kaushalmodi](https://github.com/kaushalmodi) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 23100+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 448+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 197+ [themes](http://themes.gohugo.io/)
-
-## Notes
-Hugo now defaults to **smart crop** when cropping images, if you don't specify it when calling `.Fill`.
-
-You can get the old default by adding this:
-
-{{< code-toggle file="config" >}}
-[imaging]
-anchor = "center"
-{{< /code-toggle >}}
-
-Also, we have removed the superflous anchor name from the processed filenames that does not use this anchor, so it can be wise to run `hugo --gc` once to remove unused images.
-
-## Enhancements
-* Add smart cropping [722086b4](https://github.com/gohugoio/hugo/commit/722086b4ed3e77d1aba6724474bec06d08e7de06) [@bep](https://github.com/bep) [#4375](https://github.com/gohugoio/hugo/issues/4375)
-
-## Fixes
-* Ensure site templates can override theme templates [084cf419](https://github.com/gohugoio/hugo/commit/084cf4191b3c1e7590a4223fd9251019ef5d4c21) [@moorereason](https://github.com/moorereason) [#3505](https://github.com/gohugoio/hugo/issues/3505)
-* Add additional test to `TestTemplateLookupOrder` [fc06d5c1](https://github.com/gohugoio/hugo/commit/fc06d5c18bb1e47f90f0297aa8121ee0775e047d) [@moorereason](https://github.com/moorereason) [#3505](https://github.com/gohugoio/hugo/issues/3505)
-* Fix broken `TestTemplateLookupOrder` [9a367d9d](https://github.com/gohugoio/hugo/commit/9a367d9d06db6f6cf22121d0397c464ae36e7089) [@moorereason](https://github.com/moorereason)
-* Fix JSON array-based data file handling regression [4402c077](https://github.com/gohugoio/hugo/commit/4402c077754991df19c3bbab0c4a671dcfdc192c) [@vassudanagunta](https://github.com/vassudanagunta) [#4361](https://github.com/gohugoio/hugo/issues/4361)
-* Increase data directory test coverage [4743de0d](https://github.com/gohugoio/hugo/commit/4743de0d3c7564fc06972074e903d5502d204353) [@vassudanagunta](https://github.com/vassudanagunta) [#4138](https://github.com/gohugoio/hugo/issues/4138)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.36.1-relnotes/index.md b/docs/content/en/news/0.36.1-relnotes/index.md
deleted file mode 100644
index 00a5b346c0b..00000000000
--- a/docs/content/en/news/0.36.1-relnotes/index.md
+++ /dev/null
@@ -1,43 +0,0 @@
-
----
-date: 2018-02-15
-title: "Hugo 0.36.1: One Bugfix"
-description: "Fixes a multi-thread image processing issue."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
- This release fixes a multi-thread issue when reprocessing and reusing images across pages. When doing something like this with the same image from a partial used in, say, both the home page and the single page:
-
-```bash
-{{ with $img }}
-{{ $big := .Fill "1024x512 top" }}
-{{ $small := $big.Resize "512x" }}
-{{ end }}
-```
-
-There would be timing issues making Hugo in some cases trying to process the same image twice at the same time.
-
-You would experience errors of type:
-
-```bash
-png: invalid format: not enough pixel data
-```
-
-This commit fixes that by adding a mutex per image. This should also improve the performance, slightly, as it avoids duplicate work.
-
-The current workaround before this fix is to always operate on the original:
-
-```bash
-{{ with $img }}
-{{ $big := .Fill "1024x512 top" }}
-{{ $small := .Fill "512x256 top" }}
-{{ end }}
-```
-This error was rare (no reports on GitHub or the discussion forum), but very hard to debug for the end user.
-
-* Fix multi-threaded image processing issue [d8fdffb5](https://github.com/gohugoio/hugo/commit/d8fdffb55268464d54558d6f9cd3874b612dc7c7) [@bep](https://github.com/bep) [#4404](https://github.com/gohugoio/hugo/issues/4404)
-* Improve error message in .Render [08521dac](https://github.com/gohugoio/hugo/commit/08521dac8323403933a8fd11acfd16930af5f17d) [@bep](https://github.com/bep)
-* Bump Travis/Snapcraft to Go 1.9.4 [fc23a80f](https://github.com/gohugoio/hugo/commit/fc23a80ffd3878b9ba9a160ce37e0e1d8703faf3) [@bep](https://github.com/bep)
-* Improve error processing error message [2851af02](https://github.com/gohugoio/hugo/commit/2851af0225cdf6c4e47058979cd22949ed6d1fc0) [@bep](https://github.com/bep)
diff --git a/docs/content/en/news/0.37-relnotes/featured-hugo-37-poster.png b/docs/content/en/news/0.37-relnotes/featured-hugo-37-poster.png
deleted file mode 100644
index 9f369ba2558..00000000000
Binary files a/docs/content/en/news/0.37-relnotes/featured-hugo-37-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.37-relnotes/index.md b/docs/content/en/news/0.37-relnotes/index.md
deleted file mode 100644
index a9b6b4cef74..00000000000
--- a/docs/content/en/news/0.37-relnotes/index.md
+++ /dev/null
@@ -1,76 +0,0 @@
-
----
-date: 2018-02-27
-title: "Hugo 0.37: Preserve PNG Colour Palette"
-description: "Reduces processed PNG file sizes. And 0.37 is built with Go 1.10!"
-categories: ["Releases"]
----
-
-The main item in Hugo `0.37` is that we now properly preserve the colour palette when processing `PNG` images. We got reports from users experiencing their `PNG` images getting bigger in file size when scaled down. Now, if you, as an example, start out with a carefully chosen 8 bit colour palette (i.e. `PNG-8`), this is now what you will end up with. A special thanks to [@aitva](https://github.com/aitva) for doing the investigative work finding a proper fix for this issue.
-
-This release represents **40 contributions by 5 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 [@vassudanagunta](https://github.com/vassudanagunta), [@kaushalmodi](https://github.com/kaushalmodi), and [@curttimson](https://github.com/curttimson) for their ongoing contributions.
-
-And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **24 contributions by 8 contributors**. A special thanks to [@bep](https://github.com/bep), [@4RU](https://github.com/4RU), [@kaushalmodi](https://github.com/kaushalmodi), and [@mitchchn](https://github.com/mitchchn) for their work on the documentation site.
-
-Hugo now has:
-
-* 23649+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 447+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 197+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* Hugo will now convert non-string `YAML` map keys to string. See [#4393](https://github.com/gohugoio/hugo/issues/4393) for more information. You will get a `WARNING` in the console if you are touched by this.
-* We have improved the `PNG` processing, and have incremented the version numbers on the URL for the processed `PNG` image. This will just work, but you may want to run `hugo --gc` to clean up some old stale images in the resource cache.
-
-## Enhancements
-
-### Templates
-
-* Add template func for TOML/JSON/YAML docs examples conversion. This is mainly motivated by the needs of the Hugo docs site. [d382502d](https://github.com/gohugoio/hugo/commit/d382502d6dfa1c066545e215ba83e2e0a9d2c8d7) [@bep](https://github.com/bep) [#4389](https://github.com/gohugoio/hugo/issues/4389)
-
-### Core
-
-* Refactor tests for JSON, YAML and TOML equivalency, add coverage [82eefded](https://github.com/gohugoio/hugo/commit/82eefded1353f0198fd8fe9f7df1aa620d3d50eb) [@vassudanagunta](https://github.com/vassudanagunta)
-* Re-enable YAML data tests disabled in f554503f [e1728349](https://github.com/gohugoio/hugo/commit/e1728349930e2cc1b6580766473de98adb0f3e50) [@vassudanagunta](https://github.com/vassudanagunta)
-
-### Other
-
-* Preserve color palette for PNG images [799c654b](https://github.com/gohugoio/hugo/commit/799c654b0d39ec869c2da24d41de3636eb7157f0) [@bep](https://github.com/bep) [#4416](https://github.com/gohugoio/hugo/issues/4416)
-* Use `Floyd-Steinberg` dithering for PNGs [13ea1e7c](https://github.com/gohugoio/hugo/commit/13ea1e7c352852966f88ef119d9434bbb1ee62fa) [@bep](https://github.com/bep) [#4453](https://github.com/gohugoio/hugo/issues/4453)
-* Make `ge`, `le` etc. work with the Hugo Version number [0602135f](https://github.com/gohugoio/hugo/commit/0602135fd44b0cfa0a51b0ec6e451ae58ac95666) [@bep](https://github.com/bep) [#4443](https://github.com/gohugoio/hugo/issues/4443)
-* Update dependencies [eaf573a2](https://github.com/gohugoio/hugo/commit/eaf573a2778e79287b871b69f4959fd3082d8887) [@bep](https://github.com/bep) [#4418](https://github.com/gohugoio/hugo/issues/4418)
-* Update to Go 1.10 (!) Take 2 [a3f26e56](https://github.com/gohugoio/hugo/commit/a3f26e56368c62b0900a10d83a11b7783630963b) [@bep](https://github.com/bep)
-* Update to Go 1.10 (!) [ff10c15a](https://github.com/gohugoio/hugo/commit/ff10c15a93632043f7a7f6551a30487c9ef58c50) [@bep](https://github.com/bep)
-* Add WARNING for integer YAML keys [0816a97a](https://github.com/gohugoio/hugo/commit/0816a97a469f11d8e9706143975eaa532e29639b) [@bep](https://github.com/bep) [#4393](https://github.com/gohugoio/hugo/issues/4393)
-* Tune stringifyMapKeys [10a917df](https://github.com/gohugoio/hugo/commit/10a917dfdce8851666c5b89ebc02af6f6c84ab59) [@bep](https://github.com/bep)
-* Rename stringifyYAMLMapKeys to stringifyMapKeys [d4beef0d](https://github.com/gohugoio/hugo/commit/d4beef0d2bb8f6481fa80e1d938454a7d4e38814) [@bep](https://github.com/bep)
-* Add benchmarks for stringifyYAMLMapKeys [51213e0b](https://github.com/gohugoio/hugo/commit/51213e0be19fc19dbca9815afa95c73bd6d159c2) [@bep](https://github.com/bep)
-* Add support for `YAML` array data files [1fa24177](https://github.com/gohugoio/hugo/commit/1fa2417777d82b81bf37919ad02de4f5dcbf0d50) [@vassudanagunta](https://github.com/vassudanagunta) [#3890](https://github.com/gohugoio/hugo/issues/3890)
-* Account for array type data in data dir merge/override logic [bb549a0d](https://github.com/gohugoio/hugo/commit/bb549a0d57505a6b8f28930bb91a9ab44cbb3288) [@vassudanagunta](https://github.com/vassudanagunta) [#4366](https://github.com/gohugoio/hugo/issues/4366)
-* Add "target" and "rel" parameters to figure shortcode [2e95ec68](https://github.com/gohugoio/hugo/commit/2e95ec6844bf65a25485bdc8e2638e45788f2dcf) [@kaushalmodi](https://github.com/kaushalmodi)
-* image" property, not "twitter:image:src" [76d38d5e](https://github.com/gohugoio/hugo/commit/76d38d5e5322fc6220fb9e74f9ca0668606ebb5d) [@kaushalmodi](https://github.com/kaushalmodi)
-
-## Fixes
-
-### Core
-
-* Continue `GitInfo` lookup on error [e9750d83](https://github.com/gohugoio/hugo/commit/e9750d831f749afa928d8a099af5889d18cb2484) [@bep](https://github.com/bep)
-* Fix paginator `URL` for sections with URL in front matter [9f740b37](https://github.com/gohugoio/hugo/commit/9f740b37cfb3278e34a5d085380ccd4d619dabff) [@bep](https://github.com/bep) [#4415](https://github.com/gohugoio/hugo/issues/4415)
-
-### Other
-
-* Fix bug in Site.assembleSections method [00868081](https://github.com/gohugoio/hugo/commit/00868081f624928d773a7b698654766f8cd70069) [@vassudanagunta](https://github.com/vassudanagunta) [#4447](https://github.com/gohugoio/hugo/issues/4447)
-* Update Blackfriday to fix footnote HTML5 validation error [492fea7c](https://github.com/gohugoio/hugo/commit/492fea7cd2bfcbdfe9f56aa0ae659cf62648833b) [@bep](https://github.com/bep) [#4433](https://github.com/gohugoio/hugo/issues/4433)
-* Fix `YAML` maps key type [16a5c745](https://github.com/gohugoio/hugo/commit/16a5c74519771138023f019fe535fa5b250dc50d) [@dmgawel](https://github.com/dmgawel) [#2441](https://github.com/gohugoio/hugo/issues/2441)
-* Remove `ERROR` on missing baseURL [55bd46a6](https://github.com/gohugoio/hugo/commit/55bd46a633d68f62e131457631ba839d6f876a55) [@bep](https://github.com/bep) [#4397](https://github.com/gohugoio/hugo/issues/4397)
-
-
-
-
-
diff --git a/docs/content/en/news/0.37.1-relnotes/index.md b/docs/content/en/news/0.37.1-relnotes/index.md
deleted file mode 100644
index 754ed4240c1..00000000000
--- a/docs/content/en/news/0.37.1-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2018-03-07
-title: "Hugo 0.37.1: One Bugfix"
-description: "Fixes SVG (and similar) handling as page resources."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with a one important fix:
-
-Image content such as `SVG` cannot be scaled with the built-in image processing methods, but it should still be possible to use them as page resources. This was a regression in Hugo `0.37` and is now fixed. [ba94abbf](https://github.com/gohugoio/hugo/commit/ba94abbf5dd90f989242af8a7027d67a572a6128) [@bep](https://github.com/bep) [#4455](https://github.com/gohugoio/hugo/issues/4455)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.38-relnotes/featured-poster.png b/docs/content/en/news/0.38-relnotes/featured-poster.png
deleted file mode 100644
index 1e7988c8f6e..00000000000
Binary files a/docs/content/en/news/0.38-relnotes/featured-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.38-relnotes/index.md b/docs/content/en/news/0.38-relnotes/index.md
deleted file mode 100644
index 71d167cd5c4..00000000000
--- a/docs/content/en/news/0.38-relnotes/index.md
+++ /dev/null
@@ -1,66 +0,0 @@
-
----
-date: 2018-04-02
-title: "Hugo 0.38: The Easter Egg Edition"
-description: "Hugo 0.38: Date and slug from filenames, multiple content dirs, config from themes, language merge func …"
-categories: ["Releases"]
----
-
-Hugo `0.38` is an **Easter egg** filled with good stuff. We now support fetching **date and slug from the content filename**, making the move from Jekyll even easier. And you can now set `contentDir` per language with intelligent merging, and themes can now provide configuration ... Also worth mentioning is several improvements in the [Chroma](https://github.com/alecthomas/chroma) highlighter, most notable support for Go templates.
-
-We are working hard to get the documentation up-to-date with the new features, but you can also see them in action with the full source at [hugotest.bep.is](http://hugotest.bep.is/).
-
-This release represents **39 contributions by 4 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 [@anthonyfok](https://github.com/anthonyfok), [@felicianotech](https://github.com/felicianotech), and [@paulcmal](https://github.com/paulcmal) 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 [@kaushalmodi](https://github.com/kaushalmodi) for his great work on the documentation site.
-
-Also, a shoutout to [@regisphilibert](https://github.com/regisphilibert) for his work on the new [Code Toggle Shortcode](https://gohugo.io/getting-started/code-toggle/) on the Hugo docs site, which we will put to good use to improve all the configuration samples.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **55 contributions by 18 contributors**. A special thanks to [@kaushalmodi](https://github.com/kaushalmodi), [@bep](https://github.com/bep), [@xa0082249956](https://github.com/xa0082249956), and [@paulcmal](https://github.com/paulcmal) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 24547+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 447+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 213+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* Hugo now allows partial redefinition `outputs` in your site configuration. This is what most people would expect, but it is still a change in behaviour. For details, see [#4487](https://github.com/gohugoio/hugo/issues/4487)
-* Before this release, Hugo flattened URLs of processed images in sub-folders. This worked fine but was not intentional. See [#4502](https://github.com/gohugoio/hugo/issues/4502).
-
-## Enhancements
-
-* Allow themes to define output formats, media types and params [e9c7b620](https://github.com/gohugoio/hugo/commit/e9c7b6205f94a7edac0e0df2cd18d1456cb26a06) [@bep](https://github.com/bep) [#4490](https://github.com/gohugoio/hugo/issues/4490)
-* Allow partial redefinition of the `ouputs` config [f8dc47ee](https://github.com/gohugoio/hugo/commit/f8dc47eeffa847fd0b51e376da355e3d957848a6) [@bep](https://github.com/bep) [#4487](https://github.com/gohugoio/hugo/issues/4487)
-* Add a way to merge pages by language [ffaec4ca](https://github.com/gohugoio/hugo/commit/ffaec4ca8c4c6fd05b195879ccd65acf2fd5a6ac) [@bep](https://github.com/bep) [#4463](https://github.com/gohugoio/hugo/issues/4463)
-* Extract `date` and `slug` from filename [68bf1511](https://github.com/gohugoio/hugo/commit/68bf1511f2be39b6576d882d071196e477c72c9f) [@bep](https://github.com/bep) [#285](https://github.com/gohugoio/hugo/issues/285)[#3310](https://github.com/gohugoio/hugo/issues/3310)[#3762](https://github.com/gohugoio/hugo/issues/3762)[#4340](https://github.com/gohugoio/hugo/issues/4340)
-* Add `Delete` method to delete key from `Scratch` [e46ab29b](https://github.com/gohugoio/hugo/commit/e46ab29bd24caa9e2cfa51f24ba15037750850d6) [@paulcmal](https://github.com/paulcmal)
-* Simplify Prev/Next [79dd7cb3](https://github.com/gohugoio/hugo/commit/79dd7cb31a941d7545df33b938ca3ed46593ddfd) [@bep](https://github.com/bep)
-* List Chroma lexers [2c54f1ad](https://github.com/gohugoio/hugo/commit/2c54f1ad48fe2a2f7504117d351d45abc89dcb1f) [@bep](https://github.com/bep) [#4554](https://github.com/gohugoio/hugo/issues/4554)
-* Add support for a `contentDir` set per language [eb42774e](https://github.com/gohugoio/hugo/commit/eb42774e587816b1fbcafbcea59ed65df703882a) [@bep](https://github.com/bep) [#4523](https://github.com/gohugoio/hugo/issues/4523)[#4552](https://github.com/gohugoio/hugo/issues/4552)[#4553](https://github.com/gohugoio/hugo/issues/4553)
-* Update Chroma [7a634898](https://github.com/gohugoio/hugo/commit/7a634898c359a6af0da52be17df07cae97c7937c) [@bep](https://github.com/bep) [#4549](https://github.com/gohugoio/hugo/issues/4549)
-* Add `.Site.IsServer` [1823c053](https://github.com/gohugoio/hugo/commit/1823c053c8900cb6ee53b8e5c02939c7398e34dd) [@felicianotech](https://github.com/felicianotech) [#4478](https://github.com/gohugoio/hugo/issues/4478)
-* Move to Ubuntu Trusty image [511d5d3b](https://github.com/gohugoio/hugo/commit/511d5d3b7681cb76822098f430ed6862232ca529) [@anthonyfok](https://github.com/anthonyfok)
-* Bump some deprecations [b6798ee8](https://github.com/gohugoio/hugo/commit/b6798ee8676c48f86b0bd8581ea244f4be4ef3fa) [@bep](https://github.com/bep)
-* Update Chroma to get `Go template support` [904a3d9d](https://github.com/gohugoio/hugo/commit/904a3d9ddf523d452d04d0b5814503e0ff17bd2e) [@bep](https://github.com/bep) [#4515](https://github.com/gohugoio/hugo/issues/4515)
-* Recover from error in server [f0052b6d](https://github.com/gohugoio/hugo/commit/f0052b6d0f8e113a50aeb6cd7bd34555dbf34a00) [@bep](https://github.com/bep) [#4516](https://github.com/gohugoio/hugo/issues/4516)
-* Spring test cleaning, take 2 [da880157](https://github.com/gohugoio/hugo/commit/da88015776645cc68b96e8b94030c95905df53ae) [@bep](https://github.com/bep)
-* Add docs for `lang.Merge` [70005364](https://github.com/gohugoio/hugo/commit/70005364a245ea3bc59c74192e1f4c56cb6879cf) [@bep](https://github.com/bep)
-* Remove archetype title/date warning [ac12d51e](https://github.com/gohugoio/hugo/commit/ac12d51e7ea3a0ffb7d8053a10b6bf6acf1235ae) [@bep](https://github.com/bep) [#4504](https://github.com/gohugoio/hugo/issues/4504)
-* Add docs on the new front matter configuration [0dbf79c2](https://github.com/gohugoio/hugo/commit/0dbf79c2f8cd5b1a5c91c04a8d677f956b0b8fe8) [@bep](https://github.com/bep) [#4495](https://github.com/gohugoio/hugo/issues/4495)
-* Refactor the GitInfo into the date handlers [ce6e4310](https://github.com/gohugoio/hugo/commit/ce6e4310febf5659392a41b543594382441f3681) [@bep](https://github.com/bep) [#4495](https://github.com/gohugoio/hugo/issues/4495)
-* Do not print build total when `--quiet` is set [50a03a5a](https://github.com/gohugoio/hugo/commit/50a03a5acc7c200c795590c3f4b964fdc56085f2) [@bep](https://github.com/bep) [#4456](https://github.com/gohugoio/hugo/issues/4456)
-
-## Fixes
-
-* Fix freeze in invalid front matter error case [93e24a03](https://github.com/gohugoio/hugo/commit/93e24a03ce98d3212a2d49ad04739141229d0809) [@bep](https://github.com/bep) [#4526](https://github.com/gohugoio/hugo/issues/4526)
-* Fix path duplication/flattening in processed images [3fbc7553](https://github.com/gohugoio/hugo/commit/3fbc75534d1acda2be1c597aa77c919d3a02659d) [@bep](https://github.com/bep) [#4502](https://github.com/gohugoio/hugo/issues/4502)[#4501](https://github.com/gohugoio/hugo/issues/4501)
-* Fix SVG and similar resource handling [ba94abbf](https://github.com/gohugoio/hugo/commit/ba94abbf5dd90f989242af8a7027d67a572a6128) [@bep](https://github.com/bep) [#4455](https://github.com/gohugoio/hugo/issues/4455)
-
-
-
-
diff --git a/docs/content/en/news/0.38.1-relnotes/index.md b/docs/content/en/news/0.38.1-relnotes/index.md
deleted file mode 100644
index a025b5415b7..00000000000
--- a/docs/content/en/news/0.38.1-relnotes/index.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
----
-date: 2018-04-05
-title: "Hugo 0.38.1: Some Live Reload Fixes"
-description: "Hugo 0.38.1 fixes some live reload issues introduced in 0.38."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix that is mainly motivated by some issues with server live reloading introduced in Hugo 0.38.
-
-* Fix livereload for the home page bundle [f87239e4](https://github.com/gohugoio/hugo/commit/f87239e4cab958bf59ecfb1beb8cac439441a553) [@bep](https://github.com/bep) [#4576](https://github.com/gohugoio/hugo/issues/4576)
-* Fix empty BuildDate in "hugo version" [294c0f80](https://github.com/gohugoio/hugo/commit/294c0f8001fe598278c1eb8015deb6b98e8de686) [@anthonyfok](https://github.com/anthonyfok)
-* Fix some livereload content regressions [a4deaeff](https://github.com/gohugoio/hugo/commit/a4deaeff0cfd70abfbefa6d40c0b86839a216f6d) [@bep](https://github.com/bep) [#4566](https://github.com/gohugoio/hugo/issues/4566)
-* Update github.com/bep/gitmap to fix snap build [4d115c56](https://github.com/gohugoio/hugo/commit/4d115c56fac9060230fbac6181a05f7cc6d10b42) [@anthonyfok](https://github.com/anthonyfok) [#4538](https://github.com/gohugoio/hugo/issues/4538)
-* Fix two tests that are broken on Windows [26f34fd5](https://github.com/gohugoio/hugo/commit/26f34fd59da1ce1885d4f2909c5d9ef9c1726944) [@neurocline](https://github.com/neurocline)
-
-
-This release also contains some improvements:
-
-* Add bash completion [874159b5](https://github.com/gohugoio/hugo/commit/874159b5436bc9080aec71a9c26d35f8f62c9fd0) [@anthonyfok](https://github.com/anthonyfok)
-* Handle mass content etc. edits in server mode [730b66b6](https://github.com/gohugoio/hugo/commit/730b66b6520f263af16f555d1d7be51205a8e51d) [@bep](https://github.com/bep) [#4563](https://github.com/gohugoio/hugo/issues/4563)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.38.2-relnotes/index.md b/docs/content/en/news/0.38.2-relnotes/index.md
deleted file mode 100644
index 0a045eee882..00000000000
--- a/docs/content/en/news/0.38.2-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2018-04-09
-title: "Hugo 0.38.2: Two Bugfixes"
-description: "0.38.2 fixes `--contentDir` flag handling and \".\" in content filenames."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes:
-
-
-* Fix handling of the `--contentDir` and possibly other related flags [080302eb](https://github.com/gohugoio/hugo/commit/080302eb8757fd94ccbd6bf99103432cd98e716c) [@bep](https://github.com/bep) [#4589](https://github.com/gohugoio/hugo/issues/4589)
-* Fix handling of content files with "." in them [2817e842](https://github.com/gohugoio/hugo/commit/2817e842407c8dcbfc738297ab634392fcb41ce1) [@bep](https://github.com/bep) [#4559](https://github.com/gohugoio/hugo/issues/4559)
-
-
-Also in this release:
-
-* Set .Parent in bundled pages to its owner [6792d86a](https://github.com/gohugoio/hugo/commit/6792d86ad028571c684a776c5f00e0107838c955) [@bep](https://github.com/bep) [#4582](https://github.com/gohugoio/hugo/issues/4582)
-
-
-
diff --git a/docs/content/en/news/0.39-relnotes/featured-hugo-39-poster.png b/docs/content/en/news/0.39-relnotes/featured-hugo-39-poster.png
deleted file mode 100644
index e3fa6400a8c..00000000000
Binary files a/docs/content/en/news/0.39-relnotes/featured-hugo-39-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.39-relnotes/index.md b/docs/content/en/news/0.39-relnotes/index.md
deleted file mode 100644
index d1c28252ae1..00000000000
--- a/docs/content/en/news/0.39-relnotes/index.md
+++ /dev/null
@@ -1,87 +0,0 @@
-
----
-date: 2018-04-16
-title: "Hugo 0.39: The Nat King Cole Stabilizer Edition"
-description: "Hugo 0.39: Rewrite of the /commands package, `Resource.Content`, several new template funcs, and more …"
-categories: ["Releases"]
----
-
-
-**Nat King Cole** was a fantastic American jazz pianist. When his bass player had visited the bar a little too often, he started with his percussive piano playing to keep the tempo flowing. Oscar Peterson called it _"Nat's stabilizers"_. This release is the software equivalent of that. We have been doing frequent main releases this year, but looking back, the patch releases that followed them seemed unneeded. And looking at the regressions, most of them stem from the `commands` package, a package that before this release was filled with globals and high coupling. This package is now rewritten and accompanied with decent test coverage.
-
-But this release isn't all boring and technical: It includes several important bug fixes, several useful new template functions, and `Resource.Content` allows you to get any resource's content without having to fiddle with file paths and `readFile`.
-
-This release represents **61 contributions by 4 contributors** to the main Hugo code base. A shout-out to [@bep](https://github.com/bep) for the implementation and [@it-gro](https://github.com/it-gro) and [@RickCogley](https://github.com/RickCogley) for the help testing it.
-
-[@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions and his witty Norwegian humour, but also a big shoutout to [@anthonyfok](https://github.com/anthonyfok), [@thedodobird2](https://github.com/thedodobird2), and [@neurocline](https://github.com/neurocline) 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 [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **6 contributions by 5 contributors**. A special thanks to [@kaushalmodi](https://github.com/kaushalmodi), [@regisphilibert](https://github.com/regisphilibert), [@bep](https://github.com/bep), and [@tomanistor](https://github.com/tomanistor) for their work on the documentation site.
-
-Hugo now has:
-
-* 24911+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 446+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 218+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* The `main.Execute` function now returns a `Response` object and the global `Hugo` variable is removed. This is only relevant for people building some kind of API around Hugo.
-* Remove deprecated `File.Bytes` [94c8b29c](https://github.com/gohugoio/hugo/commit/94c8b29c39d0c485ee91d98c08fd615c28802496) [@bep](https://github.com/bep)
-
-## Enhancements
-
-### Templates
-
-* Add `anchorize` template func [4dba6ce1](https://github.com/gohugoio/hugo/commit/4dba6ce15ae9b5208b1e2d68c96d7b1dce0a07ab) [@bep](https://github.com/bep)
-* Add `path.Join` [880ca19f](https://github.com/gohugoio/hugo/commit/880ca19f209e68e6a8daa6686b361515ecacc91e) [@bep](https://github.com/bep)
-* Add `path.Split` template func [01b72eb5](https://github.com/gohugoio/hugo/commit/01b72eb592d0e0aefc5f7ae42f9f6ff112883bb6) [@bep](https://github.com/bep)
-
-### Other
-
-* Implement `Resource.Content` [0e7716a4](https://github.com/gohugoio/hugo/commit/0e7716a42450401c7998aa81ad2ed98c8ab109e8) [@bep](https://github.com/bep) [#4622](https://github.com/gohugoio/hugo/issues/4622)
-* Make `Page.Content` a method that returns interface{} [417c5e2b](https://github.com/gohugoio/hugo/commit/417c5e2b67b97fa80a0b6f77d259966f03b95344) [@bep](https://github.com/bep) [#4622](https://github.com/gohugoio/hugo/issues/4622)
-* Remove accidental and breaking space in baseURL flag [1b4e0c41](https://github.com/gohugoio/hugo/commit/1b4e0c4161fb631add62e77f494a7e62c3619020) [@bep](https://github.com/bep) [#4607](https://github.com/gohugoio/hugo/issues/4607)
-* Properly handle CLI slice arguments [27a524b0](https://github.com/gohugoio/hugo/commit/27a524b0905ec73c1eef233f94700feb9f465011) [@bep](https://github.com/bep) [#4607](https://github.com/gohugoio/hugo/issues/4607)
-* Correctly handle destination and i18n-warnings [bede93de](https://github.com/gohugoio/hugo/commit/bede93de005dcf934f3ec9be6388310ac6c57acd) [@bep](https://github.com/bep) [#4607](https://github.com/gohugoio/hugo/issues/4607)
-* Allow "*/" inside commented out shortcodes [14c35c8a](https://github.com/gohugoio/hugo/commit/14c35c8a56c4dc9a1ee0053e9ff976be7715ba99) [@bep](https://github.com/bep) [#4608](https://github.com/gohugoio/hugo/issues/4608)
-* Make commands.Execute return a Response object [96689a5c](https://github.com/gohugoio/hugo/commit/96689a5c319f720368491226f034d0ff9585217c) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Remove some TODOs [e7010c1b](https://github.com/gohugoio/hugo/commit/e7010c1b621d68ee53411a5ba8143d07b976d9fe) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Add basic server test [a7d00fc3](https://github.com/gohugoio/hugo/commit/a7d00fc39e87a5cac99b3a2380f5cc8c135d2b4b) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Remove the Hugo global [b110d0ae](https://github.com/gohugoio/hugo/commit/b110d0ae04e13fb45c739bcebb580709745082e6) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the limit command work again [73825cfc](https://github.com/gohugoio/hugo/commit/73825cfc1c0b007830b24bb1947a565175b52d36) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Move the commands related logic to its own file [a8f7fbbb](https://github.com/gohugoio/hugo/commit/a8f7fbbb10aa78f3ebac008d29d9969bb197393c) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Add CLI tests [e8d6ca95](https://github.com/gohugoio/hugo/commit/e8d6ca9531d19e4e898c57d77d2fd627ea38ade0) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the hugo command non-global [4d32f2fa](https://github.com/gohugoio/hugo/commit/4d32f2fa8969f368b088dc9bcedb45f2c986cb27) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Extract some common types into its own file [018602c4](https://github.com/gohugoio/hugo/commit/018602c46db8d729af2871bd5f4c1e7480420f09) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the server command non-global [2f0d98a1](https://github.com/gohugoio/hugo/commit/2f0d98a19b021d03930003217b0519afaef3a391) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the gen commands non-global [e0621d20](https://github.com/gohugoio/hugo/commit/e0621d207ce3278a82f8a60607e9cdd304149029) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the list commands non-global [e26a8b24](https://github.com/gohugoio/hugo/commit/e26a8b242a6434117d089a0799238add7025dbf4) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the import commands non-global [2a2c9838](https://github.com/gohugoio/hugo/commit/2a2c9838671b5401331d20f8c72e2b934fe34e8d) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the config command non-global [15b1e269](https://github.com/gohugoio/hugo/commit/15b1e269ade91ddc6a74c552bc61b0c5e527d268) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make the new commands non-global [56a13080](https://github.com/gohugoio/hugo/commit/56a13080446283ed1cde6b69fc6f4fac85076c84) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make convert command non-global [4b780ca7](https://github.com/gohugoio/hugo/commit/4b780ca778ee7f25af808da38ede964a01698c70) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make more commands non-global [7bc5e89f](https://github.com/gohugoio/hugo/commit/7bc5e89fbaa5c613b8853ff7b69fae570bd0b56d) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Make benchmark non-global [fdf1d94e](https://github.com/gohugoio/hugo/commit/fdf1d94ebc7d1aa4855c62237f2edbd4bdade1a7) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Start of flag cleaning [1157fef8](https://github.com/gohugoio/hugo/commit/1157fef85908ea54883fe0dba6adc4861ba02162) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Use short date format in CLI docs [e614d8a5](https://github.com/gohugoio/hugo/commit/e614d8a57c2ff5eef9270d51fcc6518398d7ff88) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Update README.md [fca49d6c](https://github.com/gohugoio/hugo/commit/fca49d6c608d227049cb2f26895cfecc685f1c89) [@thedodobird2](https://github.com/thedodobird2)
-* Sync dependencies [0e8b3cbc](https://github.com/gohugoio/hugo/commit/0e8b3cbcd274e1f2e14be694c794a544f49efb56) [@bep](https://github.com/bep)
-* Bump Go versions [230f2b8c](https://github.com/gohugoio/hugo/commit/230f2b8c4fce03f14847de2b22402e64d4d69783) [@bep](https://github.com/bep) [#4545](https://github.com/gohugoio/hugo/issues/4545)
-* Add bash completion [874159b5](https://github.com/gohugoio/hugo/commit/874159b5436bc9080aec71a9c26d35f8f62c9fd0) [@anthonyfok](https://github.com/anthonyfok)
-* Handle mass content etc. edits in server mode [730b66b6](https://github.com/gohugoio/hugo/commit/730b66b6520f263af16f555d1d7be51205a8e51d) [@bep](https://github.com/bep) [#4563](https://github.com/gohugoio/hugo/issues/4563)
-
-## Fixes
-
-* Fix `livereload` of bundled pages [f3775877](https://github.com/gohugoio/hugo/commit/f3775877c61c11ab7c8fd1fc3e15470bf5da4820) [@bep](https://github.com/bep) [#4607](https://github.com/gohugoio/hugo/issues/4607)
-* Do not reset `.Page.Scratch` on rebuilds [61d52f14](https://github.com/gohugoio/hugo/commit/61d52f146297950e283ae086d8b1af61099d22a0) [@bep](https://github.com/bep) [#4627](https://github.com/gohugoio/hugo/issues/4627)
-* Fix failing Travis server test [9c782d51](https://github.com/gohugoio/hugo/commit/9c782d5147bfea0dd85cf3374f598f0176f204eb) [@bep](https://github.com/bep)
-* Fix the config command [f396cffa](https://github.com/gohugoio/hugo/commit/f396cffa239e948075af2224208671956d8b4a84) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Fix some flag diff [24d5c219](https://github.com/gohugoio/hugo/commit/24d5c219424a9777bb1dd366b43e68e6f47e1adb) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Fix TestFixURL [1e233b1c](https://github.com/gohugoio/hugo/commit/1e233b1c4598fd8cbce7da8a67bf2c4918c6047e) [@bep](https://github.com/bep) [#4598](https://github.com/gohugoio/hugo/issues/4598)
-* Disable shallow clone to fix TestPageWithLastmodFromGitInfo [094ec171](https://github.com/gohugoio/hugo/commit/094ec171420e659cdf962a19dd90105912ce9901) [@anthonyfok](https://github.com/anthonyfok) [#4584](https://github.com/gohugoio/hugo/issues/4584)
-* Fix livereload for the home page bundle [f87239e4](https://github.com/gohugoio/hugo/commit/f87239e4cab958bf59ecfb1beb8cac439441a553) [@bep](https://github.com/bep) [#4576](https://github.com/gohugoio/hugo/issues/4576)
-* Fix empty `BuildDate` in "hugo version" [294c0f80](https://github.com/gohugoio/hugo/commit/294c0f8001fe598278c1eb8015deb6b98e8de686) [@anthonyfok](https://github.com/anthonyfok)
-* Fix some livereload content regressions [a4deaeff](https://github.com/gohugoio/hugo/commit/a4deaeff0cfd70abfbefa6d40c0b86839a216f6d) [@bep](https://github.com/bep) [#4566](https://github.com/gohugoio/hugo/issues/4566)
-* Fix two tests that are broken on Windows [26f34fd5](https://github.com/gohugoio/hugo/commit/26f34fd59da1ce1885d4f2909c5d9ef9c1726944) [@neurocline](https://github.com/neurocline)
diff --git a/docs/content/en/news/0.40-relnotes/featured-hugo-40-poster.png b/docs/content/en/news/0.40-relnotes/featured-hugo-40-poster.png
deleted file mode 100644
index 9a7f36d1f0a..00000000000
Binary files a/docs/content/en/news/0.40-relnotes/featured-hugo-40-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.40-relnotes/index.md b/docs/content/en/news/0.40-relnotes/index.md
deleted file mode 100644
index 9a45c1c0941..00000000000
--- a/docs/content/en/news/0.40-relnotes/index.md
+++ /dev/null
@@ -1,76 +0,0 @@
-
----
-date: 2018-04-23
-title: "Hugo 0.40: The Revival of the Shortcodes"
-description: "Hugo 0.40: Shortcodes with `.Content` (almost) always available, processed in order of appearance, several new template funcs …"
-categories: ["Releases"]
----
-
-Hugo `0.40` is **The Revival of the Shortcodes**. Shortcodes is one of the prime features in Hugo. Really useful, but it has had some known shortcomings. [@bep](https://github.com/bep) has been really busy the last week to address those.
-
-In summary:
-
-* `.Content` for a page retrieved in a query in a shortcode is now _almost_ always available. Note that shortcodes can include content that can include shortcodes that can include content... It is possible to bite your tail. See more below.
-* Shortcodes are now processed and rendered in their order of appearance.
-* Related to the above, we have now added a zero-based `.Ordinal` to the shortcode.
-
-
-The first bullet above resolves some surprising behaviour when reading other pages' content from shortcodes. Before this release, that behaviour was undefined. Note that this has never been an issue from regular templates.
-
-It will still not be possible to get **the current shortcode's page's rendered content**. That would have impressed Einstein.
-
-The new and well defined rules are:
-
-* `.Page.Content` from a shortcode will be empty. The related `.Page.Truncated` `.Page.Summary`, `.Page.WordCount`, `.Page.ReadingTime`, `.Page.Plain` and `.Page.PlainWords` will also have empty values.
-* For _other pages_ (retrieved via `.Page.Site.GetPage`, `.Site.Pages` etc.) the `.Content` is there to use as you please as long as you don't have infinite content recursion in your shortcode/content setup. See below.
-* `.Page.TableOfContents` is good to go (but does not support shortcodes in headlines; this is unchanged)
-
-If you get into a situation of infinite recursion, the `.Content` will be empty. Run `hugo -v` for more information.
-
-This release represents **19 contributions by 3 contributors** to the main Hugo code base.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **13 contributions by 6 contributors**. A special thanks to [@kaushalmodi](https://github.com/kaushalmodi), [@anthonyfok](https://github.com/anthonyfok), [@bep](https://github.com/bep), and [@regisphilibert](https://github.com/regisphilibert) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 25071+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 446+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 222+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* We have added a `timeout` configuration setting. This is currently only used to time out the `.Content` creation, to bail out of recursive recursions. Run `hugo -v` to see potential warnings about this. The `timeout` is set default to `10000` (10 seconds).
-
-## Enhancements
-
-### Templates
-
-* Add `path.Ext`, `path.Dir` and `path.Base` [47e7788b](https://github.com/gohugoio/hugo/commit/47e7788b3c30de6fb895522096baf2c13598c317) [@bep](https://github.com/bep)
-* Make `fileExist` use the same filesystem as `readFile` [51af1d2e](https://github.com/gohugoio/hugo/commit/51af1d2eadcad89e8c2906c05549352ef69ab016) [@bep](https://github.com/bep) [#4633](https://github.com/gohugoio/hugo/issues/4633)
-
-### Other
-
-* Add `.Page.BundleType` [402f6788](https://github.com/gohugoio/hugo/commit/402f6788ee955ad2aace84e8fba1625db7b356d9) [@bep](https://github.com/bep) [#4662](https://github.com/gohugoio/hugo/issues/4662)
-* Add zero-based `Ordinal` to shortcode [3decf4a3](https://github.com/gohugoio/hugo/commit/3decf4a327157e98d3da3502b6d777de63437c39) [@bep](https://github.com/bep) [#3359](https://github.com/gohugoio/hugo/issues/3359)
-* Process and render shortcodes in their order of appearance [85535084](https://github.com/gohugoio/hugo/commit/85535084dea4d3e3adf1ebd08ae57b39d76e1904) [@bep](https://github.com/bep) [#3359](https://github.com/gohugoio/hugo/issues/3359)
-* Init the content and shortcodes early [19084eaf](https://github.com/gohugoio/hugo/commit/19084eaf74246feac61d618c55031369520dfa8e) [@bep](https://github.com/bep) [#4632](https://github.com/gohugoio/hugo/issues/4632)
-* Prepare child page resources before the page itself [3238e14f](https://github.com/gohugoio/hugo/commit/3238e14fdfeedf189a5af122e20bff040ac059bd) [@bep](https://github.com/bep) [#4632](https://github.com/gohugoio/hugo/issues/4632)
-* Make .Content (almost) always available in shortcodes [4d26ab33](https://github.com/gohugoio/hugo/commit/4d26ab33dcef704086f43828d1dfb4b8beae2593) [@bep](https://github.com/bep) [#4632](https://github.com/gohugoio/hugo/issues/4632)[#4653](https://github.com/gohugoio/hugo/issues/4653)[#4655](https://github.com/gohugoio/hugo/issues/4655)
-* Add language merge support for Pages in resource.Resources [47c05c47](https://github.com/gohugoio/hugo/commit/47c05c47e0b663632a649ee5d256acc1a32fe9e4) [@bep](https://github.com/bep) [#4644](https://github.com/gohugoio/hugo/issues/4644)
-* Improve .Content vs shortcodes [e590cc26](https://github.com/gohugoio/hugo/commit/e590cc26eb1363a4b84603f051b20bd43fd1f7bd) [@bep](https://github.com/bep) [#4632](https://github.com/gohugoio/hugo/issues/4632)
-* Improve .Get docs [74520d2c](https://github.com/gohugoio/hugo/commit/74520d2cfd39bb4428182e26c57afa9df83ce7b5) [@paulcmal](https://github.com/paulcmal)
-* Update missing positional parameter test for .Get [e2b277bb](https://github.com/gohugoio/hugo/commit/e2b277bba5935c0686cb83f132eae021ef2dc5e1) [@paulcmal](https://github.com/paulcmal)
-* Improve error message in metadata parse [d681ea55](https://github.com/gohugoio/hugo/commit/d681ea55a0a59b7096dacd194ee0cb8fe15b0757) [@bep](https://github.com/bep) [#3696](https://github.com/gohugoio/hugo/issues/3696)
-* Add some context to front matter parse error [159bed34](https://github.com/gohugoio/hugo/commit/159bed34c3a850d58d08a36ddc40372ed96af2db) [@bep](https://github.com/bep) [#4638](https://github.com/gohugoio/hugo/issues/4638)
-* Updated GetCSV error message (#4636) [5cc944ff](https://github.com/gohugoio/hugo/commit/5cc944ffd77289ab0b8efd69d628fb11d1280993) [@CubeLuke](https://github.com/CubeLuke)
-* .Get doesn't crash on missing positional param fixes #4619 [236f0c84](https://github.com/gohugoio/hugo/commit/236f0c840b45e0c41fcbb2fb6ee556c0fb2d4859) [@paulcmal](https://github.com/paulcmal)
-* fix syntax signature [cd6a2612](https://github.com/gohugoio/hugo/commit/cd6a261242b63555ac2c3ca7a8462b874b490701) [@paulcmal](https://github.com/paulcmal)
-
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.40.1-relnotes/index.md b/docs/content/en/news/0.40.1-relnotes/index.md
deleted file mode 100644
index 3352f164b61..00000000000
--- a/docs/content/en/news/0.40.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2018-04-25
-title: "Hugo 0.40.1: One Bug Fix"
-description: "Fixes some shortcode vs .Content corner cases."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This release fixes some shortcode vs `.Content` corner cases introduced in Hugo `0.40` [288c3964](https://github.com/gohugoio/hugo/commit/288c39643906b4194a0a6acfbaf87cb0fbdeb361) [@bep](https://github.com/bep) [#4632](https://github.com/gohugoio/hugo/issues/4632)[#4664](https://github.com/gohugoio/hugo/issues/4664).
-
-
-
-
-
diff --git a/docs/content/en/news/0.40.2-relnotes/index.md b/docs/content/en/news/0.40.2-relnotes/index.md
deleted file mode 100644
index 50b9c38428b..00000000000
--- a/docs/content/en/news/0.40.2-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2018-04-30
-title: "Hugo 0.40.2: Two Bug fixes"
-description: "Fixes some regressions introduced in 0.40."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This release fixes some regressions introduced in Hugo `0.40`. See the [milestone](https://github.com/gohugoio/hugo/milestone/62?closed=1) for an issue list.
-
-* Reset .Page.Scratch on live-reload [655983a2](https://github.com/gohugoio/hugo/commit/655983a22dc35b2ee5119dcc4acb9918498d2d68) [@bep](https://github.com/bep) [#4683](https://github.com/gohugoio/hugo/issues/4683)
-* Fix .WordCount, .FuzzyWordCount, .ReadingTime when summary marker is set [001a28c2](https://github.com/gohugoio/hugo/commit/001a28c2f9ed121b33df18fe792859ab378784c6) [@bep](https://github.com/bep) [#4675](https://github.com/gohugoio/hugo/issues/4675)[#4682](https://github.com/gohugoio/hugo/issues/4682)
-
-
-
-
-
diff --git a/docs/content/en/news/0.40.3-relnotes/index.md b/docs/content/en/news/0.40.3-relnotes/index.md
deleted file mode 100644
index 6f822809d9e..00000000000
--- a/docs/content/en/news/0.40.3-relnotes/index.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
----
-date: 2018-05-09
-title: "Hugo 0.40.3: One Bug Fix"
-description: "Fixes a rare, but possible Content truncation issue."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
- Hugo `0.40.3` fixes a possible `.Content` truncation issue introduced in `0.40.1` [90d0d830](https://github.com/gohugoio/hugo/commit/90d0d83097a20a3f521ffc1f5a54a2fbfaf14ce2) [@bep](https://github.com/bep) [#4706](https://github.com/gohugoio/hugo/issues/4706). This should be very rare. It has been reported by only one user on a synthetic site. We have tested a number of big sites that does not show this problem with `0.40.2`, but this is serious enough to warrant a patch release.
diff --git a/docs/content/en/news/0.41-relnotes/featured-hugo-41-poster.png b/docs/content/en/news/0.41-relnotes/featured-hugo-41-poster.png
deleted file mode 100644
index 8f752f6657c..00000000000
Binary files a/docs/content/en/news/0.41-relnotes/featured-hugo-41-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.41-relnotes/index.md b/docs/content/en/news/0.41-relnotes/index.md
deleted file mode 100644
index 411e373e58d..00000000000
--- a/docs/content/en/news/0.41-relnotes/index.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
----
-date: 2018-05-25
-title: "Hugo 0.41: Privacy Configuration for GDPR"
-description: "Hugo 0.41 adds a new site configuration section to meet the new General Data Protection Regulation (GDPR)."
-categories: ["Releases"]
----
-
-
-In Hugo `0.41` we add a new **Privacy Configuration** section to meet the new regulations in the new **General Data Protection Regulation ([GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation))**. Many have contributed work on this project, but a special thanks to [@onedrawingperday](https://github.com/onedrawingperday), [@jhabdas](https://github.com/jhabdas), and [@it-gro](https://github.com/it-gro).
-
-> You can read more about the new Privacy Config [here](https://gohugo.io/about/hugo-and-gdpr/).
-
-
-Hugo now has:
-
-* 25917+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 446+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 231+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* We have fixed an issue where we sent the wrong `.Site` object into the archetype templates used in `hugo new`. This meant that if you wanted to access site params and some other fields you needed to use `.Site.Info.Params` etc. This release fixes that so now you can use the same construct in the archetype templates as in the regular templates.
-
-## Enhancements
-
-* Alias tweet shortode to twitter [3bfe8f4b](https://github.com/gohugoio/hugo/commit/3bfe8f4be653f44674293685cb5750d90668b2f6) [@bep](https://github.com/bep) [#4765](https://github.com/gohugoio/hugo/issues/4765)
-* Adjust GA templates [f45b522e](https://github.com/gohugoio/hugo/commit/f45b522ebffafc61a3cb9b694bc3542747c73e07) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Wrap the relevant templates with the privacy policy disable check [67892073](https://github.com/gohugoio/hugo/commit/6789207347fc2df186741644a6fe968d41ea9077) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Extract internal templates [34ad9a4f](https://github.com/gohugoio/hugo/commit/34ad9a4f178fcf50abe7246ad9d30b294327da16) [@bep](https://github.com/bep) [#4457](https://github.com/gohugoio/hugo/issues/4457)
-* Use double quotes instead of back quotes [b2b500f5](https://github.com/gohugoio/hugo/commit/b2b500f563c3bb36751a4c1610df113c4daad604) [@anthonyfok](https://github.com/anthonyfok)
-* Provide the correct .Site object to archetype templates [ab02594e](https://github.com/gohugoio/hugo/commit/ab02594e09c0414124186e42d67d52d474dd341a) [@bep](https://github.com/bep) [#4732](https://github.com/gohugoio/hugo/issues/4732)
-* Document the GDPR Privacy Config [c71f201f](https://github.com/gohugoio/hugo/commit/c71f201fd93287afa7cb7b875bd523c25e48400c) [@bep](https://github.com/bep) [#4751](https://github.com/gohugoio/hugo/issues/4751)
-* Add no-cookie variants of the Google Analytics templates [a51945ea] (https://github.com/gohugoio/hugo/commit/a51945ea4b99d17501d73cf3367926683e4a4dfd) [@bep](https://github.com/bep) [#4775](https://github.com/gohugoio/hugo/issues/4775)
-* Remove youtube_simple for now [448081b8](https://github.com/gohugoio/hugo/commit/448081b840db4a23c0c49c2d869ac207dcb6ac40) [@bep](https://github.com/bep) [#4751](https://github.com/gohugoio/hugo/issues/4751)
-* Add anonymizeIP to GA privacy config [1f1d955b](https://github.com/gohugoio/hugo/commit/1f1d955b56471e41d5288c57f1ef8333dc297120) [@bep](https://github.com/bep) [#4751](https://github.com/gohugoio/hugo/issues/4751)
-* Support DNT in Twitter shortcode for GDPR [9753cb59](https://github.com/gohugoio/hugo/commit/9753cb59f1f1d866943a485dd7c917d1b68f6eda) [@bep](https://github.com/bep) [#4765](https://github.com/gohugoio/hugo/issues/4765)
-* Regenerate embedded templates [6aa2c385](https://github.com/gohugoio/hugo/commit/6aa2c38507aa1c2246222684717b4d69d26b03d7) [@bep](https://github.com/bep) [#4761](https://github.com/gohugoio/hugo/issues/4761)
-* Add instagram_simple shortcode [9ad46a20](https://github.com/gohugoio/hugo/commit/9ad46a20357a7e28b405feef5c8f7d4501186da6) [@bep](https://github.com/bep) [#4748](https://github.com/gohugoio/hugo/issues/4748)
-* Go fmt [4256de33](https://github.com/gohugoio/hugo/commit/4256de3392d320a5a47fcab49882f2a3249c2163) [@bep](https://github.com/bep)
-* Remove the id from youtube_simple [bed7a0fa](https://github.com/gohugoio/hugo/commit/bed7a0faff90bbe389629347026853b7bc4c8c3f) [@bep](https://github.com/bep) [#4751](https://github.com/gohugoio/hugo/issues/4751)
-* Add an unified .Site.Config with a services section [4ddcf52c](https://github.com/gohugoio/hugo/commit/4ddcf52ccc7af3e23109ebaac1f0486087a212ba) [@bep](https://github.com/bep) [#4751](https://github.com/gohugoio/hugo/issues/4751)
-* Move the privacy config into a parent [353148c2](https://github.com/gohugoio/hugo/commit/353148c2bc2cdb9f2eb8ee967ba756ce09323801) [@bep](https://github.com/bep) [#4751](https://github.com/gohugoio/hugo/issues/4751)
-* Make the simple mode YouTube links schemaless [69ee6b41](https://github.com/gohugoio/hugo/commit/69ee6b41e36625595e2bcabcde0bc58663e5b93c) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Add YouTube shortcode simple mode [88e35686](https://github.com/gohugoio/hugo/commit/88e356868062cc618385cd22b6730df2459518cd) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Do not return error on .Get "class" and vice versa in shortcodes [2f17f937](https://github.com/gohugoio/hugo/commit/2f17f9378ad96c4a9f6d7d24b0776ed3a25a08a3) [@bep](https://github.com/bep) [#4745](https://github.com/gohugoio/hugo/issues/4745)
-* Create SUPPORT.md [0a7027e2](https://github.com/gohugoio/hugo/commit/0a7027e2a87283743d5310b74e18666e4a64d3e1) [@coliff](https://github.com/coliff)
-* Add PrivacyEnhanced mode for YouTube to the GDPR Policy [5f24a2c0](https://github.com/gohugoio/hugo/commit/5f24a2c047db0bff8c9e267bfa8ef8e43e6bd24e) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Add RespectDoNotTrack to GDPR privacy policy for Google Analytics [71014201](https://github.com/gohugoio/hugo/commit/710142016b140538bfc11e48bb32d26fa685b2ad) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Add the foundation for GDPR privacy configuration [0bbdef98](https://github.com/gohugoio/hugo/commit/0bbdef986d8eecf4fabe9a372e33626dbdfeb36b) [@bep](https://github.com/bep) [#4616](https://github.com/gohugoio/hugo/issues/4616)
-* Show site build warning in TestPageBundlerSiteRegular [9bd4236e](https://github.com/gohugoio/hugo/commit/9bd4236e1b3bee332439eef50e12d4481340c3eb) [@anthonyfok](https://github.com/anthonyfok) [#4672](https://github.com/gohugoio/hugo/issues/4672)
-* Do not show empty BuildDate in version [4eedb377](https://github.com/gohugoio/hugo/commit/4eedb377b60fb6742c97398942a0045ff2a824c4) [@anthonyfok](https://github.com/anthonyfok)
-* Improve markup determination logic [2fb9af59](https://github.com/gohugoio/hugo/commit/2fb9af59c14b1732ba1a2f21794e2cf8dfca0604) [@vassudanagunta](https://github.com/vassudanagunta)
-* Update CONTRIBUTING.md [b6ededf0](https://github.com/gohugoio/hugo/commit/b6ededf0591a81667754f1dccef2c6fe6d342811) [@domdomegg](https://github.com/domdomegg)
-
-## Fixes
-
-* Avoid ANSI character output on Windows [568b4335](https://github.com/gohugoio/hugo/commit/568b4335c20effb46168bd639317a3420f563463) [@LorenzCK](https://github.com/LorenzCK) [#4462](https://github.com/gohugoio/hugo/issues/4462)
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.42-relnotes/featured-hugo-42-poster.png b/docs/content/en/news/0.42-relnotes/featured-hugo-42-poster.png
deleted file mode 100644
index 1f1cab1f150..00000000000
Binary files a/docs/content/en/news/0.42-relnotes/featured-hugo-42-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.42-relnotes/index.md b/docs/content/en/news/0.42-relnotes/index.md
deleted file mode 100644
index 9356eb675c4..00000000000
--- a/docs/content/en/news/0.42-relnotes/index.md
+++ /dev/null
@@ -1,66 +0,0 @@
-
----
-date: 2018-06-12
-title: "Hugo 0.42: Theme Composition and Inheritance!"
-description: "Hugo 0.42 adds Theme Components support, a new and powerful way of composing your Hugo sites."
-categories: ["Releases"]
----
-
- Hugo `0.42` adds **Theme Components**. This is a really powerful new way of building your Hugo sites with reusable components. This is both **Theme Composition** and **Theme Inheritance**.
-
->Read more about Theme Components in the [Hugo Documentation](https://gohugo.io/hugo-modules/theme-components/).
-
-The feature above was implemented by [@bep](https://github.com/bep), the funny Norwegian, with great design help from the Hugo community. But that implementation would not have been possible without [Afero](https://github.com/spf13/afero), [Steve Francia's](https://github.com/spf13) virtual file system. Hugo is built on top of Afero and many other fast and solid Go projects, and if you look at the combined contribution log of the Hugo project and its many open source dependencies, the total amount of contributions is staggering. A big thank you to them all!
-
-This release represents **27 contributions by 7 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 [@onedrawingperday](https://github.com/onedrawingperday), [@anthonyfok](https://github.com/anthonyfok), and [@stefanneuhaus](https://github.com/stefanneuhaus) 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 [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **8 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@LorenzCK](https://github.com/LorenzCK), [@gavinwray](https://github.com/gavinwray), and [@deyton](https://github.com/deyton) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 26286+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 444+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 235+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* The `speakerdeck` shortcode is removed. It didn't work properly, so is isn't expected to be in wide use. If you use it, you will get a build error. You will either have to remove its usage or add a `speakerdeck` shortcode to your own project or theme.
-* We have now virtualized the filesystems for project and theme files. This makes everything simpler, faster and more powerful. But it also means that template lookups on the form `{{ template “theme/partials/pagination.html” . }}` will not work anymore. That syntax has never been documented, so it's not expected to be in wide use. `{{ partial "pagination.html" . }}` will give you the most specific version of that partial.
-
-## Enhancements
-
-
-* Always load GA script over HTTPS [2e6712e2](https://github.com/gohugoio/hugo/commit/2e6712e2814f333caa807888c1d8a9a5a3c03709) [@coliff](https://github.com/coliff)
-* Remove speakerdeck shortcode [65deb72d](https://github.com/gohugoio/hugo/commit/65deb72dc4c9299416cf2d9defddb96dba4101fd) [@onedrawingperday](https://github.com/onedrawingperday) [#4830](https://github.com/gohugoio/hugo/issues/4830)
-* Add `strings.RuneCount` [019bd557](https://github.com/gohugoio/hugo/commit/019bd5576be87c9f06b6a928ede1a5e78677f7b3) [@theory](https://github.com/theory)
-* Add `strings.Repeat` [13435a6f](https://github.com/gohugoio/hugo/commit/13435a6f608306c5094fdcd72a1d9538727f91b2) [@theory](https://github.com/theory)
-* Reset Page's main output on server rebuilds [dc4226a8](https://github.com/gohugoio/hugo/commit/dc4226a8b27e03e31068fc945daab885d3819d04) [@bep](https://github.com/bep) [#4819](https://github.com/gohugoio/hugo/issues/4819)
-* Create LICENSE rather than LICENSE.md in "new theme" [ed4a345e](https://github.com/gohugoio/hugo/commit/ed4a345efeaa19eef2c1c6360d22f75c24abc31a) [@anthonyfok](https://github.com/anthonyfok) [#4623](https://github.com/gohugoio/hugo/issues/4623)
-* Create `_default/baseof.html` in "new theme" [9717ac7d](https://github.com/gohugoio/hugo/commit/9717ac7dce84d004afde4edb32ad81319c7dd8a7) [@anthonyfok](https://github.com/anthonyfok) [#3576](https://github.com/gohugoio/hugo/issues/3576)
-* Add `tweet_simple`shortcode [07b96d16](https://github.com/gohugoio/hugo/commit/07b96d16e8679c40e289c9076ef4414ed6eb7f81) [@onedrawingperday](https://github.com/onedrawingperday)
-* Make "new theme" feedback more intuitive [692ec008](https://github.com/gohugoio/hugo/commit/692ec008726b570c9b30ac3391774cbb622730cb) [@anthonyfok](https://github.com/anthonyfok)
-* Move nextStepsText() to new_site.go [d3dd74fd](https://github.com/gohugoio/hugo/commit/d3dd74fd655c22f21e91e38edb1d377a1357e3be) [@anthonyfok](https://github.com/anthonyfok)
-* Add support for theme composition and inheritance [80230f26](https://github.com/gohugoio/hugo/commit/80230f26a3020ff33bac2bef01b2c0e314b89f86) [@bep](https://github.com/bep) [#4460](https://github.com/gohugoio/hugo/issues/4460)[#4450](https://github.com/gohugoio/hugo/issues/4450)
-* Add vimeo_simple [8de53244](https://github.com/gohugoio/hugo/commit/8de53244799f0d2d0343056d348d810343cf7aa5) [@onedrawingperday](https://github.com/onedrawingperday) [#4749](https://github.com/gohugoio/hugo/issues/4749)
-* Add a BlackFriday option for rel="noreferrer" on external links [20cbc2c7](https://github.com/gohugoio/hugo/commit/20cbc2c7856a9b07d45648d940276374db35e425) [@stefanneuhaus](https://github.com/stefanneuhaus) [#4722](https://github.com/gohugoio/hugo/issues/4722)
-* Add a BlackFriday option for rel="nofollow" on external links [7a619264](https://github.com/gohugoio/hugo/commit/7a6192647a4b383cd539df2063388ea380371de6) [@stefanneuhaus](https://github.com/stefanneuhaus) [#4722](https://github.com/gohugoio/hugo/issues/4722)
-* Update Chroma [b5b36e32](https://github.com/gohugoio/hugo/commit/b5b36e32008bc8ea779ae06bf249b537f6d5c336) [@bep](https://github.com/bep) [#4779](https://github.com/gohugoio/hugo/issues/4779)
-* Enhance Page and Resource String() [4f0665f4](https://github.com/gohugoio/hugo/commit/4f0665f476e06e9707621c18f7422fdeb776e0d1) [@vassudanagunta](https://github.com/vassudanagunta)
-* Update theme documentation [c74b0f8f](https://github.com/gohugoio/hugo/commit/c74b0f8f9b30866e09efac8235cc5e0093ab3d50) [@bep](https://github.com/bep) [#4460](https://github.com/gohugoio/hugo/issues/4460)
-
-## Fixes
-
-* Make sure that `.Site.Taxonomies` is always set on rebuilds [6464981a](https://github.com/gohugoio/hugo/commit/6464981adb4d7d0f41e8e2c987342082982210a1) [@bep](https://github.com/bep) [#4838](https://github.com/gohugoio/hugo/issues/4838)
-* Reset the "distinct error logger" on rebuilds [bf5f10fa](https://github.com/gohugoio/hugo/commit/bf5f10faa9fd445c4dd21839aa7d73cd2acbfb85) [@bep](https://github.com/bep) [#4818](https://github.com/gohugoio/hugo/issues/4818)
-* Remove frameborder attr YT iframe + CSS fixes [ceaff7ca](https://github.com/gohugoio/hugo/commit/ceaff7cafc5357274e546984ae02a4cbdf305f81) [@onedrawingperday](https://github.com/onedrawingperday)
-* Fix vimeo_simple thumb scaling [b84389c5](https://github.com/gohugoio/hugo/commit/b84389c5e0e1ef15449b24d488bbbcbc41245c59) [@onedrawingperday](https://github.com/onedrawingperday)
-* Fix typo instagram_simple [d68367cb](https://github.com/gohugoio/hugo/commit/d68367cbe76cbc02adb5b778e8be98bed6319368) [@onedrawingperday](https://github.com/onedrawingperday)
-* Prevent isBaseTemplate() from matching "baseof" in dir [c3115292](https://github.com/gohugoio/hugo/commit/c3115292a7f2d2623cb45054a361e997ad9330c9) [@anthonyfok](https://github.com/anthonyfok) [#4809](https://github.com/gohugoio/hugo/issues/4809)
-
-
-
-
-
diff --git a/docs/content/en/news/0.42.1-relnotes/index.md b/docs/content/en/news/0.42.1-relnotes/index.md
deleted file mode 100644
index 6b5b3c775d4..00000000000
--- a/docs/content/en/news/0.42.1-relnotes/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
-
----
-date: 2018-06-13
-title: "Hugo 0.42.1: Two Bug Fixes"
-description: "Hugo 0.42.1 fixes two issues."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with two fixes:
-
-* Reset the global pages cache on server rebuilds [128f14ef](https://github.com/gohugoio/hugo/commit/128f14efad90886ffef37c01ac1e20436a732f97) [@bep](https://github.com/bep) [#4845](https://github.com/gohugoio/hugo/issues/4845)
-* Do not fail server build when /static is missing [34ee27a7](https://github.com/gohugoio/hugo/commit/34ee27a78b9e2b5f475d44253ae234067b76cc6e) [@bep](https://github.com/bep) [#4846](https://github.com/gohugoio/hugo/issues/4846)
-
diff --git a/docs/content/en/news/0.42.2-relnotes/index.md b/docs/content/en/news/0.42.2-relnotes/index.md
deleted file mode 100644
index c9bf6c46963..00000000000
--- a/docs/content/en/news/0.42.2-relnotes/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
-
----
-date: 2018-06-28
-title: "Hugo 0.42.2: One Bug Fix"
-description: "Hugo 0.42.2 fixes server reload on config changes."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
- This release fixes broken server-reload on config changes. This is a regression from Hugo `0.42`. [3a7706b0](https://github.com/gohugoio/hugo/commit/3a7706b069107e5fa6112b3f7ce006f16867cb38) [@bep](https://github.com/bep) [#4878](https://github.com/gohugoio/hugo/issues/4878)
-
-
-
-
-
diff --git a/docs/content/en/news/0.43-relnotes/featured-hugo-43-poster.png b/docs/content/en/news/0.43-relnotes/featured-hugo-43-poster.png
deleted file mode 100644
index b221ca7f102..00000000000
Binary files a/docs/content/en/news/0.43-relnotes/featured-hugo-43-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.43-relnotes/index.md b/docs/content/en/news/0.43-relnotes/index.md
deleted file mode 100644
index afa23329b02..00000000000
--- a/docs/content/en/news/0.43-relnotes/index.md
+++ /dev/null
@@ -1,96 +0,0 @@
-
----
-date: 2018-07-09
-title: "And Now: Hugo Pipes!"
-description: "Hugo 0.43 adds a powerful and simple to use assets pipeline with SASS/SCSS and much, much more …"
-categories: ["Releases"]
----
-
-Hugo `0.43` adds a powerful and very simple to use **Assets Pipeline** with **SASS and SCSS** with source map support, **PostCSS** and **minification** and **fingerprinting** and **Subresource Integrity** and ... much more. Oh, did we mention that you can now do **ad-hoc image processing** and execute text resources as Go templates?
-
-An example pipeline:
-
-```go-html-template
-{{ $styles := resources.Get "scss/main.scss" | toCSS | postCSS | minify | fingerprint }}
-
-```
-
-To me, the above is beautiful in its speed and simplicity. It could be printed on a t-shirt. I wrote in the [Hugo Birthday Post](https://gohugo.io/news/lets-celebrate-hugos-5th-birthday/) some days ago about the value of a single binary with native and fast implementations. I should have added _simplicity_ as a keyword. There seem to be a misconception that all of this needs to be hard and painful.
-
-New functions to create `Resource` objects:
-
-* `resources.Get`
-* `resources.FromString`: Create a Resource from a string.
-
-New `Resource` transformation funcs:
-
-* `resources.ToCSS`: Compile `SCSS` or `SASS` into `CSS`.
-* `resources.PostCSS`: Process your CSS with PostCSS. Config file support (project or theme or passed as an option).
-* `resources.Minify`: Currently supports `css`, `js`, `json`, `html`, `svg`, `xml`.
-* `resources.Fingerprint`: Creates a fingerprinted version of the given Resource with Subresource Integrity.
-* `resources.Concat`: Concatenates a list of Resource objects. Think of this as a poor man's bundler.
-* `resources.ExecuteAsTemplate`: Parses and executes the given Resource and data context (e.g. .Site) as a Go template.
-
-
-I, [@bep](https://github.com/bep), implemented this in [dea71670](https://github.com/gohugoio/hugo/commit/dea71670c059ab4d5a42bd22503f18c087dd22d4). We will work hard to get the documentation up to date, but follow the links above for details, and also see this [demo project](https://github.com/bep/hugo-sass-test).
-
-
-This release represents **35 contributions by 7 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 [@anthonyfok](https://github.com/anthonyfok), [@openscript](https://github.com/openscript), and [@caarlos0](https://github.com/caarlos0) 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 [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **11 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@danrl](https://github.com/danrl), [@regisphilibert](https://github.com/regisphilibert), and [@digitalcraftsman](https://github.com/digitalcraftsman) for their work on the documentation site.
-
-Hugo now has:
-
-* 26968+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 443+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 238+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* Replace deprecated {Get,}ByPrefix with {Get,}Match [42ed6025](https://github.com/gohugoio/hugo/commit/42ed602580a672e420e1d860384e812f4871ff67) [@anthonyfok](https://github.com/anthonyfok)
-* Hugo is now released with two binary version: One with and one without SCSS/SASS support. At the time of writing, this is only available in the binaries on the GitHub release page. Brew, Snap builds etc. will come. But note that you **only need the extended version if you want to edit SCSS**. For your CI server, or if you don't use SCSS, you will most likely want the non-extended version.
-
-## Enhancements
-
-### Templates
-
-* Return en empty slice in `after` instead of error [f8212d20](https://github.com/gohugoio/hugo/commit/f8212d20009c4b5cc6e1ec733d09531eb6525d9f) [@bep](https://github.com/bep) [#4894](https://github.com/gohugoio/hugo/issues/4894)
-* Update internal pagination template to support Bootstrap 4 [ca1e46ef](https://github.com/gohugoio/hugo/commit/ca1e46efb94e3f3d2c8482cb9434d2f38ffd2683) [@bep](https://github.com/bep) [#4881](https://github.com/gohugoio/hugo/issues/4881)
-* Support text/template/parse API change in go1.11 [9f27091e](https://github.com/gohugoio/hugo/commit/9f27091e1067875e2577c331acc60adaef5bb234) [@anthonyfok](https://github.com/anthonyfok) [#4784](https://github.com/gohugoio/hugo/issues/4784)
-
-### Core
-
-* Allow forward slash in shortcode names [de37455e](https://github.com/gohugoio/hugo/commit/de37455ec73cffd039b44e8f6c62d2884b1d6bbd) [@bep](https://github.com/bep) [#4886](https://github.com/gohugoio/hugo/issues/4886)
-* Reset the global pages cache on server rebuilds [128f14ef](https://github.com/gohugoio/hugo/commit/128f14efad90886ffef37c01ac1e20436a732f97) [@bep](https://github.com/bep) [#4845](https://github.com/gohugoio/hugo/issues/4845)
-
-### Other
-
-* Bump CircleCI image [e3df6478](https://github.com/gohugoio/hugo/commit/e3df6478f09a7a5fed96aced791fa94fd2c35d1a) [@bep](https://github.com/bep)
-* Add Goreleaser extended config [626afc98](https://github.com/gohugoio/hugo/commit/626afc98254421f5a5edc97c541b10bd81d5bbbb) [@bep](https://github.com/bep) [#4908](https://github.com/gohugoio/hugo/issues/4908)
-* Build both hugo and hugo.extended for 0.43 [e1027c58](https://github.com/gohugoio/hugo/commit/e1027c5846b48c4ad450f6cc27e2654c9e0dae39) [@anthonyfok](https://github.com/anthonyfok) [#4908](https://github.com/gohugoio/hugo/issues/4908)
-* Add temporary build script [bfc3488b](https://github.com/gohugoio/hugo/commit/bfc3488b8e8b3dc1ffc6a339ee2dac8dcbdb55a9) [@bep](https://github.com/bep)
-* Add "extended" to "hugo version" [ce84b524](https://github.com/gohugoio/hugo/commit/ce84b524f4e94299b5b66afe7ce1a9bd4a9959fc) [@anthonyfok](https://github.com/anthonyfok) [#4913](https://github.com/gohugoio/hugo/issues/4913)
-* Add a newScratch template func [2b8d907a](https://github.com/gohugoio/hugo/commit/2b8d907ab731627f4e2a30442cd729064516c8bb) [@bep](https://github.com/bep) [#4685](https://github.com/gohugoio/hugo/issues/4685)
-* Add Hugo Piper with SCSS support and much more [dea71670](https://github.com/gohugoio/hugo/commit/dea71670c059ab4d5a42bd22503f18c087dd22d4) [@bep](https://github.com/bep) [#4381](https://github.com/gohugoio/hugo/issues/4381)[#4903](https://github.com/gohugoio/hugo/issues/4903)[#4858](https://github.com/gohugoio/hugo/issues/4858)
-* Consider root and current section's content type if set in front matter [c790029e](https://github.com/gohugoio/hugo/commit/c790029e1dbb0b66af18d05764bd6045deb2e180) [@bep](https://github.com/bep) [#4891](https://github.com/gohugoio/hugo/issues/4891)
-* Update docker image [554553c0](https://github.com/gohugoio/hugo/commit/554553c09c7657d28681e1fa0638806a452737a0) [@bep](https://github.com/bep)
-* Merge branch 'release-0.42.2' [282f6035](https://github.com/gohugoio/hugo/commit/282f6035e7c36f8550d91033e3a66718468c6c8b) [@bep](https://github.com/bep)
-* Release 0.42.2 [1637d12e](https://github.com/gohugoio/hugo/commit/1637d12e3762fc1ebab4cd675f75afaf25f59cdb) [@bep](https://github.com/bep)
-* Update GoReleaser config [1f0c4e1f](https://github.com/gohugoio/hugo/commit/1f0c4e1fb347bb233f3312c424fbf5a013c03604) [@caarlos0](https://github.com/caarlos0)
-* Create missing head.html partial on new theme generation [fd71fa89](https://github.com/gohugoio/hugo/commit/fd71fa89bd6c197402582c87b2b76d4b96d562bf) [@openscript](https://github.com/openscript)
-* Add html doctype to baseof.html template for new themes [b5a3aa70](https://github.com/gohugoio/hugo/commit/b5a3aa7082135d0a573f4fbb00f798e26b67b902) [@openscript](https://github.com/openscript)
-* Adds .gitattributes to force Go files to LF [6a2968fd](https://github.com/gohugoio/hugo/commit/6a2968fd5c0116d93de0f379ac615e9076821899) [@neurocline](https://github.com/neurocline)
-* Update to Go 1.9.7 and Go 1.10.3 [23d5fc82](https://github.com/gohugoio/hugo/commit/23d5fc82ee01d56440d0991c899acd31e9b63e27) [@anthonyfok](https://github.com/anthonyfok)
-* Update Dockerfile to a multi-stage build [8531ec7c](https://github.com/gohugoio/hugo/commit/8531ec7ca36fd35a57fba06bbb06a65c94dfd3ed) [@skoblenick](https://github.com/skoblenick) [#4154](https://github.com/gohugoio/hugo/issues/4154)
-* Release 0.42.1 [d67e843c](https://github.com/gohugoio/hugo/commit/d67e843c1212e1f53933556b5f946c8541188d9a) [@bep](https://github.com/bep)
-* Do not fail server build when /static is missing [34ee27a7](https://github.com/gohugoio/hugo/commit/34ee27a78b9e2b5f475d44253ae234067b76cc6e) [@bep](https://github.com/bep) [#4846](https://github.com/gohugoio/hugo/issues/4846)
-
-## Fixes
-
-* Do not create paginator pages for the other output formats [43338c3a](https://github.com/gohugoio/hugo/commit/43338c3a99769eb7d0df0c12559b8b3d42b67dba) [@bep](https://github.com/bep) [#4890](https://github.com/gohugoio/hugo/issues/4890)
-* Fix the shortcodes/partials vs base template detection [a5d0a57e](https://github.com/gohugoio/hugo/commit/a5d0a57e6bdab583134a68c035aac9b3007f006a) [@bep](https://github.com/bep) [#4897](https://github.com/gohugoio/hugo/issues/4897)
-* nfpm replacements [e1a052ec](https://github.com/gohugoio/hugo/commit/e1a052ecb823c688406a8af97dfaaf52a75231da) [@caarlos0](https://github.com/caarlos0)
-* Fix typos [3cea2932](https://github.com/gohugoio/hugo/commit/3cea2932e17a08ebc19cd05f3079d9379bc8fba5) [@idealhack](https://github.com/idealhack)
diff --git a/docs/content/en/news/0.44-relnotes/featured-hugo-44-poster.png b/docs/content/en/news/0.44-relnotes/featured-hugo-44-poster.png
deleted file mode 100644
index 330b235fbf2..00000000000
Binary files a/docs/content/en/news/0.44-relnotes/featured-hugo-44-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.44-relnotes/index.md b/docs/content/en/news/0.44-relnotes/index.md
deleted file mode 100644
index aa8396898d3..00000000000
--- a/docs/content/en/news/0.44-relnotes/index.md
+++ /dev/null
@@ -1,39 +0,0 @@
-
----
-date: 2018-07-13
-title: "Hugo 0.44: Friday the 13th Edition"
-description: "A sequel to the very popular Hugo Pipes Edition; bug-fixes and enhancements …"
-categories: ["Releases"]
----
-
-
-Hugo `0.44` is the follow-up release, or **The Sequel**, of the very well received `0.43` only days ago. That release added **Hugo Pipes**, with SCSS/SASS support, assets bundling and minification, ad-hoc image processing and much more.
-
-This is mostly a bug-fix release, but it also includes several important improvements.
-
-Many complained that their SVG images vanished when browsed from the `hugo server`. With **Hugo Pipes** MIME types suddenly got really important, but Hugo's use of `Suffix` was ambiguous. This became visible when we redefined the `image/svg+xml` to work with **Hugo Pipes**. We have now added a `Suffixes` field on the MIME type definition in Hugo, which is a list of one or more filename suffixes the MIME type is identified with. If you need to add a custom MIME type definition, this means that you also need to specify the full MIME type as the key, e.g. `image/svg+xml`.
-
-Hugo now has:
-
-* 27120+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 443+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 239+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* `MediaType.Suffix` is deprecated and replaced with a plural version, `MediaType.Suffixes`, with a more specific definition. You will get a detailed WARNING in the console if you need to do anything.
-
-## Enhancements
-* Allow multiple file suffixes per media type [b874a1ba](https://github.com/gohugoio/hugo/commit/b874a1ba7ab8394dc741c8c70303a30a35b63e43) [@bep](https://github.com/bep) [#4920](https://github.com/gohugoio/hugo/issues/4920)
-* Clean up the in-memory Resource reader usage [47d38628](https://github.com/gohugoio/hugo/commit/47d38628ec0f4e72ff17661f13456b2a1511fe13) [@bep](https://github.com/bep) [#4936](https://github.com/gohugoio/hugo/issues/4936)
-* Move opening of the transformed resources after cache check [0024dcfe](https://github.com/gohugoio/hugo/commit/0024dcfe3e016c67046de06d1dac5e7f5235f9e1) [@bep](https://github.com/bep)
-* Improve type support in `resources.Concat` [306573de](https://github.com/gohugoio/hugo/commit/306573def0e20ec16ee5c447981cc09ed8bb7ec7) [@bep](https://github.com/bep) [#4934](https://github.com/gohugoio/hugo/issues/4934)
-* Flush `partialCached` cache on rebuilds [6b6dcb44](https://github.com/gohugoio/hugo/commit/6b6dcb44a014699c289bf32fe57d4c4216777be0) [@bep](https://github.com/bep) [#4931](https://github.com/gohugoio/hugo/issues/4931)
-* Include the transformation step in the error message [d96f2a46](https://github.com/gohugoio/hugo/commit/d96f2a460f58e91d8f6253a489d4879acfec6916) [@bep](https://github.com/bep) [#4924](https://github.com/gohugoio/hugo/issues/4924)
-* Exclude *.svg from CRLF/LF conversion [9c1e8208](https://github.com/gohugoio/hugo/commit/9c1e82085eb07d5b4dcdacbe82d5bafd26e08631) [@anthonyfok](https://github.com/anthonyfok)
-
-## Fixes
-
-* Fix `resources.Concat` for transformed resources [beec1fc9](https://github.com/gohugoio/hugo/commit/beec1fc98e5d37bba742d6bc2a0ff7c344b469f8) [@bep](https://github.com/bep) [#4936](https://github.com/gohugoio/hugo/issues/4936)
-* Fix static filesystem for themed multihost sites [80c8f3b8](https://github.com/gohugoio/hugo/commit/80c8f3b81a9849080e64bf877288ede28d960d3f) [@bep](https://github.com/bep) [#4929](https://github.com/gohugoio/hugo/issues/4929)
-* Set permission of embedded templates to 0644 [2b73e89d](https://github.com/gohugoio/hugo/commit/2b73e89d6d2822e86360a6c92c87f539677c119b) [@anthonyfok](https://github.com/anthonyfok)
-
diff --git a/docs/content/en/news/0.45-relnotes/featured-hugo-45-poster.png b/docs/content/en/news/0.45-relnotes/featured-hugo-45-poster.png
deleted file mode 100644
index 40f71daca9e..00000000000
Binary files a/docs/content/en/news/0.45-relnotes/featured-hugo-45-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.45-relnotes/index.md b/docs/content/en/news/0.45-relnotes/index.md
deleted file mode 100644
index 83051c0586c..00000000000
--- a/docs/content/en/news/0.45-relnotes/index.md
+++ /dev/null
@@ -1,107 +0,0 @@
-
----
-date: 2018-07-22
-title: "Hugo 0.45: Revival of ref, relref and GetPage"
-description: "Hugo 0.45 adds relative page lookups, language support in ref/relref and several Hugo Pipes improvements."
-categories: ["Releases"]
----
-
-
-Hugo `0.45` is the **revival of ref, relref and GetPage**. [@vassudanagunta](https://github.com/vassudanagunta) and [@bep](https://github.com/bep) have done some great work improving the API and implementation for the helper functions used to **get one page**. Before this release, the API was a little bit clumsy and the result potentially ambiguous in some situations.
-
-Now you can simply do:
-
-```go-html-template
-{{ with .Site.GetPage "/blog/my-post.md" }}{{ .Title }}{{ end }}
-```
-
-Or to get a section page:
-
-
-```go-html-template
-{{ with .Site.GetPage "/blog" }}{{ .Title }}{{ end }}
-```
-
-We have also added a `.GetPage` method on `Page` and added support for page-relative linking. This means that the leading slash (`/`) now has a meaning. For `.Site.GetPage`, all lookups will start at the content root. But for lookups with a `Page` context, paths without a leading slash will be treated as relative to the page.
-
-This means that the following example will find the page in the current section:
-
-```go-html-template
-{{* ref "my-post.md" */>}}
-```
-
-You can also use the `..` to refer to a page one level up etc.:
-
-```go-html-template
-{{* ref "../my-post.md" */>}}
-```
-
-We have now also added language support to `ref` and `relref`, so you can link to a page in another language:
-
-```go-html-template
-{{* relref path="document.md" lang="ja" */>}}
-```
-
-To link to a given Output Format of a document, you can use this syntax:
-
-```go-html-template
-{{* relref path="document.md" outputFormat="rss" */>}}
-```
-
-To make working with these reflinks on bigger sites easier to work with, we have also improved the error logging, and added two new configuration settings:
-
-* refLinksErrorLevel: ERROR (default, will fail the build when a reflink cannot be resolved) or WARNING.
-* refLinksNotFoundURL: Set this to an URL placeholder used when no reference could be resolved.
-
-Visit the [Hugo Docs](https://gohugo.io/content-management/cross-references) for more information.
-
-We have also done some important improvements and fixes in **Hugo Pipes** in this release: SCSS source maps on Windows now works, we now support project-local `PostCSS` installation, and we have added `IncludePaths` to `SCSS` options, making it possible to include, say, a path below `node_modules` in the SASS/SCSS build.
-
-This release represents **31 contributions by 4 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 [@vassudanagunta](https://github.com/vassudanagunta), [@hairmare](https://github.com/hairmare), and [@garrmcnu](https://github.com/garrmcnu) 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 [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **10 contributions by 8 contributors**. A special thanks to [@kaushalmodi](https://github.com/kaushalmodi), [@Hanzei](https://github.com/Hanzei), [@KurtTrowbridge](https://github.com/KurtTrowbridge), and [@regisphilibert](https://github.com/regisphilibert) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 27334+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 443+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 238+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* `.Site.GetPage` with more than 2 arguments will not work anymore. This means that `{{ .Site.GetPage "page" "blog" "my-post.md" }}` will fail. `{{ .Site.GetPage "page" "blog/my-post.md" }}` will work, but we recommend you use the simpler `{{ .Site.GetPage "/blog/my-post.md" }}`
-* Relative paths in `relref` or `ref` that finds its match not relative to the page itself will work, but we now print a warning saying that you should correct it to an absolute path. E.g. `{{* ref "blog/my-post.md" */>}}` => `{{* ref "/blog/my-post.md" */>}}`.
-
-## Enhancements
-
-* Print a WARNING about relative non-relative ref/relref matches [a451c49f](https://github.com/gohugoio/hugo/commit/a451c49fde1da6e2cc436a2b7d383ee772b1f893) [@bep](https://github.com/bep) [#4973](https://github.com/gohugoio/hugo/issues/4973)
-* Allow untyped nil to be merged in lang.Merge [ff16c42e](https://github.com/gohugoio/hugo/commit/ff16c42ed0965e1c8acf6e6a6dcda3ea50c107f2) [@bep](https://github.com/bep) [#4977](https://github.com/gohugoio/hugo/issues/4977)
-* Get rid of the utils package [062510cf](https://github.com/gohugoio/hugo/commit/062510cf1f7b79aed2efe88c5b9340d009bdec0e) [@bep](https://github.com/bep)
-* Update hugo_windows.go [4e1d0cd9](https://github.com/gohugoio/hugo/commit/4e1d0cd9f1d43d133d669a019a84117cadd41955) [@bep](https://github.com/bep)
-* Add IncludePaths config option [166483fe](https://github.com/gohugoio/hugo/commit/166483fe1227b0c59c6b4d88cfdfaf7d7b0d79c5) [@bep](https://github.com/bep) [#4921](https://github.com/gohugoio/hugo/issues/4921)
-* Increase refLinker test coverage [8278384b](https://github.com/gohugoio/hugo/commit/8278384b9680cfdcecef9c668638ad483012857f) [@vassudanagunta](https://github.com/vassudanagunta)
-* Add test coverage for recent ref overhaul [2bac3715](https://github.com/gohugoio/hugo/commit/2bac3715448e90e197ada7cc73c87f696c19def6) [@vassudanagunta](https://github.com/vassudanagunta) [#4969](https://github.com/gohugoio/hugo/issues/4969)
-* Update ref, relref, GetPage docs [1eb8b36b](https://github.com/gohugoio/hugo/commit/1eb8b36b3802e72bc2c16965461ef1899bb073b3) [@bep](https://github.com/bep)
-* Document refLinksErrorLevel and refLinksNotFoundURL [00c74ee7](https://github.com/gohugoio/hugo/commit/00c74ee7ffae71fd5f47d555160354a775e26151) [@bep](https://github.com/bep) [#4964](https://github.com/gohugoio/hugo/issues/4964)
-* Add configurable ref/relref error handling and notFoundURL [e25aa655](https://github.com/gohugoio/hugo/commit/e25aa655f4227ac064be5fe770d517a80acd46b2) [@bep](https://github.com/bep) [#4964](https://github.com/gohugoio/hugo/issues/4964)
-* Try node_modules/postcss-cli/bin/postcss first [ebe4d39f](https://github.com/gohugoio/hugo/commit/ebe4d39f175f73e4f130972cb3d74ef0af5d5761) [@bep](https://github.com/bep) [#4952](https://github.com/gohugoio/hugo/issues/4952)
-* Add optional lang as argument to rel/relref [d741064b](https://github.com/gohugoio/hugo/commit/d741064bebe2f4663a7ba12556dccc3dffe08629) [@bep](https://github.com/bep) [#4956](https://github.com/gohugoio/hugo/issues/4956)
-* Simplify .Site.GetPage etc. [3eb313fe](https://github.com/gohugoio/hugo/commit/3eb313fef495a39731dafa6bddbf77760090230d) [@bep](https://github.com/bep) [#4147](https://github.com/gohugoio/hugo/issues/4147)[#4727](https://github.com/gohugoio/hugo/issues/4727)[#4728](https://github.com/gohugoio/hugo/issues/4728)[#4728](https://github.com/gohugoio/hugo/issues/4728)[#4726](https://github.com/gohugoio/hugo/issues/4726)[#4652](https://github.com/gohugoio/hugo/issues/4652)
-* Unify page lookups [b93417aa](https://github.com/gohugoio/hugo/commit/b93417aa1d3d38a9e56bad25937e0e638a113faf) [@vassudanagunta](https://github.com/vassudanagunta) [#4147](https://github.com/gohugoio/hugo/issues/4147)[#4727](https://github.com/gohugoio/hugo/issues/4727)[#4728](https://github.com/gohugoio/hugo/issues/4728)[#4728](https://github.com/gohugoio/hugo/issues/4728)[#4726](https://github.com/gohugoio/hugo/issues/4726)[#4652](https://github.com/gohugoio/hugo/issues/4652)
-* Improve error message [4c240800](https://github.com/gohugoio/hugo/commit/4c240800a4275244c9e0847cd6707383180f1ac3) [@bep](https://github.com/bep)
-* Remove unused code [2f2bc7ff](https://github.com/gohugoio/hugo/commit/2f2bc7ff70b90fb11580cc092ef3883bf68d8ad7) [@bep](https://github.com/bep)
-
-## Fixes
-
-* Avoid server panic on TOML mistake in i18n [75acff5f](https://github.com/gohugoio/hugo/commit/75acff5f20d0d41ffa1ae20402001c7a82f077cb) [@bep](https://github.com/bep) [#4942](https://github.com/gohugoio/hugo/issues/4942)
-* Only set 'allThemes' if there are themes in the config file [38204c4a](https://github.com/gohugoio/hugo/commit/38204c4ab6fa2aa2ab8bd06ddb3e07b66e5f9646) [@garrmcnu](https://github.com/garrmcnu) [#4851](https://github.com/gohugoio/hugo/issues/4851)
-* Fix potential server panic with drafts/future enabled [1ab4658c](https://github.com/gohugoio/hugo/commit/1ab4658c0d5ea2927f04bd748206e5b139a6326e) [@bep](https://github.com/bep) [#4965](https://github.com/gohugoio/hugo/issues/4965)
-* Mark shortcode changes as content changes in server mode [12679b40](https://github.com/gohugoio/hugo/commit/12679b408362a93a3c6159588d6291a3b7ed5548) [@bep](https://github.com/bep) [#4965](https://github.com/gohugoio/hugo/issues/4965)
-* Fix source maps on Windows [f01505c9](https://github.com/gohugoio/hugo/commit/f01505c910a325acc18742ac6b3637aa01975e37) [@bep](https://github.com/bep) [#4968](https://github.com/gohugoio/hugo/issues/4968)
-* Fix typo-logic bug in GetPage [b56d9a12](https://github.com/gohugoio/hugo/commit/b56d9a1294e692d096bff442e0b1fec61a8c2b0f) [@vassudanagunta](https://github.com/vassudanagunta)
-* Enable test case fixed by commit 501543d4 [d6fde8fa](https://github.com/gohugoio/hugo/commit/d6fde8fa131f3852fa98a8ec5c360e736486cf54) [@vassudanagunta](https://github.com/vassudanagunta)
-* Fix theme config for Work Fs [5c9d5413](https://github.com/gohugoio/hugo/commit/5c9d5413a4e2cc8d44a8b2d7dff04e6523ba2a29) [@bep](https://github.com/bep) [#4951](https://github.com/gohugoio/hugo/issues/4951)
-* Fix addkit link to account for i18n [fd1f4a78](https://github.com/gohugoio/hugo/commit/fd1f4a7860c4b989865b47c727239cf924a52fa4) [@hairmare](https://github.com/hairmare)
diff --git a/docs/content/en/news/0.45.1-relnotes/index.md b/docs/content/en/news/0.45.1-relnotes/index.md
deleted file mode 100644
index 84e0416c7f1..00000000000
--- a/docs/content/en/news/0.45.1-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2018-07-25
-title: "Hugo 0.45.1: Two Bug Fixes"
-description: "Hugo 0.45.1 comes with two bug fixes ... and one enhancement."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
- This is a bug-fix release with a couple of important fixes (and one enhancement).
-
-## Enhancements
-
-* Add Page.FirstSection [016dd4a6](https://github.com/gohugoio/hugo/commit/016dd4a69a765061bb3da8490d3cac6ec47a91eb) [@bep](https://github.com/bep)
-
-## Fixes
-
-* Fix .Site.GetPage regression [04d4c08d](https://github.com/gohugoio/hugo/commit/04d4c08dbcac08ff7feeb88863e91799fed0937b) [@bep](https://github.com/bep) [#4989](https://github.com/gohugoio/hugo/issues/4989)
-* Fix "borrow content from another language" issue [c6b599a0](https://github.com/gohugoio/hugo/commit/c6b599a06d66b8e3c92343d25bb8043eb4f291f1) [@bep](https://github.com/bep) [#4986](https://github.com/gohugoio/hugo/issues/4986)
-
-
-
-
-
diff --git a/docs/content/en/news/0.46-relnotes/featured-hugo-46-poster.png b/docs/content/en/news/0.46-relnotes/featured-hugo-46-poster.png
deleted file mode 100644
index c00622e04f0..00000000000
Binary files a/docs/content/en/news/0.46-relnotes/featured-hugo-46-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.46-relnotes/index.md b/docs/content/en/news/0.46-relnotes/index.md
deleted file mode 100644
index ef0df242763..00000000000
--- a/docs/content/en/news/0.46-relnotes/index.md
+++ /dev/null
@@ -1,49 +0,0 @@
-
----
-date: 2018-08-01
-title: "The Summer of Hugo"
-description: "Hugo 0.46: Full SCSS/SASS import inheritance support, rework of Hugo Pipes vs. multilingual, and more …"
-categories: ["Releases"]
----
-
-**Hugo 0.46** is the closing credits to **The Summer of Hugo**. While most people have been relaxing on the beach, Hugo has been really busy:
-
-* **0.42, June 12, 2018**: [Theme Composition and Inheritance!](https://gohugo.io/news/0.42-relnotes/)
-* **0.43, July 9, 2018**: [Hugo Pipes!](https://gohugo.io/news/0.43-relnotes/)
-
-This was followed by some more technical follow-up releases. And today, when July has turned into August, we come with another one. It's not a big release. But with the big interest in **Hugo Pipes**, we felt that it was important to get this out there sooner rather than later.
-
-There are two main items in this release:
-
-1. We have added a custom SCSS/SASS import resolver that respects Hugo's project/themes filesystem hierarchy anywhere in `/assets`. Using the LibSass' resolver alone only made this work for the entry folder.
-2. Resources fetched via `resources.Get` and similar are now language agnostic. The thought behind the original implementation was maximum flexibility with support for `assetDir` per language. In practice, this was a bad idea, as it made some CSS imports hard to get working in multilingual setups, and you got duplication of identical content for no good reason, with added processing time.
-
-This release represents **12 contributions by 2 contributors** to the main Hugo code base.
-
-A special thanks in this release goes to [@onedrawingperday](https://github.com/onedrawingperday) for his excellent work maintaining the fast-growing [Themes Site](https://themes.gohugo.io/).
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **5 contributions by 3 contributors**.
-
-Hugo now has:
-
-* 27596+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 442+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 245+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* Resources fetched via `resources.Get` and similar are now considered global across languages. If you need, as an example, to create a CSS per language, you need to set the path yourself.
-
-## Enhancements
-
-* Add `templates.Exists` template function. This can be used to check if a template, e.g. a partial, exists in the project or any of the themes in use. [0ba19c57](https://github.com/gohugoio/hugo/commit/0ba19c57f180c33b41c64335ea1d1c89335d34c0) [@bep](https://github.com/bep) [#5010](https://github.com/gohugoio/hugo/issues/5010)
-* Remove superflous loop [0afa2897](https://github.com/gohugoio/hugo/commit/0afa2897a0cf90f4348929ef432202efddc183a0) [@bep](https://github.com/bep)
-* Update Chroma [b5d13ca1](https://github.com/gohugoio/hugo/commit/b5d13ca16bf106c1bc29c2a5295cd231d1bf13fd) [@bep](https://github.com/bep) [#5019](https://github.com/gohugoio/hugo/issues/5019)
-* Make resources fetched via `resources.Get` and similar language agnostic [6b02f5c0](https://github.com/gohugoio/hugo/commit/6b02f5c0f4e0ba1730aebc5a590a111548233bd5) [@bep](https://github.com/bep) [#5017](https://github.com/gohugoio/hugo/issues/5017)
-* Improve SCSS project vs themes import resolution [f219ac09](https://github.com/gohugoio/hugo/commit/f219ac09f6b7e26d84599401512233d77c1bdb4c) [@bep](https://github.com/bep) [#5008](https://github.com/gohugoio/hugo/issues/5008)
-* Improve _ prefix handling in SCSS imports [88e447c4](https://github.com/gohugoio/hugo/commit/88e447c449608523d87c517396bde31a62f392b6) [@bep](https://github.com/bep) [#5008](https://github.com/gohugoio/hugo/issues/5008)
-
-## Fixes
-* Fix file paths for uncached transformed images [b718d743](https://github.com/gohugoio/hugo/commit/b718d743b7a2eff3bea74ced57147825294a629f) [@RJacksonm1](https://github.com/RJacksonm1) [#5012](https://github.com/gohugoio/hugo/issues/5012)
-* Fix image cache eviction for sites with subdir in baseURL [786f7230](https://github.com/gohugoio/hugo/commit/786f72302f65580ca8d1df2132a7756584539ea0) [@bep](https://github.com/bep) [#5006](https://github.com/gohugoio/hugo/issues/5006)
diff --git a/docs/content/en/news/0.47-relnotes/featured-hugo-47-poster.png b/docs/content/en/news/0.47-relnotes/featured-hugo-47-poster.png
deleted file mode 100644
index 601922961a8..00000000000
Binary files a/docs/content/en/news/0.47-relnotes/featured-hugo-47-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.47-relnotes/index.md b/docs/content/en/news/0.47-relnotes/index.md
deleted file mode 100644
index 79d15ec6299..00000000000
--- a/docs/content/en/news/0.47-relnotes/index.md
+++ /dev/null
@@ -1,79 +0,0 @@
-
----
-date: 2018-08-17
-title: "Output Minification, Live-Reload Fixes and More"
-description: "Hugo 0.47: Adds minification of rendered output, but is mostly a massive bug fix release."
-categories: ["Releases"]
----
-
-Hugo `0.47` is named **Hugo Reloaded**. It adds minification support for the final rendered output (run `hugo --minify`), but it is mostly a bug fix release. And most notably, it fixes a set of issues with live-reloading/partial rebuilds when running `hugo server`. Working with bundles should now be a more pleasant experience, to pick one example.
-
-This release represents **35 contributions by 6 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 [@satotake](https://github.com/satotake), [@anthonyfok](https://github.com/anthonyfok), and [@coliff](https://github.com/coliff) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **21 contributions by 10 contributors**. A special thanks to [@bep](https://github.com/bep), [@aapeliv](https://github.com/aapeliv), [@regisphilibert](https://github.com/regisphilibert), and [@brentybh](https://github.com/brentybh) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 27980+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 442+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 251+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Suppress blank lines from opengraph internal template [c09ee78f](https://github.com/gohugoio/hugo/commit/c09ee78fd235599d3fb794110cd75c024d80cfca) [@anthonyfok](https://github.com/anthonyfok)
-* Add MIME type to embedded JS [755d1ffe](https://github.com/gohugoio/hugo/commit/755d1ffe7a22d8ad83485240ff78cf25d501602f) [@bep](https://github.com/bep) [#5042](https://github.com/gohugoio/hugo/issues/5042)
-* Add `os.Stat` template function [d7112085](https://github.com/gohugoio/hugo/commit/d71120852a8e14d0ea4d24de269fce041ef7b666) [@satotake](https://github.com/satotake)
-
-### Output
-
-* Add support for minification of final output [789ef8c6](https://github.com/gohugoio/hugo/commit/789ef8c639e4621abd36da530bcb5942ac9297da) [@bep](https://github.com/bep) [#1251](https://github.com/gohugoio/hugo/issues/1251)
-
-### Other
-
-* Regenerate CLI docs [4a16b5f4](https://github.com/gohugoio/hugo/commit/4a16b5f4b0adbb31fee611c378de9d5526de2f86) [@bep](https://github.com/bep)
-* Include theme name in version mismatch error [e5052f4e](https://github.com/gohugoio/hugo/commit/e5052f4e09b6df590cddf2f8bc2c834fd3af3082) [@bep](https://github.com/bep) [#5044](https://github.com/gohugoio/hugo/issues/5044)
-* Make the JS minifier matcher less specific [c81fbf46](https://github.com/gohugoio/hugo/commit/c81fbf4625ae7cc7dd3a7a526331ddfdf5237cc6) [@bep](https://github.com/bep) [#5073](https://github.com/gohugoio/hugo/issues/5073)
-* Close file when done [f6ae436c](https://github.com/gohugoio/hugo/commit/f6ae436c5878bafeafa0bb2646a2c9b32c9b4380) [@bep](https://github.com/bep) [#5062](https://github.com/gohugoio/hugo/issues/5062)
-* https links to 3rd party sites [c2a67413](https://github.com/gohugoio/hugo/commit/c2a6741394bc609a663522b245d3d75f0ad17da4) [@coliff](https://github.com/coliff)
-* Update alias.go [06bd0136](https://github.com/gohugoio/hugo/commit/06bd0136419ebd6727635716c7023494cc5a8257) [@coliff](https://github.com/coliff)
-* Remove test debug [fb3cb05c](https://github.com/gohugoio/hugo/commit/fb3cb05cc3dfc50370449f622fb0130ba7e0ced2) [@bep](https://github.com/bep)
-* Update dependencies [d07882df](https://github.com/gohugoio/hugo/commit/d07882dfb76a65cce79aaa6f27df71279cd30600) [@bep](https://github.com/bep)
-* Update Chroma [7f535671](https://github.com/gohugoio/hugo/commit/7f5356717d14079432365974e1424fc4ff5987c9) [@bep](https://github.com/bep) [#5025](https://github.com/gohugoio/hugo/issues/5025)
-* Remove alias of os.Stat [71931b30](https://github.com/gohugoio/hugo/commit/71931b30b1813b146aaa60f5cdab16c0f9ebebdb) [@satotake](https://github.com/satotake)
-* Renmae FileStat Stat [d40116e5](https://github.com/gohugoio/hugo/commit/d40116e5f941e4734ed3bed69dce8ffe11fc76b2) [@satotake](https://github.com/satotake)
-* Reduce allocation in the benchmark itself [a6b1eb1e](https://github.com/gohugoio/hugo/commit/a6b1eb1e9150aa5c1c86fe7424cc4167d6f59a5a) [@bep](https://github.com/bep)
-* Simplify the 0 transformer case [27110133](https://github.com/gohugoio/hugo/commit/27110133ffca05feae2e11a9ff28a9a00f613350) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Fix compiling Amber templates that import other templates [37438757](https://github.com/gohugoio/hugo/commit/37438757788d279c839506d54f460b2ab37db164) [@Stebalien](https://github.com/Stebalien)
-* Reimplement the ".Params tolower" template transformer [5c538491](https://github.com/gohugoio/hugo/commit/5c5384916e8f954f3ea66148ecceb3732584588e) [@bep](https://github.com/bep) [#5068](https://github.com/gohugoio/hugo/issues/5068)
-
-### Output
-
-* Fix Resource output in multihost setups [78f8475a](https://github.com/gohugoio/hugo/commit/78f8475a054a6277d37f13329afd240b00dc9408) [@bep](https://github.com/bep) [#5058](https://github.com/gohugoio/hugo/issues/5058)
-
-### Core
-
-* Force render of any changed page, even in Fast Render Mode [22475460](https://github.com/gohugoio/hugo/commit/2247546017c00201d2ce1232dd5303295451f1cc) [@bep](https://github.com/bep) [#5083](https://github.com/gohugoio/hugo/issues/5083)
-* Add configFile(s) back to the watch list after REMOVE event [abc54080](https://github.com/gohugoio/hugo/commit/abc54080ec8c43e8989c081d934b59f0c9570c0b) [@anthonyfok](https://github.com/anthonyfok) [#4701](https://github.com/gohugoio/hugo/issues/4701)
-* Gracefully handle typos in server config when running the server [a655e00d](https://github.com/gohugoio/hugo/commit/a655e00d702dbc20b3961b131b33ab21841b043d) [@bep](https://github.com/bep) [#5081](https://github.com/gohugoio/hugo/issues/5081)
-* Fix shortcode output wrapped in p [78c99463](https://github.com/gohugoio/hugo/commit/78c99463fdd45c91af9933528d12d36a86dc6482) [@gllera](https://github.com/gllera) [#1642](https://github.com/gohugoio/hugo/issues/1642)
-* Adjust tests for shortcode p-issue [baa62d0a](https://github.com/gohugoio/hugo/commit/baa62d0abbbf24a17d0aa800a4bb217f026c49ad) [@bep](https://github.com/bep) [#1642](https://github.com/gohugoio/hugo/issues/1642)
-* Fix image cache-clearing for sub-languages [9d973004](https://github.com/gohugoio/hugo/commit/9d973004f5379cff2adda489566fe40683553c4c) [@bep](https://github.com/bep) [#5084](https://github.com/gohugoio/hugo/issues/5084)
-* Fix error when deleting a bundle in server mode [0a88741f](https://github.com/gohugoio/hugo/commit/0a88741fe85f4f7aedc02ed748dfeb8ccc073dbf) [@bep](https://github.com/bep) [#5077](https://github.com/gohugoio/hugo/issues/5077)
-* Fix Related when called from shortcode [0dd06bda](https://github.com/gohugoio/hugo/commit/0dd06bdac008aa81ec2e8f29ad8110dac0227011) [@bep](https://github.com/bep) [#5071](https://github.com/gohugoio/hugo/issues/5071)
-* Use the interface value when doing Related search [a6f199f7](https://github.com/gohugoio/hugo/commit/a6f199f7a640161333608b4a843d701f7e182829) [@bep](https://github.com/bep) [#5071](https://github.com/gohugoio/hugo/issues/5071)
-* Fix GitInfo when multiple content dirs [2182ecfd](https://github.com/gohugoio/hugo/commit/2182ecfd34a24521bf0e3c939627a55327eb1e19) [@bep](https://github.com/bep) [#5054](https://github.com/gohugoio/hugo/issues/5054)
-* Add multiple content dirs to GitInfo test site [e85833d8](https://github.com/gohugoio/hugo/commit/e85833d868a902840c5ed1c90713256153b2548b) [@bep](https://github.com/bep) [#5054](https://github.com/gohugoio/hugo/issues/5054)
-* Fix "adding a bundle" in server mode [d139a037](https://github.com/gohugoio/hugo/commit/d139a037d98e4b388687eecb7831758412247c58) [@bep](https://github.com/bep) [#5075](https://github.com/gohugoio/hugo/issues/5075)
-* Fix typo [c362634b](https://github.com/gohugoio/hugo/commit/c362634b7d8802ea81b0b4341c800a9f78f7cd7c) [@satotake](https://github.com/satotake)
diff --git a/docs/content/en/news/0.47.1-relnotes/index.md b/docs/content/en/news/0.47.1-relnotes/index.md
deleted file mode 100644
index d35b0fad299..00000000000
--- a/docs/content/en/news/0.47.1-relnotes/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
----
-date: 2018-08-20
-title: "Two Bug Fixes"
-description: "Hugo 0.47.1: Two Bug Fixes"
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
- This is a bug-fix release with two fixes.
-
-# Fixes
-
-* Fix .Site.Params case regression [fdff0d3a](https://github.com/gohugoio/hugo/commit/fdff0d3af4670f7079e539fef4b92af2a866d02d) [@bep](https://github.com/bep) [#5094](https://github.com/gohugoio/hugo/issues/5094)
-* Do not strip IE conditional statements [5a0ee2b9](https://github.com/gohugoio/hugo/commit/5a0ee2b934e38d596da0f9742361f81c1221e3d5) [@bep](https://github.com/bep) [#5089](https://github.com/gohugoio/hugo/issues/5089)
-
-## Updates to Linux Snap build
-
-* Remove unused files from Git, Perl, etc. [834617f9](https://github.com/gohugoio/hugo/commit/834617f9f8d870643b2631fe607471c8e2ef2f47) [@anthonyfok](https://github.com/anthonyfok)
-* Add nodejs to allow PostCSS to work [ef20ec1f](https://github.com/gohugoio/hugo/commit/ef20ec1fbaa8f5841b3fbe18978d4d8c19d8fc53) [@anthonyfok](https://github.com/anthonyfok)
-
-
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.48-relnotes/featured-hugo-48-poster.png b/docs/content/en/news/0.48-relnotes/featured-hugo-48-poster.png
deleted file mode 100644
index 7adb0d22ee4..00000000000
Binary files a/docs/content/en/news/0.48-relnotes/featured-hugo-48-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.48-relnotes/index.md b/docs/content/en/news/0.48-relnotes/index.md
deleted file mode 100644
index 92c765f23c6..00000000000
--- a/docs/content/en/news/0.48-relnotes/index.md
+++ /dev/null
@@ -1,57 +0,0 @@
-
----
-date: 2018-08-29
-title: "This One Goes to 11!"
-description: "With Go 1.11, Hugo finally gets support for variable overwrites in templates!"
-categories: ["Releases"]
----
-
-Hugo `0.48` is built with the brand new Go 1.11. On the technical side this means that Hugo now uses [Go Modules](https://github.com/golang/go/wiki/Modules) for the build. The big new functional thing in Go 1.11 for Hugo is added support for [variable overwrites](https://github.com/golang/go/issues/10608). This means that you can now do this and get the expected result:
-
-```go-html-template
-{{ $var := "Hugo Page" }}
-{{ if .IsHome }}
- {{ $var = "Hugo Home" }}
-{{ end }}
-Var is {{ $var }}
-```
-
-The above may look obvious, but has not been possible until now. In Hugo we have had `.Scratch` as a workaround for this, but Go 1.11 will help clean up a lot of templates.
-
-This release represents **23 contributions by 5 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 [@anthonyfok](https://github.com/anthonyfok), [@vsopvsop](https://github.com/vsopvsop), and [@moorereason](https://github.com/moorereason) 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 [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **15 contributions by 12 contributors**. A special thanks to [@bep](https://github.com/bep), [@kaushalmodi](https://github.com/kaushalmodi), [@regisphilibert](https://github.com/regisphilibert), and [@anthonyfok](https://github.com/anthonyfok) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 28275+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 252+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-* Add a test for template variable overwrite [0c8a4154](https://github.com/gohugoio/hugo/commit/0c8a4154838e32a33d34202fd4fa0187aa502190) [@bep](https://github.com/bep)
-* Include language code in REF_NOT_FOUND errors [94d0e79d](https://github.com/gohugoio/hugo/commit/94d0e79d33994b9a9d26a4d020500acdcc71e58c) [@bep](https://github.com/bep) [#5110](https://github.com/gohugoio/hugo/issues/5110)
-* Improve minifier MIME type resolution [ebb56e8b](https://github.com/gohugoio/hugo/commit/ebb56e8bdbfaf4f955326017e40b2805850871e9) [@bep](https://github.com/bep) [#5093](https://github.com/gohugoio/hugo/issues/5093)
-* Update to Go 1.11 [6b9934a2](https://github.com/gohugoio/hugo/commit/6b9934a26615ea614b1774770532cae9762a58d3) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Set GO111MODULE=on for mage install [c7f05779](https://github.com/gohugoio/hugo/commit/c7f057797ca7bfc781d5a2bbf181bb52360f160f) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Add instruction to install PostCSS when missing [08d14113](https://github.com/gohugoio/hugo/commit/08d14113b60ff70ffe922e8098e289b099a70e0f) [@anthonyfok](https://github.com/anthonyfok) [#5111](https://github.com/gohugoio/hugo/issues/5111)
-* Update snapcraft build config to Go 1.11 [94d6d678](https://github.com/gohugoio/hugo/commit/94d6d6780fac78e9ed5ed58ecdb9821ad8f0f27c) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Use Go 1.11 modules with Mage [45c9c45d](https://github.com/gohugoio/hugo/commit/45c9c45d1d0d99443fa6bb524a1265fa9ba95e0e) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Add go.mod [fce32c07](https://github.com/gohugoio/hugo/commit/fce32c07fb80e9929bc2660cf1e681e93009d24b) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Update Travis to Go 1.11 and Go 1.10.4 [d32ff16f](https://github.com/gohugoio/hugo/commit/d32ff16fd61f55874e81d73759afa099b8bdcb57) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Skip installing postcss due to failure on build server [66f688f7](https://github.com/gohugoio/hugo/commit/66f688f7120560ca787c1a23e3e7fbc3aa617956) [@anthonyfok](https://github.com/anthonyfok)
-
-## Fixes
-
-* Keep end tags [e6eda2a3](https://github.com/gohugoio/hugo/commit/e6eda2a370aa1184e0afaf12e95dbd6f8b63ace5) [@vsopvsop](https://github.com/vsopvsop)
-* Fix permissions when creating new folders [f4675fa0](https://github.com/gohugoio/hugo/commit/f4675fa0f0fae2358adfaea49e8da824ee094495) [@bep](https://github.com/bep) [#5128](https://github.com/gohugoio/hugo/issues/5128)
-* Fix handling of taxonomy terms containing slashes [fff13253](https://github.com/gohugoio/hugo/commit/fff132537b4094221f4f099e2251f3cda613060f) [@moorereason](https://github.com/moorereason) [#4090](https://github.com/gohugoio/hugo/issues/4090)
-* Fix build on armv7 [8999de19](https://github.com/gohugoio/hugo/commit/8999de193c18b7aa07b44e5b7d9f443a8572e117) [@caarlos0](https://github.com/caarlos0) [#5101](https://github.com/gohugoio/hugo/issues/5101)
-
-
-
-
-
diff --git a/docs/content/en/news/0.49-relnotes/featured-hugo-49-poster.png b/docs/content/en/news/0.49-relnotes/featured-hugo-49-poster.png
deleted file mode 100644
index 6f0f42ed48c..00000000000
Binary files a/docs/content/en/news/0.49-relnotes/featured-hugo-49-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.49-relnotes/index.md b/docs/content/en/news/0.49-relnotes/index.md
deleted file mode 100644
index 6bb272c33f4..00000000000
--- a/docs/content/en/news/0.49-relnotes/index.md
+++ /dev/null
@@ -1,120 +0,0 @@
-
----
-date: 2018-09-24
-title: "Hugo 0.49: Directory Based Archetypes"
-description: "Hugo 0.49 brings archetype bundle support and collection goodness."
-categories: ["Releases"]
----
-
-
-Hugo `0.49` brings [directory based archetypes](https://gohugo.io/content-management/archetypes/#directory-based-archetypes) and also improves the language handling in `hugo new`. This should simplify working with [page bundles](https://gohugo.io/content-management/page-bundles/). One example of this would be how you now can create a [new showcase](https://gohugo.io/showcase/template/) for the Hugo web site.
-
-But this release is also about _collections_. Go 1.11 gave us variable overwrite support in Go templates. That made it possible to simplify a lot of template constructs, but it also showed some limitations in Hugo's template functions. So with this release we have:
-
-* added [append](https://gohugo.io/functions/append/) function to append to collections.
-* added [group](https://gohugo.io/functions/group/) to create custom page groups.
-* improved the type support in [slice](https://gohugo.io/functions/slice/).
-
-This release represents **66 contributions by 9 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), [@felicianotech](https://github.com/felicianotech), and [@vdanjean](https://github.com/vdanjean) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **37 contributions by 20 contributors**. A special thanks to [@bep](https://github.com/bep), [@kaushalmodi](https://github.com/kaushalmodi), [@AlexChambers](https://github.com/AlexChambers), and [@shaform](https://github.com/shaform) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 28985+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 265+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Remove deprecated `rssURI` [f1a00b20](https://github.com/gohugoio/hugo/commit/f1a00b2069ede85feb487d29b9f690396e2402c6) [@bep](https://github.com/bep)
-* Remove deprecated flags [df4cbbd3](https://github.com/gohugoio/hugo/commit/df4cbbd3bdc05aa14a67b3a0a29a0db75b82e640) [@bep](https://github.com/bep)
-* Deprecate `Pages.Sort`. Use `.ByWeight` [2e2e34a9](https://github.com/gohugoio/hugo/commit/2e2e34a9350edec0220462aa3d47ecc9d428a0fb) [@bep](https://github.com/bep)
-* When setting `preserveTaxonomyNames` Hugo now _really_ preserves them. Before this release, we would make the first character upper case. If this is the behaviour you want you can use the new `strings.FirstUpper` function.
-
-## Enhancements
-
-### Templates
-
-* Allow `first` function to return an empty slice [cae07ce8](https://github.com/gohugoio/hugo/commit/cae07ce84b3bd4a33fd18b5109a1a3c3dce2191c) [@felicianotech](https://github.com/felicianotech) [#5235](https://github.com/gohugoio/hugo/issues/5235)
-* Use `safeHTMLAttr` instead of `safeHTML` for HTML attributes [4f9c109d](https://github.com/gohugoio/hugo/commit/4f9c109dc5431553e5dbf98e0ed37487c12e8d16) [@felicianotech](https://github.com/felicianotech) [#5236](https://github.com/gohugoio/hugo/issues/5236)
-* Add `collections.Append` (with alias `append`) [e27fd4c1](https://github.com/gohugoio/hugo/commit/e27fd4c1b80b7acb43290ac50e9f140d690cf042) [@bep](https://github.com/bep) [#5190](https://github.com/gohugoio/hugo/issues/5190)
-* Improve type handling in `collections.Slice` [fe6676c7](https://github.com/gohugoio/hugo/commit/fe6676c775b8d917a661238f24fd4a9088f25d50) [@bep](https://github.com/bep) [#5188](https://github.com/gohugoio/hugo/issues/5188)
-* Add `group` template func [6667c6d7](https://github.com/gohugoio/hugo/commit/6667c6d7430acc16b3683fbbacd263f1d00c8672) [@bep](https://github.com/bep) [#4865](https://github.com/gohugoio/hugo/issues/4865)
-* Add `strings.FirstUpper` [e5d66074](https://github.com/gohugoio/hugo/commit/e5d66074ce1ed4e0fe329e3fdef66f8b6fd5dc55) [@bep](https://github.com/bep) [#5174](https://github.com/gohugoio/hugo/issues/5174)
-
-### Core
-
-* Minor cleaning in the sorting code [2eed35c8](https://github.com/gohugoio/hugo/commit/2eed35c826e5de6aae432b36969a28c2ae3e0f02) [@bep](https://github.com/bep)
-* Make sure ambiguous lookups in GetPage gets an error [75e54345](https://github.com/gohugoio/hugo/commit/75e54345f9a7d786bb28af64ad80eb9502fee7c7) [@bep](https://github.com/bep) [#5138](https://github.com/gohugoio/hugo/issues/5138)
-* Allow creating page groups from any page collection [cfda13b3](https://github.com/gohugoio/hugo/commit/cfda13b36367465016f4458ab9924c948ed02b6f) [@vdanjean](https://github.com/vdanjean) [#4865](https://github.com/gohugoio/hugo/issues/4865)
-* Do not FirstUpper taxonomy titles [be3ae3ec](https://github.com/gohugoio/hugo/commit/be3ae3ec92da972a55112af39ce2e1c45121b9a5) [@Schnouki](https://github.com/Schnouki) [#5172](https://github.com/gohugoio/hugo/issues/5172)
-* Simplify some code [e38e8812](https://github.com/gohugoio/hugo/commit/e38e881248b7d20927eab0e56c85732e1acbc45e) [@moorereason](https://github.com/moorereason)
-* Add missing error checks [0665a395](https://github.com/gohugoio/hugo/commit/0665a3951be6ffc2551ef6664856da4cfccd45fa) [@moorereason](https://github.com/moorereason)
-* Remove extraneous createStaticFs call [1ed8c363](https://github.com/gohugoio/hugo/commit/1ed8c363367c2532014154e91eeade9b3a923f91) [@moorereason](https://github.com/moorereason)
-
-### Other
-
-* Add "go mod download" to CI scripts [cf47f43f](https://github.com/gohugoio/hugo/commit/cf47f43ff12ca5f5ea851a8b6761b19b5e4d4eba) [@bep](https://github.com/bep)
-* Regenerate CLI docs [3b6bd121](https://github.com/gohugoio/hugo/commit/3b6bd1210a2792c51c34b9c655cb8b7e9a0f15d7) [@bep](https://github.com/bep)
-* Document group [8388cd90](https://github.com/gohugoio/hugo/commit/8388cd90e89358f73ddcb7f496a1a8dc5c30c36c) [@bep](https://github.com/bep)
-* Make Data.Integrity be of type template.HTMLAttr [fe6a6f27](https://github.com/gohugoio/hugo/commit/fe6a6f2737769070fd64a5192ff685c9c89020bd) [@bep](https://github.com/bep)
-* Add directory based archetypes [2650fa77](https://github.com/gohugoio/hugo/commit/2650fa772b40846d9965f8c5f169286411f3beb2) [@bep](https://github.com/bep) [#4535](https://github.com/gohugoio/hugo/issues/4535)
-* Build on CircleCI outside of GOPATH [ef525b15](https://github.com/gohugoio/hugo/commit/ef525b15d4584886b52428bd7a35de835ab07a48) [@felicianotech](https://github.com/felicianotech) [#5135](https://github.com/gohugoio/hugo/issues/5135)
-* Prevent symbolic links from themes [f9168146](https://github.com/gohugoio/hugo/commit/f9168146978bd970d1f4fb061eff75264af88bb1) [@bep](https://github.com/bep)
-* Update releasenotes_writer.go [4b82f748](https://github.com/gohugoio/hugo/commit/4b82f74848836efbcf453c0122bd35555ee7517d) [@bep](https://github.com/bep)
-* Add docs for append [df50c108](https://github.com/gohugoio/hugo/commit/df50c108ba2f24936eff20b51d23f9328adb2d87) [@bep](https://github.com/bep) [#5190](https://github.com/gohugoio/hugo/issues/5190)
-* Set minifier to KeepEndTags [9b26b548](https://github.com/gohugoio/hugo/commit/9b26b5487b5c5142fe9fb58681fe7d1dac95a291) [@onedrawingperday](https://github.com/onedrawingperday)
-* Make JSON minification more generic [3dafe206](https://github.com/gohugoio/hugo/commit/3dafe206e31bb92f27802a04bf9159cbc20af234) [@zinefer](https://github.com/zinefer)
-* Update Mage [37d64634](https://github.com/gohugoio/hugo/commit/37d6463479952f7dfba59d899eed38b41e223283) [@bep](https://github.com/bep)
-* Update dependencies [bb2fe814](https://github.com/gohugoio/hugo/commit/bb2fe814c2db0c494b3b678a5da20a6cc0538857) [@bep](https://github.com/bep)
-* Improve some godoc comments [30bc4ed0](https://github.com/gohugoio/hugo/commit/30bc4ed0a01f965cc2f9187ccb6ab5d28a3149f6) [@moorereason](https://github.com/moorereason)
-* Update to latest Mage [3b103cb7](https://github.com/gohugoio/hugo/commit/3b103cb7b74228f26af5beb4cefc47edee794ce9) [@bep](https://github.com/bep)
-* Remove some duplicate code [c15c7da4](https://github.com/gohugoio/hugo/commit/c15c7da42a1c7bc535cc16cca2b341526f8cf169) [@bep](https://github.com/bep)
-* Update Dockerfile to Go 1.11 [bcbe57c6](https://github.com/gohugoio/hugo/commit/bcbe57c6e9243cbf3823f11b755f57c091cc1866) [@zyfdegh](https://github.com/zyfdegh) [#5145](https://github.com/gohugoio/hugo/issues/5145)
-* Init packages once [ea8ef573](https://github.com/gohugoio/hugo/commit/ea8ef573c6f869de95fdf4b19765d34026de6471) [@bep](https://github.com/bep)
-* Update script to Go 1.11 [293e1235](https://github.com/gohugoio/hugo/commit/293e12355dd9d9361774f5ab340cd8a03b4828a1) [@bep](https://github.com/bep) [#5127](https://github.com/gohugoio/hugo/issues/5127)
-* Remove the remains of Go Dep [fdf3c3b8](https://github.com/gohugoio/hugo/commit/fdf3c3b8234ed340f40a85fb76d96ae3a9ccf195) [@bep](https://github.com/bep) [#5115](https://github.com/gohugoio/hugo/issues/5115)
-* Update CONTRIBUTING.md [312d2252](https://github.com/gohugoio/hugo/commit/312d2252be6b7bf250fa4f8b1b541fdc13641940) [@bep](https://github.com/bep)
-* Update README.md [f627903e](https://github.com/gohugoio/hugo/commit/f627903efaa1a5f7e137c2d409efd1e1e2db47f6) [@bep](https://github.com/bep)
-* Fix golint issues [400fe96a](https://github.com/gohugoio/hugo/commit/400fe96aee8e38112e347e762661b8389701c938) [@moorereason](https://github.com/moorereason)
-* Fix golint godoc issues [3f45e729](https://github.com/gohugoio/hugo/commit/3f45e729f4e0296bb1a3558d60087bec8321444b) [@moorereason](https://github.com/moorereason)
-* Fix godoc comment [e03eb90a](https://github.com/gohugoio/hugo/commit/e03eb90a366159ed9ef9888246de87f283508866) [@moorereason](https://github.com/moorereason)
-* Fix typo in private func name [c915d0d3](https://github.com/gohugoio/hugo/commit/c915d0d3252007d61b680a388dcbe6b035d0adc8) [@moorereason](https://github.com/moorereason)
-* Fix golint godoc issues [f6f22ad9](https://github.com/gohugoio/hugo/commit/f6f22ad944a1c308fd823792b2fbff1504f42cef) [@moorereason](https://github.com/moorereason)
-* Fix filepath issue in test [d970327d](https://github.com/gohugoio/hugo/commit/d970327d7b994b495ef3bb468c3e0599b0deef5a) [@moorereason](https://github.com/moorereason)
-* Fix golint issues [0013bea9](https://github.com/gohugoio/hugo/commit/0013bea901ee2124f4c18f9728abf47c3880f97d) [@moorereason](https://github.com/moorereason)
-* Fix golint godoc issue [ffaa73dc](https://github.com/gohugoio/hugo/commit/ffaa73dc8aa860edb3476b2a460774071b8470a4) [@moorereason](https://github.com/moorereason)
-* Fix golint godoc issue [f8d8c854](https://github.com/gohugoio/hugo/commit/f8d8c85428f527139c20369910230741dcaf2969) [@moorereason](https://github.com/moorereason)
-* Fix golint issue [10dc87bf](https://github.com/gohugoio/hugo/commit/10dc87bf866f7a4f99c248436c38edf0ecdd157f) [@moorereason](https://github.com/moorereason)
-* Fix golint issues [7231869b](https://github.com/gohugoio/hugo/commit/7231869ba87f4e8d08e94dce18f20b7ed4fa2e15) [@moorereason](https://github.com/moorereason)
-* Fix golint godoc issues [600047ff](https://github.com/gohugoio/hugo/commit/600047ff1cb95d061af1983b9a755157eb4941f8) [@moorereason](https://github.com/moorereason)
-* Fix golint issues [5f2e1cb8](https://github.com/gohugoio/hugo/commit/5f2e1cb8969c2adac6c866b57cc331e1bc16d4e9) [@moorereason](https://github.com/moorereason)
-* Fix golint issues [c8ce6504](https://github.com/gohugoio/hugo/commit/c8ce65046dc7539f3bf5f6dd35fa7ece2bec866d) [@moorereason](https://github.com/moorereason)
-* Fix most golint issues [a53f9623](https://github.com/gohugoio/hugo/commit/a53f962312e273cea9fe460b40655350a82210f2) [@moorereason](https://github.com/moorereason)
-* Fix golint issues [daffeec3](https://github.com/gohugoio/hugo/commit/daffeec30d9d67017ec84064e15fd946b0b0cb0d) [@moorereason](https://github.com/moorereason)
-* Fix golint errors [b8b91f55](https://github.com/gohugoio/hugo/commit/b8b91f550646b2620649c3504e14a441975bea9f) [@moorereason](https://github.com/moorereason)
-* Fix golint issues [f0effac8](https://github.com/gohugoio/hugo/commit/f0effac80426325040c4bc703cd610f434d0b5a8) [@moorereason](https://github.com/moorereason)
-* Fix broken Travis config [2cf8fe2e](https://github.com/gohugoio/hugo/commit/2cf8fe2ea218d37776af72893691e772737750e3) [@bep](https://github.com/bep)
-* Fix error message for go vet [47d4edce](https://github.com/gohugoio/hugo/commit/47d4edce6083bab1c190dad99fefb7c73afc6af8) [@mdhender](https://github.com/mdhender)
-
-
-## Fixes
-
-* Compare every element in pages cache [ed4f1edb](https://github.com/gohugoio/hugo/commit/ed4f1edbd729bf75af89879b76fbad931693cd67) [@bep](https://github.com/bep) [#5239](https://github.com/gohugoio/hugo/issues/5239)
-* Revise error handling in `getJSON` and `getCSV` [43d44652](https://github.com/gohugoio/hugo/commit/43d446522a7c09af4bf6879f93341d8ff62654d1) [@bep](https://github.com/bep) [#5076](https://github.com/gohugoio/hugo/issues/5076)
-* Show error on `union` or `intersect` of uncomparable types [4f72e791](https://github.com/gohugoio/hugo/commit/4f72e79120a4f964330d10c8ebe9aceb2b5761a7) [@moorereason](https://github.com/moorereason) [#3820](https://github.com/gohugoio/hugo/issues/3820)
-* Do not set RSS as Kind in RSS output [555a5612](https://github.com/gohugoio/hugo/commit/555a5612b2641075b3e1b3b7af8ce9b5aba9f200) [@bep](https://github.com/bep) [#5138](https://github.com/gohugoio/hugo/issues/5138)
-
-
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.49.1-relnotes/index.md b/docs/content/en/news/0.49.1-relnotes/index.md
deleted file mode 100644
index a3858a9e16c..00000000000
--- a/docs/content/en/news/0.49.1-relnotes/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
-
----
-date: 2018-10-10
-title: "Hugo 0.49.1: Bug Fix"
-description: "This release fixes an issue where resources.Concat would sometimes fail."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with 2 related fixes. This was introduced in Hugo 0.49. The most notable error situation was that `resources.Concat` could fail in some situations.
-
-
-* Fix handling of different interface types in Slice [e2201ef1](https://github.com/gohugoio/hugo/commit/e2201ef15fdefe257ad284b2df4ccc8f8c38fac2) [@bep](https://github.com/bep) [#5269](https://github.com/gohugoio/hugo/issues/5269)
-
-* Improve append in Scratch [23f48c30](https://github.com/gohugoio/hugo/commit/23f48c300cb5ffe0fe43c88464f38c68831a17ad) [@bep](https://github.com/bep) [#5275](https://github.com/gohugoio/hugo/issues/5275)
-
-
-
-
-
diff --git a/docs/content/en/news/0.49.2-relnotes/index.md b/docs/content/en/news/0.49.2-relnotes/index.md
deleted file mode 100644
index 1d24cd624a5..00000000000
--- a/docs/content/en/news/0.49.2-relnotes/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-date: 2018-10-11
-title: "Hugo 0.49.2: One Bug Fix"
-description: "Fixes a type issue in append and Scratch.Add"
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-
-This fixes one regression from Hugo `0.42.1`:
-
-* Fix type checking in Append [2159d77f](https://github.com/gohugoio/hugo/commit/2159d77f368eb1f78e51dd94133554f88052d85f) [@bep](https://github.com/bep) [#5303](https://github.com/gohugoio/hugo/issues/5303)
-
-
-
-
-
diff --git a/docs/content/en/news/0.50-relnotes/featured-hugo-50-poster.png b/docs/content/en/news/0.50-relnotes/featured-hugo-50-poster.png
deleted file mode 100644
index de5b76d7934..00000000000
Binary files a/docs/content/en/news/0.50-relnotes/featured-hugo-50-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.50-relnotes/index.md b/docs/content/en/news/0.50-relnotes/index.md
deleted file mode 100644
index 46ab61cd040..00000000000
--- a/docs/content/en/news/0.50-relnotes/index.md
+++ /dev/null
@@ -1,150 +0,0 @@
-
----
-date: 2018-10-29
-title: "Hugo 0.50: Errors so Good, You’ll Want to Fail!"
-description: "Errors with full filename and line and column number, shown in browser. And improved Fast Render Mode …"
-categories: ["Releases"]
----
-
-Hugo `0.50` brings **greatly improved error messages**, and we now also show them in the browser. Having error messages with filename, line- and column number greatly simplify troubleshooting. Many editors (like VS Code) even let you click and navigate directly to the problematic line. If your editor requires a different log format, you can set it via the `HUGO_FILE_LOG_FORMAT` OS environment variable:
-
-
-```bash
-env HUGO_FILE_LOG_FORMAT="\":file::line::col\"" hugo server
-```
-
-But this release isn't all about error handling. Getting line- and column number into "every" error also meant that we had to consolidate and simplify some code paths, which, as a nice side effect, made Hugo a little bit faster. Benchmarks show it running **about 5% faster and consume about 8% less memory**.
-
-Also, we have now implemented **"render on demand"** in Hugo's Fast Render Mode (default when running `hugo server`). This means that you should now always see updated content when navigating around the site after a change.
-
-This release represents **88 contributions by 14 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), [@anthonyfok](https://github.com/anthonyfok), and [@GregorioMartinez](https://github.com/GregorioMartinez) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **14 contributions by 9 contributors**. A special thanks to [@bep](https://github.com/bep), [@NotWoods](https://github.com/NotWoods), [@Nick-Rivera](https://github.com/Nick-Rivera), and [@tomanistor](https://github.com/tomanistor) for their work on the documentation site.
-
-Hugo now has:
-
-* 29842+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 275+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* You should not get stale content in Fast Render Mode anymore.
-* Errors will now show up in the browser by default, turn it off by running `hugo server --disableBrowserError`
-* `jsonify` will now produce pretty/indented output
-
-## Enhancements
-
-### Templates
-
-* Handle truncated identifiers in Go template errors [2d7709d1](https://github.com/gohugoio/hugo/commit/2d7709d15584e4c11138cd7fe92717a2a58e4585) [@bep](https://github.com/bep) [#5346](https://github.com/gohugoio/hugo/issues/5346)
-* Update Jsonify to return pretty-print output [5a52cd5f](https://github.com/gohugoio/hugo/commit/5a52cd5f920bb3d067ab1682adece9f813c67ba1) [@SeanPrashad](https://github.com/SeanPrashad) [#5040](https://github.com/gohugoio/hugo/issues/5040)
-* Improve the Execute panic error message [0fe4ff18](https://github.com/gohugoio/hugo/commit/0fe4ff18751156fa072e1f83077e49a8597e7dcd) [@bep](https://github.com/bep) [#5327](https://github.com/gohugoio/hugo/issues/5327)
-* Use .Lastmod in embedded schema template [c21e5179](https://github.com/gohugoio/hugo/commit/c21e5179ce9a370c416c01fbe9472be1fb5c6650) [@akshaybabloo](https://github.com/akshaybabloo) [#5320](https://github.com/gohugoio/hugo/issues/5320)
-* Cast IsSet key to int for indexed types [0d5110d0](https://github.com/gohugoio/hugo/commit/0d5110d03324380cb4a288d3fa08c1b86ba227da) [@moorereason](https://github.com/moorereason) [#3681](https://github.com/gohugoio/hugo/issues/3681)
-* Add a delimiter parameter to lang.NumFmt [ce264b93](https://github.com/gohugoio/hugo/commit/ce264b936ce9f589bd889e18762881cff8bc9cd0) [@moorereason](https://github.com/moorereason) [#5260](https://github.com/gohugoio/hugo/issues/5260)
-
-### Core
-
-* Adjust error test to make it pass on Go tip [acc14b46](https://github.com/gohugoio/hugo/commit/acc14b4646d849e09e8da37552d4f4f777d0fce2) [@bep](https://github.com/bep)
-* Rename some page_* files [e3ed4a83](https://github.com/gohugoio/hugo/commit/e3ed4a83b8e92ce9bf070f7b41780798b006e848) [@bep](https://github.com/bep)
-* Get file context in "config parse failed" errors [ed7b3e26](https://github.com/gohugoio/hugo/commit/ed7b3e261909fe425ef64216f12806840c45b205) [@bep](https://github.com/bep) [#5325](https://github.com/gohugoio/hugo/issues/5325)
-* Improve errors in /i18n handlling [2bf686ee](https://github.com/gohugoio/hugo/commit/2bf686ee217808186385bfcf6156f15bbdb33651) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Improve errors in /data handlling [9f74dc2a](https://github.com/gohugoio/hugo/commit/9f74dc2a52b6f568b5a060b7a4be47196804b01f) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Continue the file context/line number errors work [d1661b82](https://github.com/gohugoio/hugo/commit/d1661b823af25c50d3bbe5366ea40a3cdd52e237) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Remove the now superflous Source struct [7930d213](https://github.com/gohugoio/hugo/commit/7930d2132a3c36c1aaca20f16f56978c84656b0a) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Redo the summary delimiter logic [44da60d8](https://github.com/gohugoio/hugo/commit/44da60d869578423dea529db62ed613588a2a560) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Integrate new page parser [1e3e3400](https://github.com/gohugoio/hugo/commit/1e3e34002dae3d4a980141efcc86886e7de5bef8) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Use []byte in shortcode parsing [1b7ecfc2](https://github.com/gohugoio/hugo/commit/1b7ecfc2e176315b69914756c70b46306561e4d1) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Use stdlib context package [4b4af2c5](https://github.com/gohugoio/hugo/commit/4b4af2c52e658d516dd4bfaf59fef4f054dabec3) [@GregorioMartinez](https://github.com/GregorioMartinez)
-* Normalize permalink path segments [fae48d74](https://github.com/gohugoio/hugo/commit/fae48d7457de96969ec53349194dcbfa45adc269) [@moorereason](https://github.com/moorereason) [#5223](https://github.com/gohugoio/hugo/issues/5223)[#4926](https://github.com/gohugoio/hugo/issues/4926)
-* Improve error message for bad taxonomy weights [d3b81ee5](https://github.com/gohugoio/hugo/commit/d3b81ee58e8fd3a0ab8265a2898d66cbcdf6a7c1) [@moorereason](https://github.com/moorereason)
-* Cast taxonomy weight parameters to int [1fd30d46](https://github.com/gohugoio/hugo/commit/1fd30d462ee7f67fde6f29d170af1d225258322b) [@moorereason](https://github.com/moorereason) [#4628](https://github.com/gohugoio/hugo/issues/4628)
-* Allow nil to be unwrapped as *Page [498d6299](https://github.com/gohugoio/hugo/commit/498d6299581bead0f582431b8133d8b5f8760618) [@moorereason](https://github.com/moorereason) [#5043](https://github.com/gohugoio/hugo/issues/5043)
-* Be a litle more specific in NextPage TODO [fb732d53](https://github.com/gohugoio/hugo/commit/fb732d5322381ee7f3a849258419cef7bbf1487b) [@bep](https://github.com/bep)
-* Introduce Page.NextPage and Page.PrevPage [ad705aac](https://github.com/gohugoio/hugo/commit/ad705aac0649fa3102f7639bc4db65d45e108ee2) [@felicianotech](https://github.com/felicianotech) [#1061](https://github.com/gohugoio/hugo/issues/1061)
-
-### Other
-
-* Update go.sum [7082a5d1](https://github.com/gohugoio/hugo/commit/7082a5d14382acfc300ae4f66d07a14100e2358c) [@bep](https://github.com/bep)
-* Update minify [aa281b51](https://github.com/gohugoio/hugo/commit/aa281b5135db2e84b9e21b5f38a6cb63cf3ab158) [@bep](https://github.com/bep) [#5261](https://github.com/gohugoio/hugo/issues/5261)
-* Regenerate CLI docs [32501987](https://github.com/gohugoio/hugo/commit/325019872467ee152ea56329a796acf35dec6fb3) [@bep](https://github.com/bep)
-* Make sure the global logger also gets colored labels [9c88a8a5](https://github.com/gohugoio/hugo/commit/9c88a8a55adf7779039504fa77d74ec80d658c40) [@bep](https://github.com/bep) [#4414](https://github.com/gohugoio/hugo/issues/4414)
-* Avoid using the global logger [95e72f5e](https://github.com/gohugoio/hugo/commit/95e72f5e8e4634fbbb2ea7ece2156487230ad1d4) [@bep](https://github.com/bep) [#4414](https://github.com/gohugoio/hugo/issues/4414)
-* Add color to ERROR and WARN [1c7b7b4e](https://github.com/gohugoio/hugo/commit/1c7b7b4ef293aa133e5b55f3ebb2d37d8839532f) [@bep](https://github.com/bep) [#4414](https://github.com/gohugoio/hugo/issues/4414)
-* Make the file error log format configurable [1ad117cb](https://github.com/gohugoio/hugo/commit/1ad117cbe2903aa9d029f90750acf633eb2a51a2) [@bep](https://github.com/bep) [#5352](https://github.com/gohugoio/hugo/issues/5352)
-* Allow a mix of slice types in append/Scratch.Add [dac7092a](https://github.com/gohugoio/hugo/commit/dac7092a9cb22d59db28fb15af15f7b14ff47588) [@bep](https://github.com/bep) [#5361](https://github.com/gohugoio/hugo/issues/5361)
-* Allow .Data.Integrity to be accessed on its own [b27ccf34](https://github.com/gohugoio/hugo/commit/b27ccf34bf4e5ee618a66fa11c68a9690e395034) [@bep](https://github.com/bep) [#5296](https://github.com/gohugoio/hugo/issues/5296)
-* Update minify [83c873ff](https://github.com/gohugoio/hugo/commit/83c873ff37ddd379181540021232f026e7678486) [@bep](https://github.com/bep) [#5261](https://github.com/gohugoio/hugo/issues/5261)
-* Update cast [a2440dc0](https://github.com/gohugoio/hugo/commit/a2440dc0e2d46ef774305cd5e4fea5ff2bdd5f11) [@bep](https://github.com/bep) [#5340](https://github.com/gohugoio/hugo/issues/5340)
-* Truncate the error log on repeated config errors [1e9ac3dc](https://github.com/gohugoio/hugo/commit/1e9ac3dcc21e8f78d3f0a0ba4f35f6c142dfa6bc) [@bep](https://github.com/bep)
-* Regenerate CLI docs [40e99672](https://github.com/gohugoio/hugo/commit/40e99672b6f697a614485aace07ca84268f6c787) [@bep](https://github.com/bep) [#5354](https://github.com/gohugoio/hugo/issues/5354)
-* Serialize image processing [3a3badfd](https://github.com/gohugoio/hugo/commit/3a3badfd1d4b1d4c9863ecaf029512d36136fa0f) [@bep](https://github.com/bep) [#5220](https://github.com/gohugoio/hugo/issues/5220)
-* Only show Ansi escape codes if in a terminal [df021317](https://github.com/gohugoio/hugo/commit/df021317a964a482cd1cd579de5a12d50faf0d08) [@bep](https://github.com/bep)
-* Read disableFastRender from flag even if it's not changed [78a4c2e3](https://github.com/gohugoio/hugo/commit/78a4c2e32ef9ea8e92bb7bb3586e4c22b02eb494) [@bep](https://github.com/bep) [#5353](https://github.com/gohugoio/hugo/issues/5353)
-* Use overflow-x: auto; for browser errors [d4ebfea1](https://github.com/gohugoio/hugo/commit/d4ebfea1fffdc35059f42a46387e0aaf0ea877d2) [@bep](https://github.com/bep)
-* Remove the ANSI color for the browser error version [93aa6261](https://github.com/gohugoio/hugo/commit/93aa6261b4fc8caa74afef97b6304ea35dfd7d0e) [@bep](https://github.com/bep)
-* Add some color to the relevant filenames in terminal log [deff9e15](https://github.com/gohugoio/hugo/commit/deff9e154bc0371af56741ddb22cb1f9e392838a) [@bep](https://github.com/bep) [#5344](https://github.com/gohugoio/hugo/issues/5344)
-* Run gofmt -s [889aca05](https://github.com/gohugoio/hugo/commit/889aca054a267506a1c7cfaa3992d324764d6358) [@bep](https://github.com/bep)
-* Resolve error handling/parser related TODOs [6636cf1b](https://github.com/gohugoio/hugo/commit/6636cf1bea77d20ef2a72a45fae59ac402fb133b) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Improve handling of JSON errors [f669ef6b](https://github.com/gohugoio/hugo/commit/f669ef6bec25155d015b6ab231c53caef4fa5cdc) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Convert the rest to new page parser code paths [eb038cfa](https://github.com/gohugoio/hugo/commit/eb038cfa0a8ada29dfcba1204ec5c432da9ed7e0) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Consolidate the metadata decoders [129c27ee](https://github.com/gohugoio/hugo/commit/129c27ee6e9fed98dbfebeaa272fd52757b475b2) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Use []byte in page lexer [27f5a906](https://github.com/gohugoio/hugo/commit/27f5a906a2a34e3b8348c8baeea48355352b5bbb) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Add front matter etc. support [2fdc4a24](https://github.com/gohugoio/hugo/commit/2fdc4a24d5450a98cf38a4456e8e0e8e97a3343d) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* File renames and splitting [f6863e1e](https://github.com/gohugoio/hugo/commit/f6863e1ef725f654a4c869ef4955f9add6908a46) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Move the shortcode parser to the new pageparser package [d6c16afd](https://github.com/gohugoio/hugo/commit/d6c16afde0ce62cfea73447f30d6ed2b8ef4b411) [@bep](https://github.com/bep) [#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Avoid panic in error handler on config errors [6f3716dc](https://github.com/gohugoio/hugo/commit/6f3716dc22e373097a38d053f5415feca602f330) [@bep](https://github.com/bep)
-* Prevent stale content in Fast Render Mode [4a366fcf](https://github.com/gohugoio/hugo/commit/4a366fcfee24b3a5a5045b16c3b87b76147adf5e) [@bep](https://github.com/bep) [#5281](https://github.com/gohugoio/hugo/issues/5281)
-* Allow date and slug from filename for leaf bundles [1f42e47e](https://github.com/gohugoio/hugo/commit/1f42e47e475c0cd684426dd230de411d4c385a3c) [@Japanuspus](https://github.com/Japanuspus) [#4558](https://github.com/gohugoio/hugo/issues/4558)
-* Show server error info in browser [35fbfb19](https://github.com/gohugoio/hugo/commit/35fbfb19a173b01bc881f2bbc5d104136633a7ec) [@bep](https://github.com/bep) [#5284](https://github.com/gohugoio/hugo/issues/5284)[#5290](https://github.com/gohugoio/hugo/issues/5290)[#5325](https://github.com/gohugoio/hugo/issues/5325)[#5324](https://github.com/gohugoio/hugo/issues/5324)
-* Add .gitignore "hugo new site" [92979d92](https://github.com/gohugoio/hugo/commit/92979d92889ff8991acfadd42982c2e55d01b163) [@napei](https://github.com/napei)
-* Optimize integrity string generation [0a3340e9](https://github.com/gohugoio/hugo/commit/0a3340e95254597bc8a9feb250f2733b7d51edf8) [@moorereason](https://github.com/moorereason)
-* Add help text to "hugo new" [6b21ac3e](https://github.com/gohugoio/hugo/commit/6b21ac3e67cb101255e8c3d9dbf076391a9eed8d) [@elliotforbes](https://github.com/elliotforbes)
-* Set "extended" tag based on build_url on Launchpad [d1442053](https://github.com/gohugoio/hugo/commit/d14420539ac04d31dde2252eee66d7e4c7749780) [@anthonyfok](https://github.com/anthonyfok)
-* Call rst2html directly on *nix [3d4a9882](https://github.com/gohugoio/hugo/commit/3d4a9882bfc81215fb4f9eba8859324958747d4a) [@shreyanshk](https://github.com/shreyanshk)
-* Update URLs to stop 301 redirects [bdca9727](https://github.com/gohugoio/hugo/commit/bdca9727944e4cbb5a9372a8404e948ffea7c31c) [@benabbottnz](https://github.com/benabbottnz)
-* Merge branch 'release-0.49.2' [604ddb90](https://github.com/gohugoio/hugo/commit/604ddb90c5d6f1ca5583be1ec0ea8e48f014741a) [@bep](https://github.com/bep)
-* Release 0.49.2 [c397f2c0](https://github.com/gohugoio/hugo/commit/c397f2c08087cf4cda3abe2d146e30f58d6d3216) [@bep](https://github.com/bep)
-* Merge branch 'release-0.49.1' [3583dd6d](https://github.com/gohugoio/hugo/commit/3583dd6d713c243808b5e8724b32565ceaf66104) [@bep](https://github.com/bep)
-* Relase 0.49.1 [235acf22](https://github.com/gohugoio/hugo/commit/235acf22321475895442ce49ca5d16be273c1e1f) [@bep](https://github.com/bep)
-* Improve append in Scratch [23f48c30](https://github.com/gohugoio/hugo/commit/23f48c300cb5ffe0fe43c88464f38c68831a17ad) [@bep](https://github.com/bep) [#5275](https://github.com/gohugoio/hugo/issues/5275)
-* Add GOPATH Hugo building tip [b5e17f7c](https://github.com/gohugoio/hugo/commit/b5e17f7c837ce796e1094c8033fa7084510402fb) [@bep](https://github.com/bep)
-* Consolidate MakeSegment vs MakePathSanitized [e421696d](https://github.com/gohugoio/hugo/commit/e421696d02bfb8764ae57238e211ce0e85e9782e) [@bep](https://github.com/bep) [#4926](https://github.com/gohugoio/hugo/issues/4926)
-* Render Markdown in figure shortcode "caption" and "attr" params [68181703](https://github.com/gohugoio/hugo/commit/6818170308994b5f01dec7a559f92d6c7c5ca100) [@kaushalmodi](https://github.com/kaushalmodi)
-* Re-organize the figure shortcode for better readability [c5279064](https://github.com/gohugoio/hugo/commit/c5279064df9664d6b2ad277e2fba1e4bb3b0f4be) [@kaushalmodi](https://github.com/kaushalmodi)
-* Update README & CONTRIBUTING [152cffb1](https://github.com/gohugoio/hugo/commit/152cffb13a237651c2277dc6c2c9e4172d58b3df) [@GregorioMartinez](https://github.com/GregorioMartinez)
-* Add custom x-nodejs plugin to support ppc64el and s390x [91f49c07](https://github.com/gohugoio/hugo/commit/91f49c0700dde13e16f42c745584a0bef60c6fe2) [@anthonyfok](https://github.com/anthonyfok)
-* Fetch mage with GO111MODULE=off [a475bf12](https://github.com/gohugoio/hugo/commit/a475bf125cd76dacc1bf7ccbcc263a7b59efc510) [@anthonyfok](https://github.com/anthonyfok)
-* Use build-snaps instead of building go from source [fa873a6c](https://github.com/gohugoio/hugo/commit/fa873a6cb3f0fa81002fcd725ecd52fc4b9df48f) [@anthonyfok](https://github.com/anthonyfok)
-* Skip "mage -v test" due to build failure on Launchpad [52ac85fb](https://github.com/gohugoio/hugo/commit/52ac85fbc4d4066b5e13df454593597df0166262) [@anthonyfok](https://github.com/anthonyfok)
-* Move snapcraft.yaml to snap/snapcraft.yaml [27d42111](https://github.com/gohugoio/hugo/commit/27d4211187d4617f4b3afa970f91349567886748) [@anthonyfok](https://github.com/anthonyfok)
-* Update the temp docker script [48413d76](https://github.com/gohugoio/hugo/commit/48413d76f44ecfc9b90f9df63974080f6b285667) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Fix baseof.html in error message [646a52a5](https://github.com/gohugoio/hugo/commit/646a52a5c5f52890f2d0270b68ba0f863047484a) [@bep](https://github.com/bep) [#5288](https://github.com/gohugoio/hugo/issues/5288)
-* Fix handling of different interface types in Slice [10ac2ec4](https://github.com/gohugoio/hugo/commit/10ac2ec4466090957e1f6897906ddeb1e0b13673) [@bep](https://github.com/bep) [#5269](https://github.com/gohugoio/hugo/issues/5269)
-
-### Core
-
-* Fix test on Windows [083311d0](https://github.com/gohugoio/hugo/commit/083311d0336ced35909b3375950f7817ecf95ed0) [@bep](https://github.com/bep)
-* Fix FuzzyWordCount test error message [06d28a46](https://github.com/gohugoio/hugo/commit/06d28a464d086880f52dd850f91e668ab957b31f) [@GregorioMartinez](https://github.com/GregorioMartinez)
-
-### Other
-
-* Fix archetype handling of directories in theme [78578632](https://github.com/gohugoio/hugo/commit/78578632f545283741a01f024a6ccedc0b695a30) [@bep](https://github.com/bep) [#5318](https://github.com/gohugoio/hugo/issues/5318)
-* Simple doc fix in CONTRIBUTING.md [3a308912](https://github.com/gohugoio/hugo/commit/3a3089121b852332b5744d1f566959c8cf93cef4) [@krisbudhram](https://github.com/krisbudhram)
-* Fix type checking in Append [2159d77f](https://github.com/gohugoio/hugo/commit/2159d77f368eb1f78e51dd94133554f88052d85f) [@bep](https://github.com/bep) [#5303](https://github.com/gohugoio/hugo/issues/5303)
-* Fix go plugin build failure by renaming go.mod [3033a9a3](https://github.com/gohugoio/hugo/commit/3033a9a37eb66c08e60f9fe977f29d22bd646857) [@anthonyfok](https://github.com/anthonyfok)
-
-
-
-
-
diff --git a/docs/content/en/news/0.51-relnotes/featured-hugo-51-poster.png b/docs/content/en/news/0.51-relnotes/featured-hugo-51-poster.png
deleted file mode 100644
index 07755a1ab93..00000000000
Binary files a/docs/content/en/news/0.51-relnotes/featured-hugo-51-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.51-relnotes/index.md b/docs/content/en/news/0.51-relnotes/index.md
deleted file mode 100644
index 8590a422cab..00000000000
--- a/docs/content/en/news/0.51-relnotes/index.md
+++ /dev/null
@@ -1,102 +0,0 @@
-
----
-date: 2018-11-07
-title: "Hugo 0.51: The 30K Stars Edition!"
-description: "Bug fixes, new template functions and more error improvements."
-categories: ["Releases"]
----
-
-Hugo reached [30 000 stars on GitHub](https://github.com/gohugoio/hugo/stargazers) this week, which is a good occasion to do a follow-up release of the great Hugo `0.50`. This is mostly a bug fix release, but it also adds some useful new functionality, two examples are the new template funcs [complement](https://gohugo.io/functions/complement/) and [symdiff](https://gohugo.io/functions/symdiff/). This release also continues the work on improving Hugo's error messages. And with `.Position` now available on shortcodes, you can also improve your own error messages inside your custom shortcodes:
-
-
-```bash
-{{ with .Get "name" }}
-{{ else }}
-{{ errorf "missing value for param 'name': %s" .Position }}
-{{ end }}
-```
-
-When the above fails, you will see an `ERROR` log similar to the below:
-
-```bash
-ERROR 2018/11/07 10:05:55 missing value for param name: "/sites/hugoDocs/content/en/variables/shortcodes.md:32:1"
-```
-
-This release represents **31 contributions by 5 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 [@krisbudhram](https://github.com/krisbudhram), [@LorenzCK](https://github.com/LorenzCK), and [@coliff](https://github.com/coliff) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **6 contributions by 5 contributors**. A special thanks to [@ikemo3](https://github.com/ikemo3), [@maiki](https://github.com/maiki), [@morya](https://github.com/morya), and [@regisphilibert](https://github.com/regisphilibert) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 30095+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 276+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Remove deprecated useModTimeAsFallback [0bc4b024](https://github.com/gohugoio/hugo/commit/0bc4b0246dd6b7d71f8676a52644077a4f70ec8f) [@bep](https://github.com/bep)
-* Bump to ERROR for the deprecated Pages.Sort [faeb55c1](https://github.com/gohugoio/hugo/commit/faeb55c1d827f0ea994551a103ff4f7448786d39) [@bep](https://github.com/bep)
-* Deprecate .Site.Ref and .Site.RelRef [6c6a6c87](https://github.com/gohugoio/hugo/commit/6c6a6c87ec2b5ac7342e268ab47861429230f7f4) [@bep](https://github.com/bep) [#5386](https://github.com/gohugoio/hugo/issues/5386)
-
-## Enhancements
-
-### Templates
-
-* Properly handle pointer types in complement/symdiff [79a06aa4](https://github.com/gohugoio/hugo/commit/79a06aa4b64b526c242dfa41f2c7bc24e1352d5b) [@bep](https://github.com/bep)
-* Add collections.SymDiff [488776b6](https://github.com/gohugoio/hugo/commit/488776b6498d1377718133d42daa87ce1236215d) [@bep](https://github.com/bep) [#5410](https://github.com/gohugoio/hugo/issues/5410)
-* Add collections.Complement [42d8dfc8](https://github.com/gohugoio/hugo/commit/42d8dfc8c88af03ea926a59bc2332acc70cca5f6) [@bep](https://github.com/bep) [#5400](https://github.com/gohugoio/hugo/issues/5400)
-
-### Core
-
-* Improve error message on duplicate menu items [3a44920e](https://github.com/gohugoio/hugo/commit/3a44920e79ef86003555d8a4860c29257b2914f0) [@bep](https://github.com/bep)
-* Add .Position to shortcode [33a7b36f](https://github.com/gohugoio/hugo/commit/33a7b36fd42ee31dd79115ec6639bed24247332f) [@bep](https://github.com/bep) [#5371](https://github.com/gohugoio/hugo/issues/5371)
-
-### Other
-
-* Document shortcode error handling [e456e34b](https://github.com/gohugoio/hugo/commit/e456e34bdbde058243eb0a5d3c0017748639e08e) [@bep](https://github.com/bep)
-* Document symdiff [5d14d04a](https://github.com/gohugoio/hugo/commit/5d14d04ac678ad24e4946ed2a581ab71b3834def) [@bep](https://github.com/bep)
-* Document complement [ddcb4028](https://github.com/gohugoio/hugo/commit/ddcb402859b50193bfd6d8b752b568d26d14f603) [@bep](https://github.com/bep)
-* Update minify [d212f609](https://github.com/gohugoio/hugo/commit/d212f60949b6afefbe5aa79394f98dbddf7be068) [@bep](https://github.com/bep)
-* Re-generate CLI docs [2998fa0c](https://github.com/gohugoio/hugo/commit/2998fa0cd5bad161b9c802d2409d8c9c81155011) [@bep](https://github.com/bep)
-* Add --minify to hugo server [5b1edd28](https://github.com/gohugoio/hugo/commit/5b1edd281a493bdb27af4dc3c8fae7e10dd54830) [@bep](https://github.com/bep)
-* Make WARN the new default log log level [4b7d3e57](https://github.com/gohugoio/hugo/commit/4b7d3e57a40214a1269eda59731aa22a8f4463dd) [@bep](https://github.com/bep) [#5203](https://github.com/gohugoio/hugo/issues/5203)
-* Regenerate the docs helper [486bc46a](https://github.com/gohugoio/hugo/commit/486bc46a5217a9d70fe0d14ab9261d7b4eb026d6) [@bep](https://github.com/bep)
-* Skip watcher event files if matched in ignoreFiles [f8446188](https://github.com/gohugoio/hugo/commit/f8446188dbec8378f34f0fea39161a49fcc46083) [@krisbudhram](https://github.com/krisbudhram)
-* Update Chroma [d523aa4b](https://github.com/gohugoio/hugo/commit/d523aa4bb03e913f55c2f89544e6112e320c975a) [@bep](https://github.com/bep) [#5392](https://github.com/gohugoio/hugo/issues/5392)
-* Add file (line/col) info to ref/relref errors [1d18eb05](https://github.com/gohugoio/hugo/commit/1d18eb0574a57c3e9f468659d076a666a3dd76f2) [@bep](https://github.com/bep) [#5371](https://github.com/gohugoio/hugo/issues/5371)
-* Improve log color regexp [d3a98325](https://github.com/gohugoio/hugo/commit/d3a98325c31d7f02f0762e589a4986e55b2a0da2) [@bep](https://github.com/bep)
-* Correct minor typo (#5372) [e65268f2](https://github.com/gohugoio/hugo/commit/e65268f2c2dd5ac54681d3266564901d99ed3ea3) [@coliff](https://github.com/coliff)
-
-## Fixes
-
-### Templates
-
-* Fix the docshelper [61f210dd](https://github.com/gohugoio/hugo/commit/61f210dd7abe5de77c27dc6a6995a3ad5e77afa1) [@bep](https://github.com/bep)
-* Fix BOM issue in templates [3a786a24](https://github.com/gohugoio/hugo/commit/3a786a248d3eff6e732aa94e87d6e88196e5147a) [@bep](https://github.com/bep) [#4895](https://github.com/gohugoio/hugo/issues/4895)
-
-### Output
-
-* Fix ANSI character output regression on Windows [b8725f51](https://github.com/gohugoio/hugo/commit/b8725f5181f6a2709274a82c1c3fdfd8f2e3e28c) [@LorenzCK](https://github.com/LorenzCK) [#5377](https://github.com/gohugoio/hugo/issues/5377)
-
-### Core
-
-* Fix changing paginators in lazy render [b8b8436f](https://github.com/gohugoio/hugo/commit/b8b8436fcca17c152e94cae2a1acad32efc3946c) [@bep](https://github.com/bep) [#5406](https://github.com/gohugoio/hugo/issues/5406)
-* Fix REF_NOT_FOUND logging to include page path [6180c85f](https://github.com/gohugoio/hugo/commit/6180c85fb8f95e01446b74c50cab3f0480305fe4) [@bep](https://github.com/bep) [#5371](https://github.com/gohugoio/hugo/issues/5371)
-* Fix broken manual summary handling [b2a676f5](https://github.com/gohugoio/hugo/commit/b2a676f5f09a3eea360887b099b9d5fc25a88492) [@bep](https://github.com/bep) [#5381](https://github.com/gohugoio/hugo/issues/5381)
-* Fix deadlock when content building times out [729593c8](https://github.com/gohugoio/hugo/commit/729593c842794eaf7127050953a5c2256d332051) [@bep](https://github.com/bep) [#5375](https://github.com/gohugoio/hugo/issues/5375)
-
-### Other
-
-* Fix spelling [47506d16](https://github.com/gohugoio/hugo/commit/47506d164467eb7ddbcada81b767d8df5f9c8786) [@qeesung](https://github.com/qeesung)
-* Fix shortcode directly following a shortcode delimiter [d16a7a33](https://github.com/gohugoio/hugo/commit/d16a7a33ff1f22b9fa357189a901a4f1de4e65e7) [@bep](https://github.com/bep) [#5402](https://github.com/gohugoio/hugo/issues/5402)
-* Fix recently broken error template [2bd9d909](https://github.com/gohugoio/hugo/commit/2bd9d9099db267831731ed2d2200eb09305df9fc) [@bep](https://github.com/bep)
-
-
-
-
-
diff --git a/docs/content/en/news/0.52-relnotes/featured-hugo-52-poster.png b/docs/content/en/news/0.52-relnotes/featured-hugo-52-poster.png
deleted file mode 100644
index 190f5758a5d..00000000000
Binary files a/docs/content/en/news/0.52-relnotes/featured-hugo-52-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.52-relnotes/index.md b/docs/content/en/news/0.52-relnotes/index.md
deleted file mode 100644
index 849a0028cfb..00000000000
--- a/docs/content/en/news/0.52-relnotes/index.md
+++ /dev/null
@@ -1,74 +0,0 @@
-
----
-date: 2018-11-28
-title: "And Now: Hugo 0.52"
-description: "Configurable file caches, inline shortcodes, and more ..."
-categories: ["Releases"]
----
-
-The two big new items in this release is [Inline Shortcodes](https://gohugo.io//templates/shortcode-templates/#inline-shortcodes) and [Consolidated File Caches](https://gohugo.io/getting-started/configuration/#configure-file-caches). In Hugo we really care about build speed, and caching is important. With this release, you get much better control over your cache configuration, which is especially useful when building on a Continuous Integration server (Netlify, CircleCI or similar). Inline Shortcodes was implemented to help the Bootstrap project [move their documentation site](https://github.com/twbs/bootstrap/issues/24475#issuecomment-441238128) to Hugo. Note that this feature is disabled by default. To enable, set `enableInlineShortcodes = true` in your site config. Worth mentioning is also the new `param` shortcode, which looks up the param in page front matter with the site's parameter as a fall back.
-
-This release represents **33 contributions by 7 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), [@emirb](https://github.com/emirb), and [@allizad](https://github.com/allizad) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **10 contributions by 4 contributors**. A special thanks to [@budparr](https://github.com/budparr), [@bep](https://github.com/bep), [@allizad](https://github.com/allizad), and [@funkydan2](https://github.com/funkydan2) for their work on the documentation site.
-
-Hugo now has:
-
-* 30595+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 270+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Add tests [ed698e94](https://github.com/gohugoio/hugo/commit/ed698e94c12c05bfc392eaca4f0c8442eac64906) [@moorereason](https://github.com/moorereason)
-* Regenerate templates [89e2716d](https://github.com/gohugoio/hugo/commit/89e2716d290708ccde0a6f65504c1650c2f41b3d) [@bep](https://github.com/bep)
-* Add "param" shortcode [f37c5a25](https://github.com/gohugoio/hugo/commit/f37c5a25676db89c0e804ccaac69bb392758192b) [@bep](https://github.com/bep) [#4010](https://github.com/gohugoio/hugo/issues/4010)
-* Add float64 support to where [112461fd](https://github.com/gohugoio/hugo/commit/112461fded0d7970817ce7bf476c4763922ad314) [@moorereason](https://github.com/moorereason) [#5466](https://github.com/gohugoio/hugo/issues/5466)
-
-### Core
-
-* Fall back to title in ByLinkTitle sort [a9a93d08](https://github.com/gohugoio/hugo/commit/a9a93d082d8640684b7fd0076c64ea808ea7f762) [@bep](https://github.com/bep) [#4953](https://github.com/gohugoio/hugo/issues/4953)
-* Improve nil handling in IsDescendant and IsAncestor [b09a4033](https://github.com/gohugoio/hugo/commit/b09a40333f382cc1034d2eda856230258ab6b8cc) [@bep](https://github.com/bep) [#5461](https://github.com/gohugoio/hugo/issues/5461)
-
-### Other
-
-* Remove duplicate mapstructure depdendency [7e75aeca](https://github.com/gohugoio/hugo/commit/7e75aeca80aead50d64902d2ff47e4ad4d013352) [@bep](https://github.com/bep)
-* Add dependency list to README [e14e0b19](https://github.com/gohugoio/hugo/commit/e14e0b192f39812e3c3d5202d34ee907021412bb) [@bep](https://github.com/bep)
-* Document inline shortcodes [aded0f25](https://github.com/gohugoio/hugo/commit/aded0f25fd23a78804b10e127aebe0e4b6fed2ac) [@bep](https://github.com/bep) [#4011](https://github.com/gohugoio/hugo/issues/4011)
-* Add inline shortcode support [bc337e6a](https://github.com/gohugoio/hugo/commit/bc337e6ab5a75f1f1bfe3a83f3786d0afdb6346c) [@bep](https://github.com/bep) [#4011](https://github.com/gohugoio/hugo/issues/4011)
-* Include drafts in convert command [dcfeed35](https://github.com/gohugoio/hugo/commit/dcfeed35c6e14c1ce593d23be9d2b89c66ce9bee) [@bep](https://github.com/bep) [#5457](https://github.com/gohugoio/hugo/issues/5457)
-* Handle themes in the new file cache (for images, assets) [f9b4eb4f](https://github.com/gohugoio/hugo/commit/f9b4eb4f3968d32f45e0168c854e6b0c7f3a90b0) [@bep](https://github.com/bep) [#5460](https://github.com/gohugoio/hugo/issues/5460)
-* Add tests for permalink on Resource with baseURL with path [12742bac](https://github.com/gohugoio/hugo/commit/12742bac71c65d65dc56548b643debda94757aee) [@bep](https://github.com/bep) [#5226](https://github.com/gohugoio/hugo/issues/5226)
-* Add a comment about file mode for new files [fabf026f](https://github.com/gohugoio/hugo/commit/fabf026f4937bf6fbbb944aa7d6e721839ae4c92) [@bep](https://github.com/bep) [#5434](https://github.com/gohugoio/hugo/issues/5434)
-* Add a :project placeholder [94f0f7e5](https://github.com/gohugoio/hugo/commit/94f0f7e59788e802e706a55cac0d52a9e70ff745) [@bep](https://github.com/bep) [#5439](https://github.com/gohugoio/hugo/issues/5439)
-* Add a cache prune func [3c29c5af](https://github.com/gohugoio/hugo/commit/3c29c5af8ee865ef20741f576088e031e940c3d2) [@bep](https://github.com/bep) [#5439](https://github.com/gohugoio/hugo/issues/5439)
-* Add a filecache root dir [33502667](https://github.com/gohugoio/hugo/commit/33502667fbacf57167ede66df8f13e308a4a9aec) [@bep](https://github.com/bep)
-* Use time.Duration for maxAge [d3489eba](https://github.com/gohugoio/hugo/commit/d3489eba5dfc0ecdc032016d9db0746213dd5f0e) [@bep](https://github.com/bep) [#5438](https://github.com/gohugoio/hugo/issues/5438)
-* Split implementation and config into separate files [17d7ecde](https://github.com/gohugoio/hugo/commit/17d7ecde2b261d2ab29049d12361b66504e3f995) [@bep](https://github.com/bep)
-* Update to LibSASS 3.5.5 [e4b25728](https://github.com/gohugoio/hugo/commit/e4b2572880550a997d51dab3b198dac1fd642690) [@bep](https://github.com/bep) [#5432](https://github.com/gohugoio/hugo/issues/5432)[#5435](https://github.com/gohugoio/hugo/issues/5435)
-* More spelling corrections [782dd158](https://github.com/gohugoio/hugo/commit/782dd15858128d8dfe78970c86e543b6590a004c) [@bep](https://github.com/bep)
-* Spelling corrections [aff9c091](https://github.com/gohugoio/hugo/commit/aff9c091669a022b59f493c9dccf72be29511299) [@bep](https://github.com/bep)
-* Remove appveyor [fdd4a768](https://github.com/gohugoio/hugo/commit/fdd4a768f053b21271d4520bf0d43baf62d516da) [@bep](https://github.com/bep)
-* Document the new file cache [abeeff13](https://github.com/gohugoio/hugo/commit/abeeff1325267f8d8f1f66f0ec4ed175ffc140ad) [@bep](https://github.com/bep) [#5404](https://github.com/gohugoio/hugo/issues/5404)
-* Add a consolidated file cache [f7aeaa61](https://github.com/gohugoio/hugo/commit/f7aeaa61291dd75f92901bcbeecc7fce07a28dec) [@bep](https://github.com/bep) [#5404](https://github.com/gohugoio/hugo/issues/5404)
-* Add Windows build config to Travis [7d78a2af](https://github.com/gohugoio/hugo/commit/7d78a2afd3c4a6c4af77a4ddcbd2a82f15986048) [@emirb](https://github.com/emirb)
-* Add Elasticsearch/bonsai.io to services doc. [c0b3a1af](https://github.com/gohugoio/hugo/commit/c0b3a1af0354e3aa9979cc00ae8630d7f0be63dc) [@allizad](https://github.com/allizad)
-
-## Fixes
-
-### Templates
-
-* Fix whitespace issue [aba2647c](https://github.com/gohugoio/hugo/commit/aba2647c152ffff927f42523b77ee6651630cd67) [@max-arnold](https://github.com/max-arnold)
-* Fix test to pass with gccgo [a8cb1b07](https://github.com/gohugoio/hugo/commit/a8cb1b07b4cf7fcf0e949657cb03c1a4838f975e) [@ianlancetaylor](https://github.com/ianlancetaylor)
-
-### Other
-
-* Fix handling of commented out front matter [7540a628](https://github.com/gohugoio/hugo/commit/7540a62834d4465af8936967e430a9e05a1e1359) [@bep](https://github.com/bep) [#5478](https://github.com/gohugoio/hugo/issues/5478)
-* Fix when only shortcode and then summary [94ab125b](https://github.com/gohugoio/hugo/commit/94ab125b27a29a65e5ea45efd99dd247084b4c37) [@bep](https://github.com/bep) [#5464](https://github.com/gohugoio/hugo/issues/5464)
-* Fix ignored --config flag with 'new' command [e82b2dc8](https://github.com/gohugoio/hugo/commit/e82b2dc8c1628f2da33e5fb0bae1b03e0594ad2c) [@krisbudhram](https://github.com/krisbudhram)
-* Fix Permalink for resource, baseURL with path and canonifyURLs set [5df2b79d](https://github.com/gohugoio/hugo/commit/5df2b79dd2734e9a00ed1692328f58c385676468) [@bep](https://github.com/bep) [#5226](https://github.com/gohugoio/hugo/issues/5226)
diff --git a/docs/content/en/news/0.53-relnotes/featured-hugo-53-poster.png b/docs/content/en/news/0.53-relnotes/featured-hugo-53-poster.png
deleted file mode 100644
index c3cee3adc87..00000000000
Binary files a/docs/content/en/news/0.53-relnotes/featured-hugo-53-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.53-relnotes/index.md b/docs/content/en/news/0.53-relnotes/index.md
deleted file mode 100644
index b61ab9074b8..00000000000
--- a/docs/content/en/news/0.53-relnotes/index.md
+++ /dev/null
@@ -1,94 +0,0 @@
-
----
-date: 2018-12-24
-title: "Hugo Christmas Edition"
-description: "Hugo 0.53: Faster, config dir support, new unmarshal func, global site var, and more ..."
-categories: ["Releases"]
----
-
-From all of us to all of you, a very Merry Christmas -- and Hugo `0.53`!
-
-The main new features in this release are:
-
-**Config Dir:** You can now split your configuration sections into directories per environment. Hugo did support multiple configuration files before this release, but it was hard to manage for bigger sites, especially those with multiple languages. With this we have also formalized the concept of an `environment`; the defaults are `production` (when running `hugo`) or `development` (when running `hugo server`) but you can create any environment you like. We will update the documentation, but all the details are in [this issue](https://github.com/gohugoio/hugo/pull/5501#issue-236237630). Also, see [this PR](https://github.com/gohugoio/hugoDocs/pull/683) for how the refactored configuration for the Hugo website looks like.
-
-**Unmarshal JSON, TOML, YAML or CSV:** `transform.Unmarshal` (see the [documentation](https://gohugo.io//functions/transform.unmarshal/) is a new and powerful template function that can turn `Resource` objects or strings with JSON, TOML, YAML or CSV into maps/arrays.
-
-**Global site and hugo var:** Two new global variables in `site` and `hugo`. `hugo` gives you version info etc. (`{{ hugo.Version }}`, `{{ hugo.Environment }}`), but the `site` is probably more useful, as it allows you to access the current [site's variables](https://gohugo.io/variables/site/) (e.g. `{{ site.RegularPages }}`) without any context (or ".").
-
-This version is also the fastest to date. A site building benchmark shows around 10% faster, but that depends on the site. The important part here is that we're not getting slower. It’s quite a challenge to consistently add significant new functionality and simultaneously improve performance. It's like not gaining weight during Christmas. We also had a small performance boost in version `0.50`. A user then reported that his big and complicated site had a 30% reduction in build time. This is important to us, one of the core features. It's in the slogan: "The world’s fastest framework for building websites."
-
-This release represents **37 contributions by 5 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), [@coliff](https://github.com/coliff), and [@jfyuen](https://github.com/jfyuen) for their ongoing contributions. And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **19 contributions by 8 contributors**. A special thanks to [@bep](https://github.com/bep), [@kaushalmodi](https://github.com/kaushalmodi), [@peaceiris](https://github.com/peaceiris), and [@moorereason](https://github.com/moorereason) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 31174+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 279+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* The `hugo benchmark` command is removed
-* We now do not publish transformed inline resources, e.g. minified CSS only accessed via `.Content.`, e.g. `{{ ($css | minify).Content }}`. Before this version, the minified CSS in that example would be copied to `/public`, which was never the intention. If you want that, you need to access either `.RelPermalink` or `.Permalink`.
-
-
-## Enhancements
-
-### Templates
-
-* Include options in cache key [be58c7b9](https://github.com/gohugoio/hugo/commit/be58c7b9c88116094ca2b424c77210ddcccfff8e) [@bep](https://github.com/bep) [#5555](https://github.com/gohugoio/hugo/issues/5555)
-* Simplify transform.Unmarshal func [094709e1](https://github.com/gohugoio/hugo/commit/094709e105d48547bf5297adc0ad0c777678b0a6) [@bep](https://github.com/bep) [#5428](https://github.com/gohugoio/hugo/issues/5428)
-* Add transform.Unmarshal func [822dc627](https://github.com/gohugoio/hugo/commit/822dc627a1cfdf1f97882f27761675ac6ace7669) [@bep](https://github.com/bep) [#5428](https://github.com/gohugoio/hugo/issues/5428)
-* Remove "double layout" lookup [d5a0b6bb](https://github.com/gohugoio/hugo/commit/d5a0b6bbbc83a3e274c62ed397a293f04ee8d241) [@bep](https://github.com/bep) [#5390](https://github.com/gohugoio/hugo/issues/5390)
-* Add reflect namespace [c84f506f](https://github.com/gohugoio/hugo/commit/c84f506f8ef1f2ca94ab96718a22ba6e290235ac) [@moorereason](https://github.com/moorereason) [#4081](https://github.com/gohugoio/hugo/issues/4081)
-* Use the correct Hugo var [931a1324](https://github.com/gohugoio/hugo/commit/931a1324503a4414e38d26efe82e1add811a8d29) [@bep](https://github.com/bep) [#5467](https://github.com/gohugoio/hugo/issues/5467)
-* Add tpl/site and tpl/hugo [831d23cb](https://github.com/gohugoio/hugo/commit/831d23cb4d1ca99cdc15ed31c8ee1f981497be8f) [@bep](https://github.com/bep) [#5470](https://github.com/gohugoio/hugo/issues/5470)[#5467](https://github.com/gohugoio/hugo/issues/5467)[#5503](https://github.com/gohugoio/hugo/issues/5503)
-* Add godoc packages comments [30a7c9ea](https://github.com/gohugoio/hugo/commit/30a7c9ea37a0f36451946f8688a3f807618a7eff) [@moorereason](https://github.com/moorereason)
-
-### Core
-
-* Adjust test [25ddbb09](https://github.com/gohugoio/hugo/commit/25ddbb09fea7794edbbafa2ffce4e361cdc9bacf) [@bep](https://github.com/bep) [#5544](https://github.com/gohugoio/hugo/issues/5544)
-* Add .Name as a shortcode variable [10217144](https://github.com/gohugoio/hugo/commit/1021714449a05ef85b2fdfaf65b354cbdee44f23) [@bep](https://github.com/bep) [#5546](https://github.com/gohugoio/hugo/issues/5546)
-* Improve logic of output path trimming [0483299b](https://github.com/gohugoio/hugo/commit/0483299bc06a742d40528e0d675e42e149910853) [@moorereason](https://github.com/moorereason) [#4666](https://github.com/gohugoio/hugo/issues/4666)
-* Enable Emoji in site benchmark [4d93aca2](https://github.com/gohugoio/hugo/commit/4d93aca27dfdebc9e06948ccf37a7922dac09d65) [@bep](https://github.com/bep)
-* Restore taxonomy term path separation [9ce0a1fb](https://github.com/gohugoio/hugo/commit/9ce0a1fb7011bd75eb0e2262e35354c49ce98ac5) [@bep](https://github.com/bep) [#5513](https://github.com/gohugoio/hugo/issues/5513)
-* Add .Site.Sites [83783588](https://github.com/gohugoio/hugo/commit/8378358857d852458d01c667d59d13baa59a719c) [@bep](https://github.com/bep) [#5504](https://github.com/gohugoio/hugo/issues/5504)
-
-### Other
-
-* Adjust CSV example [62d031ae](https://github.com/gohugoio/hugo/commit/62d031aedfc128729b460241bd99d97b5d902e62) [@bep](https://github.com/bep) [#5555](https://github.com/gohugoio/hugo/issues/5555)
-* Rename CSV option from comma to delimiter [ce06bdb1](https://github.com/gohugoio/hugo/commit/ce06bdb16a64dd39a8ebbb2e5a53b33520b00bb1) [@bep](https://github.com/bep) [#5555](https://github.com/gohugoio/hugo/issues/5555)
-* Document transform.Unmarshal [2efc1a64](https://github.com/gohugoio/hugo/commit/2efc1a64c391420b1007f6e94b6ff616fb136635) [@bep](https://github.com/bep) [#5556](https://github.com/gohugoio/hugo/issues/5556)
-* Regenerate CLI docs [e691c48a](https://github.com/gohugoio/hugo/commit/e691c48a5a9b4db5aa5383de6b83352fc18cc633) [@bep](https://github.com/bep) [#5544](https://github.com/gohugoio/hugo/issues/5544)
-* Add CSV support to transform.Unmarshal [a5744697](https://github.com/gohugoio/hugo/commit/a5744697971d296eb973e04e4259fe9e516b908f) [@bep](https://github.com/bep) [#5555](https://github.com/gohugoio/hugo/issues/5555)
-* Prevent resource publishing for transformed inline resources [43f9df01](https://github.com/gohugoio/hugo/commit/43f9df0194d229805d80b13c9e38a7a0fec12cf4) [@bep](https://github.com/bep) [#4944](https://github.com/gohugoio/hugo/issues/4944)
-* Remove the benchmark command [35bfca3b](https://github.com/gohugoio/hugo/commit/35bfca3b14977eaebab4003b43b5236c1888d93d) [@bep](https://github.com/bep) [#5543](https://github.com/gohugoio/hugo/issues/5543)
-* Move the emoji parsing to pageparser [9cd54cab](https://github.com/gohugoio/hugo/commit/9cd54cab20a03475e34ca462bd943069111481ae) [@bep](https://github.com/bep) [#5534](https://github.com/gohugoio/hugo/issues/5534)
-* Split the page lexer into some more files [a8853f1c](https://github.com/gohugoio/hugo/commit/a8853f1c5ace30ae8d256ad374bdb280c95d4228) [@bep](https://github.com/bep) [#5534](https://github.com/gohugoio/hugo/issues/5534)
-* parser/pageparser: Add a benchmark [f2167de8](https://github.com/gohugoio/hugo/commit/f2167de83493f13f02dd622425364668834f8208) [@bep](https://github.com/bep)
-* Update to Go 1.11.4 [bb9c2988](https://github.com/gohugoio/hugo/commit/bb9c2988f871ca5fe6af9c8e207ec852c631c3b3) [@bep](https://github.com/bep) [#5524](https://github.com/gohugoio/hugo/issues/5524)
-* Simplify implementation [f7691fe9](https://github.com/gohugoio/hugo/commit/f7691fe9652aa12b6c582dea0ae2555e772d1a5f) [@bep](https://github.com/bep)
-* Support unquoted URLs in canonifyURLs replacer [efe0b4e5](https://github.com/gohugoio/hugo/commit/efe0b4e5c0292c1e5e27b0c32fbc368062fde3e8) [@bep](https://github.com/bep) [#5529](https://github.com/gohugoio/hugo/issues/5529)
-* Regenerate CLI docs [50686817](https://github.com/gohugoio/hugo/commit/50686817072c8bef947959cb2bcc7f1914c7f839) [@bep](https://github.com/bep) [#5507](https://github.com/gohugoio/hugo/issues/5507)
-* Add /config dir support [78294740](https://github.com/gohugoio/hugo/commit/7829474088f835251f04caa1121d47e35fe89f7e) [@bep](https://github.com/bep) [#5422](https://github.com/gohugoio/hugo/issues/5422)
-* cache/filecache: Simplify test [514e18dc](https://github.com/gohugoio/hugo/commit/514e18dc27ce37a0e9a231741d616cf29d50d610) [@bep](https://github.com/bep) [#5497](https://github.com/gohugoio/hugo/issues/5497)
-* Use OS fs for test [b804a708](https://github.com/gohugoio/hugo/commit/b804a70881c7be26dc15274c4f98f1057469cbc1) [@bep](https://github.com/bep) [#5497](https://github.com/gohugoio/hugo/issues/5497)
-
-## Fixes
-
-### Templates
-
-* Fix case handling in cast params [64b6b290](https://github.com/gohugoio/hugo/commit/64b6b290751df01c47ff8d8fe21a3eca7a5db283) [@bep](https://github.com/bep) [#5538](https://github.com/gohugoio/hugo/issues/5538)
-
-### Other
-
-* Fix "failed to create file caches from configuration: file exists" on Windows [5178cd13](https://github.com/gohugoio/hugo/commit/5178cd13a7da3c5f5ec5d3217c9e40fc0be7152a) [@bep](https://github.com/bep) [#5497](https://github.com/gohugoio/hugo/issues/5497)
-* fix jekyll import highlight options [ab921476](https://github.com/gohugoio/hugo/commit/ab9214768de4ce10032d3fe7ec8c7b2932ead892) [@jfyuen](https://github.com/jfyuen)
-* Fix "always false" condition [25641891](https://github.com/gohugoio/hugo/commit/256418917c6642f7e5b3d3206ff4b6fa03b1cb28) [@Quasilyte](https://github.com/Quasilyte)
-* Fixx CSS2 color code handling [4b5f7439](https://github.com/gohugoio/hugo/commit/4b5f743959394d443c4dcaa0ccae21842b51adaf) [@bep](https://github.com/bep) [#5506](https://github.com/gohugoio/hugo/issues/5506)
-* common/collections: Fix defines typo [83468481](https://github.com/gohugoio/hugo/commit/8346848109ab57cb04de87c6d86859c6b3de8ffa) [@coliff](https://github.com/coliff)
diff --git a/docs/content/en/news/0.54.0-relnotes/featured-hugo-54.0-poster.png b/docs/content/en/news/0.54.0-relnotes/featured-hugo-54.0-poster.png
deleted file mode 100644
index 10fe563c36b..00000000000
Binary files a/docs/content/en/news/0.54.0-relnotes/featured-hugo-54.0-poster.png and /dev/null differ
diff --git a/docs/content/en/news/0.54.0-relnotes/index.md b/docs/content/en/news/0.54.0-relnotes/index.md
deleted file mode 100644
index 8fc56620b3c..00000000000
--- a/docs/content/en/news/0.54.0-relnotes/index.md
+++ /dev/null
@@ -1,69 +0,0 @@
-
----
-date: 2019-02-01
-title: "0.54.0: Mostly Bugfixes"
-description: "0.54.0 is mostly a bugfix-release, but also some nice improvements."
-categories: ["Releases"]
-
----
-
-This release represents **27 contributions by 7 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 [@tryzniak](https://github.com/tryzniak), [@anthonyfok](https://github.com/anthonyfok), and [@mywaiting](https://github.com/mywaiting) for their ongoing contributions. And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **38 contributions by 17 contributors**. A special thanks to [@bep](https://github.com/bep), [@kaushalmodi](https://github.com/kaushalmodi), [@onedrawingperday](https://github.com/onedrawingperday), and [@peaceiris](https://github.com/peaceiris) for their work on the documentation site.
-
-Hugo now has:
-
-* 32265+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 289+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Adjust tests [ddc6d4e3](https://github.com/gohugoio/hugo/commit/ddc6d4e30f282f23b703a3b42da552886062c8c8) [@bep](https://github.com/bep) [#5643](https://github.com/gohugoio/hugo/issues/5643)
-* Prevent getJSON and getCSV fetch failure from aborting build [6a2bfcbe](https://github.com/gohugoio/hugo/commit/6a2bfcbec8df14b1741dbe9b5ead08158bf7adb9) [@anthonyfok](https://github.com/anthonyfok) [#5643](https://github.com/gohugoio/hugo/issues/5643)
-
-### Core
-
-* Expand TestPageWithEmoji to cover '+', '-' and '_' too [2a9060a8](https://github.com/gohugoio/hugo/commit/2a9060a85ce430b28f5ec47e1438c6ef1b8e13fa) [@anthonyfok](https://github.com/anthonyfok) [#5635](https://github.com/gohugoio/hugo/issues/5635)
-* Restore 0.48 slash handling in taxonomies [40ffb048](https://github.com/gohugoio/hugo/commit/40ffb0484b96b7b77fb66202b33073b241807199) [@bep](https://github.com/bep) [#5571](https://github.com/gohugoio/hugo/issues/5571)
-
-### Other
-
-* Use official semver even for main releases [fab41f42](https://github.com/gohugoio/hugo/commit/fab41f42d3e23c11651ab75413b01d97e5d37c30) [@bep](https://github.com/bep) [#5639](https://github.com/gohugoio/hugo/issues/5639)
-* Add test for --configDir [59d87044](https://github.com/gohugoio/hugo/commit/59d87044a4146f578b92b3d67b46660212940912) [@bep](https://github.com/bep) [#5662](https://github.com/gohugoio/hugo/issues/5662)
-* Ignore unknown config files in config dir [3244cb3b](https://github.com/gohugoio/hugo/commit/3244cb3b31f8f8c39d9dfa82bc01fb2d6db59257) [@bep](https://github.com/bep) [#5646](https://github.com/gohugoio/hugo/issues/5646)
-* Store supported config formats in a variable [d9282cf9](https://github.com/gohugoio/hugo/commit/d9282cf98a346fcf98f363d9c353e4920ca85fc7) [@tryzniak](https://github.com/tryzniak)
-* Bump to Go 1.11.5 [8ed2a1ca](https://github.com/gohugoio/hugo/commit/8ed2a1caa9e0892d5bf97ed1b7279befa159f764) [@bep](https://github.com/bep) [#5654](https://github.com/gohugoio/hugo/issues/5654)
-* Update Afero [e8596139](https://github.com/gohugoio/hugo/commit/e85961390a050cd4f2e6ce4f2666012bc83bb449) [@bep](https://github.com/bep) [#5650](https://github.com/gohugoio/hugo/issues/5650)
-* Accept hyphen and plus sign in emoji detection [3038464e](https://github.com/gohugoio/hugo/commit/3038464ea6f931c8a08ee49d47f1eaec99ba4817) [@anthonyfok](https://github.com/anthonyfok) [#5635](https://github.com/gohugoio/hugo/issues/5635)
-* Support numeric sort in ByParam [26f75edb](https://github.com/gohugoio/hugo/commit/26f75edb7a76c816349749a05edf98fb36dc338a) [@tryzniak](https://github.com/tryzniak) [#5305](https://github.com/gohugoio/hugo/issues/5305)
-* Make hugo server -t work again [db3c49d0](https://github.com/gohugoio/hugo/commit/db3c49d049193e0fc225fe4bdb95712c311d6615) [@tryzniak](https://github.com/tryzniak) [#5569](https://github.com/gohugoio/hugo/issues/5569)[#5061](https://github.com/gohugoio/hugo/issues/5061)[#4868](https://github.com/gohugoio/hugo/issues/4868)
-* Add configFile(s) back to the watch list after RENAME event too [e3cb8e6c](https://github.com/gohugoio/hugo/commit/e3cb8e6c7874d7dfe1d4d1c7f5c9765b681fb647) [@anthonyfok](https://github.com/anthonyfok) [#5205](https://github.com/gohugoio/hugo/issues/5205)
-* Remove historical rssURI config [55251aa8](https://github.com/gohugoio/hugo/commit/55251aa89099358c040d38f3af48e3699d67bab2) [@mywaiting](https://github.com/mywaiting)
-* Use subtests with server_test.go [843fcd19](https://github.com/gohugoio/hugo/commit/843fcd19d4d97bac979410a4e0abed72586a0aa0) [@tryzniak](https://github.com/tryzniak)
-* Move resource interfaces into its own package [ce8a09a4](https://github.com/gohugoio/hugo/commit/ce8a09a4c0661dece931ab1173e4f09e8e04aa38) [@bep](https://github.com/bep)
-* Move resource processors into sub-packages [669ada43](https://github.com/gohugoio/hugo/commit/669ada436787311cc5d02dae5b88e60a09adda58) [@bep](https://github.com/bep)
-* Update _index.md [50745122](https://github.com/gohugoio/hugo/commit/507451229c2255788d72b757a85ad5bb3ba00f4f) [@vrMarc](https://github.com/vrMarc)
-* Update go.sum [0584432b](https://github.com/gohugoio/hugo/commit/0584432b078f1e3a488ad4f27f39edac0557e042) [@bep](https://github.com/bep)
-* Update Chroma [cc351958](https://github.com/gohugoio/hugo/commit/cc351958e12d4dc83f664a1d51be76a447fea9b8) [@bep](https://github.com/bep) [#4993](https://github.com/gohugoio/hugo/issues/4993)
-* Make docshelper run again [c24f3ae2](https://github.com/gohugoio/hugo/commit/c24f3ae22b27dfe5339662277f8183596a6d148d) [@bep](https://github.com/bep) [#5568](https://github.com/gohugoio/hugo/issues/5568)
-
-## Fixes
-
-### Templates
-
-* Fix reflect [9e4f9e0b](https://github.com/gohugoio/hugo/commit/9e4f9e0bb69276e9bca0dfbdbc7aefbf5f6fc9e5) [@moorereason](https://github.com/moorereason) [#5564](https://github.com/gohugoio/hugo/issues/5564)
-
-### Other
-
-* Fix some inline shortcode issues [c52045bb](https://github.com/gohugoio/hugo/commit/c52045bbb38cbf64b9cb39352230060aa122cc9f) [@bep](https://github.com/bep) [#5645](https://github.com/gohugoio/hugo/issues/5645)[#5653](https://github.com/gohugoio/hugo/issues/5653)
-* Fix OpenGraph image fallback to site params [526b5b1c](https://github.com/gohugoio/hugo/commit/526b5b1c4986d43d6184671b02f45ca40f041b65) [@statik](https://github.com/statik)
-* Fix Params case handling in the new site global [e1a66c73](https://github.com/gohugoio/hugo/commit/e1a66c7343db9d232749255dd9e3a58d94b86997) [@bep](https://github.com/bep) [#5615](https://github.com/gohugoio/hugo/issues/5615)
-* cache/namedmemcache: Fix data race [3f3187de](https://github.com/gohugoio/hugo/commit/3f3187de0f62107da19d9341aebd1d8414bff0ea) [@bep](https://github.com/bep)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.0-relnotes/featured.png b/docs/content/en/news/0.55.0-relnotes/featured.png
deleted file mode 100644
index 0d3180579c4..00000000000
Binary files a/docs/content/en/news/0.55.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.55.0-relnotes/index.md b/docs/content/en/news/0.55.0-relnotes/index.md
deleted file mode 100644
index c22eaf36672..00000000000
--- a/docs/content/en/news/0.55.0-relnotes/index.md
+++ /dev/null
@@ -1,194 +0,0 @@
-
----
-date: 2019-04-08
-title: "Hugo 0.55.0: The early Easter Egg Edition!"
-description: "Faster, virtualized Output Formats, revised shortcodes, new return keyword, and much more …"
-categories: ["Releases"]
----
-
-Hugo `0.55` is **the early Easter Egg Edition** with lots of great improvements and fixes. The original motivation for this release was to prepare for [Issue #5074](https://github.com/gohugoio/hugo/issues/5074), but the structural changes needed for that paved the way for lots of others. Please study the list of changes below, and especially the **Notes** section, but some headlines include:
-
-## Virtualized Output Formats
-
-[Custom Output Formats](https://gohugo.io/templates/output-formats) has been a really useful feature, but it has had some annoying and not so obvious restrictions that are now lifted. Now all `Page` collections are aware of the output format being rendered. This means, to give some examples, that:
-
-* In a `RSS` template, listing pages with their content will use output format specific shortcode templates even if the pages themselves are not configured to output to that output format.
-* Using `.Render` when looping over a `Page` collection will now work as expected.
-* Every Output Format can be paginated.
-
-We have now also added a new `Permalinkable` configuration attribute, which is enabled by default for `HTML` and `AMP`.
-
-## Shortcodes Revised
-
-Shortcodes using the `{{%/* */%}}` as the outer-most delimiter will now be fully rendered when sent to the content renderer (e.g. Blackfriday for Markdown), meaning they can be part of the generated table of contents, footnotes, etc.
-
-If you want the old behavior, you can put the following line in the start of your shortcode template:
-
-```
-{{ $_hugo_config := `{ "version": 1 }` }}
-```
-
-But using the `{{* */>}}` delimiter will, in most cases, be a better alternative, possibly in combination with the `markdownify` template func.
-
-See [#5763](https://github.com/gohugoio/hugo/issues/5763).
-
-## New Return Keyword for Partials
-
-Hugo's `partial` and `partialCached` are great for template macros. With the new `return` keyword you can write partials as proper functions that can return any type:
-
-```go-html-template
-{{ $v := add . 42 }}
-{{ return $v }}
-```
-
-See [#5783](https://github.com/gohugoio/hugo/issues/5783).
-
-## .Page on Taxonomy nodes
-
-The taxonomy nodes now have a `.Page` accessor which makes it much simpler to get a proper `.Title` etc. This means that older and clumsy constructs can be simplified. Some examples:
-
-```go-html-template
-
- {{ range .Data.Terms.Alphabetical }}
-
-```
-
-```go-html-template
-
- {{ range .Site.Taxonomies.tags }}
-
-```
-
-See [#5719](https://github.com/gohugoio/hugo/issues/5719).
-
-## And it's Faster!
-
-This version is also the **fastest to date**. A site building benchmark shows more than 10% decrease in both build time and memory consumption, but that depends on the site. It’s quite a challenge to consistently add significant new functionality and simultaneously improve performance. Also, note that we are now more honest about build times reported (`Total in 1234 ms`). We now do all initialization in the `Build` step, so you may get a higher time reported if you, as an example, have `--enableGitInfo` enabled, which now is included in the reported time.
-
-
-
-## Thanks!
-
-This release represents **59 contributions by 10 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 [@mcdee](https://github.com/mcdee), [@quasilyte](https://github.com/quasilyte), and [@danielcompton](https://github.com/danielcompton) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **36 contributions by 21 contributors**. A special thanks to [@bep](https://github.com/bep), [@peaceiris](https://github.com/peaceiris), [@budparr](https://github.com/budparr), and [@tinymachine](https://github.com/tinymachine) for their work on the documentation site.
-
-As this release has required a significant effort with manual testing, a special thanks go to [@onedrawingperday](https://github.com/onedrawingperday) (the 300 theme demo sites have been invaluable to check for API-breakage!), [@adiabatic](https://github.com/adiabatic), and [@divinerites](https://github.com/divinerites).
-
-Hugo now has:
-
-* 34077+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 306+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-* `{{ %` as the outer-most shortcode delimiter means "pass the inner content to the content renderer" (e.g. Blackfriday); the old behavior can be had, see [#5763](https://github.com/gohugoio/hugo/issues/5763)
-* `preserveTaxonomyNames`configuration option is removed. Use `.Page.Title`.
-* We no longer limit the number of pages passed to the `RSS` Output Format. We have moved that limit to the internal `RSS` template, and you can do so yourself using the `Config.Services.RSS.Limit` in your custom template.
-* We no longer add XML headers to Output Formats that output XML (``). This header is moved to the templates. If you have custom RSS or sitemap templates you may want to add the XML declaration to these. Since they, by default, is handled by Go's HTML template package, you must do something like this to make sure it's preserved: `{{ printf "" | safeHTML }}`
-* More honest build times reported (`Total in 1234 ms`). We now do all initialization in the `Build` step, so you may get a higher time reported if you, as an example, have `--enableGitInfo` enabled, which now is included in the reported time.
-* The taxonomy nodes now have a `.Page` accessor which makes it much simpler to get a proper `.Title` etc. see [#5719](https://github.com/gohugoio/hugo/issues/5719).
-* The template keywords `with` and `if` now work properly for zero and interface types, see [#5739](https://github.com/gohugoio/hugo/issues/5739)
-* Taxonomy terms lists (`Page` of `Kind` `taxonomyTerm`) without any date(s) set (e.g. from front matter) will now pick the latest dates from the child pages. This is in line with how other branch nodes work in Hugo.
-* A new configuration option, `Permalinkable`, is added to Output Format and enabled that by default for `HTML` and `AMP` types. See [#5706](https://github.com/gohugoio/hugo/issues/5706)
-* `--stepAnalysis` is removed. If you want to really understand the latency in your project in Hugo, try the new `--trace` flag and pass that file to the many tools that read [Go Trace files](https://golang.org/pkg/runtime/trace/). There are also some newly hidden flags in `--profile-cpu`, `--profile-men`, `--profile-mutex`, hidden because they are considered to be only of interest to developers.
-* Chroma is updated with many fixes and new lexers, see [#5797](https://github.com/gohugoio/hugo/issues/5797)
-* We now support `Page`-relative aliases, e.g. aliases that do not start with a `/`, see [#5757](https://github.com/gohugoio/hugo/issues/5757)
-* We now support context-relative (language) URLs in front matter, meaning that in most cases `url: /en/mypage` can be replaced with the more portable `url: mypage`. See [#5704](https://github.com/gohugoio/hugo/issues/5704)
-
-## Enhancements
-
-### Templates
-
-* Allow the partial template func to return any type [a55640de](https://github.com/gohugoio/hugo/commit/a55640de8e3944d3b9f64b15155148a0e35cb31e) [@bep](https://github.com/bep) [#5783](https://github.com/gohugoio/hugo/issues/5783)
-
-### Output
-
-* Add missing JSON tag [b6a60f71](https://github.com/gohugoio/hugo/commit/b6a60f718e376066456da37e7bb997a7697edc31) [@bep](https://github.com/bep)
-
-### Core
-
-* Log warning on relative front matter url with lang [f34e6172](https://github.com/gohugoio/hugo/commit/f34e6172cf2a4d1d1aef22304ecbc7c8e2d142ff) [@bep](https://github.com/bep) [#5818](https://github.com/gohugoio/hugo/issues/5818)
-* Consider summary in front matter for .Summary [3a62d547](https://github.com/gohugoio/hugo/commit/3a62d54745e2cbfda6772390830042908d725c71) [@mcdee](https://github.com/mcdee) [#5800](https://github.com/gohugoio/hugo/issues/5800)
-* Buffer the render pages chan [95029551](https://github.com/gohugoio/hugo/commit/950295516da882dcc51d83f70835dde230a0b4d6) [@bep](https://github.com/bep)
-* Re-work "fast render" logic in the new flow [d0d661df](https://github.com/gohugoio/hugo/commit/d0d661dffd19d5ed6efbd4dd2c572bad008bd859) [@bep](https://github.com/bep) [#5811](https://github.com/gohugoio/hugo/issues/5811)[#5784](https://github.com/gohugoio/hugo/issues/5784)
-* Allow relative URLs in front matter [5185fb06](https://github.com/gohugoio/hugo/commit/5185fb065b0f8a4142c29ee3e3cd917e917280a4) [@bep](https://github.com/bep) [#5704](https://github.com/gohugoio/hugo/issues/5704)
-* Allow page-relative aliases [92baa14f](https://github.com/gohugoio/hugo/commit/92baa14fd3f45c0917c5988235cd1a0f8692f171) [@bep](https://github.com/bep) [#5757](https://github.com/gohugoio/hugo/issues/5757)
-* Add a simple test for jsonify of Site [8bfd3a54](https://github.com/gohugoio/hugo/commit/8bfd3a54a4142c397cab69bfa9699e5b5db9b40b) [@bep](https://github.com/bep) [#5780](https://github.com/gohugoio/hugo/issues/5780)
-* Do not fall back to site title if not set in content file [9bc6187b](https://github.com/gohugoio/hugo/commit/9bc6187b8337c4a370bd3f21130a764d9ef6f7b3) [@bep](https://github.com/bep) [#5784](https://github.com/gohugoio/hugo/issues/5784)
-* Add a test for home page with no title [bceda1b2](https://github.com/gohugoio/hugo/commit/bceda1b288f0ad6282916826b596cb1fe19983bb) [@bep](https://github.com/bep) [#5784](https://github.com/gohugoio/hugo/issues/5784)
-* Add String() to fileInfo [a7ee9b0b](https://github.com/gohugoio/hugo/commit/a7ee9b0bb98f519e485655af578fb35d755e5c44) [@bep](https://github.com/bep) [#5784](https://github.com/gohugoio/hugo/issues/5784)
-* Remove unused slice [3011f36c](https://github.com/gohugoio/hugo/commit/3011f36c27ecde309325e6c75ca377f4f87fa97a) [@bep](https://github.com/bep)
-* Adjust site benchmark [34c49d78](https://github.com/gohugoio/hugo/commit/34c49d788c102a370006e476d6f6143a51b2a03d) [@bep](https://github.com/bep)
-* Adjust test for Go 1.12 [b4148cd1](https://github.com/gohugoio/hugo/commit/b4148cd1d9ea889b81070d3e84a37bd5d23e5746) [@bep](https://github.com/bep)
-
-### Other
-
-* Misc paginator adjustments [612a06f0](https://github.com/gohugoio/hugo/commit/612a06f0671125be6b42ec2982a18080005994c8) [@bep](https://github.com/bep) [#5825](https://github.com/gohugoio/hugo/issues/5825)
-* Update to Go 1.12.2 and Go 1.11.7 [3db4a1cf](https://github.com/gohugoio/hugo/commit/3db4a1cf7ab12343ce5705ac56aa7ca6ea1677b6) [@bep](https://github.com/bep) [#5819](https://github.com/gohugoio/hugo/issues/5819)
-* Adjust rlimit logic [708d4cee](https://github.com/gohugoio/hugo/commit/708d4ceebd491c6a89f271311eb8d94d6b5d58bc) [@bep](https://github.com/bep) [#5821](https://github.com/gohugoio/hugo/issues/5821)
-* Add information about summary front matter variable [ed65bda3](https://github.com/gohugoio/hugo/commit/ed65bda3b43f6149e41ddb049cbb295a82473bc9) [@mcdee](https://github.com/mcdee)
-* Regenerate JSON wrapper [ebab291c](https://github.com/gohugoio/hugo/commit/ebab291c0e321d23b098684bacaf830a3979e310) [@bep](https://github.com/bep)
-* Add missing GitInfo to Page [75467cd7](https://github.com/gohugoio/hugo/commit/75467cd7852852305549a6c71ac503bb4a57e716) [@bep](https://github.com/bep)
-* Add support for sha384 [d1553b4b](https://github.com/gohugoio/hugo/commit/d1553b4b0f83e4a4305d2b4ab9ba6e305637f134) [@bep](https://github.com/bep) [#5815](https://github.com/gohugoio/hugo/issues/5815)
-* Add HUGO_NUMWORKERMULTIPLIER [87b16abd](https://github.com/gohugoio/hugo/commit/87b16abd93ff60acd245776d5b0d914fd580c259) [@bep](https://github.com/bep) [#5814](https://github.com/gohugoio/hugo/issues/5814)
-* Use YAML for the benchmark compare [8559f5c2](https://github.com/gohugoio/hugo/commit/8559f5c29f20b7b5188f93f8b1d9e510e3dee4f5) [@bep](https://github.com/bep)
-* Update to imaging v1.6.0 [032e6802](https://github.com/gohugoio/hugo/commit/032e6802d1f34cc41f6d1275fdd2deab8bbe5480) [@bep](https://github.com/bep) [#5812](https://github.com/gohugoio/hugo/issues/5812)
-* Adjust the howSimilar logic vs strings [4494a01b](https://github.com/gohugoio/hugo/commit/4494a01b794ab785c64c8e93c61ccbfa845bc478) [@bep](https://github.com/bep)
-* Implement compare.ProbablyEqer for the core slices [e91e222c](https://github.com/gohugoio/hugo/commit/e91e222cd21213961d1e6206e1523bee2c21fa0c) [@bep](https://github.com/bep) [#5808](https://github.com/gohugoio/hugo/issues/5808)
-* Regenerate docshelper data [bfdc4496](https://github.com/gohugoio/hugo/commit/bfdc44964af82807fa91407132d47b6bf52704c3) [@bep](https://github.com/bep) [#5799](https://github.com/gohugoio/hugo/issues/5799)
-* Update Chroma [cc8515f1](https://github.com/gohugoio/hugo/commit/cc8515f18767298da4c6d712d1fd747c7950150b) [@bep](https://github.com/bep) [#5780](https://github.com/gohugoio/hugo/issues/5780)
-* Regenerate CLI docs [bb533ca5](https://github.com/gohugoio/hugo/commit/bb533ca5e1c778c95ed7014eab99c8cc1bd4c85e) [@bep](https://github.com/bep) [#5779](https://github.com/gohugoio/hugo/issues/5779)
-* Update Afero [10bb614a](https://github.com/gohugoio/hugo/commit/10bb614a70db22c01c9a52054ede35bc0a01aa24) [@bep](https://github.com/bep) [#5673](https://github.com/gohugoio/hugo/issues/5673)
-* Avoid nilpointer on no File on Page [4dae52af](https://github.com/gohugoio/hugo/commit/4dae52af680e6ff2c8cdeb4ce1f219330b27001c) [@bep](https://github.com/bep) [#5781](https://github.com/gohugoio/hugo/issues/5781)
-* Improve the "feature not available" error [794d4052](https://github.com/gohugoio/hugo/commit/794d4052b87c98943588b35e1cfecc06e6a0c7f2) [@bep](https://github.com/bep)
-* Re-introduce .Page.Page [91ef9655](https://github.com/gohugoio/hugo/commit/91ef9655aaf2adea3a044bf9a464908084917a98) [@bep](https://github.com/bep) [#5784](https://github.com/gohugoio/hugo/issues/5784)
-* Apply staticcheck recommendations [b5f39d23](https://github.com/gohugoio/hugo/commit/b5f39d23b86f9cb83c51da9fe4abb4c19c01c3b7) [@bep](https://github.com/bep)
-* Run gofmt -s [d30e8454](https://github.com/gohugoio/hugo/commit/d30e845485b416e1c48fade14694b12a9fe59b6b) [@bep](https://github.com/bep)
-* Make Page an interface [597e418c](https://github.com/gohugoio/hugo/commit/597e418cb02883418f2cebb41400e8e61413f651) [@bep](https://github.com/bep) [#5074](https://github.com/gohugoio/hugo/issues/5074)[#5763](https://github.com/gohugoio/hugo/issues/5763)[#5758](https://github.com/gohugoio/hugo/issues/5758)[#5090](https://github.com/gohugoio/hugo/issues/5090)[#5204](https://github.com/gohugoio/hugo/issues/5204)[#4695](https://github.com/gohugoio/hugo/issues/4695)[#5607](https://github.com/gohugoio/hugo/issues/5607)[#5707](https://github.com/gohugoio/hugo/issues/5707)[#5719](https://github.com/gohugoio/hugo/issues/5719)[#3113](https://github.com/gohugoio/hugo/issues/3113)[#5706](https://github.com/gohugoio/hugo/issues/5706)[#5767](https://github.com/gohugoio/hugo/issues/5767)[#5723](https://github.com/gohugoio/hugo/issues/5723)[#5769](https://github.com/gohugoio/hugo/issues/5769)[#5770](https://github.com/gohugoio/hugo/issues/5770)[#5771](https://github.com/gohugoio/hugo/issues/5771)[#5759](https://github.com/gohugoio/hugo/issues/5759)[#5776](https://github.com/gohugoio/hugo/issues/5776)[#5777](https://github.com/gohugoio/hugo/issues/5777)[#5778](https://github.com/gohugoio/hugo/issues/5778)
-* List future and expired dates in CSV format [44f5c1c1](https://github.com/gohugoio/hugo/commit/44f5c1c14cb1f42cc5f01739c289e9cfc83602af) [@danielcompton](https://github.com/danielcompton) [#5610](https://github.com/gohugoio/hugo/issues/5610)
-* Update to Go 1.12.1 and Go 1.11.6 [984a73af](https://github.com/gohugoio/hugo/commit/984a73af9e5b5145297723f26faa38f29ca2918d) [@bep](https://github.com/bep) [#5755](https://github.com/gohugoio/hugo/issues/5755)
-* Update Viper [79d517d8](https://github.com/gohugoio/hugo/commit/79d517d86c02e879bc4a43ab86b817c589b61485) [@bep](https://github.com/bep)
-* Update to Go 1.12 [b9e75afd](https://github.com/gohugoio/hugo/commit/b9e75afd6c007a6af8b71caeebc4a5a24c270861) [@bep](https://github.com/bep) [#5716](https://github.com/gohugoio/hugo/issues/5716)
-* Remove Gitter dev chat link [dfc72d61](https://github.com/gohugoio/hugo/commit/dfc72d61a522f5cb926271d9391a8670f064d198) [@bep](https://github.com/bep)
-* Update Travis config to work for forked builds [bdf47e8d](https://github.com/gohugoio/hugo/commit/bdf47e8da80f87b7689badf48a6b8672c048d7e4) [@grahamjamesaddis](https://github.com/grahamjamesaddis)
-* Add skipHTML option to blackfriday config [75904332](https://github.com/gohugoio/hugo/commit/75904332f3bedcfe656856821d4c9560a177cc51) [@arrtchiu](https://github.com/arrtchiu)
-* Update stretchr/testify to 1.3.0. [60c0eb4e](https://github.com/gohugoio/hugo/commit/60c0eb4e892baedd533424b47baf7039c0005f87) [@QuLogic](https://github.com/QuLogic)
-* Rewrite relative action URLS [c154c2f7](https://github.com/gohugoio/hugo/commit/c154c2f7b2a6703dbde7f6bd2a1817a39c6fd2ea) [@larson004](https://github.com/larson004) [#5701](https://github.com/gohugoio/hugo/issues/5701)
-* Support Docker args TAGS, WORKDIR, CGO; speed up repetitive builds [075b17ee](https://github.com/gohugoio/hugo/commit/075b17ee1d621e0ebbcecf1063f8f68a00ac221a) [@tonymet](https://github.com/tonymet)
-* Support nested keys/fields with missing values with the `where` function [908692fa](https://github.com/gohugoio/hugo/commit/908692fae5c5840a0db8c7dd389b59dd3b8026b9) [@tryzniak](https://github.com/tryzniak) [#5637](https://github.com/gohugoio/hugo/issues/5637)[#5416](https://github.com/gohugoio/hugo/issues/5416)
-* Update debouncer version [7e4b18c5](https://github.com/gohugoio/hugo/commit/7e4b18c5ae409435760ebd86ff9ee3061db34a5d) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Fix mutex unlock [e54213f5](https://github.com/gohugoio/hugo/commit/e54213f5257267ed232b2465337c39ddc8c73388) [@bep](https://github.com/bep)
-* Fix template truth logic [02eaddc2](https://github.com/gohugoio/hugo/commit/02eaddc2fbe92c26e67d9f82dd9aabecbbf2106c) [@bep](https://github.com/bep) [#5738](https://github.com/gohugoio/hugo/issues/5738)
-* Fix strings.HasPrefix args order [72010429](https://github.com/gohugoio/hugo/commit/7201042946dde78d5ea4fea9cb006fb4dded55c1) [@quasilyte](https://github.com/quasilyte)
-
-### Core
-
-* Fix default date assignment for sections [1d9dde82](https://github.com/gohugoio/hugo/commit/1d9dde82a0577d93eea8ed0a7ec0b4ae3068eb19) [@bep](https://github.com/bep) [#5784](https://github.com/gohugoio/hugo/issues/5784)
-* Fix the GOMAXPROCS env get [415ca967](https://github.com/gohugoio/hugo/commit/415ca9673d3bd3c06ab94f3d83897c892fce5f27) [@bep](https://github.com/bep) [#5813](https://github.com/gohugoio/hugo/issues/5813)
-* Fix benchmark for YAML front matter [e2dc432f](https://github.com/gohugoio/hugo/commit/e2dc432fe287a280aeba94bafdcce85b7a8646c6) [@bep](https://github.com/bep)
-* Fix alias path for AMP and similar [f9d6feca](https://github.com/gohugoio/hugo/commit/f9d6feca0802cd83c4d843244ce389cf7c792cec) [@bep](https://github.com/bep) [#5760](https://github.com/gohugoio/hugo/issues/5760)
-
-### Other
-
-* Fix image publish ordering issue [439ab033](https://github.com/gohugoio/hugo/commit/439ab0339d9ac6972caabaa55fa41887ace839cb) [@bep](https://github.com/bep) [#5730](https://github.com/gohugoio/hugo/issues/5730)
-* Fix doLiveReload logic [4a2a8aff](https://github.com/gohugoio/hugo/commit/4a2a8afff2021c8e967254c76c159147da7e78fa) [@bep](https://github.com/bep) [#5754](https://github.com/gohugoio/hugo/issues/5754)
-* Fix args order in strings.TrimPrefix [483cf19d](https://github.com/gohugoio/hugo/commit/483cf19d5de05e8a83fd1be6934baa169c7fd7c8) [@quasilyte](https://github.com/quasilyte)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.1-relnotes/index.md b/docs/content/en/news/0.55.1-relnotes/index.md
deleted file mode 100644
index 4e9880dc5c1..00000000000
--- a/docs/content/en/news/0.55.1-relnotes/index.md
+++ /dev/null
@@ -1,53 +0,0 @@
-
----
-date: 2019-04-12
-title: "0.55.1: 3 Bug Fixes"
-description: "Fixes 3 issues introduced in 0.55.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-
-Hugo now has:
-
-* 34225+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 307+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Replace deprecated .GetParam usage [27a8049d](https://github.com/gohugoio/hugo/commit/27a8049da7996b703d02083182b84a002eae2599) [@bep](https://github.com/bep) [#5834](https://github.com/gohugoio/hugo/issues/5834)
-
-## Enhancements
-
-### Core
-
-* Add a test for parent's resources in shortcode [8d7607ae](https://github.com/gohugoio/hugo/commit/8d7607aed10b3fe7373126ff5fa7dae36c559d7f) [@bep](https://github.com/bep) [#5833](https://github.com/gohugoio/hugo/issues/5833)
-
-### Other
-
-* Remove the space in `. RelPermalink` [7966c0b5](https://github.com/gohugoio/hugo/commit/7966c0b5b7b2297527f8be9040b793de5e4e3f48) [@yihui](https://github.com/yihui)
-
-## Fixes
-
-### Core
-
-* Fix simple menu config [9e9a1f92](https://github.com/gohugoio/hugo/commit/9e9a1f92baf151f8d840d6b5b963945d1410ce25) [@bep](https://github.com/bep)
-
-### Other
-
-* Fix [4d425a86](https://github.com/gohugoio/hugo/commit/4d425a86f5c03a5cca27d4e0f99d61acbb938d80) [@bep](https://github.com/bep)
-* Fix paginator refresh on server change [f7375c49](https://github.com/gohugoio/hugo/commit/f7375c497239115cd30ae42af6b4d298e4e7ad7d) [@bep](https://github.com/bep) [#5838](https://github.com/gohugoio/hugo/issues/5838)
-* Fix .RSSLinke deprecation message [3b86b4a9](https://github.com/gohugoio/hugo/commit/3b86b4a9f5ce010c9714d813d5b8ecddda22c69f) [@bep](https://github.com/bep) [#4427](https://github.com/gohugoio/hugo/issues/4427)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.2-relnotes/index.md b/docs/content/en/news/0.55.2-relnotes/index.md
deleted file mode 100644
index 0b6f49b1160..00000000000
--- a/docs/content/en/news/0.55.2-relnotes/index.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
----
-date: 2019-04-17
-title: "Hugo 0.55.2: Some Important Bug Fixes"
-description: "Fixes some more issues introduced in Hugo 0.55.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-
-Hugo now has:
-
-* 34386+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 307+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Handle late transformation of templates [2957795f](https://github.com/gohugoio/hugo/commit/2957795f5276cc9bc8d438da2d7d9b61defea225) [@bep](https://github.com/bep) [#5865](https://github.com/gohugoio/hugo/issues/5865)
-
-### Core
-
-* Add more tests for Permalinkable [35f41834](https://github.com/gohugoio/hugo/commit/35f41834ea3a8799b9b7eda360cf8d30b1b727ba) [@bep](https://github.com/bep) [#5849](https://github.com/gohugoio/hugo/issues/5849)
-
-## Fixes
-
-### Core
-
-* Fix Pages reinitialization on rebuilds [9b17cbb6](https://github.com/gohugoio/hugo/commit/9b17cbb62a056ea7e26b1146cbf3ba42f5acf805) [@bep](https://github.com/bep) [#5833](https://github.com/gohugoio/hugo/issues/5833)
-* Fix shortcode namespace issue [56550d1e](https://github.com/gohugoio/hugo/commit/56550d1e449f45ebee398ac8a9e3b9818b3ee60e) [@bep](https://github.com/bep) [#5863](https://github.com/gohugoio/hugo/issues/5863)
-* Fix false WARNINGs in lang prefix check [7881b096](https://github.com/gohugoio/hugo/commit/7881b0965f8b83d03379e9ed102cd0c3bce297e2) [@bep](https://github.com/bep) [#5860](https://github.com/gohugoio/hugo/issues/5860)
-* Fix bundle resource publishing when multiple output formats [49d0a826](https://github.com/gohugoio/hugo/commit/49d0a82641581aa7dd66b9d5e8c7d75e23260083) [@bep](https://github.com/bep) [#5858](https://github.com/gohugoio/hugo/issues/5858)
-* Fix panic for unused taxonomy content files [b799b12f](https://github.com/gohugoio/hugo/commit/b799b12f4a693dfeae8a5a362f131081a727bb8f) [@bep](https://github.com/bep) [#5847](https://github.com/gohugoio/hugo/issues/5847)
-* Fix dates for sections with dates in front matter [70148672](https://github.com/gohugoio/hugo/commit/701486728e21bc0c6c78c2a8edb988abdf6116c7) [@bep](https://github.com/bep) [#5854](https://github.com/gohugoio/hugo/issues/5854)
-
-### Other
-
-* Fix WeightedPages in union etc. [f2795d4d](https://github.com/gohugoio/hugo/commit/f2795d4d2cef30170af43327f3ff7114923833b1) [@bep](https://github.com/bep) [#5850](https://github.com/gohugoio/hugo/issues/5850)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.3-relnotes/index.md b/docs/content/en/news/0.55.3-relnotes/index.md
deleted file mode 100644
index d00c47d54ae..00000000000
--- a/docs/content/en/news/0.55.3-relnotes/index.md
+++ /dev/null
@@ -1,49 +0,0 @@
-
----
-date: 2019-04-20
-title: "Hugo 0.55.3: A Few More Bug Fixes!"
-description: "To wrap up this Easter, here is one more patch release with some important fixes."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with a couple of important fixes.
-
-
-Hugo now has:
-
-* 34468+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 308+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Return error on invalid input in in [7fbfedf0](https://github.com/gohugoio/hugo/commit/7fbfedf01367ff076c3c875b183789b769b99241) [@bep](https://github.com/bep) [#5875](https://github.com/gohugoio/hugo/issues/5875)
-* Make Pages etc. work with the in func [06f56fc9](https://github.com/gohugoio/hugo/commit/06f56fc983d460506d39b3a6f638b1632af07073) [@bep](https://github.com/bep) [#5875](https://github.com/gohugoio/hugo/issues/5875)
-* Make Pages etc. work in uniq [d7a67dcb](https://github.com/gohugoio/hugo/commit/d7a67dcb51829b12d492d3f2ee4f6e2a3834da63) [@bep](https://github.com/bep) [#5852](https://github.com/gohugoio/hugo/issues/5852)
-
-### Core
-
-* Add some OutputFormats.Get tests [7aeeb60d](https://github.com/gohugoio/hugo/commit/7aeeb60d7ee71690461df92ff41cb8b2f7f5aa61) [@bep](https://github.com/bep) [#5877](https://github.com/gohugoio/hugo/issues/5877)
-* Add some integration tests for in/uniq using Pages [6c80acbd](https://github.com/gohugoio/hugo/commit/6c80acbd5e314dd92fc075551ffabafaae01dca7) [@bep](https://github.com/bep) [#5875](https://github.com/gohugoio/hugo/issues/5875)[#5852](https://github.com/gohugoio/hugo/issues/5852)
-
-### Other
-
-* Regenerate docs helper [75b16e30](https://github.com/gohugoio/hugo/commit/75b16e30ec55e82a8024cc4d27880d9b79e0fa41) [@bep](https://github.com/bep)
-* Replace IsDraft with Draft in list command [3e421bd4](https://github.com/gohugoio/hugo/commit/3e421bd47cd35061df89c1c127ec8fa4ae368449) [@bep](https://github.com/bep) [#5873](https://github.com/gohugoio/hugo/issues/5873)
-
-## Fixes
-
-### Output
-
-* Fix links for non-HTML output formats [c7dd66bf](https://github.com/gohugoio/hugo/commit/c7dd66bfe2e32430f9b1a3126c67014e40d8405e) [@bep](https://github.com/bep) [#5877](https://github.com/gohugoio/hugo/issues/5877)
-* Fix menu URL when multiple permalinkable output formats [ea529c84](https://github.com/gohugoio/hugo/commit/ea529c847ebc0267c6d0426cc8f77d5c76c73fe4) [@bep](https://github.com/bep) [#5849](https://github.com/gohugoio/hugo/issues/5849)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.4-relnotes/index.md b/docs/content/en/news/0.55.4-relnotes/index.md
deleted file mode 100644
index 292b3924426..00000000000
--- a/docs/content/en/news/0.55.4-relnotes/index.md
+++ /dev/null
@@ -1,44 +0,0 @@
-
----
-date: 2019-04-25
-title: "Hugo 0.55.4: Some Bug Fixes"
-description: "A couple of more bug fixes."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-
-Hugo now has:
-
-* 34558+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 310+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Core
-
-* Avoid recloning of shortcode templates [69a56420](https://github.com/gohugoio/hugo/commit/69a56420aec5bf5abb846701d4a5ec67fe060d96) [@bep](https://github.com/bep) [#5890](https://github.com/gohugoio/hugo/issues/5890)
-* No links for bundled pages [0775c98e](https://github.com/gohugoio/hugo/commit/0775c98e6c5b700e46adaaf190fc3f693a6ab002) [@bep](https://github.com/bep) [#5882](https://github.com/gohugoio/hugo/issues/5882)
-
-### Other
-
-* Avoid rebuilding the Translations map for every lookup [4756ec3c](https://github.com/gohugoio/hugo/commit/4756ec3cd8ef998f889619fe11be70cc900e2b75) [@bep](https://github.com/bep) [#5892](https://github.com/gohugoio/hugo/issues/5892)
-* Init mem profile at the end [4c3c5120](https://github.com/gohugoio/hugo/commit/4c3c5120389cc95edc63b8f18a0eee786aa0c5e2) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Core
-
-* Fix shortcode version=1 logic [33c73811](https://github.com/gohugoio/hugo/commit/33c738116c26e2ac37f4bd48159e8e3197fd7b39) [@bep](https://github.com/bep) [#5831](https://github.com/gohugoio/hugo/issues/5831)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.5-relnotes/index.md b/docs/content/en/news/0.55.5-relnotes/index.md
deleted file mode 100644
index 45a3eda54e7..00000000000
--- a/docs/content/en/news/0.55.5-relnotes/index.md
+++ /dev/null
@@ -1,56 +0,0 @@
-
----
-date: 2019-05-02
-title: "Hugo 0.55.5: Take Five!"
-description: "We round up this 0.55 release with a final batch of bug fixes!"
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-
-Hugo now has:
-
-* 34743+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 314+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Provide more detailed errors in Where [f76e5011](https://github.com/gohugoio/hugo/commit/f76e50118b8b5dd8989d068db35222bfa0a242d8) [@moorereason](https://github.com/moorereason)
-
-### Other
-
-* Regenerate docs helper [cee181c3](https://github.com/gohugoio/hugo/commit/cee181c3a67fe04b8e0c9f2807c5aa2871df474e) [@bep](https://github.com/bep)
-* Update blackfriday to v1.5.2 [1cbb501b](https://github.com/gohugoio/hugo/commit/1cbb501be8aa83b08865fbb6ad5aee254946712f) [@dbirks](https://github.com/dbirks)
-
-## Fixes
-
-### Templates
-
-* Fix nil compare in eq/ne for interface values [66b143a0](https://github.com/gohugoio/hugo/commit/66b143a01d1c192619839b732ce188923ab15d60) [@bep](https://github.com/bep) [#5905](https://github.com/gohugoio/hugo/issues/5905)
-* Fix hugo package name and add godocs [4f93f8c6](https://github.com/gohugoio/hugo/commit/4f93f8c670b26258dc7e3a613c38dbc86d8eda76) [@moorereason](https://github.com/moorereason)
-
-### Output
-
-* Fix permalink in sitemap etc. when multiple permalinkable output formats [6b76841b](https://github.com/gohugoio/hugo/commit/6b76841b052b97625b8995f326d758b89f5c2349) [@bep](https://github.com/bep) [#5910](https://github.com/gohugoio/hugo/issues/5910)
-
-### Core
-
-* Fix PrevInSection/NextInSection for nested sections [bcbed4eb](https://github.com/gohugoio/hugo/commit/bcbed4ebdaf55b67abc521d69bba456c041a7e7d) [@bep](https://github.com/bep) [#5883](https://github.com/gohugoio/hugo/issues/5883)
-
-### Other
-
-* Fix concurrent initialization order [009076e5](https://github.com/gohugoio/hugo/commit/009076e5ee88fc46c95a9afd34f82f9386aa282a) [@bep](https://github.com/bep) [#5901](https://github.com/gohugoio/hugo/issues/5901)
-
-
-
-
-
diff --git a/docs/content/en/news/0.55.6-relnotes/index.md b/docs/content/en/news/0.55.6-relnotes/index.md
deleted file mode 100644
index c447aa061f2..00000000000
--- a/docs/content/en/news/0.55.6-relnotes/index.md
+++ /dev/null
@@ -1,13 +0,0 @@
-
----
-date: 2019-05-18
-title: "Hugo 0.55.6: One Bug Fix!"
-description: "Fixes some reported paginator crashes in server mode."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with one important fix. There have been reports about infrequent paginator crashes when running the Hugo server since 0.55.0. The reason have been narrowed down to that of parallel rebuilds. This isn't a new thing, but the changes in 0.55.0 made it extra important to serialize the page initialization. This release fixes that by protecting the `Build` method with a lock when running in server mode. [95ce2a40](https://github.com/gohugoio/hugo/commit/95ce2a40e734bb82b69f9a64270faf3ed69c92cc) [@bep](https://github.com/bep) [#5885](https://github.com/gohugoio/hugo/issues/5885)[#5968](https://github.com/gohugoio/hugo/issues/5968)
-
diff --git a/docs/content/en/news/0.56.0-relnotes/featured.png b/docs/content/en/news/0.56.0-relnotes/featured.png
deleted file mode 100644
index bd6410ead8f..00000000000
Binary files a/docs/content/en/news/0.56.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.56.0-relnotes/index.md b/docs/content/en/news/0.56.0-relnotes/index.md
deleted file mode 100644
index 631c1c6a5fe..00000000000
--- a/docs/content/en/news/0.56.0-relnotes/index.md
+++ /dev/null
@@ -1,189 +0,0 @@
-
----
-date: 2019-07-25
-title: "Hugo 0.56.0: Hugo Modules and Deployment"
-description: "This release adds powerful module support with dependency management for all component types, including content. And we now have built-in deployment support to GCS, S3, or Azure."
-categories: ["Releases"]
----
-
-
-**Hugo 0.56.0** is filled with improvements, but there are two main headliners: **Hugo Modules** and **Hugo Deploy**.
-
-**Hugo Deploy** is implemented by [@vangent](https://github.com/vangent) and brings built-in deployment support for GCS, S3, or Azure using the Hugo CLI. See the [Hugo Deploy Documentation](https://gohugo.io/hosting-and-deployment/hugo-deploy/) for more information.
-
-**Hugo Modules** is very much a community effort on the design and specification side, but [@bep](https://github.com/bep) has driven the implementation. Some notes about what all of this is about:
-
-* A new `module` configuration section where you can import almost anything. You can configure both your own file mounts and the file mounts of the modules you import. This is the new recommended way of configuring what you earlier put in `configDir`, `staticDir` etc. And it also allows you to mount folders in non-Hugo-projects, e.g. the `SCSS` folder in the Bootstrap GitHub project.
-* A module consists of a set of mounts to the standard 7 component types in Hugo: `static`, `content`, `layouts`, `data`, `assets`, `i18n`, and `archetypes`. Yes, Theme Components can now include content, which should be very useful, especially in bigger multilingual projects.
-* Modules not in your local file cache will be downloaded automatically and even "hot replaced" while the server is running.
-* Hugo Modules supports and encourages semver versioned modules, and uses the minimal version selection algorithm to resolve versions.
-* A new set of CLI commands are provided to manage all of this: `hugo mod init`, `hugo mod get`, `hugo mod graph`, `hugo mod tidy`, and `hugo mod vendor`.
-
-**Hugo Modules is powered by Go Modules.**
-
-This is all very much brand new and there are only a few example projects around:
-
-* https://github.com/bep/docuapi is a theme that has been ported to **Hugo Modules** while testing this feature. It is a good example of a non-Hugo-project mounted into Hugo's folder structure. It even shows a JS Bundler implementation in regular Go templates.
-* https://github.com/bep/my-modular-site is a very simple site used for testing.
-
-See the [Hugo Modules Documentation](https://gohugo.io/hugo-modules/) for more information.
-
-This release represents **104 contributions by 19 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 [@vangent](https://github.com/vangent), [@niklasfasching](https://github.com/niklasfasching), and [@coliff](https://github.com/coliff) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **48 contributions by 37 contributors**. A special thanks to [@davidsneighbour](https://github.com/davidsneighbour), [@bep](https://github.com/bep), [@BCNelson](https://github.com/BCNelson), and [@coliff](https://github.com/coliff) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 36902+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 328+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* We have removed the "auto theme namespacing" of params from theme configuration. This was an undocumented and hidden feature that wasn't useful in practice.
-* We have revised and improved the symlinks support in Hugo: In earlier versions, symlinks were only fully supported for the content folders. With the introduction of the new very flexible file mounts, with content support even for what we have traditionally named "themes", we needed a more precise definition of symlink support in Hugo:
-
- * Symlinks are not supported outside of the main project ((the project you run `hugo` or `hugo server` from).
- * In the main project `static` mounts, only symlinks to files are supported.
- * In all other mounts in the main project, both file and directory symlinks are allowed.
-
-## Enhancements
-
-### Templates
-
-* Add Merge function [c624a779](https://github.com/gohugoio/hugo/commit/c624a77992c4f7c1bcb5f659e89332d8588986b7) [@bep](https://github.com/bep) [#5992](https://github.com/gohugoio/hugo/issues/5992)
-* Regenerate templates [b2a3d464](https://github.com/gohugoio/hugo/commit/b2a3d4644bb5a505db662b2927af6f80856a3076) [@bep](https://github.com/bep)
-* Unwrap any interface value in sort and where [8d898ad6](https://github.com/gohugoio/hugo/commit/8d898ad6672e0ccb62c5a29b6fccab24d980f104) [@bep](https://github.com/bep) [#5989](https://github.com/gohugoio/hugo/issues/5989)
-* Convert numeric values to float64 and compare them [fb007e9a](https://github.com/gohugoio/hugo/commit/fb007e9ae56f295abe9835485f98dcf3cc362420) [@tryzniak](https://github.com/tryzniak) [#5685](https://github.com/gohugoio/hugo/issues/5685)
-* Provide more detailed errors in Where [f76e5011](https://github.com/gohugoio/hugo/commit/f76e50118b8b5dd8989d068db35222bfa0a242d8) [@moorereason](https://github.com/moorereason)
-* Return error on invalid input in in [7fbfedf0](https://github.com/gohugoio/hugo/commit/7fbfedf01367ff076c3c875b183789b769b99241) [@bep](https://github.com/bep) [#5875](https://github.com/gohugoio/hugo/issues/5875)
-* Make Pages etc. work with the in func [06f56fc9](https://github.com/gohugoio/hugo/commit/06f56fc983d460506d39b3a6f638b1632af07073) [@bep](https://github.com/bep) [#5875](https://github.com/gohugoio/hugo/issues/5875)
-* Make Pages etc. work in uniq [d7a67dcb](https://github.com/gohugoio/hugo/commit/d7a67dcb51829b12d492d3f2ee4f6e2a3834da63) [@bep](https://github.com/bep) [#5852](https://github.com/gohugoio/hugo/issues/5852)
-* Handle late transformation of templates [2957795f](https://github.com/gohugoio/hugo/commit/2957795f5276cc9bc8d438da2d7d9b61defea225) [@bep](https://github.com/bep) [#5865](https://github.com/gohugoio/hugo/issues/5865)
-
-### Output
-
-* Remove comma after URL in new site output [de7b9475](https://github.com/gohugoio/hugo/commit/de7b9475c049e5df5b076d80799ebcbee3eb84c8) [@snorfalorpagus](https://github.com/snorfalorpagus)
-
-### Core
-
-* Add a symdiff test [072aa7f1](https://github.com/gohugoio/hugo/commit/072aa7f110ddc8a8b9dbc6d4cad3e5ba6c2ac4d0) [@bep](https://github.com/bep)
-* Add testfile to .gitignore [7611078d](https://github.com/gohugoio/hugo/commit/7611078daef32306ab31fe360db9895cdd3626d3) [@bep](https://github.com/bep)
-* Add another site benchmark [dc1d4a92](https://github.com/gohugoio/hugo/commit/dc1d4a9200c54e631775f34725140fd5009aa561) [@bep](https://github.com/bep)
-* Prevent parallel server rebuilds [95ce2a40](https://github.com/gohugoio/hugo/commit/95ce2a40e734bb82b69f9a64270faf3ed69c92cc) [@bep](https://github.com/bep) [#5885](https://github.com/gohugoio/hugo/issues/5885)[#5968](https://github.com/gohugoio/hugo/issues/5968)
-* Disable racy test [ad5703a9](https://github.com/gohugoio/hugo/commit/ad5703a91712cd245231ba8fdbc49632c794a165) [@bep](https://github.com/bep) [#5926](https://github.com/gohugoio/hugo/issues/5926)
-* Avoid recloning of shortcode templates [69a56420](https://github.com/gohugoio/hugo/commit/69a56420aec5bf5abb846701d4a5ec67fe060d96) [@bep](https://github.com/bep) [#5890](https://github.com/gohugoio/hugo/issues/5890)
-* No links for bundled pages [0775c98e](https://github.com/gohugoio/hugo/commit/0775c98e6c5b700e46adaaf190fc3f693a6ab002) [@bep](https://github.com/bep) [#5882](https://github.com/gohugoio/hugo/issues/5882)
-* Add some OutputFormats.Get tests [7aeeb60d](https://github.com/gohugoio/hugo/commit/7aeeb60d7ee71690461df92ff41cb8b2f7f5aa61) [@bep](https://github.com/bep) [#5877](https://github.com/gohugoio/hugo/issues/5877)
-* Add some integration tests for in/uniq using Pages [6c80acbd](https://github.com/gohugoio/hugo/commit/6c80acbd5e314dd92fc075551ffabafaae01dca7) [@bep](https://github.com/bep) [#5875](https://github.com/gohugoio/hugo/issues/5875)[#5852](https://github.com/gohugoio/hugo/issues/5852)
-* Add more tests for Permalinkable [35f41834](https://github.com/gohugoio/hugo/commit/35f41834ea3a8799b9b7eda360cf8d30b1b727ba) [@bep](https://github.com/bep) [#5849](https://github.com/gohugoio/hugo/issues/5849)
-* Add a test for parent's resources in shortcode [8d7607ae](https://github.com/gohugoio/hugo/commit/8d7607aed10b3fe7373126ff5fa7dae36c559d7f) [@bep](https://github.com/bep) [#5833](https://github.com/gohugoio/hugo/issues/5833)
-
-### Other
-
-* Add Hugo Modules docs [77bf2991](https://github.com/gohugoio/hugo/commit/77bf2991b1690bcde8c6570cd4c12f2041d93096) [@bep](https://github.com/bep)
-* Block symlink dir traversal for /static [e5f22997](https://github.com/gohugoio/hugo/commit/e5f229974166402f51e4ee0695ffb4d1e09fa174) [@bep](https://github.com/bep)
-* modules: Gofmt [87a07282](https://github.com/gohugoio/hugo/commit/87a07282a2f01779e098cde0aaee1bae34dc32e6) [@bep](https://github.com/bep)
-* Rename disabled => disable in config [882d678b](https://github.com/gohugoio/hugo/commit/882d678bbf2a149a90e2aed4341d7f6fc2cb394d) [@bep](https://github.com/bep)
-* Regenerate CLI docs [215d2ed8](https://github.com/gohugoio/hugo/commit/215d2ed883d5adbde1d119d33e2f2e88c8435f41) [@bep](https://github.com/bep)
-* Regenerate data helpers [23adc0c2](https://github.com/gohugoio/hugo/commit/23adc0c2d96d33b426836b09683d2440d6186728) [@bep](https://github.com/bep)
-* Add Hugo Modules [9f5a9207](https://github.com/gohugoio/hugo/commit/9f5a92078a3f388b52d597b5a59af5c933a112d2) [@bep](https://github.com/bep) [#5973](https://github.com/gohugoio/hugo/issues/5973)[#5996](https://github.com/gohugoio/hugo/issues/5996)[#6010](https://github.com/gohugoio/hugo/issues/6010)[#5911](https://github.com/gohugoio/hugo/issues/5911)[#5940](https://github.com/gohugoio/hugo/issues/5940)[#6074](https://github.com/gohugoio/hugo/issues/6074)[#6082](https://github.com/gohugoio/hugo/issues/6082)[#6092](https://github.com/gohugoio/hugo/issues/6092)
-* Tidy [47953148](https://github.com/gohugoio/hugo/commit/47953148b6121441d0147c960a99829c53b5a5ba) [@bep](https://github.com/bep)
-* Update xerrors [ac101aba](https://github.com/gohugoio/hugo/commit/ac101aba4fde02dc8273a3f06a3b4267ca501a3d) [@bep](https://github.com/bep)
-* Ignore errors in go mod download [58a47ccd](https://github.com/gohugoio/hugo/commit/58a47ccde00e2425364eaa5c2123e0718a2ee3f2) [@bep](https://github.com/bep)
-* Update Chroma [95b1d301](https://github.com/gohugoio/hugo/commit/95b1d3013b4717f8b02093a99d1d0c4a6a1ca929) [@bep](https://github.com/bep) [#6088](https://github.com/gohugoio/hugo/issues/6088)
-* Change postcss to check for local installation under node_modules/.bin [a5604e18](https://github.com/gohugoio/hugo/commit/a5604e18b0cb260b7748949b12c05814ced50815) [@ericselin](https://github.com/ericselin) [#5091](https://github.com/gohugoio/hugo/issues/5091)
-* Add org to front matter formats [020086cb](https://github.com/gohugoio/hugo/commit/020086cb2b0396909d831abf66b8f1455e6f7e6a) [@niklasfasching](https://github.com/niklasfasching)
-* Update go-org [8524baee](https://github.com/gohugoio/hugo/commit/8524baee167fa6a8684569e7acff225c16c301c7) [@niklasfasching](https://github.com/niklasfasching)
-* Pagination - do not render href if no next item [88c8a15b](https://github.com/gohugoio/hugo/commit/88c8a15be18a0bd1bd9b9cb175f7a68f2b9cd355) [@markmandel](https://github.com/markmandel)
-* Include path to source page in non-relative ref/relref warning [59c4bc52](https://github.com/gohugoio/hugo/commit/59c4bc52ed6b146baa6cca97d054004297ea098a) [@justinvp](https://github.com/justinvp)
-* Update link to prevent redirect [ff10aa52](https://github.com/gohugoio/hugo/commit/ff10aa522dd4d2741e8f4e50a4a40a0854232f23) [@coliff](https://github.com/coliff)
-* Update URLs [9f258d2b](https://github.com/gohugoio/hugo/commit/9f258d2b8f98a137c5c8c4586a3db3e3c53a0040) [@coliff](https://github.com/coliff)
-* Introduce '#+KEY[]:' array notation [fad183c4](https://github.com/gohugoio/hugo/commit/fad183c4ae55069be9246e64ab1c8b2f43d08d06) [@niklasfasching](https://github.com/niklasfasching)
-* Replace goorgeous with go-org [b6867bf8](https://github.com/gohugoio/hugo/commit/b6867bf8068fcaaddf1cb7478f4d52a9c1be1411) [@niklasfasching](https://github.com/niklasfasching)
-* Default --target to the first deployment target [9df57154](https://github.com/gohugoio/hugo/commit/9df57154ee3e3185d024bfe376101b404d8b7cc4) [@vangent](https://github.com/vangent)
-* Add safety barrier between concatenated javascript resources [35abce27](https://github.com/gohugoio/hugo/commit/35abce27cabee43cc751db55a75b927f26275833) [@vincent99](https://github.com/vincent99)
-* Update CLI doc for "long" form [8914fe7e](https://github.com/gohugoio/hugo/commit/8914fe7ed7e7e55e07be32564159310c90e2dbd4) [@vangent](https://github.com/vangent)
-* Drop dashes in http header matcher attributes; other changes from code review [b0f536fb](https://github.com/gohugoio/hugo/commit/b0f536fb276f63df0b0b8d92aeda80affb4b6a34) [@vangent](https://github.com/vangent)
-* Add documentation for "hugo deploy" [1384d77a](https://github.com/gohugoio/hugo/commit/1384d77a04d7027d719993c6f54f892b5e7974db) [@vangent](https://github.com/vangent)
-* remove TODO comment about subfolders; handled by GoCDK blob URLs [5e83f425](https://github.com/gohugoio/hugo/commit/5e83f4256279149879a8e88cb02679dd00e8da2b) [@vangent](https://github.com/vangent)
-* Update gocloud.dev to v0.15.0. [b376b268](https://github.com/gohugoio/hugo/commit/b376b2685a2e21961052a0946ab8a6acc076d4da) [@vangent](https://github.com/vangent)
-* Return nil when not found in resources.Get [4c560020](https://github.com/gohugoio/hugo/commit/4c560020bc0c50f8004873be8adf83698b7c095a) [@bep](https://github.com/bep) [#5999](https://github.com/gohugoio/hugo/issues/5999)
-* Update Viper [d44d3ea8](https://github.com/gohugoio/hugo/commit/d44d3ea89865baa33170244cac72a7ce26419b15) [@bep](https://github.com/bep) [#5954](https://github.com/gohugoio/hugo/issues/5954)
-* Remove references to Google+ [d1cf53f5](https://github.com/gohugoio/hugo/commit/d1cf53f5f4d71b9461e0fe58193b5a8418b572e7) [@brunoamaral](https://github.com/brunoamaral)
-* Update gitmap to get CommitDate field [811ee996](https://github.com/gohugoio/hugo/commit/811ee996a625b5eb3464a34a1623260b11c0bfd3) [@bep](https://github.com/bep)
-* Create new 'hugo list all' command [5b4b8bb3](https://github.com/gohugoio/hugo/commit/5b4b8bb3c1ecb30e7a38ed44eb795f1d972cd320) [@rusnasonov](https://github.com/rusnasonov) [#5904](https://github.com/gohugoio/hugo/issues/5904)
-* Medium -> Hugo exporting tool [2278b0eb](https://github.com/gohugoio/hugo/commit/2278b0eb02ccdd3c2d4358d39074767d33fecb71) [@Ahirice](https://github.com/Ahirice)
-* Switch base image for final build [41974303](https://github.com/gohugoio/hugo/commit/41974303f3e5e6d7deb87a791aba512dbf1b9c59) [@brianredbeard](https://github.com/brianredbeard) [#5970](https://github.com/gohugoio/hugo/issues/5970)[#5056](https://github.com/gohugoio/hugo/issues/5056)
-* Merge branch 'release-0.55.6' [6b3f1a10](https://github.com/gohugoio/hugo/commit/6b3f1a10028c81b776a5797bbd02c86957f8f042) [@bep](https://github.com/bep)
-* Release 0.55.6 [9b48c5d6](https://github.com/gohugoio/hugo/commit/9b48c5d6bd56741dac714324a6ae59f6374bccdc) [@bep](https://github.com/bep)
-* Update to Go 1.12.5 and Go 1.11.10 [71b8d8b6](https://github.com/gohugoio/hugo/commit/71b8d8b6a4127acacda8ada08cd61d7bfb18e962) [@bep](https://github.com/bep) [#5944](https://github.com/gohugoio/hugo/issues/5944)
-* Support configuration of upload order [527cf1ab](https://github.com/gohugoio/hugo/commit/527cf1ab03fe4746885e90a197bc25decad88f89) [@vangent](https://github.com/vangent)
-* Support invalidating a CloudFront CDN cache [f4956d9a](https://github.com/gohugoio/hugo/commit/f4956d9aae69b1cb5715114cf5242fd80a9cabc7) [@vangent](https://github.com/vangent)
-* Move the package below /langs [2838d58b](https://github.com/gohugoio/hugo/commit/2838d58b1daa0f6a337125c5a64d06215901c5d6) [@bep](https://github.com/bep)
-* compute MD5 by reading if List didn't provide one [f330e869](https://github.com/gohugoio/hugo/commit/f330e869e42dc782a48c045aea5d29a134e225cb) [@vangent](https://github.com/vangent)
-* Use proxy.golang.org [0091b1f8](https://github.com/gohugoio/hugo/commit/0091b1f893aba6a0060c392f58fcc0351ee0db66) [@bep](https://github.com/bep)
-* Add a "deploy" command [c7165589](https://github.com/gohugoio/hugo/commit/c7165589b3be5923f1275f0024818e6ae889d881) [@vangent](https://github.com/vangent)
-* Release 0.55.5 [e33ed29b](https://github.com/gohugoio/hugo/commit/e33ed29b754ac1982321e87e54a37c9bb59e53ca) [@bep](https://github.com/bep)
-* Regenerate docs helper [cee181c3](https://github.com/gohugoio/hugo/commit/cee181c3a67fe04b8e0c9f2807c5aa2871df474e) [@bep](https://github.com/bep)
-* Update blackfriday to v1.5.2 [1cbb501b](https://github.com/gohugoio/hugo/commit/1cbb501be8aa83b08865fbb6ad5aee254946712f) [@dbirks](https://github.com/dbirks)
-* Release 0.55.4 [1707f1a5](https://github.com/gohugoio/hugo/commit/1707f1a5f52b8036d675d6ce66fd844effcab9fe) [@bep](https://github.com/bep)
-* Avoid rebuilding the Translations map for every lookup [4756ec3c](https://github.com/gohugoio/hugo/commit/4756ec3cd8ef998f889619fe11be70cc900e2b75) [@bep](https://github.com/bep) [#5892](https://github.com/gohugoio/hugo/issues/5892)
-* Init mem profile at the end [4c3c5120](https://github.com/gohugoio/hugo/commit/4c3c5120389cc95edc63b8f18a0eee786aa0c5e2) [@bep](https://github.com/bep)
-* Release 0.55.3 [c85b726f](https://github.com/gohugoio/hugo/commit/c85b726f8a3cca2f06f766e5982dc0023d0dd12c) [@bep](https://github.com/bep)
-* Regenerate docs helper [75b16e30](https://github.com/gohugoio/hugo/commit/75b16e30ec55e82a8024cc4d27880d9b79e0fa41) [@bep](https://github.com/bep)
-* Replace IsDraft with Draft in list command [3e421bd4](https://github.com/gohugoio/hugo/commit/3e421bd47cd35061df89c1c127ec8fa4ae368449) [@bep](https://github.com/bep) [#5873](https://github.com/gohugoio/hugo/issues/5873)
-* Release 0.55.2 [fcd63a86](https://github.com/gohugoio/hugo/commit/fcd63a865e731077a0d508084460b6fe6ec82c33) [@bep](https://github.com/bep)
-* Release 0.55.1 [adb776b2](https://github.com/gohugoio/hugo/commit/adb776b22babc0d312ce7b83abbe6f5107c180d7) [@bep](https://github.com/bep)
-* Remove the space in `. RelPermalink` [7966c0b5](https://github.com/gohugoio/hugo/commit/7966c0b5b7b2297527f8be9040b793de5e4e3f48) [@yihui](https://github.com/yihui)
-
-## Fixes
-
-### Templates
-
-* Fix slice type handling in sort [e8a716b2](https://github.com/gohugoio/hugo/commit/e8a716b23a1ca78cf29460daacd4ba49bbc05ad1) [@bep](https://github.com/bep) [#6023](https://github.com/gohugoio/hugo/issues/6023)
-* Fix internal templates usage of safeHTMLAttr [e22b3f54](https://github.com/gohugoio/hugo/commit/e22b3f54c3d8ce6567c21c63beab0b03cf7983ea) [@rhcarvalho](https://github.com/rhcarvalho) [#5236](https://github.com/gohugoio/hugo/issues/5236)[#5246](https://github.com/gohugoio/hugo/issues/5246)
-* Fix nil compare in eq/ne for interface values [66b143a0](https://github.com/gohugoio/hugo/commit/66b143a01d1c192619839b732ce188923ab15d60) [@bep](https://github.com/bep) [#5905](https://github.com/gohugoio/hugo/issues/5905)
-* Fix hugo package name and add godocs [4f93f8c6](https://github.com/gohugoio/hugo/commit/4f93f8c670b26258dc7e3a613c38dbc86d8eda76) [@moorereason](https://github.com/moorereason)
-
-### Output
-
-* Fix permalink in sitemap etc. when multiple permalinkable output formats [6b76841b](https://github.com/gohugoio/hugo/commit/6b76841b052b97625b8995f326d758b89f5c2349) [@bep](https://github.com/bep) [#5910](https://github.com/gohugoio/hugo/issues/5910)
-* Fix links for non-HTML output formats [c7dd66bf](https://github.com/gohugoio/hugo/commit/c7dd66bfe2e32430f9b1a3126c67014e40d8405e) [@bep](https://github.com/bep) [#5877](https://github.com/gohugoio/hugo/issues/5877)
-* Fix menu URL when multiple permalinkable output formats [ea529c84](https://github.com/gohugoio/hugo/commit/ea529c847ebc0267c6d0426cc8f77d5c76c73fe4) [@bep](https://github.com/bep) [#5849](https://github.com/gohugoio/hugo/issues/5849)
-
-### Core
-
-* Fix broken test [fa28df10](https://github.com/gohugoio/hugo/commit/fa28df1058e0131364cea2e3ac7f80e934d024a1) [@bep](https://github.com/bep)
-* Fix bundle path when slug is set [3e6cb2cb](https://github.com/gohugoio/hugo/commit/3e6cb2cb77e16be5b6ddd4ae55d5fc6bfba2d226) [@bep](https://github.com/bep) [#4870](https://github.com/gohugoio/hugo/issues/4870)
-* Fix PrevInSection/NextInSection for nested sections [bcbed4eb](https://github.com/gohugoio/hugo/commit/bcbed4ebdaf55b67abc521d69bba456c041a7e7d) [@bep](https://github.com/bep) [#5883](https://github.com/gohugoio/hugo/issues/5883)
-* Fix shortcode version=1 logic [33c73811](https://github.com/gohugoio/hugo/commit/33c738116c26e2ac37f4bd48159e8e3197fd7b39) [@bep](https://github.com/bep) [#5831](https://github.com/gohugoio/hugo/issues/5831)
-* Fix Pages reinitialization on rebuilds [9b17cbb6](https://github.com/gohugoio/hugo/commit/9b17cbb62a056ea7e26b1146cbf3ba42f5acf805) [@bep](https://github.com/bep) [#5833](https://github.com/gohugoio/hugo/issues/5833)
-* Fix shortcode namespace issue [56550d1e](https://github.com/gohugoio/hugo/commit/56550d1e449f45ebee398ac8a9e3b9818b3ee60e) [@bep](https://github.com/bep) [#5863](https://github.com/gohugoio/hugo/issues/5863)
-* Fix false WARNINGs in lang prefix check [7881b096](https://github.com/gohugoio/hugo/commit/7881b0965f8b83d03379e9ed102cd0c3bce297e2) [@bep](https://github.com/bep) [#5860](https://github.com/gohugoio/hugo/issues/5860)
-* Fix bundle resource publishing when multiple output formats [49d0a826](https://github.com/gohugoio/hugo/commit/49d0a82641581aa7dd66b9d5e8c7d75e23260083) [@bep](https://github.com/bep) [#5858](https://github.com/gohugoio/hugo/issues/5858)
-* Fix panic for unused taxonomy content files [b799b12f](https://github.com/gohugoio/hugo/commit/b799b12f4a693dfeae8a5a362f131081a727bb8f) [@bep](https://github.com/bep) [#5847](https://github.com/gohugoio/hugo/issues/5847)
-* Fix dates for sections with dates in front matter [70148672](https://github.com/gohugoio/hugo/commit/701486728e21bc0c6c78c2a8edb988abdf6116c7) [@bep](https://github.com/bep) [#5854](https://github.com/gohugoio/hugo/issues/5854)
-* Fix simple menu config [9e9a1f92](https://github.com/gohugoio/hugo/commit/9e9a1f92baf151f8d840d6b5b963945d1410ce25) [@bep](https://github.com/bep)
-
-### Other
-
-* Fix test on Windows [e5b6e208](https://github.com/gohugoio/hugo/commit/e5b6e2085aba74767ace269cd5f8a746230b4fa4) [@bep](https://github.com/bep)
-* Fix livereload for @import case [2fc0abd2](https://github.com/gohugoio/hugo/commit/2fc0abd22a37d90b6f1032eef46191a7bddf41bd) [@bep](https://github.com/bep) [#6106](https://github.com/gohugoio/hugo/issues/6106)
-* Fix typo s/Meny/Menu/ [90b0127f](https://github.com/gohugoio/hugo/commit/90b0127f63e9cd5bf3a8bd4282237db224a3c263) [@kaushalmodi](https://github.com/kaushalmodi)
-* Add tests; fix Windows [5dc6d0df](https://github.com/gohugoio/hugo/commit/5dc6d0df94076e116934c83b837e2dd416efa784) [@vangent](https://github.com/vangent)
-* Fix concurrent initialization order [009076e5](https://github.com/gohugoio/hugo/commit/009076e5ee88fc46c95a9afd34f82f9386aa282a) [@bep](https://github.com/bep) [#5901](https://github.com/gohugoio/hugo/issues/5901)
-* Fix WeightedPages in union etc. [f2795d4d](https://github.com/gohugoio/hugo/commit/f2795d4d2cef30170af43327f3ff7114923833b1) [@bep](https://github.com/bep) [#5850](https://github.com/gohugoio/hugo/issues/5850)
-* Fix [4d425a86](https://github.com/gohugoio/hugo/commit/4d425a86f5c03a5cca27d4e0f99d61acbb938d80) [@bep](https://github.com/bep)
-* Fix paginator refresh on server change [f7375c49](https://github.com/gohugoio/hugo/commit/f7375c497239115cd30ae42af6b4d298e4e7ad7d) [@bep](https://github.com/bep) [#5838](https://github.com/gohugoio/hugo/issues/5838)
-* Fix .RSSLinke deprecation message [3b86b4a9](https://github.com/gohugoio/hugo/commit/3b86b4a9f5ce010c9714d813d5b8ecddda22c69f) [@bep](https://github.com/bep) [#4427](https://github.com/gohugoio/hugo/issues/4427)
-
-
-
-
-
diff --git a/docs/content/en/news/0.56.1-relnotes/index.md b/docs/content/en/news/0.56.1-relnotes/index.md
deleted file mode 100644
index c83250fe58e..00000000000
--- a/docs/content/en/news/0.56.1-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2019-07-28
-title: "0.56.1: Two Bug Fixes"
-description: "This version fixes a couple of regressions introduced in 0.56.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* common/maps: Do not return error on params dot access on incompatible types [e393c629](https://github.com/gohugoio/hugo/commit/e393c6290e827111a8a2e486791dc21f63a92b55) [@bep](https://github.com/bep) [#6121](https://github.com/gohugoio/hugo/issues/6121)
-* resources: Fix image Width/Height regression [93d02aab](https://github.com/gohugoio/hugo/commit/93d02aabe6e611d65c428a9c5669b422e1bcf5e8) [@bep](https://github.com/bep) [#6120](https://github.com/gohugoio/hugo/issues/6120)
-* modules: Set GO111MODULE=on [e5fe3789](https://github.com/gohugoio/hugo/commit/e5fe378925c16c75902bbb46499c376c530ebdb5) [@bep](https://github.com/bep) [#6114](https://github.com/gohugoio/hugo/issues/6114)
-
-
-
diff --git a/docs/content/en/news/0.56.2-relnotes/index.md b/docs/content/en/news/0.56.2-relnotes/index.md
deleted file mode 100644
index 67c5f8b6d91..00000000000
--- a/docs/content/en/news/0.56.2-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2019-07-30
-title: "Hugo 0.56.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.56.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Add some more content language test assertions [84bc8d84](https://github.com/gohugoio/hugo/commit/84bc8d84e4d2ec1fc94aee3113ebc570a28d1d16) [@bep](https://github.com/bep) [#6136](https://github.com/gohugoio/hugo/issues/6136)
-* commands: Fix config reloading in Vim and similar [6eca0a3d](https://github.com/gohugoio/hugo/commit/6eca0a3dee77f0e764b1de2e10c10ec2b7cf8ef1) [@bep](https://github.com/bep) [#6139](https://github.com/gohugoio/hugo/issues/6139)
-* Fix Jekyll import [e28bd4c0](https://github.com/gohugoio/hugo/commit/e28bd4c0f843f39cfcb715b6c9c7d249bad5b500) [@bep](https://github.com/bep) [#6131](https://github.com/gohugoio/hugo/issues/6131)
-* Fix image format detection for upper case extensions, e.g. JPG [c62bbf7b](https://github.com/gohugoio/hugo/commit/c62bbf7b11d68d52ef11a4c6c70660914c473d08) [@bep](https://github.com/bep) [#6137](https://github.com/gohugoio/hugo/issues/6137)
-* Fix i18n project vs theme order [00a238e3](https://github.com/gohugoio/hugo/commit/00a238e32c82b0651e4145e306840cffa46e535d) [@bep](https://github.com/bep) [#6134](https://github.com/gohugoio/hugo/issues/6134)
-* Add proper error message when receiving nil in Resource transformation [e5f96024](https://github.com/gohugoio/hugo/commit/e5f960245938d8d8b4e99f312e9907f8d3aebf7a) [@bep](https://github.com/bep) [#6128](https://github.com/gohugoio/hugo/issues/6128)
-* Merge branch 'release-0.56.1' [9f497e7b](https://github.com/gohugoio/hugo/commit/9f497e7b5f77d0eb45d932a2301e648a3cd2d88f) [@bep](https://github.com/bep)
-* deps: Update go-org to v0.1.2 [56908509](https://github.com/gohugoio/hugo/commit/56908509eb3a5779743a2314c05693a732b7feb3) [@niklasfasching](https://github.com/niklasfasching)
-
-
-
diff --git a/docs/content/en/news/0.56.3-relnotes/index.md b/docs/content/en/news/0.56.3-relnotes/index.md
deleted file mode 100644
index c505e520df1..00000000000
--- a/docs/content/en/news/0.56.3-relnotes/index.md
+++ /dev/null
@@ -1,47 +0,0 @@
-
----
-date: 2019-07-31
-title: "Hugo 0.56.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.56.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with a couple of important fixes. After getting feedback about the new **Hugo Modules** feature, this release also adds some minor improvements:
-
-It adds support for overlapping file mounts, even for the filesystems where we walk down the directory structure. One relevant example that is fixed by this release:
-
-{{< code-toggle file="config" >}}
-[module]
-[[module.mounts]]
-source="content1"
-target="content"
-[[module.mounts]]
-source="content2"
-target="content/docs"
-{{< /code-toggle >}}
-
-The above is obviously both common and very useful. This was never an issue with the situations where you load a specific file/directory (e.g. `resources.Get "a/b/c/d/sunset.jpg"`).
-
-User feedback also told us that these file mounts were a little hard to debug, so we added a new command that prints the configured mounts as a JSON:
-
-```bash
-hugo config mounts
-```
-
-* hugolib: Fix bundle header clone logic [0e086785](https://github.com/gohugoio/hugo/commit/0e086785fa4be8086256e9d7de6cda78e18d00ee) [@bep](https://github.com/bep) [#6136](https://github.com/gohugoio/hugo/issues/6136)
-* docs: Regenerate CLI docs [02b947ea](https://github.com/gohugoio/hugo/commit/02b947eaa3cc68404180d796a2f7119dce074539) [@bep](https://github.com/bep)
-* commands: Add "hugo config mounts" command [d7c233af](https://github.com/gohugoio/hugo/commit/d7c233afee6a16b1947f60b7e5450e40612997bb) [@bep](https://github.com/bep) [#6144](https://github.com/gohugoio/hugo/issues/6144)
-* commands: Cleanup the hugo config command [45ee8a7a](https://github.com/gohugoio/hugo/commit/45ee8a7a52213bf394c7f41a72be78084ddc789a) [@bep](https://github.com/bep) [#6144](https://github.com/gohugoio/hugo/issues/6144)
-* Move the mount duplicate filter to the modules package [4b6c5eba](https://github.com/gohugoio/hugo/commit/4b6c5eba306e6e69f3dd07a6c102bfc8040b38c9) [@bep](https://github.com/bep)
-* Allow overlap in module mounts [edf9f0a3](https://github.com/gohugoio/hugo/commit/edf9f0a354e5eaa556f8faed70b5243b7273b35c) [@bep](https://github.com/bep) [#6146](https://github.com/gohugoio/hugo/issues/6146)
-* Fix self-mounts on the main project [36220851](https://github.com/gohugoio/hugo/commit/36220851e4ed7fc3fa78aa250d001d5f922210e7) [@bep](https://github.com/bep) [#6143](https://github.com/gohugoio/hugo/issues/6143)
-
-
-
-
-
-
-
diff --git a/docs/content/en/news/0.57.0-relnotes/hugo-57-poster-featured.png b/docs/content/en/news/0.57.0-relnotes/hugo-57-poster-featured.png
deleted file mode 100644
index aeb5561c86b..00000000000
Binary files a/docs/content/en/news/0.57.0-relnotes/hugo-57-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.57.0-relnotes/index.md b/docs/content/en/news/0.57.0-relnotes/index.md
deleted file mode 100644
index d99150e08aa..00000000000
--- a/docs/content/en/news/0.57.0-relnotes/index.md
+++ /dev/null
@@ -1,119 +0,0 @@
-
----
-date: 2019-08-14
-title: "Hugo 0.57: The Cascading Edition"
-description: "Hugo 0.57 brings cascading front matter, alphabetical sorting, resource loading from Assets with wildcards. And it's faster."
-categories: ["Releases"]
----
-
-Hugo 0.57 brings **Cascading Front Matter**, **Alphabetical Sorting**, **Resources Loading from Assets with Wildcards**. And more.
-
-**Cascading Front Matter**: We have added a new and powerful `cascade` keyword to Hugo's front matter. This can be added to any index node in `_index.md`. Any values in `cascade` will be merged into itself and all the descendants.
-
-```yaml
-title: "My Blog"
-icon: "world.png"
-cascade:
- icon: "flag.png"
- outputs: ["HTML"]
- type: "blog"
- ```
-
-It's worth noting that the `cascade` element itself will also be merged. Also, to grasp the full value of this feature, remember that front matter in Hugo is both **data** and **behaviour**: You can tell Hugo how to process a subset of the pages (some example keywords are `layout`, `type`, `outputs`, `weight`) using the `cascade` keyword, e.g. _"I want this subsection to be rendered in both the `HTML` and `Calendar` Output Formats"_.
-
-This feature is created by[@regisphilibert](https://github.com/regisphilibert) and [@bep](https://github.com/bep) See [#6041](https://github.com/gohugoio/hugo/issues/6041) for details.
-
-**Resources Loading from Assets with Wildcards**: We have added two new sought after template functions to the `resources` namespace: `resources.Match` and `resources.GetMatch`. These behaves like their namesake methods on `Page` (with [super-asterisk wildcard support](https://github.com/gobwas/glob)), but searches in all the resources in Assets. E.g. `{{ $prettyImages := resources.Match "images/**pretty.jpg" }}` will give a slice of all "pretty pictures". Another relevant example: `{{ $js := resources.Match "libs/*.js" | resources.Concat "js/bundle.js" }}`.
-
-**Performance:** In general, this version is slightly faster and more memory effective. In particular, we have fixed a performance issue with the replacer step that greatly improves the build speed of certain large and content-rich sites (thanks to [@vazrupe](https://github.com/vazrupe) for the fix).
-
-This release represents **46 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 to [@muesli](https://github.com/muesli), [@XhmikosR](https://github.com/XhmikosR), and [@vazrupe](https://github.com/vazrupe) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 7 contributors**. A special thanks to [@regisphilibert](https://github.com/regisphilibert), [@bep](https://github.com/bep), [@kenberkeley](https://github.com/kenberkeley), and [@davidsneighbour](https://github.com/davidsneighbour) for their work on the documentation site.
-
-Hugo now has:
-
-* 37336+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 334+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* All string sorting in Hugo is now alphabetical/lexicographical.
-* `home.Pages` now only returns pages in the top level section. Before this release, it included _all regular pages in the site_. This made it easy to list all the pages on home page, but it also meant that you needed to take special care if you wanted to navigate the page tree from top to bottom. If you need _all regular pages_, use `.Site.RegularPages`. Also see [#6153](https://github.com/gohugoio/hugo/issues/6153).
-* `.Pages` now include sections. We have added `.RegularPages` as a convenience method if you want the old behaviour. See [#6154](https://github.com/gohugoio/hugo/issues/6154) for details.
-* Hugo now only "auto create" sections for the home page and the top level folders. The other sections need a `_index.md` file. See [#6171](https://github.com/gohugoio/hugo/issues/6171) for details.
-
-
-## Enhancements
-
-### Templates
-
-* Regenerate templates [2d1d3367](https://github.com/gohugoio/hugo/commit/2d1d33673d82c5073335e18944744606a71a5029) [@bep](https://github.com/bep)
-* Always load GitHub Gists over HTTPS [be0d4efc](https://github.com/gohugoio/hugo/commit/be0d4efc3db18035a04b188e089c09cdd8e04365) [@coliff](https://github.com/coliff)
-
-### Core
-
-* Remove temporary warning [4644b95b](https://github.com/gohugoio/hugo/commit/4644b95bd568946429482aa36eeaff1eec6a7075) [@bep](https://github.com/bep)
-* Add some more site benchmarks [df374851](https://github.com/gohugoio/hugo/commit/df374851a0683f1446f33a4afef74c42f7d3eaaf) [@bep](https://github.com/bep)
-
-### Other
-
-* Add FileInfo to resources created with resources.Match etc. [1089cfe4](https://github.com/gohugoio/hugo/commit/1089cfe4e1c35bec1f269b8280da43b367b5d070) [@bep](https://github.com/bep) [#6190](https://github.com/gohugoio/hugo/issues/6190)
-* Improve the server assets cache invalidation logic [cd575023](https://github.com/gohugoio/hugo/commit/cd575023af846aa18ffa709f37bc70277e98cad3) [@bep](https://github.com/bep) [#6199](https://github.com/gohugoio/hugo/issues/6199)
-* Do not fail build on errors in theme.toml [63150981](https://github.com/gohugoio/hugo/commit/6315098104ff80f8be6d5ae812835b4b4079582e) [@bep](https://github.com/bep) [#6162](https://github.com/gohugoio/hugo/issues/6162)
-* Add resources.Match and resources.GetMatch [b64617fe](https://github.com/gohugoio/hugo/commit/b64617fe4f90da030bcf4a9c5a4913393ce96b14) [@bep](https://github.com/bep) [#6190](https://github.com/gohugoio/hugo/issues/6190)
-* Convert from testify to quicktest [9e571827](https://github.com/gohugoio/hugo/commit/9e571827055dedb46b78c5db3d17d6913f14870b) [@bep](https://github.com/bep)
-* Avoid unnecessary conversions [6027ee11](https://github.com/gohugoio/hugo/commit/6027ee11082d0b9d72de1d4d1980a702be294ad2) [@muesli](https://github.com/muesli)
-* Simplify code [a93cbb0d](https://github.com/gohugoio/hugo/commit/a93cbb0d6cc6e3a78ba34aa372abc5b41ca24b2c) [@muesli](https://github.com/muesli)
-* Implement cascading front matter [bd98182d](https://github.com/gohugoio/hugo/commit/bd98182dbde893a8a809661c70633741bbf63911) [@bep](https://github.com/bep) [#6041](https://github.com/gohugoio/hugo/issues/6041)
-* Use the SVG logo in README.md [c0eef3b4](https://github.com/gohugoio/hugo/commit/c0eef3b401615e85bb74baee6a515abcf531fc2c) [@XhmikosR](https://github.com/XhmikosR)
-* Add a branch bundle test case [82439520](https://github.com/gohugoio/hugo/commit/824395204680496d528684587a1f2977394aff3d) [@bep](https://github.com/bep) [#6173](https://github.com/gohugoio/hugo/issues/6173)
-* Simplify page tree logic [7ff0a8ee](https://github.com/gohugoio/hugo/commit/7ff0a8ee9fe8d710d407e57faf1fda43bd635f28) [@bep](https://github.com/bep) [#6154](https://github.com/gohugoio/hugo/issues/6154)[#6153](https://github.com/gohugoio/hugo/issues/6153)[#6152](https://github.com/gohugoio/hugo/issues/6152)
-* Merge pull request #6149 from bep/sort-caseinsensitive [53077b0d](https://github.com/gohugoio/hugo/commit/53077b0da54906feee64a03612e5186043e17341) [@bep](https://github.com/bep)
-* Regenerate CLI docs [02b947ea](https://github.com/gohugoio/hugo/commit/02b947eaa3cc68404180d796a2f7119dce074539) [@bep](https://github.com/bep)
-* Add "hugo config mounts" command [d7c233af](https://github.com/gohugoio/hugo/commit/d7c233afee6a16b1947f60b7e5450e40612997bb) [@bep](https://github.com/bep) [#6144](https://github.com/gohugoio/hugo/issues/6144)
-* Cleanup the hugo config command [45ee8a7a](https://github.com/gohugoio/hugo/commit/45ee8a7a52213bf394c7f41a72be78084ddc789a) [@bep](https://github.com/bep) [#6144](https://github.com/gohugoio/hugo/issues/6144)
-* Move the mount duplicate filter to the modules package [4b6c5eba](https://github.com/gohugoio/hugo/commit/4b6c5eba306e6e69f3dd07a6c102bfc8040b38c9) [@bep](https://github.com/bep)
-* Allow overlap in module mounts [edf9f0a3](https://github.com/gohugoio/hugo/commit/edf9f0a354e5eaa556f8faed70b5243b7273b35c) [@bep](https://github.com/bep) [#6146](https://github.com/gohugoio/hugo/issues/6146)
-* Add some more content language test assertions [84bc8d84](https://github.com/gohugoio/hugo/commit/84bc8d84e4d2ec1fc94aee3113ebc570a28d1d16) [@bep](https://github.com/bep) [#6136](https://github.com/gohugoio/hugo/issues/6136)
-* Add proper error message when receiving nil in Resource transformation [e5f96024](https://github.com/gohugoio/hugo/commit/e5f960245938d8d8b4e99f312e9907f8d3aebf7a) [@bep](https://github.com/bep) [#6128](https://github.com/gohugoio/hugo/issues/6128)
-* Merge branch 'release-0.56.1' [9f497e7b](https://github.com/gohugoio/hugo/commit/9f497e7b5f77d0eb45d932a2301e648a3cd2d88f) [@bep](https://github.com/bep)
-* Update go-org to v0.1.2 [56908509](https://github.com/gohugoio/hugo/commit/56908509eb3a5779743a2314c05693a732b7feb3) [@niklasfasching](https://github.com/niklasfasching)
-* Do not return error on params dot access on incompatible types [e393c629](https://github.com/gohugoio/hugo/commit/e393c6290e827111a8a2e486791dc21f63a92b55) [@bep](https://github.com/bep) [#6121](https://github.com/gohugoio/hugo/issues/6121)
-* Set GO111MODULE=on [e5fe3789](https://github.com/gohugoio/hugo/commit/e5fe378925c16c75902bbb46499c376c530ebdb5) [@bep](https://github.com/bep) [#6114](https://github.com/gohugoio/hugo/issues/6114)
-* Skip resource cache init if the fs is missing [da4c4a77](https://github.com/gohugoio/hugo/commit/da4c4a7789d403af3f4f4fdd5dfd3327535e4050) [@bep](https://github.com/bep) [#6113](https://github.com/gohugoio/hugo/issues/6113)
-
-## Fixes
-
-### Core
-
-* Fix output format handling of mix cased page kinds [de876242](https://github.com/gohugoio/hugo/commit/de87624241daa86660f205cc72a745409b9c9238) [@bep](https://github.com/bep) [#4528](https://github.com/gohugoio/hugo/issues/4528)
-* Fix broken test [9ef4dca3](https://github.com/gohugoio/hugo/commit/9ef4dca361727a78e0f66f8f4e54c64e4c4781cb) [@bep](https://github.com/bep)
-* Fix bundle header clone logic [0e086785](https://github.com/gohugoio/hugo/commit/0e086785fa4be8086256e9d7de6cda78e18d00ee) [@bep](https://github.com/bep) [#6136](https://github.com/gohugoio/hugo/issues/6136)
-
-### Other
-
-* Fix faulty -h logic in hugo mod get [17ca8f0c](https://github.com/gohugoio/hugo/commit/17ca8f0c4c636752fb9da2ad551679275dc03dd3) [@bep](https://github.com/bep) [#6197](https://github.com/gohugoio/hugo/issues/6197)
-* Fixed ineffectual assignments [c577a9ed](https://github.com/gohugoio/hugo/commit/c577a9ed2347559783c44232e1f08414008c5203) [@muesli](https://github.com/muesli)
-* Fixed tautological error conditions [e88d7989](https://github.com/gohugoio/hugo/commit/e88d7989907108b656eccd92bccc076be72a5c03) [@muesli](https://github.com/muesli)
-* Fix static sync issue with virtual mounts [166a394a](https://github.com/gohugoio/hugo/commit/166a394a2fef6f2990e264cc8dfb722af2cc6a67) [@bep](https://github.com/bep) [#6165](https://github.com/gohugoio/hugo/issues/6165)
-* Cache the next position of `urlreplacer.prefix` [a843ca53](https://github.com/gohugoio/hugo/commit/a843ca53b5e0f29df9535fa0e88408a63cdc2cd7) [@vazrupe](https://github.com/vazrupe) [#5942](https://github.com/gohugoio/hugo/issues/5942)
-* Fix no-map vs noMap discrepancy [02397e76](https://github.com/gohugoio/hugo/commit/02397e76cece28b467de30ff0cb0f471d9b212ee) [@bep](https://github.com/bep) [#6166](https://github.com/gohugoio/hugo/issues/6166)
-* Fix assorted typos [f7f549e3](https://github.com/gohugoio/hugo/commit/f7f549e3a7492c787c6abb4900cc0f57c8ab1826) [@XhmikosR](https://github.com/XhmikosR)
-* common/collections: Fix typo [6512d128](https://github.com/gohugoio/hugo/commit/6512d128c6d33b86f376764ab1d622a89ea18d20) [@shawnps](https://github.com/shawnps)
-* Fix multilingual example compatibility with latest version [b8758de1](https://github.com/gohugoio/hugo/commit/b8758de19ec75b4565075314f9578270a092bc6f) [@robinwassen](https://github.com/robinwassen)
-* Fix self-mounts on the main project [36220851](https://github.com/gohugoio/hugo/commit/36220851e4ed7fc3fa78aa250d001d5f922210e7) [@bep](https://github.com/bep) [#6143](https://github.com/gohugoio/hugo/issues/6143)
-* Fix config reloading in Vim and similar [6eca0a3d](https://github.com/gohugoio/hugo/commit/6eca0a3dee77f0e764b1de2e10c10ec2b7cf8ef1) [@bep](https://github.com/bep) [#6139](https://github.com/gohugoio/hugo/issues/6139)
-* Fix Jekyll import [e28bd4c0](https://github.com/gohugoio/hugo/commit/e28bd4c0f843f39cfcb715b6c9c7d249bad5b500) [@bep](https://github.com/bep) [#6131](https://github.com/gohugoio/hugo/issues/6131)
-* Fix image format detection for upper case extensions, e.g. JPG [c62bbf7b](https://github.com/gohugoio/hugo/commit/c62bbf7b11d68d52ef11a4c6c70660914c473d08) [@bep](https://github.com/bep) [#6137](https://github.com/gohugoio/hugo/issues/6137)
-* Fix i18n project vs theme order [00a238e3](https://github.com/gohugoio/hugo/commit/00a238e32c82b0651e4145e306840cffa46e535d) [@bep](https://github.com/bep) [#6134](https://github.com/gohugoio/hugo/issues/6134)
-* Fix image Width/Height regression [93d02aab](https://github.com/gohugoio/hugo/commit/93d02aabe6e611d65c428a9c5669b422e1bcf5e8) [@bep](https://github.com/bep) [#6120](https://github.com/gohugoio/hugo/issues/6120)
-
-
-
-
-
diff --git a/docs/content/en/news/0.57.1-relnotes/index.md b/docs/content/en/news/0.57.1-relnotes/index.md
deleted file mode 100644
index fea7833ff15..00000000000
--- a/docs/content/en/news/0.57.1-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2019-08-15
-title: "Hugo 0.57.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.57.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* hugolib: Fix draft etc. handling of _index.md pages [6ccf50ea](https://github.com/gohugoio/hugo/commit/6ccf50ea7bb291bcbe1d56a4d697a6fd57a9c629) [@bep](https://github.com/bep) [#6222](https://github.com/gohugoio/hugo/issues/6222)[#6210](https://github.com/gohugoio/hugo/issues/6210)
-* Fix mainSections logic [67524c99](https://github.com/gohugoio/hugo/commit/67524c993623871626f0f22e6a2ac705a816a959) [@bep](https://github.com/bep) [#6217](https://github.com/gohugoio/hugo/issues/6217)
-* Fix live reload mount logic with sub paths [952a3194](https://github.com/gohugoio/hugo/commit/952a3194962dd91f87e5bd227a1591b00c39ff05) [@bep](https://github.com/bep) [#6209](https://github.com/gohugoio/hugo/issues/6209)
-* modules: Disable "auto tidy" for now [321418f2](https://github.com/gohugoio/hugo/commit/321418f22a4a94b87f01e1403a2f4a71106461fb) [@bep](https://github.com/bep) [#6115](https://github.com/gohugoio/hugo/issues/6115)
-* hugolib: Recover and log panics in content init [7f3aab5a](https://github.com/gohugoio/hugo/commit/7f3aab5ac283ecfc7029b680d4c0a34920e728c8) [@bep](https://github.com/bep) [#6210](https://github.com/gohugoio/hugo/issues/6210)
-* hugolib: Add some outputs tests [028b9926](https://github.com/gohugoio/hugo/commit/028b992611209b241b1f55def8d47f9188038dc3) [@bep](https://github.com/bep) [#6210](https://github.com/gohugoio/hugo/issues/6210)
-* hugolib: Fix taxonomies vs expired [9475f61a](https://github.com/gohugoio/hugo/commit/9475f61a377fcf23f910cbfd4ddca59261326665) [@bep](https://github.com/bep) [#6213](https://github.com/gohugoio/hugo/issues/6213)
-* commands: Make sure the hugo field is always initialized before it's used [ea9261e8](https://github.com/gohugoio/hugo/commit/ea9261e856c13c1d4ae05fcca08766d410b4b65c) [@vazrupe](https://github.com/vazrupe) [#6193](https://github.com/gohugoio/hugo/issues/6193)
-
-
-
diff --git a/docs/content/en/news/0.57.2-relnotes/index.md b/docs/content/en/news/0.57.2-relnotes/index.md
deleted file mode 100644
index 83c34940129..00000000000
--- a/docs/content/en/news/0.57.2-relnotes/index.md
+++ /dev/null
@@ -1,35 +0,0 @@
-
----
-date: 2019-08-17
-title: "Hugo 0.57.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.57.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-Hugo 0.57.0 had some well-intended breaking changes. And while they made a lot of sense, one of them made a little too much noise.
-
-This release reverts the behavior for `.Pages` on the home page to how it behaved in 0.56, but adds a `WARNING` telling you what to do to prepare for Hugo 0.58.
-
-In short, `.Page` home will from 0.58 only return its immediate children (sections and regular pages).
-
-In this release it returns `.Site.RegularPages`. So to prepare for Hugo 0.58 you can either use `.Site.RegularPages` in your home template, or if you have a general `list.html` or RSS template, you can do something like this:
-
-```go-html-template
-{{- $pctx := . -}}
-{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
-{{- $pages := $pctx.RegularPages -}}
-```
-
-* tpl: Use RegularPages for RSS template [88d69936](https://github.com/gohugoio/hugo/commit/88d69936122f82fffc02850516bdb37be3d0892b) [@bep](https://github.com/bep) [#6238](https://github.com/gohugoio/hugo/issues/6238)
-* hugolib: Don't use the global warning logger [ea681603](https://github.com/gohugoio/hugo/commit/ea6816030081b2cffa6c0ae9ca5429a2c6fe2fa5) [@bep](https://github.com/bep) [#6238](https://github.com/gohugoio/hugo/issues/6238)
-* tpl: Avoid "home page warning" in RSS template [564cf1bb](https://github.com/gohugoio/hugo/commit/564cf1bb11e100891992e9131b271a79ea7fc528) [@bep](https://github.com/bep) [#6238](https://github.com/gohugoio/hugo/issues/6238)
-* hugolib: Allow index.md inside bundles [4b4bdcfe](https://github.com/gohugoio/hugo/commit/4b4bdcfe740d988e4cfb4fee53eced6985576abd) [@bep](https://github.com/bep) [#6208](https://github.com/gohugoio/hugo/issues/6208)
-* Adjust the default paginator for sections [18836a71](https://github.com/gohugoio/hugo/commit/18836a71ce7b671fa71dd1318b99fc661755e94d) [@bep](https://github.com/bep) [#6231](https://github.com/gohugoio/hugo/issues/6231)
-* hugolib: Add a site benchmark [416493b5](https://github.com/gohugoio/hugo/commit/416493b548a9bbaa27758fba9bab50a22b680e9d) [@bep](https://github.com/bep)
-* Update to Go 1.11.13 and 1.12.9 [f28efd35](https://github.com/gohugoio/hugo/commit/f28efd35820dc4909832c14dfd8ea6812ecead31) [@bep](https://github.com/bep) [#6228](https://github.com/gohugoio/hugo/issues/6228)
-
-
-
diff --git a/docs/content/en/news/0.58.0-relnotes/hugo58-featured.png b/docs/content/en/news/0.58.0-relnotes/hugo58-featured.png
deleted file mode 100644
index 52962050d58..00000000000
Binary files a/docs/content/en/news/0.58.0-relnotes/hugo58-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.58.0-relnotes/index.md b/docs/content/en/news/0.58.0-relnotes/index.md
deleted file mode 100644
index 38b2143e072..00000000000
--- a/docs/content/en/news/0.58.0-relnotes/index.md
+++ /dev/null
@@ -1,109 +0,0 @@
-
----
-date: 2019-09-04
-title: "Image Processing Galore!"
-description: "Hugo 0.58 adds the long sought after Exif method plus many useful image filters. And it's faster ..."
-categories: ["Releases"]
----
-
-**Hugo 0.58** adds the long sought after [Exif (docs)](https://gohugo.io/content-management/image-processing/#exif) method on image and a bunch of useful [image filters (docs)](https://gohugo.io/functions/images/#image-filters), courtesy of [@disintegration](https://github.com/disintegration)'s great [Gift](https://github.com/disintegration/gift) image library.
-
-This means that you now can do variations of this:
-
-```go-html-template
-{{ $blurryGrayscale := $myimage.Resize "300x200" | images.Filter images.Grayscale (images.GaussianBlur 8) }}
-{{ $exif := $myimg.Exif }}
-```
-
-It's worth noting that the issue that enabled/triggered the implementation of the above was the simplifications needed to fix [#5903](https://github.com/gohugoio/hugo/issues/5903), which makes sure that type information is preserved when processed via **Hugo Pipes**. E.g. you can now do:
-
-```go-html-template
-{{ ($myimg | fingerprint ).Width }}
-```
-
-And it works as expected.
-
-This release is also built with the brand new **Go 1.13** which means that it's also the [fastest Hugo version](https://discourse.gohugo.io/t/hugo-benchmarks-go-1-12-vs-go-1-13/20572/5) to date.
-
-This release represents **39 contributions by 5 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 [@niklasfasching](https://github.com/niklasfasching), [@vazrupe](https://github.com/vazrupe), and [@jakejarvis](https://github.com/jakejarvis) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **8 contributions by 8 contributors**. A special thanks to [@jacebenson](https://github.com/jacebenson), [@digitalcraftsman](https://github.com/digitalcraftsman), [@jernst](https://github.com/jernst), and [@rgwood](https://github.com/rgwood) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 37859+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 317+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* `home.Pages` now behaves like all the other sections, see [#6240](https://github.com/gohugoio/hugo/issues/6240). If you want to list all the regular pages, use `.Site.RegularPages`.
-* We have added some new image filters to Hugo's image processing. This also means that we have consolidated the resize operations to use the one `gift` library (from the same developer as the one we used before). The operations work as before, but one difference is that we no longer embed color profile information in PNG images, but this should also be a more portable solution. Software that supports color profiles will assume that images without an embedded profile are in the sRGB profile. Software that doesn't support color profiles will use the monitor's profile, which is most likely to be sRGB as well.
-* We have improved the file cache logic for processed images and only stores them once when the same image is bundled in multiple languages. This means that you may want to run `hugo --gc` to clean your image cache.
-
-## Enhancements
-
-### Templates
-
-* Migrate last shortcodes (YouTube and Vimeo) to HTTPS embeds [00297085](https://github.com/gohugoio/hugo/commit/00297085db48cbb7949c9867012f6df38817fc29) [@jakejarvis](https://github.com/jakejarvis)
-* Use RegularPages for RSS template [88d69936](https://github.com/gohugoio/hugo/commit/88d69936122f82fffc02850516bdb37be3d0892b) [@bep](https://github.com/bep) [#6238](https://github.com/gohugoio/hugo/issues/6238)
-* Avoid "home page warning" in RSS template [564cf1bb](https://github.com/gohugoio/hugo/commit/564cf1bb11e100891992e9131b271a79ea7fc528) [@bep](https://github.com/bep) [#6238](https://github.com/gohugoio/hugo/issues/6238)
-
-### Core
-
-* Adjust Go version specific test [dc3f3df2](https://github.com/gohugoio/hugo/commit/dc3f3df29d2b65532cedc9d321db7c4a38a28d7d) [@bep](https://github.com/bep) [#6304](https://github.com/gohugoio/hugo/issues/6304)
-* Remove the old and slow site benchmarks [28501ceb](https://github.com/gohugoio/hugo/commit/28501ceb93613729c5971105010dd3c22cfa0f7f) [@bep](https://github.com/bep)
-* Add a Sass includePaths test [1b5c7e32](https://github.com/gohugoio/hugo/commit/1b5c7e327c7f98cf8e9fff920f3328198f67a598) [@bep](https://github.com/bep) [#6274](https://github.com/gohugoio/hugo/issues/6274)
-* Change to output non-panic error message if missing shortcode template [fd3d90ce](https://github.com/gohugoio/hugo/commit/fd3d90ced85baaf6941be45b2fe29c25ff755c18) [@vazrupe](https://github.com/vazrupe) [#6075](https://github.com/gohugoio/hugo/issues/6075)
-* Don't use the global warning logger [ea681603](https://github.com/gohugoio/hugo/commit/ea6816030081b2cffa6c0ae9ca5429a2c6fe2fa5) [@bep](https://github.com/bep) [#6238](https://github.com/gohugoio/hugo/issues/6238)
-* Allow index.md inside bundles [4b4bdcfe](https://github.com/gohugoio/hugo/commit/4b4bdcfe740d988e4cfb4fee53eced6985576abd) [@bep](https://github.com/bep) [#6208](https://github.com/gohugoio/hugo/issues/6208)
-* Add a site benchmark [416493b5](https://github.com/gohugoio/hugo/commit/416493b548a9bbaa27758fba9bab50a22b680e9d) [@bep](https://github.com/bep)
-* Recover and log panics in content init [7f3aab5a](https://github.com/gohugoio/hugo/commit/7f3aab5ac283ecfc7029b680d4c0a34920e728c8) [@bep](https://github.com/bep) [#6210](https://github.com/gohugoio/hugo/issues/6210)
-* Add some outputs tests [028b9926](https://github.com/gohugoio/hugo/commit/028b992611209b241b1f55def8d47f9188038dc3) [@bep](https://github.com/bep) [#6210](https://github.com/gohugoio/hugo/issues/6210)
-
-### Other
-
-* Update to Go 1.13 [b4313011](https://github.com/gohugoio/hugo/commit/b43130115d9e3888d94df9e6f5fc72eba662632f) [@bep](https://github.com/bep) [#6304](https://github.com/gohugoio/hugo/issues/6304)
-* Cache processed images by their source path [8624b9fe](https://github.com/gohugoio/hugo/commit/8624b9fe9eb81aeb884d36311fb6f85fed98aa43) [@bep](https://github.com/bep) [#6269](https://github.com/gohugoio/hugo/issues/6269)
-* Remove test artifact [018494f3](https://github.com/gohugoio/hugo/commit/018494f363a32b9e4d3622da6842bc3e59b420b2) [@bep](https://github.com/bep)
-* Make the "is this a Hugo Module" logic more lenient [43298f02](https://github.com/gohugoio/hugo/commit/43298f028ccdf38e949b573d03d328bf96b998a3) [@bep](https://github.com/bep) [#6299](https://github.com/gohugoio/hugo/issues/6299)
-* Update to Go 1.11.13 and 1.12.9 [05d83b6c](https://github.com/gohugoio/hugo/commit/05d83b6c08089c20ca1d99bcd224188ed5d127d4) [@bep](https://github.com/bep) [#6228](https://github.com/gohugoio/hugo/issues/6228)
-* Make home.Pages work like any other section [4898fb3d](https://github.com/gohugoio/hugo/commit/4898fb3d64c856c5e0f324e0dfbf3b60da1d1d3a) [@bep](https://github.com/bep) [#6240](https://github.com/gohugoio/hugo/issues/6240)
-* Add some fingerprint tests [45d7988f](https://github.com/gohugoio/hugo/commit/45d7988f2d0aa95d1a56f4c66342574075cf2963) [@bep](https://github.com/bep) [#6284](https://github.com/gohugoio/hugo/issues/6284)[#6280](https://github.com/gohugoio/hugo/issues/6280)
-* Cache Exif data to disk [ce47c21a](https://github.com/gohugoio/hugo/commit/ce47c21a2998630f8edcbd056983d9c59a80b676) [@bep](https://github.com/bep) [#6291](https://github.com/gohugoio/hugo/issues/6291)
-* Remove metaDataFormat setting [de9cbf61](https://github.com/gohugoio/hugo/commit/de9cbf61954201943a7b170a7d0a8b34afb5942c) [@bep](https://github.com/bep)
-* Make the Exif benchmark filenames distinct [4f501169](https://github.com/gohugoio/hugo/commit/4f5011692a22762e213e872fd9e39d015141083f) [@bep](https://github.com/bep)
-* Add Exif benchmark [3becba7a](https://github.com/gohugoio/hugo/commit/3becba7a982f39f67c7ee7cff411eae50931c8cd) [@bep](https://github.com/bep) [#6291](https://github.com/gohugoio/hugo/issues/6291)
-* Remove unused map type [20bdc69a](https://github.com/gohugoio/hugo/commit/20bdc69a47b851871bdc4d9be6366fa7f51f25db) [@bep](https://github.com/bep)
-* Add image.Exif [28143397](https://github.com/gohugoio/hugo/commit/28143397d625cce1f89f4161cba97c0dddd9004c) [@bep](https://github.com/bep) [#4600](https://github.com/gohugoio/hugo/issues/4600)
-* Add a set of image filters [823f53c8](https://github.com/gohugoio/hugo/commit/823f53c861bb49aecc6104e0add39fc3b0729025) [@bep](https://github.com/bep) [#6255](https://github.com/gohugoio/hugo/issues/6255)
-* Image resource refactor [f9978ed1](https://github.com/gohugoio/hugo/commit/f9978ed16476ca6d233a89669c62c798cdf9db9d) [@bep](https://github.com/bep) [#5903](https://github.com/gohugoio/hugo/issues/5903)[#6234](https://github.com/gohugoio/hugo/issues/6234)[#6266](https://github.com/gohugoio/hugo/issues/6266)
-* Remove debug check left during development [ad1d6d64](https://github.com/gohugoio/hugo/commit/ad1d6d6406c9b208d4fd4e09d6ad9ef19aa65dbb) [@bep](https://github.com/bep) [#6249](https://github.com/gohugoio/hugo/issues/6249)
-* Adjust the default paginator for sections [18836a71](https://github.com/gohugoio/hugo/commit/18836a71ce7b671fa71dd1318b99fc661755e94d) [@bep](https://github.com/bep) [#6231](https://github.com/gohugoio/hugo/issues/6231)
-* Update to Go 1.11.13 and 1.12.9 [f28efd35](https://github.com/gohugoio/hugo/commit/f28efd35820dc4909832c14dfd8ea6812ecead31) [@bep](https://github.com/bep) [#6228](https://github.com/gohugoio/hugo/issues/6228)
-* Disable "auto tidy" for now [321418f2](https://github.com/gohugoio/hugo/commit/321418f22a4a94b87f01e1403a2f4a71106461fb) [@bep](https://github.com/bep) [#6115](https://github.com/gohugoio/hugo/issues/6115)
-* Make sure the hugo field is always initialized before it's used [ea9261e8](https://github.com/gohugoio/hugo/commit/ea9261e856c13c1d4ae05fcca08766d410b4b65c) [@vazrupe](https://github.com/vazrupe) [#6193](https://github.com/gohugoio/hugo/issues/6193)
-
-## Fixes
-
-### Core
-
-* Fix draft etc. handling of _index.md pages [6ccf50ea](https://github.com/gohugoio/hugo/commit/6ccf50ea7bb291bcbe1d56a4d697a6fd57a9c629) [@bep](https://github.com/bep) [#6222](https://github.com/gohugoio/hugo/issues/6222)[#6210](https://github.com/gohugoio/hugo/issues/6210)
-* Fix taxonomies vs expired [9475f61a](https://github.com/gohugoio/hugo/commit/9475f61a377fcf23f910cbfd4ddca59261326665) [@bep](https://github.com/bep) [#6213](https://github.com/gohugoio/hugo/issues/6213)
-
-### Other
-
-* Update go-org (fix descriptive lists) [8a8d4a6d](https://github.com/gohugoio/hugo/commit/8a8d4a6d97d181f1aaee639d35b198a27bb788e2) [@niklasfasching](https://github.com/niklasfasching)
-* Update go-org (fix footnotes in headlines) [58d4c0a8](https://github.com/gohugoio/hugo/commit/58d4c0a8be8beefbd7437b17bf7a9a381164d09b) [@niklasfasching](https://github.com/niklasfasching)
-* Discrepancy typo fix [c5319db9](https://github.com/gohugoio/hugo/commit/c5319db9f13f1dee97db5fbbeae38429a074c7d0) [@coliff](https://github.com/coliff)
-* Fix mainSections logic [67524c99](https://github.com/gohugoio/hugo/commit/67524c993623871626f0f22e6a2ac705a816a959) [@bep](https://github.com/bep) [#6217](https://github.com/gohugoio/hugo/issues/6217)
-* Fix live reload mount logic with sub paths [952a3194](https://github.com/gohugoio/hugo/commit/952a3194962dd91f87e5bd227a1591b00c39ff05) [@bep](https://github.com/bep) [#6209](https://github.com/gohugoio/hugo/issues/6209)
-
-
-
-
-
diff --git a/docs/content/en/news/0.58.1-relnotes/index.md b/docs/content/en/news/0.58.1-relnotes/index.md
deleted file mode 100644
index 1350c0a7305..00000000000
--- a/docs/content/en/news/0.58.1-relnotes/index.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
----
-date: 2019-09-06
-title: "Hugo 0.58.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.58.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Avoid writing the same processed image to /public twice [9442937d](https://github.com/gohugoio/hugo/commit/9442937d82005b369780edcc557e0d15d6bf0bad) [@bep](https://github.com/bep) [#6307](https://github.com/gohugoio/hugo/issues/6307)
-* hugolib: Fix broken bundle live reload logic [901077c0](https://github.com/gohugoio/hugo/commit/901077c0364eaf3fe4f997c3026aa18cfc7781ed) [@bep](https://github.com/bep) [#6315](https://github.com/gohugoio/hugo/issues/6315)[#6308](https://github.com/gohugoio/hugo/issues/6308)
-* deps: Update github.com/bep/gitmap [24ad4295](https://github.com/gohugoio/hugo/commit/24ad4295718341dcae12b72bf52fef312d1036ed) [@bep](https://github.com/bep) [#6313](https://github.com/gohugoio/hugo/issues/6313)
-* Fix concat with fingerprint regression [3be2c253](https://github.com/gohugoio/hugo/commit/3be2c25351b421a26ee1ff2a38cbab00280c0583) [@bep](https://github.com/bep) [#6309](https://github.com/gohugoio/hugo/issues/6309)
-* tpl: Remove eq argument limitation [5e660947](https://github.com/gohugoio/hugo/commit/5e660947757023434dd7a1ec8b8239c0577fd501) [@vazrupe](https://github.com/vazrupe) [#6237](https://github.com/gohugoio/hugo/issues/6237)
-
-
-
diff --git a/docs/content/en/news/0.58.2-relnotes/index.md b/docs/content/en/news/0.58.2-relnotes/index.md
deleted file mode 100644
index e498aea59cb..00000000000
--- a/docs/content/en/news/0.58.2-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2019-09-13
-title: "Hugo 0.58.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.58.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Fix cache keys for bundled resoures in transform.Unmarshal [c0d75736](https://github.com/gohugoio/hugo/commit/c0d7573677e9726c14749ccd432dccb75e0d194d) [@bep](https://github.com/bep) [#6327](https://github.com/gohugoio/hugo/issues/6327)
-* filecache: Ignore "does not exist" errors in prune [fcfa6f33](https://github.com/gohugoio/hugo/commit/fcfa6f33bbebc128a3f9bc3162173bc3780c5f50) [@bep](https://github.com/bep) [#6326](https://github.com/gohugoio/hugo/issues/6326)[#5745](https://github.com/gohugoio/hugo/issues/5745)
-
-
-
diff --git a/docs/content/en/news/0.58.3-relnotes/index.md b/docs/content/en/news/0.58.3-relnotes/index.md
deleted file mode 100644
index 86bc4b88fd7..00000000000
--- a/docs/content/en/news/0.58.3-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2019-09-19
-title: "Hugo 0.58.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.58.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Add some more resource transform tests [c262a95a](https://github.com/gohugoio/hugo/commit/c262a95a5c5a9304c82b9d9e39701bc471916851) [@bep](https://github.com/bep) [#6348](https://github.com/gohugoio/hugo/issues/6348)
-* Fix cache key transformed resources [6dec671f](https://github.com/gohugoio/hugo/commit/6dec671fb930029e18ba9aa5135b3a27adcddb21) [@bep](https://github.com/bep) [#6348](https://github.com/gohugoio/hugo/issues/6348)
-* deploy: Do not compile in Azure on Solaris [c0d7188e](https://github.com/gohugoio/hugo/commit/c0d7188ec85e7a4b61489e38896108d877f6d902) [@fazalmajid](https://github.com/fazalmajid) [#6324](https://github.com/gohugoio/hugo/issues/6324)
-
-
-
diff --git a/docs/content/en/news/0.59.0-relnotes/hugo-59-poster-featured.png b/docs/content/en/news/0.59.0-relnotes/hugo-59-poster-featured.png
deleted file mode 100644
index 67dc6587262..00000000000
Binary files a/docs/content/en/news/0.59.0-relnotes/hugo-59-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.59.0-relnotes/index.md b/docs/content/en/news/0.59.0-relnotes/index.md
deleted file mode 100644
index 1a7552d096d..00000000000
--- a/docs/content/en/news/0.59.0-relnotes/index.md
+++ /dev/null
@@ -1,120 +0,0 @@
-
----
-date: 2019-10-21
-title: "Hugo 0.59.0"
-description: "Set image target format and background color, and more ..."
-categories: ["Releases"]
----
-
-The timing of this release is motivated by getting the copies of the docs repositories in synch, now fully "Hugo Modularized". But it also comes with some very nice additions:
-
-It is now possible to set the target format and the background fill color when processing images, e.g.:
-
-```
-{{ $image.Resize "600x jpg #b31280" }}
-```
-
-See [Image Processing Options](https://gohugo.io/content-management/image-processing/#image-processing-options).
-
-Another useful addon is the `$pages.Next` and `$pages.Prev` methods on the core page collections in Hugo. These works the same way as the built-in static variants one `Page`, e.g. `.Next` and `.NextInSection`:
-
-```
-{{with .Site.RegularPages.Next . }}{{.RelPermalink}}{{end}}
-```
-
-The above is a functionally equivalent (but slightly slower) variant of:
-
-```
-{{with .Next }}{{.RelPermalink}}{{end}}
-```
-
-See [Pages Methods](https://gohugo.io/variables/pages/) for more information.
-
-
-This release represents **45 contributions by 13 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 [@anthonyfok](https://github.com/anthonyfok), [@BaibhaVatsa](https://github.com/BaibhaVatsa), and [@XhmikosR](https://github.com/XhmikosR) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **34 contributions by 20 contributors**. A special thanks to [@bep](https://github.com/bep), [@celtic-coder](https://github.com/celtic-coder), [@napcs](https://github.com/napcs), and [@bmackinney](https://github.com/bmackinney) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 38843+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 441+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 255+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-
-* Shortcode params can now be typed (supported types are `string`, `bool` `int` and `float64`, see [#6376](https://github.com/gohugoio/hugo/pull/6376).
-* Pages.Next/.Prev as described above has existed for a long time, but they have been undocumented. They have been reimplemented for this release and now works like their namesakes on `Page`. This may be considered a breaking change, but it should be a welcome one, as the old behaviour wasn't very useful. See [#4500](https://github.com/gohugoio/hugo/issues/4500)
-
-## Enhancements
-
-### Templates
-
-* Add optional "title" attribute to iframe in Vimeo shortcode [7b3edc29](https://github.com/gohugoio/hugo/commit/7b3edc293144dd450e87ca32f238221c21eb1b47) [@zbayoff](https://github.com/zbayoff)
-* Modify error messages of after, first, and last [65b7d422](https://github.com/gohugoio/hugo/commit/65b7d4221b90445bfc089873092411cf7e322933) [@BaibhaVatsa](https://github.com/BaibhaVatsa) [#6415](https://github.com/gohugoio/hugo/issues/6415)
-* Last now accepts 0 as limit [0e75af74](https://github.com/gohugoio/hugo/commit/0e75af74db30259ec355a7b79a1e257d5fe00eef) [@BaibhaVatsa](https://github.com/BaibhaVatsa) [#6419](https://github.com/gohugoio/hugo/issues/6419)
-* After now accepts 0 as index [096a4b67](https://github.com/gohugoio/hugo/commit/096a4b67b98259dabff5ebfbfd879a41999a1ed2) [@BaibhaVatsa](https://github.com/BaibhaVatsa) [#6388](https://github.com/gohugoio/hugo/issues/6388)
-* Make getJSON/getCVS accept non-string args [0d7b05be](https://github.com/gohugoio/hugo/commit/0d7b05be4cb2391cbd280f6109c01ec2d3d7e0c6) [@bep](https://github.com/bep) [#6382](https://github.com/gohugoio/hugo/issues/6382)
-* Add `rel="noopener"` for external links [34dc06b0](https://github.com/gohugoio/hugo/commit/34dc06b032741abac342d7a2a77510ded9b72ae8) [@XhmikosR](https://github.com/XhmikosR)
-* Remove unneeded space [2b1814ee](https://github.com/gohugoio/hugo/commit/2b1814ee580f3149f9fe0a4cf30b754bac9f0c90) [@XhmikosR](https://github.com/XhmikosR)
-* Remove eq argument limitation [5e660947](https://github.com/gohugoio/hugo/commit/5e660947757023434dd7a1ec8b8239c0577fd501) [@vazrupe](https://github.com/vazrupe) [#6237](https://github.com/gohugoio/hugo/issues/6237)
-
-### Output
-
-* Add common video media types [689f647b](https://github.com/gohugoio/hugo/commit/689f647baf96af078186f0cdc45199f7d0995d22) [@martignoni](https://github.com/martignoni)
-* Simplify test output to simplify diffing [339ee371](https://github.com/gohugoio/hugo/commit/339ee37143ca5a6bb22bbc1b0468d785f450cfb7) [@bep](https://github.com/bep)
-* Use + to create the Type string [64ec8c89](https://github.com/gohugoio/hugo/commit/64ec8c89049461c4731b23c491fb41e00a09a8b2) [@bep](https://github.com/bep)
-* Support output image format in image operations [e5856e61](https://github.com/gohugoio/hugo/commit/e5856e61d88ef5149582851b00e06b5b93dce9f8) [@jansorg](https://github.com/jansorg) [#6298](https://github.com/gohugoio/hugo/issues/6298)
-
-### Other
-
-* Replace /docs [39121de4](https://github.com/gohugoio/hugo/commit/39121de4d991bdcf5f202da4d8d81a8ac6c149fc) [@bep](https://github.com/bep)
-* Recover from file corruption [180195aa](https://github.com/gohugoio/hugo/commit/180195aa342777fece1b29a08ec89456d7996c61) [@bep](https://github.com/bep) [#6401](https://github.com/gohugoio/hugo/issues/6401)
-* Allow to set background fill colour [4b286b9d](https://github.com/gohugoio/hugo/commit/4b286b9d2722909d0682e50eeecdfe16c1f47fd8) [@bep](https://github.com/bep) [#6298](https://github.com/gohugoio/hugo/issues/6298)
-* Replace .RSSLink [46cafdba](https://github.com/gohugoio/hugo/commit/46cafdbaca13866f32db04c0cc28374e30ec5914) [@bep](https://github.com/bep) [#6037](https://github.com/gohugoio/hugo/issues/6037)
-* Use binary search in Pages.Prev/Next if possible [653e6856](https://github.com/gohugoio/hugo/commit/653e6856ea1cfc60cc16733807d23b302dbe4bd5) [@bep](https://github.com/bep) [#4500](https://github.com/gohugoio/hugo/issues/4500)
-* Make Pages.Prev/Next work like the other Prev/Next methods [f4f566ed](https://github.com/gohugoio/hugo/commit/f4f566edf4bd6a590cf9cdbd5cfc0026ecd93b14) [@bep](https://github.com/bep) [#4500](https://github.com/gohugoio/hugo/issues/4500)
-* Update feature_request.md [5f1aafaf](https://github.com/gohugoio/hugo/commit/5f1aafafb40299bb4c8aebf71e05843431eb84c5) [@bep](https://github.com/bep)
-* Update to Go 1.12.10 and 1.13.1 [71b18a07](https://github.com/gohugoio/hugo/commit/71b18a0786894893eafa01263a0915149ed303ec) [@bep](https://github.com/bep) [#6406](https://github.com/gohugoio/hugo/issues/6406)
-* Add FileMeta.String [f10db101](https://github.com/gohugoio/hugo/commit/f10db101a18f5cad332c9398136f77e35a169d52) [@bep](https://github.com/bep)
-* Update minify to v2.5.2 [b401858e](https://github.com/gohugoio/hugo/commit/b401858ebd346c433dd69a260eba7098bded5a30) [@anthonyfok](https://github.com/anthonyfok)
-* Add BaseFs to RenderingContext [020a6fbd](https://github.com/gohugoio/hugo/commit/020a6fbd7f6996ed84d80ba6c37fe0d8c2536806) [@niklasfasching](https://github.com/niklasfasching)
-* Update go-org [b152216d](https://github.com/gohugoio/hugo/commit/b152216d5c8adbf1bfa4c6fb7b2a50b6866c685e) [@niklasfasching](https://github.com/niklasfasching)
-* Upgrade to latest version of emoji dependency [c466b88c](https://github.com/gohugoio/hugo/commit/c466b88c998bc99e5d26e41cb67d87e1d4b976f5) [@jamietanna](https://github.com/jamietanna) [#6391](https://github.com/gohugoio/hugo/issues/6391)
-* Upgrade to latest version of emoji dependency [170f18d9](https://github.com/gohugoio/hugo/commit/170f18d9352d39213170dd9d5e947eb45854c84b) [@jamietanna](https://github.com/jamietanna)
-* Update Architectures [15a0364d](https://github.com/gohugoio/hugo/commit/15a0364d39741da34b8661f9a8386b54016049d6) [@bep](https://github.com/bep)
-* Add ability to invalidate Google Cloud CDN [674e81ae](https://github.com/gohugoio/hugo/commit/674e81ae8700bdd00d3e5e47ff930d42d25bc68b) [@gkelly](https://github.com/gkelly)
-* Ensure same dirinfos sort order in TestImageOperationsGolden [298092d5](https://github.com/gohugoio/hugo/commit/298092d516f623cc20051f506d460fb7625cdc84) [@anthonyfok](https://github.com/anthonyfok)
-* Update bug_report.md [019ae384](https://github.com/gohugoio/hugo/commit/019ae384835446266b951875aa0870d245382cf2) [@bep](https://github.com/bep)
-* Support typed bool, int and float in shortcode params [329e88db](https://github.com/gohugoio/hugo/commit/329e88db1f6d043d32c7083570773dccfd4f11fc) [@bep](https://github.com/bep) [#6371](https://github.com/gohugoio/hugo/issues/6371)
-* Update Chroma [e073f4ef](https://github.com/gohugoio/hugo/commit/e073f4efb1345f6408000ef3f389873f8cf7179e) [@bep](https://github.com/bep) [#6279](https://github.com/gohugoio/hugo/issues/6279)
-* Add issue templates and action [454a033d](https://github.com/gohugoio/hugo/commit/454a033dc5bc9b3db626fe1533d7e8494d79f472) [@bmackinney](https://github.com/bmackinney)
-* Add some more resource transform tests [c262a95a](https://github.com/gohugoio/hugo/commit/c262a95a5c5a9304c82b9d9e39701bc471916851) [@bep](https://github.com/bep) [#6348](https://github.com/gohugoio/hugo/issues/6348)
-* Do not compile in Azure on Solaris [c0d7188e](https://github.com/gohugoio/hugo/commit/c0d7188ec85e7a4b61489e38896108d877f6d902) [@fazalmajid](https://github.com/fazalmajid) [#6324](https://github.com/gohugoio/hugo/issues/6324)
-* Ignore "does not exist" errors in prune [fcfa6f33](https://github.com/gohugoio/hugo/commit/fcfa6f33bbebc128a3f9bc3162173bc3780c5f50) [@bep](https://github.com/bep) [#6326](https://github.com/gohugoio/hugo/issues/6326)[#5745](https://github.com/gohugoio/hugo/issues/5745)
-* Avoid writing the same processed image to /public twice [9442937d](https://github.com/gohugoio/hugo/commit/9442937d82005b369780edcc557e0d15d6bf0bad) [@bep](https://github.com/bep) [#6307](https://github.com/gohugoio/hugo/issues/6307)
-* Update github.com/bep/gitmap [24ad4295](https://github.com/gohugoio/hugo/commit/24ad4295718341dcae12b72bf52fef312d1036ed) [@bep](https://github.com/bep) [#6313](https://github.com/gohugoio/hugo/issues/6313)
-
-## Fixes
-
-### Core
-
-* Fix broken bundle live reload logic [901077c0](https://github.com/gohugoio/hugo/commit/901077c0364eaf3fe4f997c3026aa18cfc7781ed) [@bep](https://github.com/bep) [#6315](https://github.com/gohugoio/hugo/issues/6315)[#6308](https://github.com/gohugoio/hugo/issues/6308)
-
-### Other
-
-* Fix elements are doubling when append a not assignable type [a9762b5c](https://github.com/gohugoio/hugo/commit/a9762b5c48054e036332eff541a8fd32e54ada13) [@vazrupe](https://github.com/vazrupe) [#6188](https://github.com/gohugoio/hugo/issues/6188)
-* Fix data race in global logger init [bc70f2bf](https://github.com/gohugoio/hugo/commit/bc70f2bf123d94fc3226754ec9f1f44748e98162) [@bep](https://github.com/bep) [#6409](https://github.com/gohugoio/hugo/issues/6409)
-* Fix image test error on s390x, ppc64* and arm64 [39ed33fc](https://github.com/gohugoio/hugo/commit/39ed33fcebcde91605e645fd28fd94020b442d97) [@anthonyfok](https://github.com/anthonyfok) [#6387](https://github.com/gohugoio/hugo/issues/6387)
-* Fix cache key transformed resources [6dec671f](https://github.com/gohugoio/hugo/commit/6dec671fb930029e18ba9aa5135b3a27adcddb21) [@bep](https://github.com/bep) [#6348](https://github.com/gohugoio/hugo/issues/6348)
-* Fix cache keys for bundled resoures in transform.Unmarshal [c0d75736](https://github.com/gohugoio/hugo/commit/c0d7573677e9726c14749ccd432dccb75e0d194d) [@bep](https://github.com/bep) [#6327](https://github.com/gohugoio/hugo/issues/6327)
-* Fix concat with fingerprint regression [3be2c253](https://github.com/gohugoio/hugo/commit/3be2c25351b421a26ee1ff2a38cbab00280c0583) [@bep](https://github.com/bep) [#6309](https://github.com/gohugoio/hugo/issues/6309)
-
-
-
-
-
diff --git a/docs/content/en/news/0.59.1-relnotes/index.md b/docs/content/en/news/0.59.1-relnotes/index.md
deleted file mode 100644
index 830ccaca156..00000000000
--- a/docs/content/en/news/0.59.1-relnotes/index.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
----
-date: 2019-10-31
-title: "Hugo 0.59.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.59.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* hugofs: Fix crash in multilingual content fs [33c474b9](https://github.com/gohugoio/hugo/commit/33c474b9b3bd470670740f30c5131071ce906b22) [@bep](https://github.com/bep) [#6463](https://github.com/gohugoio/hugo/issues/6463)
-* Dockerfile: Switch to mage builds, various optimizations [ed268232](https://github.com/gohugoio/hugo/commit/ed2682325aeb8fd1c8139077d14a5f6906757a4e) [@jakejarvis](https://github.com/jakejarvis)
-* resources/images: Add exception for new test image [66fe68ff](https://github.com/gohugoio/hugo/commit/66fe68ffc98974936e157b18cf6bd9266ee081a4) [@anthonyfok](https://github.com/anthonyfok) [#6439](https://github.com/gohugoio/hugo/issues/6439)
-* Adjust benchmark templates [c5e1e824](https://github.com/gohugoio/hugo/commit/c5e1e8241a3b9f922f4a5134064ab2847174a959) [@bep](https://github.com/bep)
-* deps: Update to Chroma v0.6.8 to fix a crash [baa97508](https://github.com/gohugoio/hugo/commit/baa975082c6809c8a02a8109ec3062a2b7d48344) [@bep](https://github.com/bep) [#6450](https://github.com/gohugoio/hugo/issues/6450)
-* deps: Update quicktest [3e8b5a5c](https://github.com/gohugoio/hugo/commit/3e8b5a5c0157fdcf93588a42fbc90b3cd898f6b1) [@bep](https://github.com/bep)
-* Do not attempt to build if there is no config file [e6aa6edb](https://github.com/gohugoio/hugo/commit/e6aa6edb4c5f37feb1f2bb8c0f3f80933c7adf5f) [@ollien](https://github.com/ollien) [#5896](https://github.com/gohugoio/hugo/issues/5896)
-
-
-
diff --git a/docs/content/en/news/0.60.0-relnotes/index.md b/docs/content/en/news/0.60.0-relnotes/index.md
deleted file mode 100644
index 8cdebb35ef9..00000000000
--- a/docs/content/en/news/0.60.0-relnotes/index.md
+++ /dev/null
@@ -1,136 +0,0 @@
-
----
-date: 2019-11-27
-title: "Now CommonMark Compliant!"
-description: "Goldmark -- CommonMark compliant, GitHub flavored, fast and flexible -- is the new default library for Markdown in Hugo."
-categories: ["Releases"]
----
-
-[Goldmark](https://github.com/yuin/goldmark/) by [@yuin](https://github.com/yuin) is now the new default library used for Markdown in Hugo. It's CommonMark compliant and GitHub flavored, and both fast and flexible. Blackfriday, the old default, has served us well, but there have been formatting and portability issues that were hard to work around. The "CommonMark compliant" part is the main selling feature of Goldmark, but with that you also get attribute syntax on headers and code blocks (for code blocks you can turn on/off line numbers and highlight line ranges), strikethrough support and an improved and configurable implementation of `TableOfContents`. See [Markup Configuration](https://gohugo.io/getting-started/configuration-markup/) for an overview of extensions.
-
-Please read the [Notes Section](#notes) and the updated documentation. We suggest you start with [List of content formats in Hugo](https://gohugo.io/content-management/formats/#list-of-content-formats). Goldmark is better, but the feature set is not fully comparable and it may be more stricter in some areas (there are 17 rules for how a [headline](https://spec.commonmark.org/0.29/#emphasis-and-strong-emphasis) should look like); if you have any problems you cannot work around, see [Configure Markup](https://gohugo.io/getting-started/configuration-markup/#configure-markup) for a way to change the default Markdown handler.
-
-Also, if you have lots of inline HTML in your Markdown files, you may have to enable the `unsafe` mode:
-
-{{< code-toggle file="config" >}}
-markup:
- goldmark:
- renderer:
- unsafe: true
-{{< /code-toggle >}}
-
-This release represents **62 contributions by 10 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 [@anthonyfok](https://github.com/anthonyfok), [@max-arnold](https://github.com/max-arnold), and [@trimbo](https://github.com/trimbo) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) and [@davidsneighbour](https://github.com/davidsneighbour) for 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 **8 contributions by 4 contributors**. A special thanks to [@bep](https://github.com/bep), [@jasdeepgill](https://github.com/jasdeepgill), [@luucamay](https://github.com/luucamay), and [@jkreft-usgs](https://github.com/jkreft-usgs) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 39668+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 274+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Permalink config now supports Go date format strings. [#6489](https://github.com/gohugoio/hugo/pull/6489)
-* We have removed the option to use Pygments as a highlighter. [#4491](https://github.com/gohugoio/hugo/pull/4491)
-* Config option for code highlighting of code fences in Markdown is now default on. This is what most people wants.
-* There are some differences in the feature set of Goldmark and Blackfriday. See the documentation for details.
-* The highlight shortcode/template func and the code fence attributes now share the same API regarding line numbers and highlight ranges.
-* The `Total in ...` for the `hugo` command now includes the configuration and modules loading, which should make it more honest/accurate.
-* The image logic in the 3 SEO internal templates twitter_cards.html, opengraph.html, and schema.html is consolidated: `images` page param first, then bundled image matching `*feature*`, `*cover*` or `*thumbnail*`, then finally `images` site param.
-* Deprecate mmark [33d73330](https://github.com/gohugoio/hugo/commit/33d733300a4f0b765234706e51bb7e077fdc2471) [@bep](https://github.com/bep) [#6486](https://github.com/gohugoio/hugo/issues/6486)
-
-## Enhancements
-
-### Templates
-
-* Featured and Site.Params image support for Schema [c91970c0](https://github.com/gohugoio/hugo/commit/c91970c08ddf8c22ca4f967c2cc864c483987ac7) [@max-arnold](https://github.com/max-arnold)
-* Add support for featured and global image to OpenGraph template [25a6b336](https://github.com/gohugoio/hugo/commit/25a6b33693992e8c6d9c35bc1e781ce3e2bca4be) [@max-arnold](https://github.com/max-arnold)
-* Allow dict to create nested structures [a2670bf4](https://github.com/gohugoio/hugo/commit/a2670bf460e10ed5de69f90abbe7c4e2b32068cf) [@bep](https://github.com/bep) [#6497](https://github.com/gohugoio/hugo/issues/6497)
-* Add collections.Reverse [90d0cdf2](https://github.com/gohugoio/hugo/commit/90d0cdf236b54000bfe444ba3a00236faaa28790) [@bep](https://github.com/bep) [#6499](https://github.com/gohugoio/hugo/issues/6499)
-* Make index work with slice as the last arg [95ef93be](https://github.com/gohugoio/hugo/commit/95ef93be667afb480184175a319584fd651abf03) [@bep](https://github.com/bep) [#6496](https://github.com/gohugoio/hugo/issues/6496)
-* Add some index map test cases [9f46a72c](https://github.com/gohugoio/hugo/commit/9f46a72c7eec25a4b9dea387d5717173b8d9ec72) [@bep](https://github.com/bep) [#3974](https://github.com/gohugoio/hugo/issues/3974)
-
-### Output
-
-* Add some more output if modules download takes time [14a1de14](https://github.com/gohugoio/hugo/commit/14a1de14fb1ec93444ba5dd028fdad8959924545) [@bep](https://github.com/bep) [#6519](https://github.com/gohugoio/hugo/issues/6519)
-* Add some more output if loading modules takes time [2dcc1318](https://github.com/gohugoio/hugo/commit/2dcc1318d1d9ed849d040115aa5ba6191a1c102a) [@bep](https://github.com/bep) [#6519](https://github.com/gohugoio/hugo/issues/6519)
-
-### Core
-
-* Disable test assertion on Windows [dd1e5fc0](https://github.com/gohugoio/hugo/commit/dd1e5fc0b43739941372c0c27b75977380acd582) [@bep](https://github.com/bep)
-* Adjust .Site.Permalinks deprecation level [03b369e6](https://github.com/gohugoio/hugo/commit/03b369e6726ed8a732c07db48f7209425c434bbe) [@bep](https://github.com/bep)
-* Remove .Site.Ref/RelRef [69fd1c60](https://github.com/gohugoio/hugo/commit/69fd1c60d8bcf6d1cea4bfea852f62df8891ee81) [@bep](https://github.com/bep)
-* Increase default timeout value to 30s [a8e9f838](https://github.com/gohugoio/hugo/commit/a8e9f8389a61471fa372c815b216511201b56823) [@bep](https://github.com/bep) [#6502](https://github.com/gohugoio/hugo/issues/6502)
-* Add a benchmark [0cf85c07](https://github.com/gohugoio/hugo/commit/0cf85c071aba57de8c6567fba166ed8332d01bac) [@bep](https://github.com/bep)
-
-### Other
-
-* Add some internal template image tests [dcde8af8](https://github.com/gohugoio/hugo/commit/dcde8af8c6ab39eb34b5e1d6030d1aa2fe6923ca) [@bep](https://github.com/bep) [#6542](https://github.com/gohugoio/hugo/issues/6542)
-* Update Goldmark [b0c7749f](https://github.com/gohugoio/hugo/commit/b0c7749fa1efca04839b767e1d48d617f3556867) [@bep](https://github.com/bep)
-* Use HUGO_ENV if set [5c5231e0](https://github.com/gohugoio/hugo/commit/5c5231e09e20953dc262df7d3b351a35f1c4b058) [@bep](https://github.com/bep) [#6456](https://github.com/gohugoio/hugo/issues/6456)
-* Make the image cache more robust [d6f7a9e2](https://github.com/gohugoio/hugo/commit/d6f7a9e28dfd5abff08b6aaf6fb3493c46bd1e39) [@bep](https://github.com/bep) [#6501](https://github.com/gohugoio/hugo/issues/6501)
-* Update to Go 1.13.4 and Go 1.12.13 [031f948f](https://github.com/gohugoio/hugo/commit/031f948f87ac97ca49d0a487a392a8a0c6afb699) [@bep](https://github.com/bep)
-* Restore -v behaviour [71597bd1](https://github.com/gohugoio/hugo/commit/71597bd1adfb016a3ea1977068c37dce92d49458) [@bep](https://github.com/bep)
-* Update Goldmark [82219128](https://github.com/gohugoio/hugo/commit/8221912869cf863d64ae7b50e0085589dc18e4d2) [@bep](https://github.com/bep)
-* Improve grammar in README.md [e1175ae8](https://github.com/gohugoio/hugo/commit/e1175ae83a365e0b17ec5904194e68ff3833e15a) [@jasdeepgill](https://github.com/jasdeepgill)
-* Replace the temp for with a dependency [a2d77f4a](https://github.com/gohugoio/hugo/commit/a2d77f4a803ce27802ea653a4aab53b89c37b488) [@bep](https://github.com/bep)
-* Update Chroma [b546417a](https://github.com/gohugoio/hugo/commit/b546417a27f8c59c8c7ccaebfef6bca03f5c4ac4) [@bep](https://github.com/bep)
-* Update Goldmark [4175b046](https://github.com/gohugoio/hugo/commit/4175b0468680b076a5e5f90450157a98f841789b) [@bep](https://github.com/bep)
-* markup/tableofcontents: GoDoc etc. [55f951cb](https://github.com/gohugoio/hugo/commit/55f951cbba69c29daabca57eeff5661d132fa162) [@bep](https://github.com/bep)
-* Minor cleanups [20f351ee](https://github.com/gohugoio/hugo/commit/20f351ee4cd40b3b53e33805fc6226c837290ed7) [@moorereason](https://github.com/moorereason)
-* Add Goldmark as the new default markdown handler [bfb9613a](https://github.com/gohugoio/hugo/commit/bfb9613a14ab2d93a4474e5486d22e52a9d5e2b3) [@bep](https://github.com/bep) [#5963](https://github.com/gohugoio/hugo/issues/5963)[#1778](https://github.com/gohugoio/hugo/issues/1778)[#6355](https://github.com/gohugoio/hugo/issues/6355)
-* Add parallel task executor helper [628efd6e](https://github.com/gohugoio/hugo/commit/628efd6e293d27984a3f5ba33522f8edd19d69d6) [@bep](https://github.com/bep)
-* Update homepage.md [14a985f8](https://github.com/gohugoio/hugo/commit/14a985f8abc527d4e8487fcd5fa742e1ab2a00ed) [@bep](https://github.com/bep)
-* Do not check for remote modules if main project is vendored [20ec9fa2](https://github.com/gohugoio/hugo/commit/20ec9fa2bbd69dc47dfc9f1db40c954e08520071) [@bep](https://github.com/bep) [#6506](https://github.com/gohugoio/hugo/issues/6506)
-* Add hint when dir not empty [1a36ce9b](https://github.com/gohugoio/hugo/commit/1a36ce9b0903e02a5068aed5f807ed9d21f48ece) [@YaguraStation](https://github.com/YaguraStation) [#4825](https://github.com/gohugoio/hugo/issues/4825)
-* Headless bundles should not be listed in .Pages [d1d1f240](https://github.com/gohugoio/hugo/commit/d1d1f240a25945b37eebe8a9a3f439f290832b33) [@bep](https://github.com/bep) [#6492](https://github.com/gohugoio/hugo/issues/6492)
-* Support Go time format strings in permalinks [70a1aa34](https://github.com/gohugoio/hugo/commit/70a1aa345b95bcf325f19c6e7184bcd6f885e454) [@look](https://github.com/look)
-* Increase timeout to 30000 for mage -v check [cafecca4](https://github.com/gohugoio/hugo/commit/cafecca440e495ec915cc6290fe09d2a343e9c95) [@anthonyfok](https://github.com/anthonyfok)
-* Prepare for Goldmark [5f6b6ec6](https://github.com/gohugoio/hugo/commit/5f6b6ec68936ebbbf590894c02a1a3ecad30735f) [@bep](https://github.com/bep) [#5963](https://github.com/gohugoio/hugo/issues/5963)
-* Update quicktest [366ee4d8](https://github.com/gohugoio/hugo/commit/366ee4d8da1c2b0c1751e9bf6d54638439735296) [@bep](https://github.com/bep)
-* Use pointer receiver for ContentSpec [9abd3967](https://github.com/gohugoio/hugo/commit/9abd396789d007193145db9246d5daf1640bbb8a) [@bep](https://github.com/bep)
-* Allow arm64 to fail [ad4c56b5](https://github.com/gohugoio/hugo/commit/ad4c56b5512226e74fb4ed6f10630d26d93e9eb6) [@bep](https://github.com/bep)
-* Add a JSON roundtrip test [3717db1f](https://github.com/gohugoio/hugo/commit/3717db1f90797f4e2a5d546472fb6b6df072d435) [@bep](https://github.com/bep) [#6472](https://github.com/gohugoio/hugo/issues/6472)
-* Update .travis.yml for arm64 support, etc. [ae4fde08](https://github.com/gohugoio/hugo/commit/ae4fde0866b2a10f0a414e0d76c4ff09bed3776e) [@anthonyfok](https://github.com/anthonyfok)
-* Skip Test386 on non-AMD64 architectures [c6d69d0c](https://github.com/gohugoio/hugo/commit/c6d69d0c95c42915956c210dbac8b884682d4a3e) [@anthonyfok](https://github.com/anthonyfok)
-* Switch to mage builds, various optimizations [ed268232](https://github.com/gohugoio/hugo/commit/ed2682325aeb8fd1c8139077d14a5f6906757a4e) [@jakejarvis](https://github.com/jakejarvis)
-* Add exception for new test image [66fe68ff](https://github.com/gohugoio/hugo/commit/66fe68ffc98974936e157b18cf6bd9266ee081a4) [@anthonyfok](https://github.com/anthonyfok) [#6439](https://github.com/gohugoio/hugo/issues/6439)
-* Adjust benchmark templates [c5e1e824](https://github.com/gohugoio/hugo/commit/c5e1e8241a3b9f922f4a5134064ab2847174a959) [@bep](https://github.com/bep)
-* Update quicktest [3e8b5a5c](https://github.com/gohugoio/hugo/commit/3e8b5a5c0157fdcf93588a42fbc90b3cd898f6b1) [@bep](https://github.com/bep)
-* Do not attempt to build if there is no config file [e6aa6edb](https://github.com/gohugoio/hugo/commit/e6aa6edb4c5f37feb1f2bb8c0f3f80933c7adf5f) [@ollien](https://github.com/ollien) [#5896](https://github.com/gohugoio/hugo/issues/5896)
-
-## Fixes
-
-### Output
-
-* Fix mage check on darwin and add debugging output [8beaa4c2](https://github.com/gohugoio/hugo/commit/8beaa4c25efb593d0363271000a3667b96567976) [@trimbo](https://github.com/trimbo)
-
-### Core
-
-* Fix cascade in server mode [01766439](https://github.com/gohugoio/hugo/commit/01766439246add22a6e6d0c12f932610be55cd8a) [@bep](https://github.com/bep) [#6538](https://github.com/gohugoio/hugo/issues/6538)
-* Fix .Sections vs siblings [da535235](https://github.com/gohugoio/hugo/commit/da53523599b43261520a22d77019b390aaa072e7) [@bep](https://github.com/bep) [#6365](https://github.com/gohugoio/hugo/issues/6365)
-* Fix recently broken timeout config [e3451371](https://github.com/gohugoio/hugo/commit/e3451371bdb68015f89c8c0f7d8ea0a19fff8df5) [@bep](https://github.com/bep)
-* Fix emoji handling inside shortcodes [812688fc](https://github.com/gohugoio/hugo/commit/812688fc2f3e220ac35cad9f0445a2548f0cc603) [@bep](https://github.com/bep) [#6504](https://github.com/gohugoio/hugo/issues/6504)
-* Fix ref/relref anhcor handling [c26d00db](https://github.com/gohugoio/hugo/commit/c26d00db648a4b475d94c9ed8e21dafb6efa1776) [@bep](https://github.com/bep) [#6481](https://github.com/gohugoio/hugo/issues/6481)
-
-### Other
-
-* Fix language handling in ExecuteAsTemplate [96f09659](https://github.com/gohugoio/hugo/commit/96f09659ce8752c32a2a6429c9faf23be4faa091) [@bep](https://github.com/bep) [#6331](https://github.com/gohugoio/hugo/issues/6331)
-* Fix potential data race [03e2d746](https://github.com/gohugoio/hugo/commit/03e2d7462dec17c2f623a13db709f9efc88182af) [@bep](https://github.com/bep) [#6478](https://github.com/gohugoio/hugo/issues/6478)
-* Fix jekyll metadata import on individual posts [8a89b858](https://github.com/gohugoio/hugo/commit/8a89b8582f0f681dc28961adb05ab0bf66da9543) [@trimbo](https://github.com/trimbo) [#5576](https://github.com/gohugoio/hugo/issues/5576)
-* Fix Params case handling in the index, sort and where func [a3fe5e5e](https://github.com/gohugoio/hugo/commit/a3fe5e5e35f311f22b6b4fc38abfcf64cd2c7d6f) [@bep](https://github.com/bep)
-* Fix GetPage Params case issue [cd07e6d5](https://github.com/gohugoio/hugo/commit/cd07e6d57b158a76f812e8c4c9567dbc84f57939) [@bep](https://github.com/bep) [#5946](https://github.com/gohugoio/hugo/issues/5946)
-* Update to Chroma v0.6.9 for Java lexer fix [8483b53a](https://github.com/gohugoio/hugo/commit/8483b53aefc3c6b52f9917e6e5af9c4d2e98df66) [@anthonyfok](https://github.com/anthonyfok) [#6476](https://github.com/gohugoio/hugo/issues/6476)
-* Update past go-cmp's checkptr fix [c3d433af](https://github.com/gohugoio/hugo/commit/c3d433af56071d42aeb3f85854bd30db64ed70b8) [@anthonyfok](https://github.com/anthonyfok)
-* Fix crash in multilingual content fs [33c474b9](https://github.com/gohugoio/hugo/commit/33c474b9b3bd470670740f30c5131071ce906b22) [@bep](https://github.com/bep) [#6463](https://github.com/gohugoio/hugo/issues/6463)
-* Update to Chroma v0.6.8 to fix a crash [baa97508](https://github.com/gohugoio/hugo/commit/baa975082c6809c8a02a8109ec3062a2b7d48344) [@bep](https://github.com/bep) [#6450](https://github.com/gohugoio/hugo/issues/6450)
-
-
-
-
-
diff --git a/docs/content/en/news/0.60.0-relnotes/poster-featured.png b/docs/content/en/news/0.60.0-relnotes/poster-featured.png
deleted file mode 100644
index 9bd99be59a7..00000000000
Binary files a/docs/content/en/news/0.60.0-relnotes/poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.60.1-relnotes/featured-061.png b/docs/content/en/news/0.60.1-relnotes/featured-061.png
deleted file mode 100644
index 8ff4d4af9ed..00000000000
Binary files a/docs/content/en/news/0.60.1-relnotes/featured-061.png and /dev/null differ
diff --git a/docs/content/en/news/0.60.1-relnotes/index.md b/docs/content/en/news/0.60.1-relnotes/index.md
deleted file mode 100644
index 2709c7b6f0b..00000000000
--- a/docs/content/en/news/0.60.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2019-11-29
-title: "Hugo 0.60.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.60.0."
-categories: ["Releases"]
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* deps: Update minify [86a5b59f](https://github.com/gohugoio/hugo/commit/86a5b59f64dd6c4d338a9e091e98cd0ad6d4824f) [@MeiK2333](https://github.com/MeiK2333) [#6475](https://github.com/gohugoio/hugo/issues/6475)
-* Fix headless regression [bb80fff6](https://github.com/gohugoio/hugo/commit/bb80fff69ad3f2ddff23819bf6eb6f4b8512dc2a) [@bep](https://github.com/bep) [#6552](https://github.com/gohugoio/hugo/issues/6552)
-* deps: Update Goldmark [347cfb0c](https://github.com/gohugoio/hugo/commit/347cfb0c17b08626250180e8a84b53fc4800473f) [@bep](https://github.com/bep) [#6549](https://github.com/gohugoio/hugo/issues/6549)[#6551](https://github.com/gohugoio/hugo/issues/6551)
-* hugolib: Fix timeout number parsing for YAML/JSON config [b60ae35b](https://github.com/gohugoio/hugo/commit/b60ae35b97c4f44b9b09fcf06c863c695bc3c73a) [@bep](https://github.com/bep) [#6555](https://github.com/gohugoio/hugo/issues/6555)
-
-
-
diff --git a/docs/content/en/news/0.61.0-relnotes/hugo-61-featured.png b/docs/content/en/news/0.61.0-relnotes/hugo-61-featured.png
deleted file mode 100644
index 8691f30e24e..00000000000
Binary files a/docs/content/en/news/0.61.0-relnotes/hugo-61-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.61.0-relnotes/index.md b/docs/content/en/news/0.61.0-relnotes/index.md
deleted file mode 100644
index 2922506dfa1..00000000000
--- a/docs/content/en/news/0.61.0-relnotes/index.md
+++ /dev/null
@@ -1,56 +0,0 @@
-
----
-date: 2019-12-11
-title: "40K GitHub Stars Edition"
-description: "40K stars on GitHub is a good enough reason to release a new version of Hugo!"
-categories: ["Releases"]
----
-
-This is the [40K GitHub Stars Edition](https://github.com/gohugoio/hugo/stargazers). It's mostly a bug fix release, and an important note is the deprecation of Amber and Ace as template engines. See [#6609](https://github.com/gohugoio/hugo/issues/6609) for more information.
-
-This release represents **10 contributions by 3 contributors** to the main Hugo code base.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **5 contributions by 4 contributors**. A special thanks to [@YuriyOborozhnyi](https://github.com/YuriyOborozhnyi), [@bep](https://github.com/bep), [@Flogex](https://github.com/Flogex), and [@atishay](https://github.com/atishay) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 40029+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 279+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Deprecate Ace and Amber [5f8c2818](https://github.com/gohugoio/hugo/commit/5f8c2818f120b881f58f4cec67aed876edb8bcdf) [@bep](https://github.com/bep) [#6609](https://github.com/gohugoio/hugo/issues/6609)
-
-## Enhancements
-
-### Templates
-
-* Allow any key type in partialCached [0efb00c2](https://github.com/gohugoio/hugo/commit/0efb00c2a86ec3f52000a643f26f54bb2a9dfbd6) [@bep](https://github.com/bep) [#6572](https://github.com/gohugoio/hugo/issues/6572)
-
-### Other
-
-* Update Goldmark [3cc217a6](https://github.com/gohugoio/hugo/commit/3cc217a650546b8bc29deabb95e648aacef96fbf) [@bep](https://github.com/bep)
-* Add typographic chars from goldmark to toc [c5f2f583](https://github.com/gohugoio/hugo/commit/c5f2f5837fdf6a30c7b28e8368033623b74a30a0) [@tangiel](https://github.com/tangiel) [#6592](https://github.com/gohugoio/hugo/issues/6592)
-* Reimplement pygmentsCodefencesGuessSyntax [40a092b0](https://github.com/gohugoio/hugo/commit/40a092b0687d44ecb53ef1fd53001a6299345780) [@bep](https://github.com/bep) [#6565](https://github.com/gohugoio/hugo/issues/6565)
-* Update Goldmark [d534ce94](https://github.com/gohugoio/hugo/commit/d534ce9424c952800dfb26c2faff2d47e9597cad) [@bep](https://github.com/bep) [#6557](https://github.com/gohugoio/hugo/issues/6557)
-* Update minify [86a5b59f](https://github.com/gohugoio/hugo/commit/86a5b59f64dd6c4d338a9e091e98cd0ad6d4824f) [@MeiK2333](https://github.com/MeiK2333) [#6475](https://github.com/gohugoio/hugo/issues/6475)
-* Update Goldmark [347cfb0c](https://github.com/gohugoio/hugo/commit/347cfb0c17b08626250180e8a84b53fc4800473f) [@bep](https://github.com/bep) [#6549](https://github.com/gohugoio/hugo/issues/6549)[#6551](https://github.com/gohugoio/hugo/issues/6551)
-
-## Fixes
-
-### Core
-
-* Fix timeout number parsing for YAML/JSON config [b60ae35b](https://github.com/gohugoio/hugo/commit/b60ae35b97c4f44b9b09fcf06c863c695bc3c73a) [@bep](https://github.com/bep) [#6555](https://github.com/gohugoio/hugo/issues/6555)
-
-### Other
-
-* Fix headless regression [bb80fff6](https://github.com/gohugoio/hugo/commit/bb80fff69ad3f2ddff23819bf6eb6f4b8512dc2a) [@bep](https://github.com/bep) [#6552](https://github.com/gohugoio/hugo/issues/6552)
-
-
-
-
-
diff --git a/docs/content/en/news/0.62.0-relnotes/hugo-62-poster-featured.png b/docs/content/en/news/0.62.0-relnotes/hugo-62-poster-featured.png
deleted file mode 100644
index 9a024c023b6..00000000000
Binary files a/docs/content/en/news/0.62.0-relnotes/hugo-62-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.62.0-relnotes/index.md b/docs/content/en/news/0.62.0-relnotes/index.md
deleted file mode 100644
index 71f01145de8..00000000000
--- a/docs/content/en/news/0.62.0-relnotes/index.md
+++ /dev/null
@@ -1,83 +0,0 @@
-
----
-date: 2019-12-23
-title: "Hugo Christmas Edition!"
-description: "Hugo 0.62 brings Markdown Render Hooks. And it's faster!"
-categories: ["Releases"]
----
-
-From all of us to all of you, a **very Merry Christmas** -- and Hugo `0.62.0`! This version brings [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup/#markdown-render-hooks). This gives you full control over how links and images in Markdown are rendered without using any shortcodes. With this, you can get Markdown links that work on both GitHub and Hugo, resize images etc. It is a very long sought after feature, that has been hard to tackle until we got [Goldmark](https://github.com/yuin/goldmark/), the new Markdown engine, by [@yuin](https://github.com/yuin). When you read up on this new feature in the documentation, also note the new [.RenderString](https://gohugo.io/functions/renderstring/) method on `Page`.
-
-Adding these render hooks also had the nice side effect of making Hugo **faster and more memory effective**. We could have just added this feature on top of what we got, getting it to work. But you like Hugo's fast builds, you love instant browser-refreshes on change. So we had to take a step back and redesign how we detect "what changed?" for templates referenced from content files, either directly or indirectly. And by doing that we greatly simplified how we handle all the templates. Which accidentally makes this version **the fastest to date**. It's not an "every site will be much faster" statement. This depends. Sites with many languages and/or many templates will benefit more from this. We have benchmarks with site-building showing about 15% improvement in build speed and memory efficiency.
-
-This release represents **25 contributions by 5 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 [@gavinhoward](https://github.com/gavinhoward), [@niklasfasching](https://github.com/niklasfasching), and [@zaitseff](https://github.com/zaitseff) for their ongoing contributions. And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his 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 **8 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@DirtyF](https://github.com/DirtyF), [@pfhawkins](https://github.com/pfhawkins), and [@bubelov](https://github.com/bubelov) for their work on the documentation site.
-
-Also a big shoutout and thanks to the very active and helpful moderators on the [Hugo Discourse](https://discourse.gohugo.io/), making it a first class forum for Hugo questions and discussions.
-
-Hugo now has:
-
-* 40362+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 284+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* Ace and Amber support is now removed from Hugo. See [#6609](https://github.com/gohugoio/hugo/issues/6609) for more information.
-* The `markdownify` template function does not, yet, support render hooks. We recommend you look at the new and more powerful [.RenderString](https://gohugo.io/functions/renderstring/) method on `Page`.
-* If you have output format specific behaviour in a template used from a content file, you must create a output format specific template, e.g. `myshortcode.amp.html`. This also applies to the new rendering hooks introduced in this release. This has been the intended behaviour all the time, but a failing test (now fixed) shows that the implementation of this has not been as strict as specified, hence this note.
-* The `errorf` does not return any value anymore. This means that the ERROR will just be printed to the console. We have also added a `warnf` template func.
-
-
-## Enhancements
-
-### Templates
-
-* Do not return any value in errorf [50cc7fe5](https://github.com/gohugoio/hugo/commit/50cc7fe54580018239ea95aafe67f6a158cdcc9f) [@bep](https://github.com/bep) [#6653](https://github.com/gohugoio/hugo/issues/6653)
-* Add a warnf template func [1773d71d](https://github.com/gohugoio/hugo/commit/1773d71d5b40f5a6a14edca417d2818607a499f1) [@bep](https://github.com/bep) [#6628](https://github.com/gohugoio/hugo/issues/6628)
-* Some more params merge adjustments [ccb1bf1a](https://github.com/gohugoio/hugo/commit/ccb1bf1abb7341fa1be23a90b66c14ae89790f49) [@bep](https://github.com/bep) [#6633](https://github.com/gohugoio/hugo/issues/6633)
-* Get rid of the custom template truth logic [d20ca370](https://github.com/gohugoio/hugo/commit/d20ca3700512d661247b44d953515b9455e57ed6) [@bep](https://github.com/bep) [#6615](https://github.com/gohugoio/hugo/issues/6615)
-* Add some comments [92c7f7ab](https://github.com/gohugoio/hugo/commit/92c7f7ab85a40cae8f36f2348d86f3e47d811eb5) [@bep](https://github.com/bep)
-
-### Core
-
-* Improve error and reload handling of hook templates in server mode [8a58ebb3](https://github.com/gohugoio/hugo/commit/8a58ebb311fd079f65068e7e37725e4d43f17ab5) [@bep](https://github.com/bep) [#6635](https://github.com/gohugoio/hugo/issues/6635)
-
-### Other
-
-* Update Goldmark to v1.1.18 [1fb17be9](https://github.com/gohugoio/hugo/commit/1fb17be9a008b549d11b622849adbaad01d4023d) [@bep](https://github.com/bep) [#6649](https://github.com/gohugoio/hugo/issues/6649)
-* Update go-org [51d89dab](https://github.com/gohugoio/hugo/commit/51d89dab1827ae80f9d865f5c38cb5f6a3a11f68) [@niklasfasching](https://github.com/niklasfasching)
-* More on hooks [c8bfe47c](https://github.com/gohugoio/hugo/commit/c8bfe47c6a740c5fedfdb5b7465d7ae1db44cb65) [@bep](https://github.com/bep)
-* Update to Goldmark v1.1.17 [04536838](https://github.com/gohugoio/hugo/commit/0453683816cfbc94e1e19c644f5f84213bb8cf35) [@bep](https://github.com/bep) [#6641](https://github.com/gohugoio/hugo/issues/6641)
-* Regen docshelper [55c29d4d](https://github.com/gohugoio/hugo/commit/55c29d4de38df67dd116f1845f7cc69ca7e35843) [@bep](https://github.com/bep)
-* Preserve HTML Text for image render hooks [a67d95fe](https://github.com/gohugoio/hugo/commit/a67d95fe1a033ca4934957b5a98b12ecc8a9edbd) [@bep](https://github.com/bep) [#6639](https://github.com/gohugoio/hugo/issues/6639)
-* Update Goldmark [eef934ae](https://github.com/gohugoio/hugo/commit/eef934ae7eabc38eeba386831de6013eec0285f2) [@bep](https://github.com/bep) [#6626](https://github.com/gohugoio/hugo/issues/6626)
-* Preserve HTML Text for link render hooks [00954c5d](https://github.com/gohugoio/hugo/commit/00954c5d1fda0b18cd1b847ee580d5f4caa76c70) [@bep](https://github.com/bep) [#6629](https://github.com/gohugoio/hugo/issues/6629)
-* Footnote [3e316155](https://github.com/gohugoio/hugo/commit/3e316155c5d4fbf166d38e997a41101b6aa501d5) [@bep](https://github.com/bep)
-* Add render template hooks for links and images [e625088e](https://github.com/gohugoio/hugo/commit/e625088ef5a970388ad50e464e87db56b358dac4) [@bep](https://github.com/bep) [#6545](https://github.com/gohugoio/hugo/issues/6545)[#4663](https://github.com/gohugoio/hugo/issues/4663)[#6043](https://github.com/gohugoio/hugo/issues/6043)
-* Enhance accessibility to issues [0947cf95](https://github.com/gohugoio/hugo/commit/0947cf958358e5a45b4f605e2a5b2504896fa360) [@peaceiris](https://github.com/peaceiris) [#6233](https://github.com/gohugoio/hugo/issues/6233)
-* Re-introduce the correct version of Goldmark [03d6960a](https://github.com/gohugoio/hugo/commit/03d6960a15dcc8efc164e5ed310b12bd1ffdd930) [@bep](https://github.com/bep)
-* Rework template handling for function and map lookups [a03c631c](https://github.com/gohugoio/hugo/commit/a03c631c420a03f9d90699abdf9be7e4fca0ff61) [@bep](https://github.com/bep) [#6594](https://github.com/gohugoio/hugo/issues/6594)
-* Create lightweight forks of text/template and html/template [167c0153](https://github.com/gohugoio/hugo/commit/167c01530bb295c8b8d35921eb27ffa5bee76dfe) [@bep](https://github.com/bep) [#6594](https://github.com/gohugoio/hugo/issues/6594)
-* Add config option for ordered list [4c804319](https://github.com/gohugoio/hugo/commit/4c804319f6db0b8459cc9b5df4a904fd2c55dedd) [@gavinhoward](https://github.com/gavinhoward)
-
-## Fixes
-
-### Templates
-
-* Fix merge vs Params [1b785a7a](https://github.com/gohugoio/hugo/commit/1b785a7a6d3c264e39e4976c59b618c0ac1ba5f9) [@bep](https://github.com/bep) [#6633](https://github.com/gohugoio/hugo/issues/6633)
-
-### Core
-
-* Fix test [3c24ae03](https://github.com/gohugoio/hugo/commit/3c24ae030fe08ba259dd3de7ffea6c927c01e070) [@bep](https://github.com/bep)
-
-### Other
-
-* Fix abs path handling in module mounts [ad6504e6](https://github.com/gohugoio/hugo/commit/ad6504e6b504277bbc7b60d093cdccd4f3baaa4f) [@bep](https://github.com/bep) [#6622](https://github.com/gohugoio/hugo/issues/6622)
-* Fix incorrect MIME type from image/jpg to image/jpeg [158e7ec2](https://github.com/gohugoio/hugo/commit/158e7ec204e5149d77893d353cac9f55946d3e9a) [@zaitseff](https://github.com/zaitseff)
-
-
-
-
-
diff --git a/docs/content/en/news/0.62.1-relnotes/index.md b/docs/content/en/news/0.62.1-relnotes/index.md
deleted file mode 100644
index 98fe5eb5b12..00000000000
--- a/docs/content/en/news/0.62.1-relnotes/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-date: 2020-01-01
-title: "Hugo 0.62.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.62.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
----
-
-This release is mainly motivated by getting [this demo site](https://github.com/bep/portable-hugo-links) up and running. It demonstrates truly portable Markdown links and images, whether browsed on GitHub or deployed as a Hugo site.
-
-* Support files in content mounts [ff6253bc](https://github.com/gohugoio/hugo/commit/ff6253bc7cf745e9c0127ddc9006da3c2c00c738) [@bep](https://github.com/bep) [#6684](https://github.com/gohugoio/hugo/issues/6684)[#6696](https://github.com/gohugoio/hugo/issues/6696)
-* Update alpine base image in Dockerfile to 3.11 [aa4ccb8a](https://github.com/gohugoio/hugo/commit/aa4ccb8a1e9b8aa17397acf34049a2aa16b0b6cb) [@RemcodM](https://github.com/RemcodM)
-* hugolib: Fix inline shortcode regression [5509954c](https://github.com/gohugoio/hugo/commit/5509954c7e8b0ce8d5ea903b0ab639ea14b69acb) [@bep](https://github.com/bep) [#6677](https://github.com/gohugoio/hugo/issues/6677)
-
-
-
diff --git a/docs/content/en/news/0.62.2-relnotes/index.md b/docs/content/en/news/0.62.2-relnotes/index.md
deleted file mode 100644
index 0d116e5a295..00000000000
--- a/docs/content/en/news/0.62.2-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2020-01-05
-title: "Hugo 0.62.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.62.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-The main driving force behind these patch releases in the new year has been getting a good story with [portable links](https://github.com/bep/portable-hugo-links/) between GitHub and Hugo, using the new render hooks introduced in [Hugo 0.62.0](https://gohugo.io/news/0.62.0-relnotes/). And all was mostly well until a Hugo user asked about anchor links. Which is, when you look into it, a slightly sad Markdown story. They have been [talking about anchors in Markdown](https://talk.commonmark.org/t/anchors-in-markdown/247) over at the CommonMark forum for the last six years, but it has come to nothing. The current situation is that some Markdown engines support the `{#anchorName}` attribute syntax (Hugo's Goldmark does, GitHub does not) and for those that support auto-generation of IDs, the implementation often varies. And this makes for poor portability.
-
-To improve this, Hugo has now reverse-engineered GitHub's implementation and made that the default strategy for generation or header IDs. We understand that this isn't everyone's cup of tea, so you can [configure the behaviour](https://gohugo.io/getting-started/configuration-markup#goldmark) to be one of `github`, `github-ascii` (some client-libraries have Unicode issues) or `blackfriday` (which will match how it behaved before Hugo 0.60).
-
-* hugolib: Fix relative .Page.GetPage from bundle [196a9df5](https://github.com/gohugoio/hugo/commit/196a9df585c4744e3280f37c1c24e469fce14b8c) [@bep](https://github.com/bep) [#6705](https://github.com/gohugoio/hugo/issues/6705)
-* markup/goldmark: Adjust auto ID space handling [9b6e6146](https://github.com/gohugoio/hugo/commit/9b6e61464b09ffe3423fb8d7c72bddb7a9ed5b98) [@bep](https://github.com/bep) [#6710](https://github.com/gohugoio/hugo/issues/6710)
-* docs: Document the new autoHeadingIDType setting [d62ede8e](https://github.com/gohugoio/hugo/commit/d62ede8e9e5883e7ebb023e49b82f07b45edc1c7) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)[#6616](https://github.com/gohugoio/hugo/issues/6616)
-* docs: Regenerate docshelper [81b7e48a](https://github.com/gohugoio/hugo/commit/81b7e48a55092203aeee8785799e6fed3928760e) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)[#6616](https://github.com/gohugoio/hugo/issues/6616)
-* markup/goldmark: Add an optional Blackfriday auto ID strategy [16e7c112](https://github.com/gohugoio/hugo/commit/16e7c1120346bd853cf6510ffac8e94824bf2c7f) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)
-* markup/goldmark: Make the autoID type config a string [8f071fc1](https://github.com/gohugoio/hugo/commit/8f071fc159ce9a0fc0ea14a73bde8f299bedd109) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)
-* markup/goldmark: Simplify code [5ee1f087](https://github.com/gohugoio/hugo/commit/5ee1f0876f3ec8b79d6305298185dc821ead2d28) [@bep](https://github.com/bep)
-* markup/goldmark: Make auto IDs GitHub compatible [a82d2700](https://github.com/gohugoio/hugo/commit/a82d2700fcc772aada15d65b8f76913ca23f7404) [@bep](https://github.com/bep) [#6616](https://github.com/gohugoio/hugo/issues/6616)
-
-
-
diff --git a/docs/content/en/news/0.63.0-relnotes/featured-063.png b/docs/content/en/news/0.63.0-relnotes/featured-063.png
deleted file mode 100644
index 3944d52ccaf..00000000000
Binary files a/docs/content/en/news/0.63.0-relnotes/featured-063.png and /dev/null differ
diff --git a/docs/content/en/news/0.63.0-relnotes/index.md b/docs/content/en/news/0.63.0-relnotes/index.md
deleted file mode 100644
index 899dfdb39d0..00000000000
--- a/docs/content/en/news/0.63.0-relnotes/index.md
+++ /dev/null
@@ -1,126 +0,0 @@
-
----
-date: 2020-01-23
-title: "Improved base templates, and faster!"
-description: "In Hugo 0.63 we have improved the base template lookup logic, and this simplification also made Hugo faster …"
-categories: ["Releases"]
----
-
-**Note:** There is already a [patch release](/news/0.63.1-relnotes/) with some fixes.
-
-Hugo `0.63` is, in general, **considerably faster and more memory effective** (see the site-building benchmarks below comparing it to `v0.62`). Not that we are particularly concerned about Hugo's build speed. We leave that to others. But we would hate if it got slower, so we have a comprehensive benchmark suite. And when we needed to simplify the template handling code to solve a concurrency issue, it also became more effective. And as a bonus, we also finally got the [base template lookup order](https://gohugo.io/templates/base/#base-template-lookup-order) that you really, really wanted!
-
-```bash
-name old time/op new time/op delta
-SiteNew/Bundle_with_image-16 13.2ms ± 2% 10.7ms ± 0% -19.13% (p=0.029 n=4+4)
-SiteNew/Bundle_with_JSON_file-16 13.1ms ± 0% 10.8ms ± 0% -17.50% (p=0.029 n=4+4)
-SiteNew/Tags_and_categories-16 47.7ms ± 1% 43.7ms ± 2% -8.43% (p=0.029 n=4+4)
-SiteNew/Canonify_URLs-16 52.3ms ± 6% 49.5ms ± 7% ~ (p=0.200 n=4+4)
-SiteNew/Deep_content_tree-16 77.7ms ± 0% 71.6ms ± 1% -7.84% (p=0.029 n=4+4)
-SiteNew/Many_HTML_templates-16 44.0ms ± 2% 37.5ms ± 1% -14.79% (p=0.029 n=4+4)
-SiteNew/Page_collections-16 58.4ms ± 1% 52.5ms ± 1% -10.09% (p=0.029 n=4+4)
-
-name old alloc/op new alloc/op delta
-SiteNew/Bundle_with_image-16 3.81MB ± 0% 2.22MB ± 0% -41.57% (p=0.029 n=4+4)
-SiteNew/Bundle_with_JSON_file-16 3.60MB ± 0% 2.01MB ± 0% -44.09% (p=0.029 n=4+4)
-SiteNew/Tags_and_categories-16 19.3MB ± 1% 14.2MB ± 0% -26.52% (p=0.029 n=4+4)
-SiteNew/Canonify_URLs-16 70.7MB ± 0% 69.0MB ± 0% -2.30% (p=0.029 n=4+4)
-SiteNew/Deep_content_tree-16 37.0MB ± 0% 31.2MB ± 0% -15.78% (p=0.029 n=4+4)
-SiteNew/Many_HTML_templates-16 17.5MB ± 0% 10.6MB ± 0% -39.68% (p=0.029 n=4+4)
-SiteNew/Page_collections-16 25.8MB ± 0% 21.2MB ± 0% -17.80% (p=0.029 n=4+4)
-
-name old allocs/op new allocs/op delta
-SiteNew/Bundle_with_image-16 52.3k ± 0% 26.1k ± 0% -50.08% (p=0.029 n=4+4)
-SiteNew/Bundle_with_JSON_file-16 52.3k ± 0% 26.1k ± 0% -50.06% (p=0.029 n=4+4)
-SiteNew/Tags_and_categories-16 337k ± 1% 272k ± 0% -19.20% (p=0.029 n=4+4)
-SiteNew/Canonify_URLs-16 422k ± 0% 395k ± 0% -6.33% (p=0.029 n=4+4)
-SiteNew/Deep_content_tree-16 400k ± 0% 314k ± 0% -21.41% (p=0.029 n=4+4)
-SiteNew/Many_HTML_templates-16 247k ± 0% 143k ± 0% -41.84% (p=0.029 n=4+4)
-SiteNew/Page_collections-16 282k ± 0% 207k ± 0% -26.31% (p=0.029 n=4+4)
-```
-
-This release represents **35 contributions by 9 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 [@hcwong](https://github.com/hcwong), [@flother](https://github.com/flother), and [@RemcodM](https://github.com/RemcodM) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 10 contributors**. A special thanks to [@bep](https://github.com/bep), [@jeffscottlevine](https://github.com/jeffscottlevine), [@davidsneighbour](https://github.com/davidsneighbour), and [@nicfits](https://github.com/nicfits) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 41091+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 440+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 286+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* `.Type` on-page now returns an empty string if not set in the front matter or if `.Section` returns empty. See [#6760](https://github.com/gohugoio/hugo/issues/6760).
-* Baseof template (e.g. `baseof.html`) lookup order is completely revised/expanded. See [base template lookup order](https://gohugo.io/templates/base/#base-template-lookup-order). We now do template resolution at execution time following the same rules as the template it applies to (e.g. `_default/single.html`). This is an obvious improvement and your site should work as before.
-* Shortcode params now supports params with raw string literals (strings surrounded with \`\`) that supports newlines.
-* Note: In a base template (e.g. `baseof.html`), the first template block must be a `define`.
-
-## Enhancements
-
-### Templates
-
-* Rework template management to get rid of concurrency issues [c6d650c8](https://github.com/gohugoio/hugo/commit/c6d650c8c8b22fdc7ddedc1e42a3ca698e1390d6) [@bep](https://github.com/bep) [#6716](https://github.com/gohugoio/hugo/issues/6716)[#6760](https://github.com/gohugoio/hugo/issues/6760)[#6768](https://github.com/gohugoio/hugo/issues/6768)[#6778](https://github.com/gohugoio/hugo/issues/6778)
-* Put Go's internal template funcs in Hugo's map [1cf23541](https://github.com/gohugoio/hugo/commit/1cf235412f98b42aefe368e99a0e9e95bae6eef7) [@bep](https://github.com/bep) [#6717](https://github.com/gohugoio/hugo/issues/6717)
-
-### Output
-
-* Add base template lookup variant to docs.json [cafb1d53](https://github.com/gohugoio/hugo/commit/cafb1d53c0927e2aef8abff1bf9095c90c6f3067) [@bep](https://github.com/bep)
-
-### Core
-
-* Disable a test assertion on ARM [836c2426](https://github.com/gohugoio/hugo/commit/836c24261f9f175254256fb326d92a3db47e1c75) [@bep](https://github.com/bep) [#6655](https://github.com/gohugoio/hugo/issues/6655)
-* Some more benchmark adjustments [ddd75f21](https://github.com/gohugoio/hugo/commit/ddd75f212110a3d6643a07301e377415f3d163bd) [@bep](https://github.com/bep)
-* Adjust site benchmarks [4ed6ebef](https://github.com/gohugoio/hugo/commit/4ed6ebef4ca71572a19bb890cb4c026a688b2b5b) [@bep](https://github.com/bep)
-* Add a benchmark with lots of templates [ea05c0e8](https://github.com/gohugoio/hugo/commit/ea05c0e8456e8dec71ffd796148355b0d8b36eb0) [@bep](https://github.com/bep)
-
-### Other
-
-* Regen docs helper [4f466db6](https://github.com/gohugoio/hugo/commit/4f466db666dded1b6c6d1e6926e170f22164433a) [@bep](https://github.com/bep)
-* Allow multiple arguments in ne/ge/gt/le/lt functions Treat op arg1 arg2 arg3 ... as (arg1 op arg2) && (arg1 op arg3) and so on for ne/ge/gt/le/lt. [0c251be6](https://github.com/gohugoio/hugo/commit/0c251be66bf3ad4abafbc47583e394ca4e6ffcf1) [@le0tan](https://github.com/le0tan) [#6619](https://github.com/gohugoio/hugo/issues/6619)
-* Update go-org [8585b388](https://github.com/gohugoio/hugo/commit/8585b388d27abde1ab6b6c63ad6addf4066ec8dd) [@niklasfasching](https://github.com/niklasfasching)
-* Add support for newline characters in raw string shortcode [21ca2e9c](https://github.com/gohugoio/hugo/commit/21ca2e9ce4255bfad2bb0576aff087a240acf70a) [@hcwong](https://github.com/hcwong)
-* Update github.com/alecthomas/chroma [3efa1d81](https://github.com/gohugoio/hugo/commit/3efa1d81219a6e7b41c9676e9cab446741f69055) [@ghislainbourgeois](https://github.com/ghislainbourgeois)
-* Update minify to v2.7.2 [65ec8fe8](https://github.com/gohugoio/hugo/commit/65ec8fe827efef5a14c4e1bc440a6df97d2f20a2) [@bep](https://github.com/bep) [#6756](https://github.com/gohugoio/hugo/issues/6756)
-* Update Goldmark to v1.1.21 [d3e8ab2e](https://github.com/gohugoio/hugo/commit/d3e8ab2e39dcc27853b163079f4a82364286fe82) [@flother](https://github.com/flother) [#6571](https://github.com/gohugoio/hugo/issues/6571)
-* Allow raw string literals in shortcode params [da814556](https://github.com/gohugoio/hugo/commit/da814556567eab9ba0ac5fef5314c3ad5ee50ccd) [@hcwong](https://github.com/hcwong)
-* Update github.com/gohugoio/testmodBuilder [0c0bb372](https://github.com/gohugoio/hugo/commit/0c0bb372858b5de58c15ccd300144e0bc205ffad) [@bep](https://github.com/bep)
-* Update direct dependencies [94cfdf6b](https://github.com/gohugoio/hugo/commit/94cfdf6befd657e46c9458b23f17d851cd2f7037) [@bep](https://github.com/bep) [#6719](https://github.com/gohugoio/hugo/issues/6719)
-* Update to new CSS config [45138017](https://github.com/gohugoio/hugo/commit/451380177868e48127a33362aa8d553b90516fb5) [@bep](https://github.com/bep) [#6719](https://github.com/gohugoio/hugo/issues/6719)
-* Update to Minify v2.7.0 [56354a63](https://github.com/gohugoio/hugo/commit/56354a63bb73271224a9300a4742dc1a2f551202) [@bep](https://github.com/bep)
-* Add support for freebsd/arm64 [aead8108](https://github.com/gohugoio/hugo/commit/aead8108b80d77e23c68a47fd8d86464310130be) [@dmgk](https://github.com/dmgk) [#6719](https://github.com/gohugoio/hugo/issues/6719)
-* Update releasenotes_writer.go [df6e9efd](https://github.com/gohugoio/hugo/commit/df6e9efd8f345707932231ea23dc8713afb5b026) [@bep](https://github.com/bep)
-* Adjust auto ID space handling [9b6e6146](https://github.com/gohugoio/hugo/commit/9b6e61464b09ffe3423fb8d7c72bddb7a9ed5b98) [@bep](https://github.com/bep) [#6710](https://github.com/gohugoio/hugo/issues/6710)
-* Document the new autoHeadingIDType setting [d62ede8e](https://github.com/gohugoio/hugo/commit/d62ede8e9e5883e7ebb023e49b82f07b45edc1c7) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)[#6616](https://github.com/gohugoio/hugo/issues/6616)
-* Regenerate docshelper [81b7e48a](https://github.com/gohugoio/hugo/commit/81b7e48a55092203aeee8785799e6fed3928760e) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)[#6616](https://github.com/gohugoio/hugo/issues/6616)
-* Add an optional Blackfriday auto ID strategy [16e7c112](https://github.com/gohugoio/hugo/commit/16e7c1120346bd853cf6510ffac8e94824bf2c7f) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)
-* Make the autoID type config a string [8f071fc1](https://github.com/gohugoio/hugo/commit/8f071fc159ce9a0fc0ea14a73bde8f299bedd109) [@bep](https://github.com/bep) [#6707](https://github.com/gohugoio/hugo/issues/6707)
-* markup/goldmark: Simplify code [5ee1f087](https://github.com/gohugoio/hugo/commit/5ee1f0876f3ec8b79d6305298185dc821ead2d28) [@bep](https://github.com/bep)
-* Make auto IDs GitHub compatible [a82d2700](https://github.com/gohugoio/hugo/commit/a82d2700fcc772aada15d65b8f76913ca23f7404) [@bep](https://github.com/bep) [#6616](https://github.com/gohugoio/hugo/issues/6616)
-* Support files in content mounts [ff6253bc](https://github.com/gohugoio/hugo/commit/ff6253bc7cf745e9c0127ddc9006da3c2c00c738) [@bep](https://github.com/bep) [#6684](https://github.com/gohugoio/hugo/issues/6684)[#6696](https://github.com/gohugoio/hugo/issues/6696)
-* Update alpine base image in Dockerfile to 3.11 [aa4ccb8a](https://github.com/gohugoio/hugo/commit/aa4ccb8a1e9b8aa17397acf34049a2aa16b0b6cb) [@RemcodM](https://github.com/RemcodM)
-
-## Fixes
-
-### Templates
-
-* Fix eq when > 2 args [2fefc016](https://github.com/gohugoio/hugo/commit/2fefc01606fddb119f368c89fb2dedd452ad6547) [@bep](https://github.com/bep) [#6786](https://github.com/gohugoio/hugo/issues/6786)
-
-### Core
-
-* Fix relative .Page.GetPage from bundle [196a9df5](https://github.com/gohugoio/hugo/commit/196a9df585c4744e3280f37c1c24e469fce14b8c) [@bep](https://github.com/bep) [#6705](https://github.com/gohugoio/hugo/issues/6705)
-* Fix inline shortcode regression [5509954c](https://github.com/gohugoio/hugo/commit/5509954c7e8b0ce8d5ea903b0ab639ea14b69acb) [@bep](https://github.com/bep) [#6677](https://github.com/gohugoio/hugo/issues/6677)
-
-### Other
-
-* Fix 0.62.1 server rebuild slowdown regression [17af79a0](https://github.com/gohugoio/hugo/commit/17af79a03e249a731cf5634ffea23ca00774333d) [@bep](https://github.com/bep) [#6784](https://github.com/gohugoio/hugo/issues/6784)
-* Fix blog not building [d61bee5e](https://github.com/gohugoio/hugo/commit/d61bee5e0916b5d2b388e66ef85c336312a21a06) [@colonelpopcorn](https://github.com/colonelpopcorn) [#6752](https://github.com/gohugoio/hugo/issues/6752)
-
-
-
-
-
diff --git a/docs/content/en/news/0.63.1-relnotes/index.md b/docs/content/en/news/0.63.1-relnotes/index.md
deleted file mode 100644
index e6ae8b90615..00000000000
--- a/docs/content/en/news/0.63.1-relnotes/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
-
----
-date: 2020-01-23
-title: "Hugo 0.63.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.63.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with a couple of important fixes.
-
-* deps: Make the build flags shared between sites [0df7bd62](https://github.com/gohugoio/hugo/commit/0df7bd62df460a49544845d5332f33b2020b48a1) [@bep](https://github.com/bep) [#6789](https://github.com/gohugoio/hugo/issues/6789)
-* Fix baseof with regular define regression [f441f675](https://github.com/gohugoio/hugo/commit/f441f675126ef1123d9f94429872dd683b40e011) [@bep](https://github.com/bep) [#6790](https://github.com/gohugoio/hugo/issues/6790)
-* Revert to minify [v2.61](https://github.com/gohugoio/hugo/commit/7ed22e9fb6a5b74c52ae6054b843b8c64e83f4b6)
-
diff --git a/docs/content/en/news/0.63.2-relnotes/index.md b/docs/content/en/news/0.63.2-relnotes/index.md
deleted file mode 100644
index 8477ef02c0c..00000000000
--- a/docs/content/en/news/0.63.2-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2020-01-27
-title: "Hugo 0.63.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.63.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* And now finally fix the 404 templates [74b6c4e5](https://github.com/gohugoio/hugo/commit/74b6c4e5ff5ee16f0e6b352a26c1e58b90a25dc6) [@bep](https://github.com/bep) [#6795](https://github.com/gohugoio/hugo/issues/6795)
-* Fix 404 with base template regression [8df5d76e](https://github.com/gohugoio/hugo/commit/8df5d76e708238563185bac84809b34a4d395734) [@bep](https://github.com/bep) [#6795](https://github.com/gohugoio/hugo/issues/6795)
-* Revert to .Type = "page" when empty [#6805](https://github.com/gohugoio/hugo/issues/6805)
-
-
diff --git a/docs/content/en/news/0.64.0-relnotes/hugo-64-poster-featured.png b/docs/content/en/news/0.64.0-relnotes/hugo-64-poster-featured.png
deleted file mode 100644
index 71861bad8fc..00000000000
Binary files a/docs/content/en/news/0.64.0-relnotes/hugo-64-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.64.0-relnotes/index.md b/docs/content/en/news/0.64.0-relnotes/index.md
deleted file mode 100644
index e03dc8f548b..00000000000
--- a/docs/content/en/news/0.64.0-relnotes/index.md
+++ /dev/null
@@ -1,54 +0,0 @@
-
----
-date: 2020-02-04
-title: "Mostly bugfixes …"
-description: "Hugo 0.64.0 is the version you really really want …"
-categories: ["Releases"]
----
-
-Hugo **0.64.0** is mostly a bugfix-release, but well worth the download. The main reason this release comes so soon after the previous is my (me being [@bep](https://github.com/bep)) ongoing work on getting solid support for third-party libraries in [Hugo Modules](https://gohugo.io/hugo-modules/). In particular, this release makes the Hugo server's live-reload work with [Turbolinks](https://github.com/bep/hugo-alpine-test/blob/27927832630be588eab0be2197cc8c0cb5725540/config.toml#L11) and similar. Also worth mentioning is that `hugo mod get -u` (without any path) now correctly updates every module imported in `config.toml` even with Go 1.13.
-
-This release represents **16 contributions by 2 contributors** to the main Hugo code base.
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **6 contributions by 4 contributors**. A special thanks to [@bep](https://github.com/bep), [@peterkappus](https://github.com/peterkappus), [@kc0bfv](https://github.com/kc0bfv), and [@inwardmovement](https://github.com/inwardmovement) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 41348+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 289+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Output
-
-* Do not render alias paginator pages for non-HTML outputs [2d159e9c](https://github.com/gohugoio/hugo/commit/2d159e9cc7a25832e4b0cad226b149f7c4624708) [@bep](https://github.com/bep) [#6797](https://github.com/gohugoio/hugo/issues/6797)
-
-### Other
-
-* Mention a "no CGO rule" [29973101](https://github.com/gohugoio/hugo/commit/299731012441378bb9c057ceb0a3c277108aaf01) [@bep](https://github.com/bep) [#6842](https://github.com/gohugoio/hugo/issues/6842)
-* Update to Go 1.13.7 and Go 1.12.16 [0792cfa9](https://github.com/gohugoio/hugo/commit/0792cfa9fae94a06a31e393a46fed3b1dd73b66a) [@bep](https://github.com/bep) [#6830](https://github.com/gohugoio/hugo/issues/6830)
-* Add defer to livereload script tag [b3f0674b](https://github.com/gohugoio/hugo/commit/b3f0674b80a32425aeb4412f318c720391bbf773) [@bep](https://github.com/bep)
-* Don't use document.write to inject livereload [ef78a0d1](https://github.com/gohugoio/hugo/commit/ef78a0d18a13098bcea1ff2b2d45d7388b8d41a0) [@bep](https://github.com/bep) [#6507](https://github.com/gohugoio/hugo/issues/6507)
-* Add a render hook whitespace test [58595864](https://github.com/gohugoio/hugo/commit/585958645372e6219239247dbac02e447d2b355b) [@bep](https://github.com/bep) [#6832](https://github.com/gohugoio/hugo/issues/6832)
-* Inject livereload script right after head if possible [8f08cdd0](https://github.com/gohugoio/hugo/commit/8f08cdd0ac6a2decd5aa5c9c12c0b2c264f9a989) [@bep](https://github.com/bep) [#6821](https://github.com/gohugoio/hugo/issues/6821)
-* Update goldmark to v1.1.22 [281abb18](https://github.com/gohugoio/hugo/commit/281abb18ee39fa2b5d4782b64f27cffcbf4e0240) [@bhavin192](https://github.com/bhavin192)
-* Make the build flags shared between sites [0df7bd62](https://github.com/gohugoio/hugo/commit/0df7bd62df460a49544845d5332f33b2020b48a1) [@bep](https://github.com/bep) [#6789](https://github.com/gohugoio/hugo/issues/6789)
-
-## Fixes
-
-### Other
-
-* Fix module mount in sub folder [80dd6ddd](https://github.com/gohugoio/hugo/commit/80dd6ddde27ce36f5432fb780e94d4974b5277c7) [@bep](https://github.com/bep) [#6730](https://github.com/gohugoio/hugo/issues/6730)
-* Fix config environment handling [2bbc865f](https://github.com/gohugoio/hugo/commit/2bbc865f7bb713b2d0d2dbb02b90ae2621ad5367) [@bep](https://github.com/bep) [#6503](https://github.com/gohugoio/hugo/issues/6503)[#6824](https://github.com/gohugoio/hugo/issues/6824)
-* Fix base template handling with preceding comments [f45cb317](https://github.com/gohugoio/hugo/commit/f45cb3172862140883cfa08bd401c17e1ada5b39) [@bep](https://github.com/bep) [#6816](https://github.com/gohugoio/hugo/issues/6816)
-* Fix "hugo mod get -u" with no arguments [49ef6472](https://github.com/gohugoio/hugo/commit/49ef6472039ede7d485242eba511207a8274495a) [@bep](https://github.com/bep) [#6826](https://github.com/gohugoio/hugo/issues/6826)[#6825](https://github.com/gohugoio/hugo/issues/6825)
-* And now finally fix the 404 templates [74b6c4e5](https://github.com/gohugoio/hugo/commit/74b6c4e5ff5ee16f0e6b352a26c1e58b90a25dc6) [@bep](https://github.com/bep) [#6795](https://github.com/gohugoio/hugo/issues/6795)
-* Fix 404 with base template regression [8df5d76e](https://github.com/gohugoio/hugo/commit/8df5d76e708238563185bac84809b34a4d395734) [@bep](https://github.com/bep) [#6795](https://github.com/gohugoio/hugo/issues/6795)
-* Fix baseof with regular define regression [f441f675](https://github.com/gohugoio/hugo/commit/f441f675126ef1123d9f94429872dd683b40e011) [@bep](https://github.com/bep) [#6790](https://github.com/gohugoio/hugo/issues/6790)
-
-
-
-
-
diff --git a/docs/content/en/news/0.64.1-relnotes/index.md b/docs/content/en/news/0.64.1-relnotes/index.md
deleted file mode 100644
index 4dbcab6701e..00000000000
--- a/docs/content/en/news/0.64.1-relnotes/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
-
----
-date: 2020-02-09
-title: "Hugo 0.64.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.64.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* hugofs: Fix mount with hole regression [b78576fd](https://github.com/gohugoio/hugo/commit/b78576fd38a76bbdaab5ad21228c8e5a559090b1) [@bep](https://github.com/bep) [#6854](https://github.com/gohugoio/hugo/issues/6854)
-* Fix bundle resource ordering regression [18888e09](https://github.com/gohugoio/hugo/commit/18888e09bbb5325bdd63f2cd93116ff490dd37ab) [@bep](https://github.com/bep) [#6851](https://github.com/gohugoio/hugo/issues/6851)
-* CONTRIBUTING: Fix note about CGO [7f0ebd4a](https://github.com/gohugoio/hugo/commit/7f0ebd4a3c9e016afddc2cf5e7dfe6a820aa099a) [@moorereason](https://github.com/moorereason)
-* Update Go version requirement [23ea4318](https://github.com/gohugoio/hugo/commit/23ea43180b84e35d99e88083a83e7ca1916b3b36) [@bep](https://github.com/bep) [#6853](https://github.com/gohugoio/hugo/issues/6853)
-
-
-
diff --git a/docs/content/en/news/0.65.0-relnotes/hugo-65-poster-featured.png b/docs/content/en/news/0.65.0-relnotes/hugo-65-poster-featured.png
deleted file mode 100644
index a311df0cb1b..00000000000
Binary files a/docs/content/en/news/0.65.0-relnotes/hugo-65-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.65.0-relnotes/index.md b/docs/content/en/news/0.65.0-relnotes/index.md
deleted file mode 100644
index 1a2edb90723..00000000000
--- a/docs/content/en/news/0.65.0-relnotes/index.md
+++ /dev/null
@@ -1,141 +0,0 @@
-
----
-date: 2020-02-20
-title: "0.65.0: Hugo Reloaded!"
-description: "Draft, expire, resource bundling, and fine grained publishing control for any page. And it's faster."
-categories: ["Releases"]
----
-
-**Hugo 0.65** generalizes how a page is packaged and published to be applicable to **any page**. This should solve some of the most common issues we see people ask and talk about on the [issue tracker](https://github.com/gohugoio/hugo/issues) and on the [forum](https://discourse.gohugo.io/).
-
-## Release Highlights
-
-### New in Hugo Core
-
-Any [branch node](https://gohugo.io/content-management/page-bundles/#branch-bundles) can now bundle resources (images, data files etc.), even the taxonomy nodes (e.g. /categories).
-
-List pages (sections and the home page) can now be added to taxonomies.
-
-The front matter fields that control when and if to publish a piece of content (`draft`, `publishDate`, `expiryDate`) now also works for list pages, and is recursive.
-
-We have added a new `_build` front matter keyword to provide fine-grained control over page publishing. The default values:
-
-```yaml
-_build:
- # Whether to add it to any of the page collections.
- # Note that the page can still be found with .Site.GetPage.
- list: true
-
- # Whether to render it.
- render: true
-
- # Whether to publish its resources. These will still be published on demand,
- # but enabling this can be useful if the originals (e.g. images) are
- # never used.
- publishResources: true
-```
-
-Note that all front matter keywords can be set in the [cascade](https://gohugo.io/content-management/front-matter#front-matter-cascade) on a branch node, which would be especially useful for `_build`.
-
-We have also upgraded to the latest LibSass (v3.6.3). Nothing remarkable functional new here, but it makes Hugo ready for the upcoming [Dart Backport](https://github.com/sass/libsass/pull/2918).
-
-And finally, we have added a `GetTerms` method on `Page`, making listing the terms defined on this page in the given taxonomy much simpler:
-
-```go-html-template
-
- {{ range (.GetTerms "tags") }}
-
-```
-
-### New in Hugo Modules
-
-There are several improvements to the tooling used in [Hugo Modules](https://gohugo.io/hugo-modules/). One bug fix, but also some improvements to make it easier to manage:
-
-* You can now recursively update your modules with `hugo mod get -u ./...`
-* `hugo mod clean` will now only clean the cache for the current project and now also takes an optional module path pattern, e.g. `hugo mod clean --pattern "github.com/**"`
-* A new command `hugo mod verify` is added to verify that the module cache matches the hashes in `go.sum`. Run with `hugo mod verify --clean` to delete any modules that fail this check.
-
-See [hugo mod](https://gohugo.io/commands/hugo_mod/#see-also).
-
-### Performance
-
-The new features listed above required a structural simplification, and we do watch our weight when doing this. And the benchmarks show that Hugo should, in general, be slightly faster. This is especially true if you're using taxonomies, and the partial rebuilding on content changes should be considerably faster.
-
-## Numbers
-
-This release represents **34 contributions by 6 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 [@satotake](https://github.com/satotake), [@QuLogic](https://github.com/QuLogic), and [@JaymoKang](https://github.com/JaymoKang) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **7 contributions by 4 contributors**. A special thanks to [@coliff](https://github.com/coliff), [@bep](https://github.com/bep), [@tibnew](https://github.com/tibnew), and [@nerg4l](https://github.com/nerg4l) for their work on the documentation site.
-
-Hugo now has:
-
-* 41724+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 299+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* `.GetPage "members.md"` (the Page method) will now only do relative lookups, which is what most people would expect.
-* There have been a slight change of how disableKinds for regular pages: They will not be rendered on its own, but will be added to the site collections.
-
-## Enhancements
-
-### Templates
-
-* Adjust the RSS taxonomy logic [d73e3738](https://github.com/gohugoio/hugo/commit/d73e37387ca0012bd58bd3f36a0477854b41ab6e) [@bep](https://github.com/bep) [#6909](https://github.com/gohugoio/hugo/issues/6909)
-
-### Output
-
-* Handle disabled RSS even if it's defined in outputs [da54787c](https://github.com/gohugoio/hugo/commit/da54787cfa97789624e467a4451dfeb50f563e41) [@bep](https://github.com/bep)
-
-### Other
-
-* Regenerate CLI docs [a5ebdf7d](https://github.com/gohugoio/hugo/commit/a5ebdf7d17e6c6a9dc686cf8f7cd8e0a1bab5f2d) [@bep](https://github.com/bep)
-* Improve "hugo mod clean" [dce210ab](https://github.com/gohugoio/hugo/commit/dce210ab56fc885818fc5d1a084a1c3ba84e7929) [@bep](https://github.com/bep) [#6907](https://github.com/gohugoio/hugo/issues/6907)
-* Add "hugo mod verify" [0b96aba0](https://github.com/gohugoio/hugo/commit/0b96aba022d51cf9939605c029bb8dba806653a1) [@bep](https://github.com/bep) [#6907](https://github.com/gohugoio/hugo/issues/6907)
-* Add Page.GetTerms [fa520a2d](https://github.com/gohugoio/hugo/commit/fa520a2d983b982394ad10088393fb303e48980a) [@bep](https://github.com/bep) [#6905](https://github.com/gohugoio/hugo/issues/6905)
-* Add a list terms benchmark [7489a864](https://github.com/gohugoio/hugo/commit/7489a864591b6df03f435f40696c6ceeb4776ec9) [@bep](https://github.com/bep) [#6905](https://github.com/gohugoio/hugo/issues/6905)
-* Use the tree for taxonomy.Pages() [b2dcd53e](https://github.com/gohugoio/hugo/commit/b2dcd53e3c0240c4afd21d1818fd180c2d1b9d34) [@bep](https://github.com/bep)
-* Add some cagegories to the site collections benchmarks [36983e61](https://github.com/gohugoio/hugo/commit/36983e6189a717f1d4d1da6652621d7f8fe186ad) [@bep](https://github.com/bep)
-* Do not try to get local themes in "hugo mod get" [20f2211f](https://github.com/gohugoio/hugo/commit/20f2211fce55e1811629245f9e5e4a2ac754d788) [@bep](https://github.com/bep) [#6893](https://github.com/gohugoio/hugo/issues/6893)
-* Update goldmark-highlighting [a21a9373](https://github.com/gohugoio/hugo/commit/a21a9373e06091ab70d8a5f4da8ff43f7c609b4b) [@satotake](https://github.com/satotake)
-* Support "hugo mod get -u ./..." [775c7c24](https://github.com/gohugoio/hugo/commit/775c7c2474d8797c96c9ac529a3cd93c0c2d3514) [@bep](https://github.com/bep) [#6828](https://github.com/gohugoio/hugo/issues/6828)
-* Introduce a tree map for all content [eada236f](https://github.com/gohugoio/hugo/commit/eada236f87d9669885da1ff647672bb3dc6b4954) [@bep](https://github.com/bep) [#6312](https://github.com/gohugoio/hugo/issues/6312)[#6087](https://github.com/gohugoio/hugo/issues/6087)[#6738](https://github.com/gohugoio/hugo/issues/6738)[#6412](https://github.com/gohugoio/hugo/issues/6412)[#6743](https://github.com/gohugoio/hugo/issues/6743)[#6875](https://github.com/gohugoio/hugo/issues/6875)[#6034](https://github.com/gohugoio/hugo/issues/6034)[#6902](https://github.com/gohugoio/hugo/issues/6902)[#6173](https://github.com/gohugoio/hugo/issues/6173)[#6590](https://github.com/gohugoio/hugo/issues/6590)
-* Another benchmark rename [e5329f13](https://github.com/gohugoio/hugo/commit/e5329f13c02b87f0c30f8837759c810cd90ff8da) [@bep](https://github.com/bep)
-* Rename the Edit benchmarks [5b145ddc](https://github.com/gohugoio/hugo/commit/5b145ddc4c951a827e1ac00444dc4719e53e0885) [@bep](https://github.com/bep)
-* Refactor a benchmark to make it runnable as test [54bdcaac](https://github.com/gohugoio/hugo/commit/54bdcaacaedec178554e696f34647801bbe61362) [@bep](https://github.com/bep)
-* Add benchmark for content edits [1622510a](https://github.com/gohugoio/hugo/commit/1622510a5c651b59a79f64e9dc3cacd24832ec0b) [@bep](https://github.com/bep)
-* Add "go mod verify" to build scripts [56d0b658](https://github.com/gohugoio/hugo/commit/56d0b658879bbf476810d013176d6568553aa71e) [@bep](https://github.com/bep)
-* Add git to Dockerfile [75c3787f](https://github.com/gohugoio/hugo/commit/75c3787fc254d933fa11e5c39d978bfa1a21a371) [@JaymoKang](https://github.com/JaymoKang)
-* Update go.sum [9babb1f0](https://github.com/gohugoio/hugo/commit/9babb1f0c4fca048b0339f6ce3618f88d34e0457) [@bep](https://github.com/bep)
-* Rename doWithCommandeer to cfgInit/cfgSetAndInit [8a5124d6](https://github.com/gohugoio/hugo/commit/8a5124d6b38156cb6f765ac7492513ac7c0d90b2) [@MarkRosemaker](https://github.com/MarkRosemaker)
-* Update golibsass [898a0a96](https://github.com/gohugoio/hugo/commit/898a0a96afd472fad8fe70be71f6cb00a4267c4a) [@bep](https://github.com/bep) [#6885](https://github.com/gohugoio/hugo/issues/6885)
-* Shuffle test files before insertion [3b721110](https://github.com/gohugoio/hugo/commit/3b721110d560c8831c282e6e7a5c510fe7a5129a) [@bep](https://github.com/bep)
-* Update to LibSass v3.6.3 [40ba7e6d](https://github.com/gohugoio/hugo/commit/40ba7e6d63c1a0734f257a642e46eb1572116a32) [@bep](https://github.com/bep) [#6862](https://github.com/gohugoio/hugo/issues/6862)
-* Update Go version requirement [23ea4318](https://github.com/gohugoio/hugo/commit/23ea43180b84e35d99e88083a83e7ca1916b3b36) [@bep](https://github.com/bep) [#6853](https://github.com/gohugoio/hugo/issues/6853)
-
-## Fixes
-
-### Templates
-
-* Fix RSS template for the terms listing [aa3e1830](https://github.com/gohugoio/hugo/commit/aa3e1830568cabaa8bf3277feeba6cb48746e40c) [@bep](https://github.com/bep) [#6909](https://github.com/gohugoio/hugo/issues/6909)
-
-### Other
-
-* Fix lazy publishing with publishResources=false [9bdedb25](https://github.com/gohugoio/hugo/commit/9bdedb251c7cd8f8af800c7d9914cf84292c5c50) [@bep](https://github.com/bep) [#6914](https://github.com/gohugoio/hugo/issues/6914)
-* Fix goMinorVersion on non-final Go releases [c7975b48](https://github.com/gohugoio/hugo/commit/c7975b48b6532823868a6aa8c93eb76caa46c570) [@QuLogic](https://github.com/QuLogic)
-* Fix taxonomy [1b7acfe7](https://github.com/gohugoio/hugo/commit/1b7acfe7634a5d7bbc597ef4dddf4babce5666c5) [@bep](https://github.com/bep)
-* Fix RenderString for pages without content [19e12caf](https://github.com/gohugoio/hugo/commit/19e12caf8c90516e3b803ae8a40b907bd89dc96c) [@bep](https://github.com/bep) [#6882](https://github.com/gohugoio/hugo/issues/6882)
-* Fix chroma highlight [3c568ad0](https://github.com/gohugoio/hugo/commit/3c568ad0139c79e5c0596ca40637512d71401afc) [@satotake](https://github.com/satotake) [#6877](https://github.com/gohugoio/hugo/issues/6877)[#6856](https://github.com/gohugoio/hugo/issues/6856)
-* Fix mount with hole regression [b78576fd](https://github.com/gohugoio/hugo/commit/b78576fd38a76bbdaab5ad21228c8e5a559090b1) [@bep](https://github.com/bep) [#6854](https://github.com/gohugoio/hugo/issues/6854)
-* Fix bundle resource ordering regression [18888e09](https://github.com/gohugoio/hugo/commit/18888e09bbb5325bdd63f2cd93116ff490dd37ab) [@bep](https://github.com/bep) [#6851](https://github.com/gohugoio/hugo/issues/6851)
-* Fix note about CGO [7f0ebd4a](https://github.com/gohugoio/hugo/commit/7f0ebd4a3c9e016afddc2cf5e7dfe6a820aa099a) [@moorereason](https://github.com/moorereason)
-
-
-
-
-
diff --git a/docs/content/en/news/0.65.0-relnotes/pg-admin-tos.png b/docs/content/en/news/0.65.0-relnotes/pg-admin-tos.png
deleted file mode 100644
index fc2f4e34d3b..00000000000
Binary files a/docs/content/en/news/0.65.0-relnotes/pg-admin-tos.png and /dev/null differ
diff --git a/docs/content/en/news/0.65.1-relnotes/index.md b/docs/content/en/news/0.65.1-relnotes/index.md
deleted file mode 100644
index 07ee66569f8..00000000000
--- a/docs/content/en/news/0.65.1-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2020-02-20
-title: "Hugo 0.65.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.65.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* hugolib: Fix 2 Paginator.Pages taxonomy regressions [7ef5a4c8](https://github.com/gohugoio/hugo/commit/7ef5a4c83e4560bced3eee0ccf0e0db176146f44) [@bep](https://github.com/bep) [#6921](https://github.com/gohugoio/hugo/issues/6921)[#6918](https://github.com/gohugoio/hugo/issues/6918)
-* hugolib: Fix deletion of orphaned sections [a70bbd06](https://github.com/gohugoio/hugo/commit/a70bbd0696df3b0a6889650e48a07f8223151da4) [@bep](https://github.com/bep) [#6920](https://github.com/gohugoio/hugo/issues/6920)
-
-
-
diff --git a/docs/content/en/news/0.65.2-relnotes/index.md b/docs/content/en/news/0.65.2-relnotes/index.md
deleted file mode 100644
index ee9280976d3..00000000000
--- a/docs/content/en/news/0.65.2-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2020-02-21
-title: "Hugo 0.65.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.65.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Apply missing go fmt [76b2afe6](https://github.com/gohugoio/hugo/commit/76b2afe642c37aedc7269b41d6fca5b78f467ce4) [@bep](https://github.com/bep)
-* Fix panic on no output formats [f4605303](https://github.com/gohugoio/hugo/commit/f46053034759c4f9790a79e0a146dbc1b426b1ff) [@bep](https://github.com/bep) [#6924](https://github.com/gohugoio/hugo/issues/6924)
-* Fix panic in 404.Parent [4c2a0de4](https://github.com/gohugoio/hugo/commit/4c2a0de412a850745ad32e580fcd65575192ca53) [@bep](https://github.com/bep) [#6924](https://github.com/gohugoio/hugo/issues/6924)
-
-
-
diff --git a/docs/content/en/news/0.65.3-relnotes/index.md b/docs/content/en/news/0.65.3-relnotes/index.md
deleted file mode 100644
index 1d47362bba9..00000000000
--- a/docs/content/en/news/0.65.3-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2020-02-23
-title: "Hugo 0.65.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.65.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Fix panic when home page is drafted [0bd6356c](https://github.com/gohugoio/hugo/commit/0bd6356c6d2a2bac06d0c3705bf13a90cb7a2688) [@bep](https://github.com/bep) [#6927](https://github.com/gohugoio/hugo/issues/6927)
-* Fix goldmark toc rendering [ca68abf0](https://github.com/gohugoio/hugo/commit/ca68abf0bc2fa003c2052143218f7b2ab195a46e) [@satotake](https://github.com/satotake) [#6736](https://github.com/gohugoio/hugo/issues/6736)[#6809](https://github.com/gohugoio/hugo/issues/6809)
-* Fix crashes for 404 in IsAncestor etc. [a524124b](https://github.com/gohugoio/hugo/commit/a524124beb0e7ca226c207ea48a90cea2cbef76e) [@bep](https://github.com/bep) [#6931](https://github.com/gohugoio/hugo/issues/6931)
-
-
-
diff --git a/docs/content/en/news/0.66.0-relnotes/hugo-66-poster-featured.png b/docs/content/en/news/0.66.0-relnotes/hugo-66-poster-featured.png
deleted file mode 100644
index fcdc707ce35..00000000000
Binary files a/docs/content/en/news/0.66.0-relnotes/hugo-66-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.66.0-relnotes/index.md b/docs/content/en/news/0.66.0-relnotes/index.md
deleted file mode 100644
index 850a8fa717a..00000000000
--- a/docs/content/en/news/0.66.0-relnotes/index.md
+++ /dev/null
@@ -1,81 +0,0 @@
-
----
-date: 2020-03-03
-title: "Hugo 0.66.0: PostCSS Edition"
-description: "Native inline, recursive import support in PostCSS/Tailwind, \"dependency-less\" builds, and more …"
-categories: ["Releases"]
----
-
-This release adds [inline `@import`](/hugo-pipes/postcss/#options) support to `resources.PostCSS`, with imports relative to Hugo's virtual, composable file system. Another useful addition is the new `build` [configuration section](/getting-started/configuration/#configure-build). As an example:
-
-{{< code-toggle file="config" >}}
-[build]
- useResourceCacheWhen = "always"
-{{< /code-toggle >}}
-
-The above will tell Hugo to _always_ use the cached build resources inside `resources/_gen` for the build steps requiring a non-standard dependency (PostCSS and SCSS/SASS). Valid values are `never`, `always` and `fallback` (default).
-
-
-This release represents **27 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 to [@anthonyfok](https://github.com/anthonyfok), [@carlmjohnson](https://github.com/carlmjohnson), and [@sams96](https://github.com/sams96) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **8 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@nantipov](https://github.com/nantipov), [@regisphilibert](https://github.com/regisphilibert), and [@inwardmovement](https://github.com/inwardmovement) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 41984+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 299+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Change error message on missing resource [d7798906](https://github.com/gohugoio/hugo/commit/d7798906d8e152a5d33f76ed0362628da8dd2c35) [@sams96](https://github.com/sams96) [#6942](https://github.com/gohugoio/hugo/issues/6942)
-* Add math.Sqrt [d184e505](https://github.com/gohugoio/hugo/commit/d184e5059c72c15df055192b01da0fd8c5b0fc5c) [@StarsoftAnalysis](https://github.com/StarsoftAnalysis) [#6941](https://github.com/gohugoio/hugo/issues/6941)
-
-### Other
-
-* Skip some tests on CircleCI [6a34f88d](https://github.com/gohugoio/hugo/commit/6a34f88dcc1ac229247decc008471d7449d6d316) [@bep](https://github.com/bep)
-* {{ in }} should work with html.Template type [ae383f04](https://github.com/gohugoio/hugo/commit/ae383f04c806687cdae184d6138bcf51edbffcb2) [@carlmjohnson](https://github.com/carlmjohnson) [#7002](https://github.com/gohugoio/hugo/issues/7002)
-* Regen CLI docs [ee31e61f](https://github.com/gohugoio/hugo/commit/ee31e61fb06bb6e26c9d66d78d8763aabd19e11d) [@bep](https://github.com/bep)
-* Add --all flag to hugo mod clean [760a87a4](https://github.com/gohugoio/hugo/commit/760a87a45a0a3e6a581851e5cf4fe440e9a8c655) [@bep](https://github.com/bep)
-* Add build.UseResourceCacheWhen [3d3fa5c3](https://github.com/gohugoio/hugo/commit/3d3fa5c3fe5ee0c9df59d682ee0acaba71a06ae1) [@bep](https://github.com/bep) [#6993](https://github.com/gohugoio/hugo/issues/6993)
-* Update dependency list in README.md [ee3d0213](https://github.com/gohugoio/hugo/commit/ee3d02134d9b46b10e5a0403c9986ee1833ae6c1) [@anthonyfok](https://github.com/anthonyfok)
-* Add full filename to image when processing fails [305ce1c9](https://github.com/gohugoio/hugo/commit/305ce1c9ec746d3b8f6c9306b7014bfd621478a5) [@bep](https://github.com/bep) [#7000](https://github.com/gohugoio/hugo/issues/7000)
-* Update dependency list in README [449deb7f](https://github.com/gohugoio/hugo/commit/449deb7f9ce089236f8328dd4fa585bea6e9bfde) [@anthonyfok](https://github.com/anthonyfok)
-* Add basic @import support to resources.PostCSS [b66d38c4](https://github.com/gohugoio/hugo/commit/b66d38c41939252649365822d9edb10cf5990617) [@bep](https://github.com/bep) [#6957](https://github.com/gohugoio/hugo/issues/6957)[#6961](https://github.com/gohugoio/hugo/issues/6961)
-* Implement include/exclude filters for deploy [05a74eae](https://github.com/gohugoio/hugo/commit/05a74eaec0d944a4b29445c878a431cd6ae12277) [@vangent](https://github.com/vangent) [#6922](https://github.com/gohugoio/hugo/issues/6922)
-* Update to Go 1.14 and 1.13.8 [33ae6210](https://github.com/gohugoio/hugo/commit/33ae62108325f703f1eaeabef1e8a80950229415) [@bep](https://github.com/bep) [#6958](https://github.com/gohugoio/hugo/issues/6958)
-* Add hugo.IsProduction function [1352bc88](https://github.com/gohugoio/hugo/commit/1352bc880df4cd25eff65843973fcc0dd21b6304) [@hcwong](https://github.com/hcwong) [#6873](https://github.com/gohugoio/hugo/issues/6873)
-* Apply missing go fmt [76b2afe6](https://github.com/gohugoio/hugo/commit/76b2afe642c37aedc7269b41d6fca5b78f467ce4) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Output
-
-* Fix panic on no output formats [f4605303](https://github.com/gohugoio/hugo/commit/f46053034759c4f9790a79e0a146dbc1b426b1ff) [@bep](https://github.com/bep) [#6924](https://github.com/gohugoio/hugo/issues/6924)
-
-### Core
-
-* Fix error handling in page collector [3e9db2ad](https://github.com/gohugoio/hugo/commit/3e9db2ad951dbb1000cd0f8f25e4a95445046679) [@bep](https://github.com/bep) [#6988](https://github.com/gohugoio/hugo/issues/6988)
-* Fix 2 Paginator.Pages taxonomy regressions [7ef5a4c8](https://github.com/gohugoio/hugo/commit/7ef5a4c83e4560bced3eee0ccf0e0db176146f44) [@bep](https://github.com/bep) [#6921](https://github.com/gohugoio/hugo/issues/6921)[#6918](https://github.com/gohugoio/hugo/issues/6918)
-* Fix deletion of orphaned sections [a70bbd06](https://github.com/gohugoio/hugo/commit/a70bbd0696df3b0a6889650e48a07f8223151da4) [@bep](https://github.com/bep) [#6920](https://github.com/gohugoio/hugo/issues/6920)
-
-### Other
-
-* Fix ref/relref short lookup for pages in sub-folder [8947c3fa](https://github.com/gohugoio/hugo/commit/8947c3fa0beec021e14b3f8040857335e1ecd473) [@bep](https://github.com/bep) [#6952](https://github.com/gohugoio/hugo/issues/6952)
-* Fix ref/relRef regression for relative refs from bundles [1746e8a9](https://github.com/gohugoio/hugo/commit/1746e8a9b2be46dcd6cecbb4bc90983a9c69b333) [@bep](https://github.com/bep) [#6952](https://github.com/gohugoio/hugo/issues/6952)
-* Fix potential infinite recursion in server change detection [6f48146e](https://github.com/gohugoio/hugo/commit/6f48146e75e9877c4271ec239b763e6f3bc3babb) [@bep](https://github.com/bep) [#6986](https://github.com/gohugoio/hugo/issues/6986)
-* Fix rebuild logic when editing template using a base template [b0d85032](https://github.com/gohugoio/hugo/commit/b0d850321e58a052ead25f7014b7851f63497601) [@bep](https://github.com/bep) [#6968](https://github.com/gohugoio/hugo/issues/6968)
-* Fix panic when home page is drafted [0bd6356c](https://github.com/gohugoio/hugo/commit/0bd6356c6d2a2bac06d0c3705bf13a90cb7a2688) [@bep](https://github.com/bep) [#6927](https://github.com/gohugoio/hugo/issues/6927)
-* Fix goldmark toc rendering [ca68abf0](https://github.com/gohugoio/hugo/commit/ca68abf0bc2fa003c2052143218f7b2ab195a46e) [@satotake](https://github.com/satotake) [#6736](https://github.com/gohugoio/hugo/issues/6736)[#6809](https://github.com/gohugoio/hugo/issues/6809)
-* Fix crashes for 404 in IsAncestor etc. [a524124b](https://github.com/gohugoio/hugo/commit/a524124beb0e7ca226c207ea48a90cea2cbef76e) [@bep](https://github.com/bep) [#6931](https://github.com/gohugoio/hugo/issues/6931)
-* Fix panic in 404.Parent [4c2a0de4](https://github.com/gohugoio/hugo/commit/4c2a0de412a850745ad32e580fcd65575192ca53) [@bep](https://github.com/bep) [#6924](https://github.com/gohugoio/hugo/issues/6924)
-
-
-
-
-
diff --git a/docs/content/en/news/0.67.0-relnotes/hugo-67-poster-featured.png b/docs/content/en/news/0.67.0-relnotes/hugo-67-poster-featured.png
deleted file mode 100644
index 059d8c07a7b..00000000000
Binary files a/docs/content/en/news/0.67.0-relnotes/hugo-67-poster-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.67.0-relnotes/index.md b/docs/content/en/news/0.67.0-relnotes/index.md
deleted file mode 100644
index 881fe036702..00000000000
--- a/docs/content/en/news/0.67.0-relnotes/index.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
----
-date: 2020-03-09
-title: "Hugo 0.67.0: Custom HTTP headers"
-description: "This version brings Custom HTTP headers to the development server and exclude/include filters in Hugo Deploy."
-categories: ["Releases"]
----
-
-The two main items in Hugo 0.67.0 is custom HTTP header support in `hugo server` and include/exclude filters for [Hugo Deploy](https://gohugo.io/hosting-and-deployment/hugo-deploy/#readout).
-
-Being able to [configure HTTP headers](https://gohugo.io/getting-started/configuration/#configure-server) in your development server means that you can now verify how your site behaves with the intended Content Security Policy settings etc., e.g.:
-
-{{< 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 >}}
-
-**Note:** This release also changes how raw HTML files inside /content is processed to be in line with the documentation. See [#7030](https://github.com/gohugoio/hugo/issues/7030).
-
-This release represents **7 contributions by 4 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 [@satotake](https://github.com/satotake), [@sams96](https://github.com/sams96), and [@davidejones](https://github.com/davidejones) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **5 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@psliwka](https://github.com/psliwka), [@digitalcraftsman](https://github.com/digitalcraftsman), and [@jasikpark](https://github.com/jasikpark) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 42176+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 301+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Other
-
-* Doument the server config [63393230](https://github.com/gohugoio/hugo/commit/63393230c9d3ba19ad182064787e3bfd7ecf82d8) [@bep](https://github.com/bep)
-* Support unComparable args of uniq/complement/in [8279d2e2](https://github.com/gohugoio/hugo/commit/8279d2e2271ee64725133d36a12d1d7e2158bffd) [@satotake](https://github.com/satotake) [#6105](https://github.com/gohugoio/hugo/issues/6105)
-* Add HTTP header support for the dev server [10831444](https://github.com/gohugoio/hugo/commit/108314444b510bfc330ccac745dce7beccd52c91) [@bep](https://github.com/bep) [#7031](https://github.com/gohugoio/hugo/issues/7031)
-* Add include and exclude support for remote [51e178a6](https://github.com/gohugoio/hugo/commit/51e178a6a28a3f305d89ebb489675743f80862ee) [@davidejones](https://github.com/davidejones)
-
-## Fixes
-
-### Templates
-
-* Fix error with unicode in file paths [c4fa2f07](https://github.com/gohugoio/hugo/commit/c4fa2f07996c7f1f4e257089a3c3c5b4c1339722) [@sams96](https://github.com/sams96) [#6996](https://github.com/gohugoio/hugo/issues/6996)
-
-### Other
-
-* Fix ambigous error on site.GetPage [6cceef65](https://github.com/gohugoio/hugo/commit/6cceef65c2f4b7c262bf67a249867658112b6de4) [@bep](https://github.com/bep) [#7016](https://github.com/gohugoio/hugo/issues/7016)
-* Fix handling of HTML files without front matter [ffcb4aeb](https://github.com/gohugoio/hugo/commit/ffcb4aeb8e392a80da7cad0f1e03a4102efb24ec) [@bep](https://github.com/bep) [#7030](https://github.com/gohugoio/hugo/issues/7030)[#7028](https://github.com/gohugoio/hugo/issues/7028)[#6789](https://github.com/gohugoio/hugo/issues/6789)
-
-
-
-
-
diff --git a/docs/content/en/news/0.67.1-relnotes/index.md b/docs/content/en/news/0.67.1-relnotes/index.md
deleted file mode 100644
index 7962ccca3d9..00000000000
--- a/docs/content/en/news/0.67.1-relnotes/index.md
+++ /dev/null
@@ -1,24 +0,0 @@
-
----
-date: 2020-03-15
-title: "Hugo 0.67.1: A couple of Bug Fixes"
-description: "This version comes with some useful bug fixes."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-Some minor fixes:
-
-* metrics: Fix --templateMetricsHints [5eadc4c0](https://github.com/gohugoio/hugo/commit/5eadc4c0a8e5c51e72670591c4b7877e79c15e3c) [@bep](https://github.com/bep) [#7048](https://github.com/gohugoio/hugo/issues/7048)
-* resources: Add data context to the key in ExecuteAsTemplate [18cb21ff](https://github.com/gohugoio/hugo/commit/18cb21ff2e4a60e7094908e4d6113a9d5a086316) [@bep](https://github.com/bep) [#7046](https://github.com/gohugoio/hugo/issues/7046)
-* Improve Tailwind/PostCSS error messages [df298558](https://github.com/gohugoio/hugo/commit/df298558a5a5b747288d9656402af85e0ac75a43) [@bep](https://github.com/bep) [#7041](https://github.com/gohugoio/hugo/issues/7041)[#7042](https://github.com/gohugoio/hugo/issues/7042)
-* deps: Update Blackfriday [b1106f87](https://github.com/gohugoio/hugo/commit/b1106f8715cac3544b8ea662b969336fe56fa047) [@bep](https://github.com/bep) [#7039](https://github.com/gohugoio/hugo/issues/7039)
-* resources: Try to fix a Go 1.15 go vet error [c0177fe2](https://github.com/gohugoio/hugo/commit/c0177fe2b28eb09d1534e62370849c3f1d70b40f) [@bep](https://github.com/bep)
-* Add languageDirection to language configuration [5914f91b](https://github.com/gohugoio/hugo/commit/5914f91b6c980e42693661d5fd5640e237691df6) [@le0tan](https://github.com/le0tan) [#6550](https://github.com/gohugoio/hugo/issues/6550)
-
-
-
diff --git a/docs/content/en/news/0.68.0-relnotes/hugo-68-featured.png b/docs/content/en/news/0.68.0-relnotes/hugo-68-featured.png
deleted file mode 100644
index 0696d990d15..00000000000
Binary files a/docs/content/en/news/0.68.0-relnotes/hugo-68-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.68.0-relnotes/index.md b/docs/content/en/news/0.68.0-relnotes/index.md
deleted file mode 100644
index 507249a21bc..00000000000
--- a/docs/content/en/news/0.68.0-relnotes/index.md
+++ /dev/null
@@ -1,57 +0,0 @@
-
----
-date: 2020-03-21
-title: "Minify config and more!"
-description: "Hugo 0.68.0 brings minify configuration and fully navigable headless sections."
-categories: ["Releases"]
----
-
-
-This release (finally) brings minify configuration, a big thanks to [@satotake](https://github.com/satotake) for that contribution. See [Configure Minify](https://gohugo.io/getting-started/configuration/#configure-minify) for details.
-
-We have also extended the [Page Build Options](https://gohugo.io/content-management/build-options/) to allow fully navigable headless sections.
-
-This release represents **17 contributions by 6 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 [@evankanderson](https://github.com/evankanderson), [@QuLogic](https://github.com/QuLogic), and [@le0tan](https://github.com/le0tan) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **3 contributions by 3 contributors**.
-
-Hugo now has:
-
-* 42462+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 439+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 300+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Other
-
-* Some minify configuration adjustments [7204b354](https://github.com/gohugoio/hugo/commit/7204b354a9f46778f068a4712447d6d4fefbefd8) [@bep](https://github.com/bep)
-* Add minify config [574c2959](https://github.com/gohugoio/hugo/commit/574c2959b8d3338764fa1db102a5e0fd6ed322d9) [@satotake](https://github.com/satotake) [#6750](https://github.com/gohugoio/hugo/issues/6750)[#6892](https://github.com/gohugoio/hugo/issues/6892)
-* Allow headless bundles to list pages via $page.Pages and $page.RegularPages [99958f90](https://github.com/gohugoio/hugo/commit/99958f90fedec11d749a1397300860aa8e8459c2) [@bep](https://github.com/bep) [#7075](https://github.com/gohugoio/hugo/issues/7075)
-* Update to Go 1.14.1 and 1.13.9 [1d91d8e1](https://github.com/gohugoio/hugo/commit/1d91d8e14b13bd135dc4d4a901fc936c9649b219) [@bep](https://github.com/bep) [#7078](https://github.com/gohugoio/hugo/issues/7078)
-* Pass directory name to filters in LstatIfPossible in the same way as Readdir [cc2a5d52](https://github.com/gohugoio/hugo/commit/cc2a5d52a4ad188d93aeb2d51d5c19c7661e098d) [@evankanderson](https://github.com/evankanderson)
-* Update to goldmark 1.1.25. [52c159c4](https://github.com/gohugoio/hugo/commit/52c159c452ab7f48369b5cc9ecc57ecc8dc91654) [@QuLogic](https://github.com/QuLogic)
-* Add workaround for regular CSS imports in SCSS [1a8af7d4](https://github.com/gohugoio/hugo/commit/1a8af7d4f087256710ae0bdf504ed53c0c24a211) [@bep](https://github.com/bep) [#7059](https://github.com/gohugoio/hugo/issues/7059)
-* Add .RegularPagesRecursive [03b93bb9](https://github.com/gohugoio/hugo/commit/03b93bb9884ea479c855c2699e8c7b039dce6224) [@bep](https://github.com/bep) [#6411](https://github.com/gohugoio/hugo/issues/6411)
-* Add data context to the key in ExecuteAsTemplate [18cb21ff](https://github.com/gohugoio/hugo/commit/18cb21ff2e4a60e7094908e4d6113a9d5a086316) [@bep](https://github.com/bep) [#7046](https://github.com/gohugoio/hugo/issues/7046)
-* Improve Tailwind/PostCSS error messages [df298558](https://github.com/gohugoio/hugo/commit/df298558a5a5b747288d9656402af85e0ac75a43) [@bep](https://github.com/bep) [#7041](https://github.com/gohugoio/hugo/issues/7041)[#7042](https://github.com/gohugoio/hugo/issues/7042)
-* Update Blackfriday [b1106f87](https://github.com/gohugoio/hugo/commit/b1106f8715cac3544b8ea662b969336fe56fa047) [@bep](https://github.com/bep) [#7039](https://github.com/gohugoio/hugo/issues/7039)
-* Add languageDirection to language configuration [5914f91b](https://github.com/gohugoio/hugo/commit/5914f91b6c980e42693661d5fd5640e237691df6) [@le0tan](https://github.com/le0tan) [#6550](https://github.com/gohugoio/hugo/issues/6550)
-
-## Fixes
-
-### Other
-
-* Fix Go build version [2ebb9f54](https://github.com/gohugoio/hugo/commit/2ebb9f5484162062c74698237bcdaa31cb8666b9) [@bep](https://github.com/bep)
-* Fix GetTerms nil pointer [95f49211](https://github.com/gohugoio/hugo/commit/95f492114e33fc6e4d9dcfd2b7c1eca5c50d755f) [@carlmjohnson](https://github.com/carlmjohnson) [#7061](https://github.com/gohugoio/hugo/issues/7061)
-* Fix scss vs css import regexp [c7b6d74e](https://github.com/gohugoio/hugo/commit/c7b6d74e898c78da9f5e272e528ff9654206576e) [@bep](https://github.com/bep) [#7063](https://github.com/gohugoio/hugo/issues/7063)
-* Fix --templateMetricsHints [5eadc4c0](https://github.com/gohugoio/hugo/commit/5eadc4c0a8e5c51e72670591c4b7877e79c15e3c) [@bep](https://github.com/bep) [#7048](https://github.com/gohugoio/hugo/issues/7048)
-* Try to fix a Go 1.15 go vet error [c0177fe2](https://github.com/gohugoio/hugo/commit/c0177fe2b28eb09d1534e62370849c3f1d70b40f) [@bep](https://github.com/bep)
-
-
-
-
-
diff --git a/docs/content/en/news/0.68.1-relnotes/index.md b/docs/content/en/news/0.68.1-relnotes/index.md
deleted file mode 100644
index ab9946b8e1a..00000000000
--- a/docs/content/en/news/0.68.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2020-03-22
-title: "Hugo 0.68.1: 1 bug fix"
-description: "This release reverts a change in resources.ExecuteAsTemplate that broke some theme demos."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* Revert "resources: Add data context to the key in ExecuteAsTemplate" [c9dc316a](https://github.com/gohugoio/hugo/commit/c9dc316ad160e78c9dff4e75313db4cac8ea6414) [@bep](https://github.com/bep) [#7064](https://github.com/gohugoio/hugo/issues/7064)
-
-
-
diff --git a/docs/content/en/news/0.68.2-relnotes/index.md b/docs/content/en/news/0.68.2-relnotes/index.md
deleted file mode 100644
index c61d1012a49..00000000000
--- a/docs/content/en/news/0.68.2-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2020-03-24T12:00:00-05:00
-title: "Hugo 0.68.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.68.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* Fix cache reset for a page's collections on server live reload [cfa73050](https://github.com/gohugoio/hugo/commit/cfa73050a49b2646fe3557cefa0ed31989b0eeeb) [@bep](https://github.com/bep) [#7085](https://github.com/gohugoio/hugo/issues/7085)
-
-
-
diff --git a/docs/content/en/news/0.68.3-relnotes/index.md b/docs/content/en/news/0.68.3-relnotes/index.md
deleted file mode 100644
index 3855aadf301..00000000000
--- a/docs/content/en/news/0.68.3-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2020-03-24T13:00:00-05:00
-title: "Hugo 0.68.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.68.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* Fix _build.list.local logic [523d5194](https://github.com/gohugoio/hugo/commit/523d51948fc20e2afb4721b43203c5ab696ae220) [@bep](https://github.com/bep) [#7089](https://github.com/gohugoio/hugo/issues/7089)
-
-
-
diff --git a/docs/content/en/news/0.69.0-relnotes/hugo-69-easter-featured.png b/docs/content/en/news/0.69.0-relnotes/hugo-69-easter-featured.png
deleted file mode 100644
index d1b413142a9..00000000000
Binary files a/docs/content/en/news/0.69.0-relnotes/hugo-69-easter-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.69.0-relnotes/index.md b/docs/content/en/news/0.69.0-relnotes/index.md
deleted file mode 100644
index 13bb1b76b3d..00000000000
--- a/docs/content/en/news/0.69.0-relnotes/index.md
+++ /dev/null
@@ -1,73 +0,0 @@
-
----
-date: 2020-04-10
-title: "Post Build Resource Transformations"
-description: "Hugo 0.69.0 allows you to delay resource processing to after the build, the prime use case being removal of unused CSS."
-categories: ["Releases"]
----
-
-**It's Eeaster, a time for mysteries and puzzles.** And at first glance, this Hugo release looks a little mysterious. The core of if is a mind-twister:
-
-```go-html-template
-{{ $css := resources.Get "css/main.css" }}
-{{ $css = $css | resources.PostCSS }}
-{{ if hugo.IsProduction }}
-{{ $css = $css | minify | fingerprint | resources.PostProcess }}
-{{ end }}
-
-```
-
-The above uses the new [resources.PostProcess](https://gohugo.io/hugo-pipes/postprocess/) template function which tells Hugo to postpone the transformation of the Hugo Pipes chain to _after the build_, allowing the build steps to use the build output in `/public` as part of its processing.
-
-The prime current use case for the above is CSS pruning in PostCSS. In simple cases you can use the templates as a base for the content filters, but that has its limitations and can be very hard to setup, especially in themed configurations. So we have added a new [writeStats](https://gohugo.io/getting-started/configuration/#configure-build) configuration that, when enabled, will write a file named `hugo_stats.json` 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](https://gohugo.io/hugo-pipes/postprocess/#css-purging-with-postcss).
-
-This release represents **20 contributions by 10 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), [@jaywilliams](https://github.com/jaywilliams), and [@satotake](https://github.com/satotake) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **14 contributions by 7 contributors**. A special thanks to [@bep](https://github.com/bep), [@coliff](https://github.com/coliff), [@dmgawel](https://github.com/dmgawel), and [@jasikpark](https://github.com/jasikpark) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 43052+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 438+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 302+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Extend Jsonify to support options map [8568928a](https://github.com/gohugoio/hugo/commit/8568928aa8e82a6bd7de4555c3703d8835fbd25b) [@moorereason](https://github.com/moorereason)
-* Extend Jsonify to support optional indent parameter [1bc93021](https://github.com/gohugoio/hugo/commit/1bc93021e3dca6405628f6fdd2dc32cff9c9836c) [@moorereason](https://github.com/moorereason) [#5040](https://github.com/gohugoio/hugo/issues/5040)
-
-### Other
-
-* Regen docs helper [b7ff4dc2](https://github.com/gohugoio/hugo/commit/b7ff4dc23e6314fd09ee2c1e24cde96fc833164e) [@bep](https://github.com/bep)
-* Collect HTML elements during the build to use in PurgeCSS etc. [095bf64c](https://github.com/gohugoio/hugo/commit/095bf64c99f57efe083540a50e658808a0a1c32b) [@bep](https://github.com/bep) [#6999](https://github.com/gohugoio/hugo/issues/6999)
-* Update to latest emoji package [7791a804](https://github.com/gohugoio/hugo/commit/7791a804e2179667617b3b145b0fe7eba17627a1) [@QuLogic](https://github.com/QuLogic)
-* Update hosting-on-aws-amplify.md [c774b230](https://github.com/gohugoio/hugo/commit/c774b230e941902675af081f118ea206a4f2a04e) [@Helicer](https://github.com/Helicer)
-* Add basic "post resource publish support" [2f721f8e](https://github.com/gohugoio/hugo/commit/2f721f8ec69c52202815cd1b543ca4bf535c0901) [@bep](https://github.com/bep) [#7146](https://github.com/gohugoio/hugo/issues/7146)
-* Typo correction [7eba37ae](https://github.com/gohugoio/hugo/commit/7eba37ae9b8653be4fc21a0dbbc6f35ca5b9280e) [@fekete-robert](https://github.com/fekete-robert)
-* Use semver for min_version per recommendations [efc61d6f](https://github.com/gohugoio/hugo/commit/efc61d6f3b9f5fb294411ac1dc872b8fc5bdbacb) [@jaywilliams](https://github.com/jaywilliams)
-* Updateto gitmap v1.1.2 [4de3ecdc](https://github.com/gohugoio/hugo/commit/4de3ecdc2658ffd54d2b5073c5ff303b4bf29383) [@dragtor](https://github.com/dragtor) [#6985](https://github.com/gohugoio/hugo/issues/6985)
-* Add data context to the key in ExecuteAsTemplate" [c9dc316a](https://github.com/gohugoio/hugo/commit/c9dc316ad160e78c9dff4e75313db4cac8ea6414) [@bep](https://github.com/bep) [#7064](https://github.com/gohugoio/hugo/issues/7064)
-
-## Fixes
-
-### Other
-
-* Fix hugo mod vendor for regular file mounts [d8d6a25b](https://github.com/gohugoio/hugo/commit/d8d6a25b5755bedaf90261a1539dc37a2f05c3df) [@bep](https://github.com/bep) [#7140](https://github.com/gohugoio/hugo/issues/7140)
-* Revert "Revert "common/herrors: Fix typos in comments"" [9f12be54](https://github.com/gohugoio/hugo/commit/9f12be54ee84f24efdf7c58f05867e8d0dea2ccb) [@bep](https://github.com/bep)
-* Fix typos in comments" [4437e918](https://github.com/gohugoio/hugo/commit/4437e918cdab1d84f2f184fe71e5dac14aa48897) [@bep](https://github.com/bep)
-* Fix typos in comments [1123711b](https://github.com/gohugoio/hugo/commit/1123711b0979b1647d7c486f67af7503afb11abb) [@rnazmo](https://github.com/rnazmo)
-* Fix TrimShortHTML [9c998753](https://github.com/gohugoio/hugo/commit/9c9987535f98714c8a4ec98903f54233735ef0e4) [@satotake](https://github.com/satotake) [#7081](https://github.com/gohugoio/hugo/issues/7081)
-* Fix IsDescendant/IsAncestor for overlapping section names [4a39564e](https://github.com/gohugoio/hugo/commit/4a39564efe7b02a685598ae9dbae95e2326c0230) [@bep](https://github.com/bep) [#7096](https://github.com/gohugoio/hugo/issues/7096)
-* fix typo in getting started [b6e097cf](https://github.com/gohugoio/hugo/commit/b6e097cfe65ecd1d47c805969082e6805563612b) [@matrixise](https://github.com/matrixise)
-* Fix _build.list.local logic [523d5194](https://github.com/gohugoio/hugo/commit/523d51948fc20e2afb4721b43203c5ab696ae220) [@bep](https://github.com/bep) [#7089](https://github.com/gohugoio/hugo/issues/7089)
-* Fix cache reset for a page's collections on server live reload [cfa73050](https://github.com/gohugoio/hugo/commit/cfa73050a49b2646fe3557cefa0ed31989b0eeeb) [@bep](https://github.com/bep) [#7085](https://github.com/gohugoio/hugo/issues/7085)
-
-
-
-
-
diff --git a/docs/content/en/news/0.69.1-relnotes/index.md b/docs/content/en/news/0.69.1-relnotes/index.md
deleted file mode 100644
index d80e3f26d90..00000000000
--- a/docs/content/en/news/0.69.1-relnotes/index.md
+++ /dev/null
@@ -1,29 +0,0 @@
-
----
-date: 2020-04-22
-title: "Hugo 0.69.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.69.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* hugolib/filesystems: Fix typo in test suite [49e6c8cb](https://github.com/gohugoio/hugo/commit/49e6c8cb4ed83e20f1e0ac164e91c38854177b99) [@panakour](https://github.com/panakour)
-* Fix class collector when running with --minify [f37e77f2](https://github.com/gohugoio/hugo/commit/f37e77f2d338cf876cfa637a662acd76f0f2009b) [@bep](https://github.com/bep) [#7161](https://github.com/gohugoio/hugo/issues/7161)
-* related: Fix toLower [27af5a33](https://github.com/gohugoio/hugo/commit/27af5a339a4d3c5712b5ed946a636a8c21916039) [@bep](https://github.com/bep) [#7198](https://github.com/gohugoio/hugo/issues/7198)
-* Fix broken test [b3c82575](https://github.com/gohugoio/hugo/commit/b3c825756f3251f8b26e53262f9d6f484aecf750) [@bep](https://github.com/bep)
-* tpl/tmplimpl/template: Change defer RLock to RUnlock [5146dc61](https://github.com/gohugoio/hugo/commit/5146dc614fc45df698ebf890af06421dea988c96) [@BurtonQin](https://github.com/BurtonQin)
-* hugolib: Add Unlock before panic [736f84b2](https://github.com/gohugoio/hugo/commit/736f84b2d539857f7fdd0e42353af80b4dccfe8d) [@BurtonQin](https://github.com/BurtonQin)
-* docs: Fix typo in Hugo's Security Model [cd4d8202](https://github.com/gohugoio/hugo/commit/cd4d8202016bd3eb5ed9144c8945edaba73c8cf4) [@sensimevanidus](https://github.com/sensimevanidus)
-* deps: Update go-org to v1.1.0 [2b28e5a9](https://github.com/gohugoio/hugo/commit/2b28e5a9cb79af2a8d70c80036f52bcf5399b9df) [@niklasfasching](https://github.com/niklasfasching)
-* commands: Modify gen chromastyles to output all CSS classes [102ec2da](https://github.com/gohugoio/hugo/commit/102ec2da7adcc4afb7050b17989f0486f8379679) [@acahir](https://github.com/acahir) [#7167](https://github.com/gohugoio/hugo/issues/7167)
-* deps: Update to goldmark v1.1.28 [feaa582c](https://github.com/gohugoio/hugo/commit/feaa582cbe950e82969da5e99e3fb9a3947025df) [@bep](https://github.com/bep) [#7113](https://github.com/gohugoio/hugo/issues/7113)
-* Fix query parameter handling in server fast render mode [ee67dbef](https://github.com/gohugoio/hugo/commit/ee67dbeff5bae6941facaaa39cb995a1ee6def03) [@bep](https://github.com/bep) [#7163](https://github.com/gohugoio/hugo/issues/7163)
-
-
-
diff --git a/docs/content/en/news/0.69.2-relnotes/index.md b/docs/content/en/news/0.69.2-relnotes/index.md
deleted file mode 100644
index 048a58817fa..00000000000
--- a/docs/content/en/news/0.69.2-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2020-04-24
-title: "Hugo 0.69.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.69.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Fix IsAncestor and IsDescendant when the same page is passed [8d5766d4](https://github.com/gohugoio/hugo/commit/8d5766d417d6564a1aa1cbe8f9a29ab9bba22371) [@tekezo](https://github.com/tekezo)
-* deps: Update goldmark-highlighting [5c41f41a](https://github.com/gohugoio/hugo/commit/5c41f41ad4b14e48aea64687a7600f5ad231e879) [@satotake](https://github.com/satotake) [#7027](https://github.com/gohugoio/hugo/issues/7027)[#6596](https://github.com/gohugoio/hugo/issues/6596)
-* Fix IsAncestor and IsDescendant under subsection [27a4c441](https://github.com/gohugoio/hugo/commit/27a4c4410cd9592249925fb14b32605fb961c597) [@tekezo](https://github.com/tekezo)
-
-
-
diff --git a/docs/content/en/news/0.7-relnotes/index.md b/docs/content/en/news/0.7-relnotes/index.md
deleted file mode 100644
index e140304c0c6..00000000000
--- a/docs/content/en/news/0.7-relnotes/index.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-date: 2013-07-05T04:22:00Z
-description: "The first public release of Hugo."
-title: "Hugo 0.7"
-categories: ["Releases"]
----
-
-As the first public release here's a bit about what Hugo can do so far:
-
-- **0.7.0** July 4, 2013
- - Hugo now includes a simple server
- - First public release
-- **0.6.0** July 2, 2013
- - Hugo includes an [example documentation site](http://hugo.spf13.com) which it builds
-- **0.5.0** June 25, 2013
- - Hugo is quite usable and able to build [spf13.com](http://spf13.com)
diff --git a/docs/content/en/news/0.70.0-relnotes/hugo-70-featured.png b/docs/content/en/news/0.70.0-relnotes/hugo-70-featured.png
deleted file mode 100644
index 3b9c67d5faa..00000000000
Binary files a/docs/content/en/news/0.70.0-relnotes/hugo-70-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.70.0-relnotes/index.md b/docs/content/en/news/0.70.0-relnotes/index.md
deleted file mode 100644
index 8a6c25b00df..00000000000
--- a/docs/content/en/news/0.70.0-relnotes/index.md
+++ /dev/null
@@ -1,68 +0,0 @@
-
----
-date: 2020-05-06
-title: "JavaScript Transpiler"
-description: "Hugo 0.70.0 adds a new pipe function that uses Babel to transpile JavaScript."
-categories: ["Releases"]
----
-
-This is a small release, and the main new feature is that you can now use [Babel](https://gohugo.io/hugo-pipes/babel/) to transpile JavaScript.
-
-This release represents **22 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 [@BurtonQin](https://github.com/BurtonQin), [@tekezo](https://github.com/tekezo), and [@sensimevanidus](https://github.com/sensimevanidus) for their ongoing contributions.
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **6 contributions by 4 contributors**. A special thanks to [@bep](https://github.com/bep), [@MJ2097](https://github.com/MJ2097), [@jeremyzilar](https://github.com/jeremyzilar), and [@larryclaman](https://github.com/larryclaman) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 43734+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 437+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 316+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Change defer RLock to RUnlock [5146dc61](https://github.com/gohugoio/hugo/commit/5146dc614fc45df698ebf890af06421dea988c96) [@BurtonQin](https://github.com/BurtonQin)
-
-### Output
-
-* Modify gen chromastyles to output all CSS classes [102ec2da](https://github.com/gohugoio/hugo/commit/102ec2da7adcc4afb7050b17989f0486f8379679) [@acahir](https://github.com/acahir) [#7167](https://github.com/gohugoio/hugo/issues/7167)
-
-### Core
-
-* Add Unlock before panic [736f84b2](https://github.com/gohugoio/hugo/commit/736f84b2d539857f7fdd0e42353af80b4dccfe8d) [@BurtonQin](https://github.com/BurtonQin)
-
-### Other
-
-* Update minify to v2.6.2 [01befcce](https://github.com/gohugoio/hugo/commit/01befcce35ec992d195ce1b9a6a1eeda693cb5a8) [@pperzyna](https://github.com/pperzyna) [#6699](https://github.com/gohugoio/hugo/issues/6699)
-* Add support for sort by boolean [04b1a6d9](https://github.com/gohugoio/hugo/commit/04b1a6d997e72d9abada28db22650d38ccbcbb39) [@Mipsters](https://github.com/Mipsters)
-* Update to Libsass 3.6.4 [dd31e800](https://github.com/gohugoio/hugo/commit/dd31e800075eebd78f921df8b4865c238006e7a7) [@bep](https://github.com/bep) [#7231](https://github.com/gohugoio/hugo/issues/7231)
-* Rename transpileJS to babel [6add6d77](https://github.com/gohugoio/hugo/commit/6add6d77b48cf0aab8b39d7a2bddedb1aa2a52b8) [@bep](https://github.com/bep) [#5764](https://github.com/gohugoio/hugo/issues/5764)
-* Add JavaScript transpiling solution [2a171ff1](https://github.com/gohugoio/hugo/commit/2a171ff1c5d9b1603fe78c67d2d894bb2efccc8b) [@hmmmmniek](https://github.com/hmmmmniek) [#5764](https://github.com/gohugoio/hugo/issues/5764)
-* Disable a test locally [67f92041](https://github.com/gohugoio/hugo/commit/67f920419a53c7ff11e01c4286dca23e92110a12) [@bep](https://github.com/bep)
-* Add diagnostic hints to init timeout message [fe60b7d9](https://github.com/gohugoio/hugo/commit/fe60b7d9e4c12dbc428f992c05969bc14c7fe7a2) [@mtlynch](https://github.com/mtlynch)
-* Update goldmark-highlighting [5c41f41a](https://github.com/gohugoio/hugo/commit/5c41f41ad4b14e48aea64687a7600f5ad231e879) [@satotake](https://github.com/satotake) [#7027](https://github.com/gohugoio/hugo/issues/7027)[#6596](https://github.com/gohugoio/hugo/issues/6596)
-* Update go-org to v1.1.0 [2b28e5a9](https://github.com/gohugoio/hugo/commit/2b28e5a9cb79af2a8d70c80036f52bcf5399b9df) [@niklasfasching](https://github.com/niklasfasching)
-* Update to goldmark v1.1.28 [feaa582c](https://github.com/gohugoio/hugo/commit/feaa582cbe950e82969da5e99e3fb9a3947025df) [@bep](https://github.com/bep) [#7113](https://github.com/gohugoio/hugo/issues/7113)
-
-## Fixes
-
-### Other
-
-* Fix some missing JS class collector cases [c03ea2b6](https://github.com/gohugoio/hugo/commit/c03ea2b66010d2996d652903cb8fa41e983e787f) [@bep](https://github.com/bep) [#7216](https://github.com/gohugoio/hugo/issues/7216)
-* Fix IsAncestor and IsDescendant when the same page is passed [8d5766d4](https://github.com/gohugoio/hugo/commit/8d5766d417d6564a1aa1cbe8f9a29ab9bba22371) [@tekezo](https://github.com/tekezo)
-* Fix IsAncestor and IsDescendant under subsection [27a4c441](https://github.com/gohugoio/hugo/commit/27a4c4410cd9592249925fb14b32605fb961c597) [@tekezo](https://github.com/tekezo)
-* Fix typo in test suite [49e6c8cb](https://github.com/gohugoio/hugo/commit/49e6c8cb4ed83e20f1e0ac164e91c38854177b99) [@panakour](https://github.com/panakour)
-* Fix class collector when running with --minify [f37e77f2](https://github.com/gohugoio/hugo/commit/f37e77f2d338cf876cfa637a662acd76f0f2009b) [@bep](https://github.com/bep) [#7161](https://github.com/gohugoio/hugo/issues/7161)
-* Fix toLower [27af5a33](https://github.com/gohugoio/hugo/commit/27af5a339a4d3c5712b5ed946a636a8c21916039) [@bep](https://github.com/bep) [#7198](https://github.com/gohugoio/hugo/issues/7198)
-* Fix broken test [b3c82575](https://github.com/gohugoio/hugo/commit/b3c825756f3251f8b26e53262f9d6f484aecf750) [@bep](https://github.com/bep)
-* Fix typo in Hugo's Security Model [cd4d8202](https://github.com/gohugoio/hugo/commit/cd4d8202016bd3eb5ed9144c8945edaba73c8cf4) [@sensimevanidus](https://github.com/sensimevanidus)
-* Fix query parameter handling in server fast render mode [ee67dbef](https://github.com/gohugoio/hugo/commit/ee67dbeff5bae6941facaaa39cb995a1ee6def03) [@bep](https://github.com/bep) [#7163](https://github.com/gohugoio/hugo/issues/7163)
-
-
-
-
-
diff --git a/docs/content/en/news/0.71.0-relnotes/hugo-71-featured.png b/docs/content/en/news/0.71.0-relnotes/hugo-71-featured.png
deleted file mode 100644
index 081581df88e..00000000000
Binary files a/docs/content/en/news/0.71.0-relnotes/hugo-71-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.71.0-relnotes/index.md b/docs/content/en/news/0.71.0-relnotes/index.md
deleted file mode 100644
index 07d951bf3dd..00000000000
--- a/docs/content/en/news/0.71.0-relnotes/index.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
----
-date: 2020-05-18
-title: "Markdown Render Hooks for Headings"
-description: "Render hooks for headings, update to Go 1.14.3, several bug fixes etc."
-categories: ["Releases"]
----
-
-Hugo 0.71 brings [Markdown render hooks for headings](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks), a set of bug fixes and more.
-
-This release represents **12 contributions by 7 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 [@anthonyfok](https://github.com/anthonyfok), [@apexskier](https://github.com/apexskier), and [@johnweldon](https://github.com/johnweldon) for their ongoing contributions.
-
-And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour) 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 **8 contributions by 7 contributors**. A special thanks to [@bep](https://github.com/bep), [@mikeee](https://github.com/mikeee), [@h-enk](https://github.com/h-enk), and [@tjamet](https://github.com/tjamet) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 44043+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 437+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 322+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Other
-
-* Use WARN log level also for the early initialization [518d1496](https://github.com/gohugoio/hugo/commit/518d149646c13fb49c296a63e61a048f5e672179) [@bep](https://github.com/bep) [#7285](https://github.com/gohugoio/hugo/issues/7285)
-* Update to Go 1.14.3 and Go 1.13.11 [3cc41523](https://github.com/gohugoio/hugo/commit/3cc41523bef802d1942f3d31018547a18cc55923) [@bep](https://github.com/bep)
-* Improve error message when no Babel installed [2fd0a5a6](https://github.com/gohugoio/hugo/commit/2fd0a5a6781456e88745b370d12aaf5351a020ff) [@bep](https://github.com/bep)
-* Add test for headings render hook [6e051c05](https://github.com/gohugoio/hugo/commit/6e051c053e2b5b8419f357ed8acd177440266d07) [@apexskier](https://github.com/apexskier)
-* Add render template hooks for headings [423b8f2f](https://github.com/gohugoio/hugo/commit/423b8f2fb834139cf31514b14b1c1bf28e43b384) [@elihunter173](https://github.com/elihunter173) [#6713](https://github.com/gohugoio/hugo/issues/6713)
-* Add math.Pow [99193449](https://github.com/gohugoio/hugo/commit/991934497e88dcd4134a369a213bb5072c51c139) [@jmooring](https://github.com/jmooring) [#7266](https://github.com/gohugoio/hugo/issues/7266)
-* Do not suppress .well-known/ directory [558c0930](https://github.com/gohugoio/hugo/commit/558c09305e2be16953238c6c0e828f62b950e4f5) [@johnweldon](https://github.com/johnweldon) [#6691](https://github.com/gohugoio/hugo/issues/6691)
-* Quote "@babel/cli" to solve build error [b69a3614](https://github.com/gohugoio/hugo/commit/b69a36140f42ec99ffa2d1e029b8b86ecf8ff929) [@anthonyfok](https://github.com/anthonyfok)
-* Remove custom x-nodejs plugin [a0103864](https://github.com/gohugoio/hugo/commit/a0103864ab76c6a1462a6dee538801740acf4858) [@anthonyfok](https://github.com/anthonyfok)
-* Use .Lastmod for og:updated_time [6205d56b](https://github.com/gohugoio/hugo/commit/6205d56b85fea31e008cd0fef26805bab8084786) [@dtip](https://github.com/dtip)
-
-## Fixes
-
-### Other
-
-* Fix Babel on Windows [723ec555](https://github.com/gohugoio/hugo/commit/723ec555e75fbfa94d90d3ecbcd5775d6c7800e1) [@bep](https://github.com/bep) [#7251](https://github.com/gohugoio/hugo/issues/7251)
-* Upgrade chroma to 0.7.3 to fix invalid css [b342e8fb](https://github.com/gohugoio/hugo/commit/b342e8fbdb23157f3979af91cb5d8d3438003707) [@apexskier](https://github.com/apexskier) [#7207](https://github.com/gohugoio/hugo/issues/7207)
-
-
-
-
-
diff --git a/docs/content/en/news/0.71.1-relnotes/index.md b/docs/content/en/news/0.71.1-relnotes/index.md
deleted file mode 100644
index 7fbd01dd3d6..00000000000
--- a/docs/content/en/news/0.71.1-relnotes/index.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
----
-date: 2020-05-25
-title: "Hugo 0.71.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Add some more date test cases [81f56332](https://github.com/gohugoio/hugo/commit/81f5633245bf123fbe7ad78eec51ae7b4e6c177a) [@bep](https://github.com/bep) [#7310](https://github.com/gohugoio/hugo/issues/7310)
-* Fix RenderString vs render hooks [9698b0da](https://github.com/gohugoio/hugo/commit/9698b0dab11f52d52145e85ff71311d2f103cb4e) [@bep](https://github.com/bep) [#7265](https://github.com/gohugoio/hugo/issues/7265)
-* Prevent WARNINGs in RenderString [32344fe3](https://github.com/gohugoio/hugo/commit/32344fe3db862584e3f926d63bdf33b7fa7d22f7) [@bep](https://github.com/bep)
-* Fix IsAncestor/IsDescendant for taxonomies [4d7fa9f1](https://github.com/gohugoio/hugo/commit/4d7fa9f114c62ae2ec12257203ed21b0e4d69a04) [@bep](https://github.com/bep) [#7305](https://github.com/gohugoio/hugo/issues/7305)
-* Fix GetPage on section/bundle name overlaps [a985efce](https://github.com/gohugoio/hugo/commit/a985efcecf44afe1d252690ec0a00cf077974f44) [@bep](https://github.com/bep) [#7301](https://github.com/gohugoio/hugo/issues/7301)
-* Fix Go template script escaping [6c3c6686](https://github.com/gohugoio/hugo/commit/6c3c6686f5d3c7155e2d455b07ac8ab70f42cb88) [@bep](https://github.com/bep) [#6695](https://github.com/gohugoio/hugo/issues/6695)
-* Add a test helper [c34bf485](https://github.com/gohugoio/hugo/commit/c34bf48560c91c8a2fa106867af7b08a569609b5) [@bep](https://github.com/bep)
-
-
-
diff --git a/docs/content/en/news/0.72.0-relnotes/hugo-72-featured.png b/docs/content/en/news/0.72.0-relnotes/hugo-72-featured.png
deleted file mode 100644
index 673ab28c336..00000000000
Binary files a/docs/content/en/news/0.72.0-relnotes/hugo-72-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.72.0-relnotes/index.md b/docs/content/en/news/0.72.0-relnotes/index.md
deleted file mode 100644
index 8e413f02a8c..00000000000
--- a/docs/content/en/news/0.72.0-relnotes/index.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
----
-date: 2020-05-31
-title: URL rewrites in dev server
-description: "Hugo 0.72.0 comes with dev server redirects and URL rewrites, Goldmark typography extension fixes, Scratch.Values."
-categories: ["Releases"]
----
-
-This is a rather small release, its probably main motivation being the fixes in Goldmark's [Typographer extension](https://github.com/gohugoio/hugo/commit/432885c499849efb29d3e50196f377fe0e908333).
-
-This release also adds [redirect and URL rewrite support](https://gohugo.io/getting-started/configuration/#configure-server) to the development server, with mostly Netlify-compatible configuration syntax. This is especially useful if you're building a [SPA](https://en.wikipedia.org/wiki/Single-page_application) with client-side routing.
-
-
-This release represents **13 contributions by 3 contributors** to the main Hugo code base.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **9 contributions by 6 contributors**. A special thanks to [@faraixyz](https://github.com/faraixyz), [@bep](https://github.com/bep), [@coliff](https://github.com/coliff), and [@Leon0824](https://github.com/Leon0824) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 44383+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 437+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 327+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Other
-
-* Add Scratch.Values [2919a6a5](https://github.com/gohugoio/hugo/commit/2919a6a503f7b369154d6eb787023a1fe58a9ad4) [@bep](https://github.com/bep) [#7335](https://github.com/gohugoio/hugo/issues/7335)
-* Update Goldmark to improve Typographer [432885c4](https://github.com/gohugoio/hugo/commit/432885c499849efb29d3e50196f377fe0e908333) [@bep](https://github.com/bep) [#7289](https://github.com/gohugoio/hugo/issues/7289)
-* Add redirect support to the server [6a3e8974](https://github.com/gohugoio/hugo/commit/6a3e89743ccad58097a6dd203a63448946a2304d) [@bep](https://github.com/bep) [#7323](https://github.com/gohugoio/hugo/issues/7323)
-
-## Fixes
-
-### Other
-
-* Fix tag collector for nested table elements [c950c86b](https://github.com/gohugoio/hugo/commit/c950c86b4e5fb93f787ec78ca823bded9ef9fa3a) [@bep](https://github.com/bep) [#7318](https://github.com/gohugoio/hugo/issues/7318)
-* Fix build error: my previous commits did not fix it [91520249](https://github.com/gohugoio/hugo/commit/915202494b140882d594e0542153531f6afada02) [@anthonyfok](https://github.com/anthonyfok)
-
-
diff --git a/docs/content/en/news/0.73.0-relnotes/hugo-73-featured.png b/docs/content/en/news/0.73.0-relnotes/hugo-73-featured.png
deleted file mode 100644
index 92685b15c45..00000000000
Binary files a/docs/content/en/news/0.73.0-relnotes/hugo-73-featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.73.0-relnotes/index.md b/docs/content/en/news/0.73.0-relnotes/index.md
deleted file mode 100644
index 398869e92c0..00000000000
--- a/docs/content/en/news/0.73.0-relnotes/index.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
----
-date: 2020-06-23
-title: "Summer Breeze"
-description: "Taxonomy terms cleanup, render hooks per section/type, HMAC function, and more."
-categories: ["Releases"]
----
-
-Again, a release on the small side. Some new features -- one example is that we now support hook templates per section/type, see [#7349](https://github.com/gohugoio/hugo/issues/7349) -- and some important bug fixes.
-
-But the most important part of this release is that we have now finally cleaned up the terms used for the taxonomy page kinds. This has made the taxonomy feature in Hugo harder to understand than it needed to be. The old/new values for these are `taxonomy` => `term` and `taxonomyTerm` => `taxonomy`. We have taken great care to avoid site breakage. See [#6911](https://github.com/gohugoio/hugo/issues/6911) for more information.
-
-This release represents **21 contributions by 9 contributors** to the main Hugo code base.bjorn.erik.pedersen leads the Hugo development with a significant amount of contributions, but also a big shoutout to helfper, moorereason, and onedrawingperday 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 **30 contributions by 14 contributors**. A special thanks to christianoliff, bjorn.erik.pedersen, patrick, and hello for their work on the documentation site.
-
-
-## Notes
-
-* Rename taxonomy kinds from taxonomy to term, taxonomyTerm to taxonomy [#6911](https://github.com/gohugoio/hugo/issues/6911)
-
-## Enhancements
-
-### Templates
-
-* tpl/crypto: Add hmac
-
-### Other
-
-* Remove some old release notes
-* Create robots.txt in the domain root directory [#5160](https://github.com/gohugoio/hugo/issues/5160)[#4193](https://github.com/gohugoio/hugo/issues/4193)
-* Make GroupByParamDate work with string params [#3983](https://github.com/gohugoio/hugo/issues/3983)
-* Add GroupByLastmod [#7408](https://github.com/gohugoio/hugo/issues/7408)
-* Rename taxonomy kinds from taxonomy to term, taxonomyTerm to taxonomy [#6911](https://github.com/gohugoio/hugo/issues/6911)[#7395](https://github.com/gohugoio/hugo/issues/7395)
-* Add genDocsHelper mage target
-* Regenerate templates
-* Beautify HTML generated by pagination template [#7199](https://github.com/gohugoio/hugo/issues/7199)
-* Add a nested data dir test
-* Use os.PathError in RootMappingFs.doLstat
-* Remove credit (#7347)
-* Allow hook template per section/type [#7349](https://github.com/gohugoio/hugo/issues/7349)
-
-## Fixes
-
-### Templates
-
-* Fix bad rounding in NumFmt [#7116](https://github.com/gohugoio/hugo/issues/7116)
-
-### Other
-
-* Fix aliases with path in baseURL
-* Fix server data race/nil pointer in withMaps [#7392](https://github.com/gohugoio/hugo/issues/7392)
-* Fix order of GetTerms [#7213](https://github.com/gohugoio/hugo/issues/7213)
-* Fix aliases with uglyURLs
-* Fix crash for closing shortcode with no .Inner set [#6857](https://github.com/gohugoio/hugo/issues/6857)[#7330](https://github.com/gohugoio/hugo/issues/7330)
-* Fix aliases with relativeURLs
-* Fix URL rewrites vs fast render server mode [#7357](https://github.com/gohugoio/hugo/issues/7357)
-
-
-
-
-
diff --git a/docs/content/en/news/0.74.0-relnotes/featured.png b/docs/content/en/news/0.74.0-relnotes/featured.png
deleted file mode 100644
index 34f288495fd..00000000000
Binary files a/docs/content/en/news/0.74.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.74.0-relnotes/index.md b/docs/content/en/news/0.74.0-relnotes/index.md
deleted file mode 100644
index d793f48885a..00000000000
--- a/docs/content/en/news/0.74.0-relnotes/index.md
+++ /dev/null
@@ -1,85 +0,0 @@
-
----
-date: 2020-07-13
-title: "Native JS Bundler, Open API Support, Inline Partials"
-description: "Hugo 0.74.0 brings blazingly fast native JavaScript bundling, with minification, tree shaking, scope hoisting for ES6 modules, and transpilation of JSX and newer JS syntax down to ES6. And more."
-categories: ["Releases"]
----
-
-**Note:** The documentation site isn't updated with all of the main new things below. We will get to it soon. See https://github.com/gohugoio/hugoDocs/issues/1171
-
-This release comes with native JavaScript bundling (and minifier), with [import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) support (from `node_modules` etc.), tree shaking, scope hoisting for ES6 modules, transpilation of JSX and newer JS syntax down to ES6, JavaScript/JSX and TypeScript/TSX support. And it's _very fast_. [Benchmarks](https://github.com/evanw/esbuild#benchmarks) rates it **at least 100x faster** than the other JavaScript bundlers included. This new feature is backed by the very impressive [ESBuild](https://github.com/evanw/esbuild) project by [@evanw](https://github.com/evanw). Many thanks to [@remko](https://github.com/remko) for the integration work.
-
-A very simple example building a TypeScript file:
-
-```go-html-template
-{{ $js := resources.Get "js/main.ts" | js.Build }}
-```
-This release also comes with Open API 3-support. This makes it much easier to create "Swagger styled" API-documentation. The below will unmarshal your YAML file into [this object graph](https://godoc.org/github.com/getkin/kin-openapi/openapi3#Swagger):
-
-```go-html-template
-{{ $api := resources.Get "api/openapi.yaml" | openapi3.Unmarshal }}
-```
-
-Hugo's Asciidoc integration has also gotten a face lift. A big shoutout to [@muenchhausen](https://github.com/muenchhausen) and [@bwklein](https://github.com/bwklein) for their work on this.
-
-And finally, [partials](https://gohugo.io/templates/partials/#inline-partials) can now be defined inline -- and that is way more useful than it sounds.
-
-
-This release represents **23 contributions by 9 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 [@niklasfasching](https://github.com/niklasfasching), [@bwklein](https://github.com/bwklein), and [@muenchhausen](https://github.com/muenchhausen) 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 **8 contributions by 7 contributors**. A special thanks to [@OmarEmaraDev](https://github.com/OmarEmaraDev), [@regisphilibert](https://github.com/regisphilibert), [@coliff](https://github.com/coliff), and [@jessicahuynh](https://github.com/jessicahuynh) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 45377+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 438+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 331+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Add strings.Count [028b3567](https://github.com/gohugoio/hugo/commit/028b356787426dbc190ce9868fbc9a6400c2996e) [@bep](https://github.com/bep) [#7453](https://github.com/gohugoio/hugo/issues/7453)
-* Add debug.Dump [defd7106](https://github.com/gohugoio/hugo/commit/defd7106bf79a502418ec373bdb82742b16f777f) [@bep](https://github.com/bep) [#3957](https://github.com/gohugoio/hugo/issues/3957)
-
-### Output
-
-* Add proper Media Type handling in js.Build [9df98ec4](https://github.com/gohugoio/hugo/commit/9df98ec49ca9fa326125ccfee626b6e46c6ab14b) [@bep](https://github.com/bep) [#732](https://github.com/gohugoio/hugo/issues/732)
-
-### Core
-
-* Add missing zero check on file [ccfaeb67](https://github.com/gohugoio/hugo/commit/ccfaeb678b312535928af3451324a54f2c7cb199) [@bep](https://github.com/bep)
-
-### Other
-
-* Regenerate docs helper [25e3da33](https://github.com/gohugoio/hugo/commit/25e3da3343b5cd4bbcd11fa76b382fb089971840) [@bep](https://github.com/bep)
-* Add js.Build asset bundling [2fc33807](https://github.com/gohugoio/hugo/commit/2fc33807077cd25bf91f2298bf1a8ace126881a7) [@remko](https://github.com/remko) [#7321](https://github.com/gohugoio/hugo/issues/7321)
-* Add openapi3.Unmarshal [12a65e76](https://github.com/gohugoio/hugo/commit/12a65e76df9470d9563b91a22969ddb41b7c19aa) [@bep](https://github.com/bep) [#7442](https://github.com/gohugoio/hugo/issues/7442)[#7443](https://github.com/gohugoio/hugo/issues/7443)
-* Remove trailing hyphen from auto heading ID [58c0f5e6](https://github.com/gohugoio/hugo/commit/58c0f5e6171cbf8e3ed8d73ac95a7b85168c5b2f) [@jmooring](https://github.com/jmooring) [#6798](https://github.com/gohugoio/hugo/issues/6798)
-* Ensure that non-trivial default flag values are passed through. [a1c3e3c1](https://github.com/gohugoio/hugo/commit/a1c3e3c1f32bcbc3b3aa6921bdee98a9f795a2da) [@vangent](https://github.com/vangent)
-* Update formats.md doc for new allowed extensions. [e9f87c4e](https://github.com/gohugoio/hugo/commit/e9f87c4e3feee937d05504763935805fec26213c) [@bwklein](https://github.com/bwklein)
-* Update config.go to add two Asciidoctor extensions [beb6c03b](https://github.com/gohugoio/hugo/commit/beb6c03bc8f476b753e5f3e3bc7a4a2e3f8ad355) [@bwklein](https://github.com/bwklein)
-* Add support for inline partials [4a3efea7](https://github.com/gohugoio/hugo/commit/4a3efea7efe59cd3de7d0eb352836ab395a2b6b3) [@bep](https://github.com/bep) [#7444](https://github.com/gohugoio/hugo/issues/7444)
-* Add support for native Org dates in frontmatter [c66dc6c7](https://github.com/gohugoio/hugo/commit/c66dc6c74fa3bbe308ccaade8c76071b49908129) [@sometimesfood](https://github.com/sometimesfood)
-* Update go-org to v1.3.0 [127d5feb](https://github.com/gohugoio/hugo/commit/127d5feb32b466c4a0035e81f86684920dd88cfe) [@niklasfasching](https://github.com/niklasfasching)
-* Update go-org to v1.2.0 [2d42ba91](https://github.com/gohugoio/hugo/commit/2d42ba912ba945230aa0be23c3c8256cba40ce99) [@niklasfasching](https://github.com/niklasfasching)
-* Update bug_report.md [5b7b5dea](https://github.com/gohugoio/hugo/commit/5b7b5dea1fe3494995c6a9c3368087abf47cdc12) [@bep](https://github.com/bep)
-* Remove some unused code [057b1377](https://github.com/gohugoio/hugo/commit/057b1377c5f4d0d80ee299293db06384a475ad19) [@bep](https://github.com/bep)
-* Add an option to print memory usage at intervals [48dbb593](https://github.com/gohugoio/hugo/commit/48dbb593f7cc0dceb55d232ac198e82f3df1c964) [@bep](https://github.com/bep)
-* Rework external asciidoctor integration [f0266e2e](https://github.com/gohugoio/hugo/commit/f0266e2ef3487bc57dd05402002fc816e3b40195) [@muenchhausen](https://github.com/muenchhausen)
-* Enable the embedded template test when race detector is off [77aa385b](https://github.com/gohugoio/hugo/commit/77aa385b84dbc1805ff7e34dafeadb181905c689) [@bep](https://github.com/bep) [#5926](https://github.com/gohugoio/hugo/issues/5926)
-* Merge branch 'release-0.73.0' [545a1c1c](https://github.com/gohugoio/hugo/commit/545a1c1cedc93d091050bae07c02fc2435ad2d20) [@bep](https://github.com/bep)
-* Updated installation instruction about Sass/SCSS support [0b579db8](https://github.com/gohugoio/hugo/commit/0b579db80fba1bde7dab07ea92d622dd6214dcfb) [@mateusz-szczyrzyca](https://github.com/mateusz-szczyrzyca)
-
-## Fixes
-
-### Other
-
-* Fix server reload when non-HTML shortcode changes [42e150fb](https://github.com/gohugoio/hugo/commit/42e150fbfac736bd49bc7e50cb8cdf9f81386f59) [@bep](https://github.com/bep) [#7448](https://github.com/gohugoio/hugo/issues/7448)
-
-
diff --git a/docs/content/en/news/0.74.1-relnotes/index.md b/docs/content/en/news/0.74.1-relnotes/index.md
deleted file mode 100644
index 7419296afe6..00000000000
--- a/docs/content/en/news/0.74.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2020-07-13
-title: "Hugo 0.74.1: A couple of Bug Fixes"
-description: "This version fixes one issue introduced in 0.74.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* Fix baseof block regression [c91dbe4c](https://github.com/gohugoio/hugo/commit/c91dbe4ce9c30623ba6e686fd17efae935aa0cc5) [@bep](https://github.com/bep) [#7478](https://github.com/gohugoio/hugo/issues/7478)
-
-
-
diff --git a/docs/content/en/news/0.74.2-relnotes/index.md b/docs/content/en/news/0.74.2-relnotes/index.md
deleted file mode 100644
index e78d8564cff..00000000000
--- a/docs/content/en/news/0.74.2-relnotes/index.md
+++ /dev/null
@@ -1,24 +0,0 @@
-
----
-date: 2020-07-17
-title: "Hugo 0.74.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.74.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-Add .Defines to js.Build options [35011bcb](https://github.com/gohugoio/hugo/commit/35011bcb26b6fcfcbd77dc05aa8246ca45b2c2ba) [@bep](https://github.com/bep) [#7489](https://github.com/gohugoio/hugo/issues/7489)
-
-This is needed to import `react` as a library, e.g.:
-
-```
-{{ $jsx := resources.Get "index.jsx" }}
-{{ $options := dict "defines" (dict "process.env.NODE_ENV" "\"development\"") }}
-{{ $js := $jsx | js.Build $options }}
-```
-
-
diff --git a/docs/content/en/news/0.74.3-relnotes/index.md b/docs/content/en/news/0.74.3-relnotes/index.md
deleted file mode 100644
index b5503982cb9..00000000000
--- a/docs/content/en/news/0.74.3-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2020-07-23
-title: "Hugo 0.74.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.74.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* publisher: Collect transition attributes as classes [00e00da2](https://github.com/gohugoio/hugo/commit/00e00da233ab4d643de90bafca00f60ee0bbe785) [@bep](https://github.com/bep) [#7509](https://github.com/gohugoio/hugo/issues/7509)
-* Fix Asciidoctor args [45c665d3](https://github.com/gohugoio/hugo/commit/45c665d396ed368261f4a63ceee753c7f6dc5bf9) [@helfper](https://github.com/helfper) [#7493](https://github.com/gohugoio/hugo/issues/7493)
-* Fix date format in internal schema template [a06c06a5](https://github.com/gohugoio/hugo/commit/a06c06a5c202de85ff47792b7468bfaeec2fea12) [@jmooring](https://github.com/jmooring) [#7495](https://github.com/gohugoio/hugo/issues/7495)
-* resources/js: Add option for setting bundle format [0256959a](https://github.com/gohugoio/hugo/commit/0256959a358bb26b983c9d9496862b0fdf387621) [@bep](https://github.com/bep) [#7503](https://github.com/gohugoio/hugo/issues/7503)
-* resources/js: Simplify options handling [eded9ac2](https://github.com/gohugoio/hugo/commit/eded9ac2a05b9a7244c25c70ca8f761b69b33385) [@bep](https://github.com/bep) [#7499](https://github.com/gohugoio/hugo/issues/7499)
-* make sure documentation intro text only appears once [8d725128](https://github.com/gohugoio/hugo/commit/8d72512825b4cee12dc1952004f48fd076a3517b) [@TheHippo](https://github.com/TheHippo)
-* resources/js: Add es5 build target [e81aef0a](https://github.com/gohugoio/hugo/commit/e81aef0a954623e4a19062d1534bd8c2af97102a) [@bep](https://github.com/bep)
-* deps: esbuild v0.6.5 [9f919147](https://github.com/gohugoio/hugo/commit/9f9191471ec501f1f957020726f939c9ef48e193) [@bep](https://github.com/bep)
-
-
-
diff --git a/docs/content/en/news/0.75.0-relnotes/featured.png b/docs/content/en/news/0.75.0-relnotes/featured.png
deleted file mode 100644
index 0ee2a713f6c..00000000000
Binary files a/docs/content/en/news/0.75.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.75.0-relnotes/index.md b/docs/content/en/news/0.75.0-relnotes/index.md
deleted file mode 100644
index 3758be13b7f..00000000000
--- a/docs/content/en/news/0.75.0-relnotes/index.md
+++ /dev/null
@@ -1,166 +0,0 @@
-
----
-date: 2020-09-14
-title: "NPM Pack"
-description: "Hugo 0.75 comes with a new \"hugo mod npm pack\" command, several improvements re. Hugo Modules and the Node tools, and more."
-categories: ["Releases"]
----
-
-Hugo `0.75.0` brings several improvements to Hugo Modules, a new CLI command to bridge the JavaScript dependencies into Hugo, a refresh of the versions of the most important upstream dependencies, and more. There are also some good bug fixes in this release. One notable one is covered by [this commit](https://github.com/gohugoio/hugo/commit/4055c121847847d8bd6b95a928185daee065091b) -- which covers a "stale content scenario in server" when you include content or page data via `GetPage` from a shortcode.
-
-## NPM Pack
-
-The new CLI command is called `hugo mod npm pack`. We have marked it as experimental. It works great, go ahead and use it, but we need to test this out in real projects to get a feel of it; it is likely that it will change/improve in the upcoming versions of Hugo. The command creates a consolidated `package.json` from the project and all of its [theme components](https://gohugo.io/hugo-modules/theme-components/). On version conflicts, the version closest to the project is selected. We may revise that strategy in the future ([minimal version selection](https://about.sourcegraph.com/blog/the-pain-that-minimal-version-selection-solves/) maybe?), but this should give both control and the least amount of surprise for the site owner.
-
-So, why did we do this? JavaScript is often a background actor in a Hugo project, and it doesn't make sense to publish it to a NPM registry. The JS dependencies are mostly build tools (PostCSS, TailwindCSS, Babel), `devDependencies`. This has been working fine as long as you kept the JS config files (including `package.json`) in the project, adding duplication/work when using ready-to-use theme components. These tools work best when you have everything below a single file tree, which is very much different to how [Hugo Modules](https://gohugo.io/hugo-modules/) work. An example of a module with TailwindCSS:
-
-```bash
-tailwind-module
-├── assets
-│ └── css
-├── package.json
-├── postcss.config.js
-└── tailwind.config.js
-```
-
-If you included `tailwind-module` in a Hugo project and processed it with `PostCSS`, this is what happened in earlier versions:
-
-* It used the directory where the `postcss.config.js` lives as a starting point to look for any `require`'d dependency.
-* TailwindCSS would, on the other hand, load its configuration file relative to where `PostCSS` was invoked (the project directory).
-
-The above just doesn't work and here is the technical notes on how we have fixed this:
-
-* The new `hugo mod npm pack` creates a consolidated `package.json` based on files named `package.hugo.json` it finds in the dependency tree (one is created for you the first time you run this command). The end result will always be `package.json`, which works seamlessly with `npm install` invoked automatically by Netlify and other CI vendors.
-* The main project's `node_modules` folder is added to [NODE_PATH](https://medium.com/nafsadh/setting-up-node-path-for-using-global-packages-via-require-642eb711c725) when running `PostCSS`and `Babel`.
-* We have introduced a new mount point `assets/_jsconfig` where we, by default, mount the JS configuration files that we're interested in. This is where Hugo will start looking for these files, and the files' filenames will also be available in the Node environment, so you can do:
-
-```js
-let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js';
-const tailwind = require('tailwindcss')(tailwindConfig);
-```
-
-## Module Enhancements
-
-* We have added a `noVendor` Glob pattern config to the module config [d4611c43](https://github.com/gohugoio/hugo/commit/d4611c4322dabfd8d2520232be578388029867db) [@bep](https://github.com/bep) [#7647](https://github.com/gohugoio/hugo/issues/7647). This allows you to only vendor a subset of your dependencies.
-* We have added `ignoreImports` option to module imports config [20af9a07](https://github.com/gohugoio/hugo/commit/20af9a078189ce1e92a1d2047c90fba2a4e91827) [@bep](https://github.com/bep) [#7646](https://github.com/gohugoio/hugo/issues/7646), which allows you to import a module and load its config, but not follow its imports.
-* We have deprecated `--ignoreVendor` in favour of a `--ignoreVendorPaths`, a patch matching Glob pattern [9a1e6d15](https://github.com/gohugoio/hugo/commit/9a1e6d15a31ec667b2ff9cf20e43b1daca61e004) [@bep](https://github.com/bep). A typical use for this would be when you have vendored your dependencies, but want to edit one of them.
-
-
-## Statistics
-
-This release represents **79 contributions by 19 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 [@dependabot[bot]](https://github.com/apps/dependabot), [@moorereason](https://github.com/moorereason), and [@jmooring](https://github.com/jmooring) 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 **24 contributions by 15 contributors**. A special thanks to [@jmooring](https://github.com/jmooring), [@bep](https://github.com/bep), [@jornane](https://github.com/jornane), and [@inwardmovement](https://github.com/inwardmovement) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 46596+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 438+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 352+ [themes](http://themes.gohugo.io/)
-
-## Notes
-* We now build with Go 1.15, which means that we no longer build release binaries for MacOS 32-bit.
-* You may now get an error message about "error calling partial: partials that returns a value needs a non-zero argument.". This error situation was not caught earlier, and comes from a limitation in Go's templates: If you use the `return` keyword in a partial, the argument you pass to that partial (e.g. the ".") cannot be zero (and 0 and "" is considered a zero argument).
-
-## Enhancements
-
-### Templates
-
-* Print layout name if it was specified when showing missing layout file error [9df60b62](https://github.com/gohugoio/hugo/commit/9df60b62f9c4e36a269f0c6e9a69bee9dc691031) [@richtera](https://github.com/richtera) [#7617](https://github.com/gohugoio/hugo/issues/7617)
-* Add limit support to replaceRE [cdfd1c99](https://github.com/gohugoio/hugo/commit/cdfd1c99baa22d69e865294dfcd783811f96c880) [@moorereason](https://github.com/moorereason) [#7586](https://github.com/gohugoio/hugo/issues/7586)
-* Extend merge to accept multiple parameters [047af7cf](https://github.com/gohugoio/hugo/commit/047af7cfe5e9aa740b85e0f9974a2d31a0ef4c08) [@moorereason](https://github.com/moorereason) [#7595](https://github.com/gohugoio/hugo/issues/7595)
-* Add limit option to replace template function [f9ebaaed](https://github.com/gohugoio/hugo/commit/f9ebaaed1be1e4a26eef2aebd2c7554c979f29fa) [@moorereason](https://github.com/moorereason) [#7586](https://github.com/gohugoio/hugo/issues/7586)
-
-### Output
-
-* Respect mediatypes for deploy [12f6a1cd](https://github.com/gohugoio/hugo/commit/12f6a1cdc0aedf4319367af57bda3c94150d6a84) [@satotake](https://github.com/satotake) [#6861](https://github.com/gohugoio/hugo/issues/6861)
-
-### Other
-
-* Set PWD in environment when running the Node apps [377ad87a](https://github.com/gohugoio/hugo/commit/377ad87a51e0ef3619af4fe1be6aeee14c215c0a) [@bep](https://github.com/bep)
-* already -> already [292b0e26](https://github.com/gohugoio/hugo/commit/292b0e26ec9253398f7289dcf096691f63de2d96) [@dholbach](https://github.com/dholbach)
-* Regen docs helper [be2404c8](https://github.com/gohugoio/hugo/commit/be2404c8b17d3275cc82d9e659b9e41dddea7ded) [@bep](https://github.com/bep)
-* Regenerate CLI docs [c8da8eb1](https://github.com/gohugoio/hugo/commit/c8da8eb1f5551e6d141843daab41cb0ddbb0de4b) [@bep](https://github.com/bep)
-* Add "hugo mod npm pack" [85ba9bff](https://github.com/gohugoio/hugo/commit/85ba9bfffba9bfd0b095cb766f72700d4c211e31) [@bep](https://github.com/bep) [#7644](https://github.com/gohugoio/hugo/issues/7644)[#7656](https://github.com/gohugoio/hugo/issues/7656)[#7675](https://github.com/gohugoio/hugo/issues/7675)
-* bump github.com/aws/aws-sdk-go from 1.34.21 to 1.34.22 [4fad43c8](https://github.com/gohugoio/hugo/commit/4fad43c8bd528f1805e78c50cd2e33822351c183) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Add support to linkable line anchors on Chroma [fb0f2cc7](https://github.com/gohugoio/hugo/commit/fb0f2cc718a54fd0774a0367e0a60718b5731de5) [@fjorgemota](https://github.com/fjorgemota) [#7622](https://github.com/gohugoio/hugo/issues/7622)
-* Bump bundled Node.js from v8.12.0 to v12.18.3 [748fd4cb](https://github.com/gohugoio/hugo/commit/748fd4cb0d083de7c173d4b04b874358750fc900) [@anthonyfok](https://github.com/anthonyfok) [#7278](https://github.com/gohugoio/hugo/issues/7278)
-* Change confinement from strict to classic" [b82f440c](https://github.com/gohugoio/hugo/commit/b82f440c59a5bf466c0f4c0431af6099216b0e37) [@anthonyfok](https://github.com/anthonyfok)
-* bump github.com/getkin/kin-openapi from 0.14.0 to 0.22.0 [c8143efa](https://github.com/gohugoio/hugo/commit/c8143efa5d21d20bcf3fa1d4f3fb292e460f90d8) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.34.20 to 1.34.21 [c80132bb](https://github.com/gohugoio/hugo/commit/c80132bbe50f443a8be06dcbc51b855a5a5f8fa2) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/spf13/viper from 1.6.1 to 1.7.1 [75fa4c5c](https://github.com/gohugoio/hugo/commit/75fa4c5c950a43e33dfadfa138f61126b548ac40) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Run "go mod tidy" [fd7969e0](https://github.com/gohugoio/hugo/commit/fd7969e0b09e282d1cd83281bc0f5a62080afe5a) [@bep](https://github.com/bep)
-* Update to Goldmark v1.2.1 [b7fa3c4b](https://github.com/gohugoio/hugo/commit/b7fa3c4bba73f873bda71ba028ef46ce58aad908) [@bep](https://github.com/bep)
-* bump github.com/aws/aws-sdk-go from 1.27.1 to 1.34.20 [746ba803](https://github.com/gohugoio/hugo/commit/746ba803afee8f0f56ee0655cc55087f1822d39c) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/mitchellh/mapstructure from 1.1.2 to 1.3.3 [612b7d37](https://github.com/gohugoio/hugo/commit/612b7d376f1c50abe1fe6fe5188d576c1f5f1743) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Change confinement from strict to classic [6f4ff1a4](https://github.com/gohugoio/hugo/commit/6f4ff1a4617ec42861d255db718286ceaf4f6c8e) [@anthonyfok](https://github.com/anthonyfok)
-* bump github.com/spf13/cobra from 0.0.5 to 0.0.7 [ddeca459](https://github.com/gohugoio/hugo/commit/ddeca45933ab6e58c1b5187ad58dd261c9059009) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/sanity-io/litter from 1.2.0 to 1.3.0 [31f2091f](https://github.com/gohugoio/hugo/commit/31f2091f5803129b97c2a3f6245acc8b788235c7) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Add noVendor to module config [d4611c43](https://github.com/gohugoio/hugo/commit/d4611c4322dabfd8d2520232be578388029867db) [@bep](https://github.com/bep) [#7647](https://github.com/gohugoio/hugo/issues/7647)
-* Add ignoreImports to module imports config [20af9a07](https://github.com/gohugoio/hugo/commit/20af9a078189ce1e92a1d2047c90fba2a4e91827) [@bep](https://github.com/bep) [#7646](https://github.com/gohugoio/hugo/issues/7646)
-* Make ignoreVendor a glob pattern [9a1e6d15](https://github.com/gohugoio/hugo/commit/9a1e6d15a31ec667b2ff9cf20e43b1daca61e004) [@bep](https://github.com/bep) [#7642](https://github.com/gohugoio/hugo/issues/7642)
-* bump github.com/gorilla/websocket from 1.4.1 to 1.4.2 [84adecf9](https://github.com/gohugoio/hugo/commit/84adecf97baa91ab18cb26812fa864b4451d3c5f) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/fsnotify/fsnotify from 1.4.7 to 1.4.9 [573558a0](https://github.com/gohugoio/hugo/commit/573558a078c6aaa671de0224c2d62b6d451d667c) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/kyokomi/emoji [8b10c22f](https://github.com/gohugoio/hugo/commit/8b10c22f822f0874890d2d6df68439450b83ef89) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/markbates/inflect from 1.0.0 to 1.0.4 [195bd124](https://github.com/gohugoio/hugo/commit/195bd1243b350e7a7814e0c893d17c3c408039c7) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/frankban/quicktest from 1.7.2 to 1.10.2 [6a544ece](https://github.com/gohugoio/hugo/commit/6a544ece24c37c98e2e4770fab350d76a0553f6a) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Encode & in livereload injected code [4b430d45](https://github.com/gohugoio/hugo/commit/4b430d456afee9c6da5e5ab46084a05469be1430) [@axllent](https://github.com/axllent)
-* bump github.com/niklasfasching/go-org from 1.3.1 to 1.3.2 [b9f10c75](https://github.com/gohugoio/hugo/commit/b9f10c75cb74c1976fbbf3d9e8dcdd4f3d46e790) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/bep/golibsass from 0.6.0 to 0.7.0 [537c598e](https://github.com/gohugoio/hugo/commit/537c598e9a4d8b8b47f5bffbcf59f72e9a1902c1) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump golang.org/x/text from 0.3.2 to 0.3.3 [67348676](https://github.com/gohugoio/hugo/commit/67348676f703f3ad3f778da1cdfa0fe001e5f925) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.6.5 to 0.6.32 [f9cc0ec7](https://github.com/gohugoio/hugo/commit/f9cc0ec76ee84451583a16a0abb9b09d298c7e00) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/nicksnyder/go-i18n from 1.10.0 to 1.10.1 [b5483eed](https://github.com/gohugoio/hugo/commit/b5483eed6e8c07809fc818192e0ce00d9496565c) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Revert "Update dependabot.yml" [90285f47](https://github.com/gohugoio/hugo/commit/90285f47504f8f2e30254745dd795d4ef007e205) [@bep](https://github.com/bep)
-* Update replaceRE func [f7c1b5fe](https://github.com/gohugoio/hugo/commit/f7c1b5fe1c22ba5f16e3fa442df6a8a70711f23f) [@moorereason](https://github.com/moorereason)
-* Update replace func [183e8626](https://github.com/gohugoio/hugo/commit/183e8626070a5f55c11648082e3060e35231d934) [@moorereason](https://github.com/moorereason)
-* Update merge function [f50ee6bb](https://github.com/gohugoio/hugo/commit/f50ee6bbe5ec0c0a1f7c21da6629faaed23bbe71) [@moorereason](https://github.com/moorereason)
-* Update dependabot.yml [c0655ba6](https://github.com/gohugoio/hugo/commit/c0655ba6ce5db54e8fec2c0e2bef9965b9fb90fc) [@bep](https://github.com/bep)
-* Create dependabot.yml [a2dda22c](https://github.com/gohugoio/hugo/commit/a2dda22c368adbffbba74c8c388cc10299801692) [@bep](https://github.com/bep)
-* Remove Pygments from requirements.txt [910d81a6](https://github.com/gohugoio/hugo/commit/910d81a6927c30ad1126c1bfaab1155b970f6442) [@bep](https://github.com/bep)
-* Regen CLI docs [8c490a73](https://github.com/gohugoio/hugo/commit/8c490a73b3735a0db46abba9bbe15de5ed2167e1) [@bep](https://github.com/bep)
-* Regen docs helper [e6cd9da4](https://github.com/gohugoio/hugo/commit/e6cd9da42d415552ae69e6b0afae823fd5e0003c) [@bep](https://github.com/bep)
-* markup/asciidocext: Revert trace=true [dcf25c0b](https://github.com/gohugoio/hugo/commit/dcf25c0b49eefef0572ec66337a5721bfde22233) [@bep](https://github.com/bep)
-* Update to Go 1.15.1 and 1.14.8 [e820b366](https://github.com/gohugoio/hugo/commit/e820b366b91729313c68be04b413e8894efc4421) [@bep](https://github.com/bep) [#7627](https://github.com/gohugoio/hugo/issues/7627)
-* Add support for .TableOfContents [3ba7c925](https://github.com/gohugoio/hugo/commit/3ba7c92530a80f2f04fe57705ab05c247a6e8437) [@npiganeau](https://github.com/npiganeau) [#1687](https://github.com/gohugoio/hugo/issues/1687)
-* Add a test case [19ef27b9](https://github.com/gohugoio/hugo/commit/19ef27b98edca53c4138b01c0f7c7bfbeb5ffcf1) [@bep](https://github.com/bep) [#7619](https://github.com/gohugoio/hugo/issues/7619)
-* Add SourceMap flag with inline option [c6b661de](https://github.com/gohugoio/hugo/commit/c6b661de826f3ed8768a97a5178b4e020cb2ace1) [@richtera](https://github.com/richtera) [#7607](https://github.com/gohugoio/hugo/issues/7607)
-* Remove logic that hides 'Building Sites' message after build completes [d39636a5](https://github.com/gohugoio/hugo/commit/d39636a5fc6bb82b3e0bd013858c7d116faa0c6b) [@jwarner112](https://github.com/jwarner112) [#7579](https://github.com/gohugoio/hugo/issues/7579)
-* Improve stderr logging for PostCSS and simlilar [ec374204](https://github.com/gohugoio/hugo/commit/ec37420468157284651ef6b04b30420b249179e2) [@bep](https://github.com/bep) [#7584](https://github.com/gohugoio/hugo/issues/7584)
-* Fail on partials with return when given none or a zero argument [ae63c2b5](https://github.com/gohugoio/hugo/commit/ae63c2b5c94f68fbabd5dbd821630e747e8959a4) [@bep](https://github.com/bep) [#7572](https://github.com/gohugoio/hugo/issues/7572)[#7528](https://github.com/gohugoio/hugo/issues/7528)
-* Update to Go 1.15 [e627449c](https://github.com/gohugoio/hugo/commit/e627449c0a2f1d2ffac29357c4f1832fc5462870) [@bep](https://github.com/bep) [#7554](https://github.com/gohugoio/hugo/issues/7554)
-* Revert "Update stale.yml" [c2235c6a](https://github.com/gohugoio/hugo/commit/c2235c6a62d29e0a9e2e274eb340358a445b695d) [@bep](https://github.com/bep)
-* Update stale.yml [4f69ade7](https://github.com/gohugoio/hugo/commit/4f69ade7118302abff97169d17bfa9baac6a711c) [@bep](https://github.com/bep)
-* Remove trailing whitespace and tabs from RSS templates [5f425901](https://github.com/gohugoio/hugo/commit/5f42590144579c318a444ea2ce46d5c3fbbbfe6e) [@solarkennedy](https://github.com/solarkennedy)
-* Add uninstall target [21dbfa1f](https://github.com/gohugoio/hugo/commit/21dbfa1f111ca2f066e06af68f267932ce6cf04f) [@felicianotech](https://github.com/felicianotech)
-* Update Chroma to 0.8.0 [e5591e89](https://github.com/gohugoio/hugo/commit/e5591e89d3a71560b70c5f0ded33f2c9465ffe5a) [@jmooring](https://github.com/jmooring) [#7517](https://github.com/gohugoio/hugo/issues/7517)
-* Update go-org to v1.3.1 [88929bc2](https://github.com/gohugoio/hugo/commit/88929bc23f5a830645c4e2cdac60aa43f480a478) [@niklasfasching](https://github.com/niklasfasching)
-* Collect transition attributes as classes [00e00da2](https://github.com/gohugoio/hugo/commit/00e00da233ab4d643de90bafca00f60ee0bbe785) [@bep](https://github.com/bep) [#7509](https://github.com/gohugoio/hugo/issues/7509)
-* Add option for setting bundle format [0256959a](https://github.com/gohugoio/hugo/commit/0256959a358bb26b983c9d9496862b0fdf387621) [@bep](https://github.com/bep) [#7503](https://github.com/gohugoio/hugo/issues/7503)
-* Simplify options handling [eded9ac2](https://github.com/gohugoio/hugo/commit/eded9ac2a05b9a7244c25c70ca8f761b69b33385) [@bep](https://github.com/bep) [#7499](https://github.com/gohugoio/hugo/issues/7499)
-* make sure documentation intro text only appears once [8d725128](https://github.com/gohugoio/hugo/commit/8d72512825b4cee12dc1952004f48fd076a3517b) [@TheHippo](https://github.com/TheHippo)
-* Add es5 build target [e81aef0a](https://github.com/gohugoio/hugo/commit/e81aef0a954623e4a19062d1534bd8c2af97102a) [@bep](https://github.com/bep)
-* esbuild v0.6.5 [9f919147](https://github.com/gohugoio/hugo/commit/9f9191471ec501f1f957020726f939c9ef48e193) [@bep](https://github.com/bep)
-* Add .Defines to js.Build options [35011bcb](https://github.com/gohugoio/hugo/commit/35011bcb26b6fcfcbd77dc05aa8246ca45b2c2ba) [@bep](https://github.com/bep) [#7489](https://github.com/gohugoio/hugo/issues/7489)
-
-## Fixes
-
-### Other
-
-* Fix AsciiDoc TOC with code [6a848cbc](https://github.com/gohugoio/hugo/commit/6a848cbc3a2487c8b015e715c2de44aef6051080) [@helfper](https://github.com/helfper) [#7649](https://github.com/gohugoio/hugo/issues/7649)
-* markup/asciidocext: Fix broken test [4949bdc2](https://github.com/gohugoio/hugo/commit/4949bdc2ef98a1aebe5536c554d214f15c574a81) [@bep](https://github.com/bep)
-* Fix some change detection issues on server reloads [4055c121](https://github.com/gohugoio/hugo/commit/4055c121847847d8bd6b95a928185daee065091b) [@bep](https://github.com/bep) [#7623](https://github.com/gohugoio/hugo/issues/7623)[#7624](https://github.com/gohugoio/hugo/issues/7624)[#7625](https://github.com/gohugoio/hugo/issues/7625)
-* Fixed misspelled words [ad01aea3](https://github.com/gohugoio/hugo/commit/ad01aea3f426206c2b70bbd97c5d29562dfe954d) [@aurkenb](https://github.com/aurkenb)
-* Fix a typo in CONTRIBUTING.md [f3cb0be3](https://github.com/gohugoio/hugo/commit/f3cb0be35adddfe43423a19116994b53817d97f7) [@capnfabs](https://github.com/capnfabs)
-* Revert "Fix ellipsis display logic in pagination template" [bffc4e12](https://github.com/gohugoio/hugo/commit/bffc4e12fe6d255e1fb8d28943993afc7e99e010) [@jmooring](https://github.com/jmooring)
-* Fix ellipsis display logic in pagination template [2fa851e6](https://github.com/gohugoio/hugo/commit/2fa851e6500752c0cea1da5cfdfc6d99e0a81a71) [@jmooring](https://github.com/jmooring) [#7523](https://github.com/gohugoio/hugo/issues/7523)
-* Fix Asciidoctor args [45c665d3](https://github.com/gohugoio/hugo/commit/45c665d396ed368261f4a63ceee753c7f6dc5bf9) [@helfper](https://github.com/helfper) [#7493](https://github.com/gohugoio/hugo/issues/7493)
-* Fix date format in internal schema template [a06c06a5](https://github.com/gohugoio/hugo/commit/a06c06a5c202de85ff47792b7468bfaeec2fea12) [@jmooring](https://github.com/jmooring) [#7495](https://github.com/gohugoio/hugo/issues/7495)
-* Fix baseof block regression [c91dbe4c](https://github.com/gohugoio/hugo/commit/c91dbe4ce9c30623ba6e686fd17efae935aa0cc5) [@bep](https://github.com/bep) [#7478](https://github.com/gohugoio/hugo/issues/7478)
-
-
-
-
-
diff --git a/docs/content/en/news/0.75.1-relnotes/index.md b/docs/content/en/news/0.75.1-relnotes/index.md
deleted file mode 100644
index 6da3d6c6567..00000000000
--- a/docs/content/en/news/0.75.1-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2020-09-15
-title: "Hugo 0.75.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.75.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* resources/image: Fix nilpointer for images with no Exif [cd00f7f9](https://github.com/gohugoio/hugo/commit/cd00f7f9661d67951ef16c5198541f09f1c058b4) [@bep](https://github.com/bep) [#7688](https://github.com/gohugoio/hugo/issues/7688)
-* modules/npm: Preserve the original package.json if it exists [214afe4c](https://github.com/gohugoio/hugo/commit/214afe4c1bb9c37bc6159e659d66ba9a268a2849) [@bep](https://github.com/bep) [#7690](https://github.com/gohugoio/hugo/issues/7690)
-* tpl: Fix grammar in the new 'requires non-zero' error message [cd830bb0](https://github.com/gohugoio/hugo/commit/cd830bb0275fc39240861627ef26e146985b5c86) [@nekr0z](https://github.com/nekr0z)
-
-
-
diff --git a/docs/content/en/news/0.76.0-relnotes/featured.png b/docs/content/en/news/0.76.0-relnotes/featured.png
deleted file mode 100644
index a2130ce8194..00000000000
Binary files a/docs/content/en/news/0.76.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.76.0-relnotes/index.md b/docs/content/en/news/0.76.0-relnotes/index.md
deleted file mode 100644
index 65f3ebb9dc4..00000000000
--- a/docs/content/en/news/0.76.0-relnotes/index.md
+++ /dev/null
@@ -1,111 +0,0 @@
-
----
-date: 2020-10-06
-title: "Multiple Cascades With Page Filters"
-description: "Hugo 0.76.0 brings multiple cascade blocks per page with filters for path, kind and language."
-categories: ["Releases"]
----
-
-In **Hugo 0.76.0** you can now have a list of [cascade](https://gohugo.io/content-management/front-matter#front-matter-cascade) blocks per page and a new `_target` keyword where you can select which pages to _cascade_ upon using [Glob](https://github.com/gobwas/glob) patterns for a `Page`'s `Kind`, `Lang` and/or `Path`:
-
-```toml
-title ="Blog"
-[[cascade]]
-background = "yosemite.jpg"
-[cascade._target]
-path="/blog/**"
-lang="en"
-kind="page"
-[[cascade]]
-background = "goldenbridge.jpg"
-[cascade._target]
-kind="section"
-```
-
-Tasks that were earlier hard/borderline impossible to do are now simple. One common example would to apply a different template set to nested sections; you can now apply a custom `Type` to these sections using `path="/blog/*/**"` and similar.
-
-A related improvement is that the [build option](https://gohugo.io/content-management/build-options/#readout) `render` is now an enum. In addition to turning on/off rendering of a given page you can tell Hugo to not render, but you want to preserve the `.Permalink`, useful for SPA applications.
-
-This release represents **35 contributions by 8 contributors** to the main Hugo code base. A big shoutout to [@bep](https://github.com/bep), [@ai](https://github.com/ai), and [@jmooring](https://github.com/jmooring) 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 **11 contributions by 6 contributors**. A special thanks to [@amdw](https://github.com/amdw), [@davidsneighbour](https://github.com/davidsneighbour), [@samrobbins85](https://github.com/samrobbins85), and [@yaythomas](https://github.com/yaythomas) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 47025+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 438+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 354+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-
-We have added a `force` flag to the [server redirects](https://gohugo.io/getting-started/configuration/#configure-server) configuration, configuring whether to override any existing content in the path or not. This is inline with how [Netlify](https://docs.netlify.com/routing/redirects/#syntax-for-the-netlify-configuration-file) does it.
-
-This is set to default `false`. If you want the old behaviour you need to add this flag to your configuration:
-
-{{< code-toggle file="config" >}}
-[[redirects]]
-from = "/myspa/**"
-to = "/myspa/"
-status = 200
-force = true
-{{< /code-toggle >}}
-
-## Enhancements
-
-### Templates
-
-* Add Do Not Track (dnt) option to Vimeo shortcode [edc5c474](https://github.com/gohugoio/hugo/commit/edc5c4741caaee36ba4d42b5947c195a3e02e6aa) [@joshgerdes](https://github.com/joshgerdes) [#7700](https://github.com/gohugoio/hugo/issues/7700)
-
-### Other
-
-* Regen docshelper [b9318e43](https://github.com/gohugoio/hugo/commit/b9318e4315d9112f727140c0950d8836bf26eb87) [@bep](https://github.com/bep)
-* Make BuildConfig.Render an enum [63493890](https://github.com/gohugoio/hugo/commit/634938908ec8f393b9a05d26b4cfe19ca7abb0d0) [@bep](https://github.com/bep) [#7783](https://github.com/gohugoio/hugo/issues/7783)
-* Allow cascade to be a slice with a _target discriminator [c63db7f1](https://github.com/gohugoio/hugo/commit/c63db7f1f6774a2d661af1d8197c6fe377e3ad25) [@bep](https://github.com/bep) [#7782](https://github.com/gohugoio/hugo/issues/7782)
-* Add force flag to server redirects config [5e2a547c](https://github.com/gohugoio/hugo/commit/5e2a547cb594b31ecb0f089b08db2e15c6dc381a) [@bep](https://github.com/bep) [#7778](https://github.com/gohugoio/hugo/issues/7778)
-* bump github.com/evanw/esbuild from 0.7.8 to 0.7.9 [ee090c09](https://github.com/gohugoio/hugo/commit/ee090c0940cdbf636e3a55a40b41612d92b9c62d) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/tdewolff/minify/v2 from 2.9.5 to 2.9.7 [05e358fd](https://github.com/gohugoio/hugo/commit/05e358fd335bcb5c7bdc2783ab0c17ec42667df6) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.34.34 to 1.35.0 [a2e85d9a](https://github.com/gohugoio/hugo/commit/a2e85d9a75aca59fd720cce6561ff64997858cd2) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/getkin/kin-openapi from 0.22.0 to 0.22.1 [4fba78dd](https://github.com/gohugoio/hugo/commit/4fba78dd0e950742132954a5d24629e4adfa1bb1) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.34.33 to 1.34.34 [c011b466](https://github.com/gohugoio/hugo/commit/c011b4667f3e1e3c6ecea2fe8f251578884c53b6) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.7.7 to 0.7.8 [35348b4b](https://github.com/gohugoio/hugo/commit/35348b4b343600ec24b1eb1a06f4d3c59199df25) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.34.27 to 1.34.33 [34915777](https://github.com/gohugoio/hugo/commit/34915777c2e8bc1457ff90d09cf814d494d9eece) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.7.4 to 0.7.7 [0f4a837e](https://github.com/gohugoio/hugo/commit/0f4a837ed1fd903bb6740b512683528ddb917918) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/tdewolff/minify/v2 from 2.9.4 to 2.9.5 [b395d686](https://github.com/gohugoio/hugo/commit/b395d686e9a77bf4e0d587ee9a3af4ae6e1aee02) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Upgrade to go-i18n v2 [97987e5c](https://github.com/gohugoio/hugo/commit/97987e5c0254e35668dca7f89e67b79553e617c8) [@bep](https://github.com/bep) [#5242](https://github.com/gohugoio/hugo/issues/5242)
-* bump github.com/evanw/esbuild from 0.7.2 to 0.7.4 [4855c186](https://github.com/gohugoio/hugo/commit/4855c186d8f05e5e1b0f681b4aa6482a033df241) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.34.26 to 1.34.27 [6f07ec7e](https://github.com/gohugoio/hugo/commit/6f07ec7e9ec5c43f78100aa36b82786ba0260d75) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/alecthomas/chroma from 0.8.0 to 0.8.1 [4318dc72](https://github.com/gohugoio/hugo/commit/4318dc72f8c562b3bc106cd953d9fce58a93455d) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.7.1 to 0.7.2 [acdc27a3](https://github.com/gohugoio/hugo/commit/acdc27a32de83f32557e7a108797ddbebe4eb464) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Make sure CSS is rebuilt when postcss.config.js or tailwind.config.js changes [3acde9ae](https://github.com/gohugoio/hugo/commit/3acde9ae04fbf4a8c635d404608cb87218a8b803) [@bep](https://github.com/bep) [#7715](https://github.com/gohugoio/hugo/issues/7715)
-* bump github.com/aws/aws-sdk-go from 1.34.22 to 1.34.26 [0bce9770](https://github.com/gohugoio/hugo/commit/0bce97703c17318b13b95d78ba41f40efb06aea7) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Update to github.com/tdewolff/minify v2.9.4 [b254532b](https://github.com/gohugoio/hugo/commit/b254532b52785954c98a473a635b9cea016d8565) [@bep](https://github.com/bep)
-* Bump bundled Node.js from v12.18.3 to v12.18.4 [05a22892](https://github.com/gohugoio/hugo/commit/05a22892921bd4618efe6135ce0d6fe2be545607) [@anthonyfok](https://github.com/anthonyfok)
-* Add preserveTOC option [8e553dcd](https://github.com/gohugoio/hugo/commit/8e553dcdefe50ab534f1199c006ae7754e14bee5) [@helfper](https://github.com/helfper)
-* bump github.com/frankban/quicktest from 1.10.2 to 1.11.0 [d4fc70a3](https://github.com/gohugoio/hugo/commit/d4fc70a3b320a55c4f571eed806d5ad5fdf1ef14) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.6.32 to 0.7.1 [d905abc0](https://github.com/gohugoio/hugo/commit/d905abc002aa6fd260e82063ef1edb8876aa76fd) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/rogpeppe/go-internal from 1.5.1 to 1.6.2 [8f394674](https://github.com/gohugoio/hugo/commit/8f3946746dda444f183ba235288c2b39d0d6a943) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/jdkato/prose from 1.1.1 to 1.2.0 [b01b2564](https://github.com/gohugoio/hugo/commit/b01b2564eefe342c9bf9767ffc256ebd04b94c71) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/spf13/afero from 1.2.2 to 1.4.0 [9fa5ebe2](https://github.com/gohugoio/hugo/commit/9fa5ebe2c42fbb37d066ffcd36bad4d08efe879a) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Preserve the original package.json if it exists [214afe4c](https://github.com/gohugoio/hugo/commit/214afe4c1bb9c37bc6159e659d66ba9a268a2849) [@bep](https://github.com/bep) [#7690](https://github.com/gohugoio/hugo/issues/7690)
-
-## Fixes
-
-### Templates
-
-* Fix grammar in the new 'requires non-zero' error message [cd830bb0](https://github.com/gohugoio/hugo/commit/cd830bb0275fc39240861627ef26e146985b5c86) [@nekr0z](https://github.com/nekr0z)
-
-### Other
-
-* Fix writeStats with quote inside quotes [11134411](https://github.com/gohugoio/hugo/commit/111344113bf8c16ae45528d67ff408da15961727) [@bep](https://github.com/bep) [#7746](https://github.com/gohugoio/hugo/issues/7746)
-* Fix CLI example for PostCSS 8 [0c3d2b67](https://github.com/gohugoio/hugo/commit/0c3d2b67e0af38a4c3935fb04f722a73ec1d3f8b) [@ai](https://github.com/ai)
-* Fix typo in redirect error message [473b6610](https://github.com/gohugoio/hugo/commit/473b6610d51d4a33ba35917f95b0d97ea78dad2b) [@jmooring](https://github.com/jmooring)
-* Fix nilpointer for images with no Exif [cd00f7f9](https://github.com/gohugoio/hugo/commit/cd00f7f9661d67951ef16c5198541f09f1c058b4) [@bep](https://github.com/bep) [#7688](https://github.com/gohugoio/hugo/issues/7688)
-
-
-
-
-
diff --git a/docs/content/en/news/0.76.1-relnotes/index.md b/docs/content/en/news/0.76.1-relnotes/index.md
deleted file mode 100644
index b28b17960f3..00000000000
--- a/docs/content/en/news/0.76.1-relnotes/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
-
----
-date: 2020-10-07
-title: "Hugo 0.76.1: One Bug Fix"
-description: "This version fixes one bug introduced in 0.76.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-With this, we should finally have proper [plural numerals in Russian etc.](https://discourse.gohugo.io/t/0-76-0-i18n-gone-wrong/28689/7?u=bep):
-
-* langs/i18n: Fix i18n .Count regression [f9e798e8](https://github.com/gohugoio/hugo/commit/f9e798e8c4234bd60277e3cb10663ba254d4ecb7) [@bep](https://github.com/bep) [#7787](https://github.com/gohugoio/hugo/issues/7787)
-
-
-
diff --git a/docs/content/en/news/0.76.2-relnotes/index.md b/docs/content/en/news/0.76.2-relnotes/index.md
deleted file mode 100644
index c071fdcac10..00000000000
--- a/docs/content/en/news/0.76.2-relnotes/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
-
----
-date: 2020-10-07
-title: "Hugo 0.76.2: One Bug Fix"
-description: "This release reverts to an older (and working) version of the JS minifier."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-This is a bug-fix release with one important fix.
-
-* Revert "deps: Update to github.com/tdewolff/minify v2.9.4" [6dd60fca](https://github.com/gohugoio/hugo/commit/6dd60fca73ff96b48064bb8c6586631a2370ffc6) [@bep](https://github.com/bep) [#7792](https://github.com/gohugoio/hugo/issues/7792)
-
-
-
diff --git a/docs/content/en/news/0.76.3-relnotes/index.md b/docs/content/en/news/0.76.3-relnotes/index.md
deleted file mode 100644
index 1dc2d8b098b..00000000000
--- a/docs/content/en/news/0.76.3-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2020-10-08
-title: "Hugo 0.76.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.76.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* langs/i18n: Add workaround for known language, but missing plural rule error [33e9d79b](https://github.com/gohugoio/hugo/commit/33e9d79b78b32d0cc19693ab3c29ba9941d80f8f) [@bep](https://github.com/bep) [#7798](https://github.com/gohugoio/hugo/issues/7798)
-* langs/i18n: Fix for bare TOML keys [fc6abc39](https://github.com/gohugoio/hugo/commit/fc6abc39c75c152780151c35bc95b12bee01b09c) [@bep](https://github.com/bep)
-
-
-
diff --git a/docs/content/en/news/0.76.4-relnotes/index.md b/docs/content/en/news/0.76.4-relnotes/index.md
deleted file mode 100644
index cb7e8670cdd..00000000000
--- a/docs/content/en/news/0.76.4-relnotes/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
-
----
-date: 2020-10-12
-title: "Hugo 0.76.4: One Bug Fix"
-description: "This version fixes one more i18n regression from 0.76.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* snap: Install postcss v8 explicitly as it is now a peer dependency [e9a7ebaf](https://github.com/gohugoio/hugo/commit/e9a7ebaf67a63ffe5e64c3b3aaefe66feb7f1868) [@anthonyfok](https://github.com/anthonyfok)
-* lang/i18n: Fix for language code case issue with pt-br etc. [50682043](https://github.com/gohugoio/hugo/commit/506820435cacb39ce7bb1835f46a15e913b95828) [@bep](https://github.com/bep) [#7804](https://github.com/gohugoio/hugo/issues/7804)
-* Merge branch 'release-0.76.3' [49972d07](https://github.com/gohugoio/hugo/commit/49972d07925604fea45afe1ace7b5dcc6efc30bf) [@bep](https://github.com/bep)
-* Add merge helper [c98132e3](https://github.com/gohugoio/hugo/commit/c98132e30e01a9638e61bd888c769d30e4e43ad5) [@bep](https://github.com/bep)
-
-
-
diff --git a/docs/content/en/news/0.76.5-relnotes/index.md b/docs/content/en/news/0.76.5-relnotes/index.md
deleted file mode 100644
index 063cbbaa9cd..00000000000
--- a/docs/content/en/news/0.76.5-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2020-10-14
-title: "Hugo 0.76.5: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.76.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* Render aliases even if render=link [79a022a1](https://github.com/gohugoio/hugo/commit/79a022a15c5f39b8ae87a94665f14bf1797b605c) [@bep](https://github.com/bep) [#7832](https://github.com/gohugoio/hugo/issues/7832)
-
-
-
diff --git a/docs/content/en/news/0.77.0-relnotes/featured.png b/docs/content/en/news/0.77.0-relnotes/featured.png
deleted file mode 100644
index 4245479a524..00000000000
Binary files a/docs/content/en/news/0.77.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.77.0-relnotes/index.md b/docs/content/en/news/0.77.0-relnotes/index.md
deleted file mode 100644
index c9db7ef99e2..00000000000
--- a/docs/content/en/news/0.77.0-relnotes/index.md
+++ /dev/null
@@ -1,90 +0,0 @@
-
----
-date: 2020-10-30
-title: "Hugo 0.77.0: Hugo Modules Improvements and More "
-description: "New Replacements config option for simpler development workflows, ignore errors from getJSON, localized dates, and more."
-categories: ["Releases"]
----
-
-Hugo `0.77.0` is a small, but useful release. Some notable updates are:
-
-* **time.AsTime** accepts an optional location as second parameter, allowing timezone aware printing of dates.
-* You can now build with `go install -tags nodeploy` if you don't need the **`hugo deploy`** feature.
-* Remote **`getJSON`** errors can now be ignored by adding `ignoreErrors = ["error-remote-getjson"]` to your site config.
-
-There are also several useful **[Hugo Modules](https://gohugo.io/hugo-modules/)** enhancements:
-
-* We have added `Replacements` to the [Module Configuration](https://gohugo.io/hugo-modules/configuration/#module-config-top-level). This should enable a much simpler developer workflow, simpler to set up preview sites for your remote theme etc, as you now can do `env HUGO_MODULE_REPLACEMENTS="github.com/bep/myprettytheme -> ../.." hugo` and similar.
-* The module `Path` for local modules can now be absolute for imports defined in the project.
-
-This release represents **38 contributions by 11 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 [@anthonyfok](https://github.com/anthonyfok) 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 **3 contributions by 3 contributors**.
-
-Hugo now has:
-
-* 47530+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 438+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 361+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Templates
-
-* Refactor time.AsTime location implementation [807db97a](https://github.com/gohugoio/hugo/commit/807db97af83ff61b022cbc8af80b9dc9cdb8dd43) [@moorereason](https://github.com/moorereason)
-* Update Hugo time to support optional [LOCATION] parameter [26eeb291](https://github.com/gohugoio/hugo/commit/26eeb2914720929d2d778f14d6a4bf737014e9e3) [@virgofx](https://github.com/virgofx)
-* Improve layout path construction [acfa1538](https://github.com/gohugoio/hugo/commit/acfa153863d6ff2acf17ffb4395e05d102229905) [@moorereason](https://github.com/moorereason)
-* Test all lookup permutations in TestLayout [78b26d53](https://github.com/gohugoio/hugo/commit/78b26d538c716d463b30c23de7df5eaa4d5504fd) [@moorereason](https://github.com/moorereason)
-* Reformat TestLayout table [28179bd5](https://github.com/gohugoio/hugo/commit/28179bd55619847f46ca0ffd316ef52fc9c96f1e) [@moorereason](https://github.com/moorereason)
-
-### Other
-
-* Allow absolute paths for project imports [beabc8d9](https://github.com/gohugoio/hugo/commit/beabc8d998249ecc5dd522d696dc6233a29131c2) [@bep](https://github.com/bep) [#7910](https://github.com/gohugoio/hugo/issues/7910)
-* Regen docs helper [332b65e4](https://github.com/gohugoio/hugo/commit/332b65e4ccb6ac0d606de2a1b23f5189c72542be) [@bep](https://github.com/bep)
-* Add module.replacements [173187e2](https://github.com/gohugoio/hugo/commit/173187e2633f3fc037c83e1e3de2902ae3c93b92) [@bep](https://github.com/bep) [#7904](https://github.com/gohugoio/hugo/issues/7904)[#7908](https://github.com/gohugoio/hugo/issues/7908)
-* Do not call CDN service invalidation when executing a dry run deployment [56a34350](https://github.com/gohugoio/hugo/commit/56a343507ca28254edb891bc1c21b6c8ca017982) [@zemanel](https://github.com/zemanel) [#7884](https://github.com/gohugoio/hugo/issues/7884)
-* Pass editor arguments from newContentEditor correctly [d48a98c4](https://github.com/gohugoio/hugo/commit/d48a98c477a818d28008d9771050d2681e63e880) [@bhavin192](https://github.com/bhavin192)
-* Bump github.com/spf13/cobra from 0.0.7 to 1.1.1 [3261678f](https://github.com/gohugoio/hugo/commit/3261678f63fd66810db77ccaf9a0c0e426be5380) [@anthonyfok](https://github.com/anthonyfok)
-* Allow optional "nodeploy" tag to exclude deploy command from bin [f465c5c3](https://github.com/gohugoio/hugo/commit/f465c5c3079261eb7fa513e2d2793851b9c52b83) [@emhagman](https://github.com/emhagman) [#7826](https://github.com/gohugoio/hugo/issues/7826)
-* Allow cascade _target to work with non toml fm [3400aff2](https://github.com/gohugoio/hugo/commit/3400aff2588cbf9dd4629c05537d16b019d0fdf5) [@gwatts](https://github.com/gwatts) [#7874](https://github.com/gohugoio/hugo/issues/7874)
-* Allow getJSON errors to be ignored [fdfa4a5f](https://github.com/gohugoio/hugo/commit/fdfa4a5fe62232f65f1dd8d6fe0c500374228788) [@bep](https://github.com/bep) [#7866](https://github.com/gohugoio/hugo/issues/7866)
-* bump github.com/evanw/esbuild from 0.7.15 to 0.7.18 [8cbe2bbf](https://github.com/gohugoio/hugo/commit/8cbe2bbfad6aa4de267921e24e166d4addf47040) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Revert "Add benchmark for building docs site" [b886fa46](https://github.com/gohugoio/hugo/commit/b886fa46bb92916152476cfac45c7a5ee5e5820a) [@bep](https://github.com/bep)
-* Avoid making unnecessary allocation [14bce18a](https://github.com/gohugoio/hugo/commit/14bce18a6c5aca8cb3e70a74d5045ca8b2358fee) [@moorereason](https://github.com/moorereason)
-* Add benchmark for building docs site [837e084b](https://github.com/gohugoio/hugo/commit/837e084bbe53e9e2e6cd471d2a3daf273a874d92) [@moorereason](https://github.com/moorereason)
-* Always show page number when 5 pages or less [08e4f9ff](https://github.com/gohugoio/hugo/commit/08e4f9ff9cc448d5fea9b8a62a23aed8aad0d047) [@moorereason](https://github.com/moorereason) [#7523](https://github.com/gohugoio/hugo/issues/7523)
-* bump github.com/frankban/quicktest from 1.11.0 to 1.11.1 [f033d9f0](https://github.com/gohugoio/hugo/commit/f033d9f01d13d8cd08205ccfaa09919ed15dca77) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.7.14 to 0.7.15 [59fe2794](https://github.com/gohugoio/hugo/commit/59fe279424c66ac6a89cafee01a5b2e34dbcc1fb) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Merge branch 'release-0.76.5' [62119022](https://github.com/gohugoio/hugo/commit/62119022d1be41e423ef3bcf467a671ce6c4f7dd) [@bep](https://github.com/bep)
-* Render aliases even if render=link [79a022a1](https://github.com/gohugoio/hugo/commit/79a022a15c5f39b8ae87a94665f14bf1797b605c) [@bep](https://github.com/bep) [#7832](https://github.com/gohugoio/hugo/issues/7832)
-* Render aliases even if render=link [ead5799f](https://github.com/gohugoio/hugo/commit/ead5799f7ea837fb2ca1879a6d37ba364e53827f) [@bep](https://github.com/bep) [#7832](https://github.com/gohugoio/hugo/issues/7832)
-* bump github.com/spf13/afero from 1.4.0 to 1.4.1 [d57be113](https://github.com/gohugoio/hugo/commit/d57be113243be4b76310d4476fbb7525d1452658) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.7.9 to 0.7.14 [d0705966](https://github.com/gohugoio/hugo/commit/d070596694a3edbf42fc315bb326505aa39fce90) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Update to Go 1.15 and Alpine 3.12 [f5ea359d](https://github.com/gohugoio/hugo/commit/f5ea359dd34bf59a2944f1d9667838202af13c93) [@ducksecops](https://github.com/ducksecops)
-* Install postcss v8 explicitly as it is now a peer dependency [e9a7ebaf](https://github.com/gohugoio/hugo/commit/e9a7ebaf67a63ffe5e64c3b3aaefe66feb7f1868) [@anthonyfok](https://github.com/anthonyfok)
-* Merge branch 'release-0.76.3' [49972d07](https://github.com/gohugoio/hugo/commit/49972d07925604fea45afe1ace7b5dcc6efc30bf) [@bep](https://github.com/bep)
-* Add merge helper [c98132e3](https://github.com/gohugoio/hugo/commit/c98132e30e01a9638e61bd888c769d30e4e43ad5) [@bep](https://github.com/bep)
-* Add workaround for known language, but missing plural rule error [33e9d79b](https://github.com/gohugoio/hugo/commit/33e9d79b78b32d0cc19693ab3c29ba9941d80f8f) [@bep](https://github.com/bep) [#7798](https://github.com/gohugoio/hugo/issues/7798)
-* Update to github.com/tdewolff/minify v2.9.4" [6dd60fca](https://github.com/gohugoio/hugo/commit/6dd60fca73ff96b48064bb8c6586631a2370ffc6) [@bep](https://github.com/bep) [#7792](https://github.com/gohugoio/hugo/issues/7792)
-
-## Fixes
-
-### Templates
-
-* Fix reflection bug in merge [6d95dc9d](https://github.com/gohugoio/hugo/commit/6d95dc9d74681cba53b46e79c6e1d58d27fcdfb0) [@moorereason](https://github.com/moorereason) [#7899](https://github.com/gohugoio/hugo/issues/7899)
-
-### Other
-
-* Fix setting HUGO_MODULE_PROXY etc. via env vars [8a1c637c](https://github.com/gohugoio/hugo/commit/8a1c637c4494751046142e0ef345fce38fc1431b) [@bep](https://github.com/bep) [#7903](https://github.com/gohugoio/hugo/issues/7903)
-* Fix for language code case issue with pt-br etc. [50682043](https://github.com/gohugoio/hugo/commit/506820435cacb39ce7bb1835f46a15e913b95828) [@bep](https://github.com/bep) [#7804](https://github.com/gohugoio/hugo/issues/7804)
-* Fix for bare TOML keys [fc6abc39](https://github.com/gohugoio/hugo/commit/fc6abc39c75c152780151c35bc95b12bee01b09c) [@bep](https://github.com/bep)
-* Fix i18n .Count regression [f9e798e8](https://github.com/gohugoio/hugo/commit/f9e798e8c4234bd60277e3cb10663ba254d4ecb7) [@bep](https://github.com/bep) [#7787](https://github.com/gohugoio/hugo/issues/7787)
-* Fix typo in 0.76.0 release note [ee56efff](https://github.com/gohugoio/hugo/commit/ee56efffcb3f81120b0d3e0297b4fb5966124354) [@digitalcraftsman](https://github.com/digitalcraftsman)
-
-
-
-
-
diff --git a/docs/content/en/news/0.78.0-relnotes/featured.png b/docs/content/en/news/0.78.0-relnotes/featured.png
deleted file mode 100644
index 36ae0ac95bb..00000000000
Binary files a/docs/content/en/news/0.78.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.78.0-relnotes/index.md b/docs/content/en/news/0.78.0-relnotes/index.md
deleted file mode 100644
index 25b0fd4d832..00000000000
--- a/docs/content/en/news/0.78.0-relnotes/index.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
----
-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.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 --git a/docs/content/en/news/0.78.1-relnotes/index.md b/docs/content/en/news/0.78.1-relnotes/index.md
deleted file mode 100644
index 168c1bbcdd8..00000000000
--- a/docs/content/en/news/0.78.1-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2020-11-05
-title: "Hugo 0.78.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.78.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-The main fix in this release is that of dependency resolution for package.json/node_modules in theme components. See [the documentation](https://gohugo.io/hugo-pipes/js/#include-dependencies-in-packagejson--node_modules) for more information.
-
-* Disable NPM test on Travis on Windows [3437174c](https://github.com/gohugoio/hugo/commit/3437174c3a7b96925b82b351ac87530b4fa796a5) [@bep](https://github.com/bep)
-* travis: Install nodejs on Windows [f66302ca](https://github.com/gohugoio/hugo/commit/f66302ca0579171ffd1730eb8f33dd05af3d9a00) [@bep](https://github.com/bep)
-* js: 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)
-* js: 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 --git a/docs/content/en/news/0.78.2-relnotes/index.md b/docs/content/en/news/0.78.2-relnotes/index.md
deleted file mode 100644
index 4714373e989..00000000000
--- a/docs/content/en/news/0.78.2-relnotes/index.md
+++ /dev/null
@@ -1,28 +0,0 @@
-
----
-date: 2020-11-13
-title: "Hugo 0.78.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.78.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* js: 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)
-* build(deps): 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)
-* build(deps): 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)
-* build(deps): 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)
-* build(deps): 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)
-* build(deps): 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)
-* build(deps): 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)
-
-
-
diff --git a/docs/content/en/news/0.79.0-relnotes/featured.png b/docs/content/en/news/0.79.0-relnotes/featured.png
deleted file mode 100644
index f1b7686da76..00000000000
Binary files a/docs/content/en/news/0.79.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.79.0-relnotes/index.md b/docs/content/en/news/0.79.0-relnotes/index.md
deleted file mode 100644
index 23ed1ef2efb..00000000000
--- a/docs/content/en/news/0.79.0-relnotes/index.md
+++ /dev/null
@@ -1,71 +0,0 @@
-
----
-date: 2020-11-27
-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)).
-
-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 --git a/docs/content/en/news/0.79.1-relnotes/index.md b/docs/content/en/news/0.79.1-relnotes/index.md
deleted file mode 100644
index 2a3f32765d0..00000000000
--- a/docs/content/en/news/0.79.1-relnotes/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
-
----
-date: 2020-12-19
-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.
-
-Windows users who ran `hugo` inside untrusted Hugo sites were affected.
-
-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 --git a/docs/content/en/news/0.8-relnotes/index.md b/docs/content/en/news/0.8-relnotes/index.md
deleted file mode 100644
index 6da6b9671de..00000000000
--- a/docs/content/en/news/0.8-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-date: 2013-08-03T15:26:04Z
-description: "Hugo 0.8 added support for pretty URLs, support for TOML and YAML, better Windows compatibility, and more!"
-title: "Hugo 0.8"
-categories: ["Releases"]
----
-
-**Please read the docs as a few options have changed in this release:**
-
-- Added support for pretty URLs (filename/index.html vs filename.html)
-- Hugo supports a destination directory
-- Will efficiently sync content in static to destination directory
-- Cleaned up options.. now with support for short and long options
-- Added support for TOML
-- Added support for YAML
-- Added support for Previous & Next
-- Added support for indexes for the indexes
-- Better Windows compatibility
-- Support for series
-- Adding verbose output
-- Loads of bugfixes
diff --git a/docs/content/en/news/0.80.0-relnotes/featured.png b/docs/content/en/news/0.80.0-relnotes/featured.png
deleted file mode 100644
index 09308b04c4a..00000000000
Binary files a/docs/content/en/news/0.80.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.80.0-relnotes/index.md b/docs/content/en/news/0.80.0-relnotes/index.md
deleted file mode 100644
index 1c390b6858d..00000000000
--- a/docs/content/en/news/0.80.0-relnotes/index.md
+++ /dev/null
@@ -1,79 +0,0 @@
-
----
-date: 2020-12-31
-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.
-
-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 --git a/docs/content/en/news/0.81.0-relnotes/featured.jpg b/docs/content/en/news/0.81.0-relnotes/featured.jpg
deleted file mode 100644
index e1488c5c218..00000000000
Binary files a/docs/content/en/news/0.81.0-relnotes/featured.jpg and /dev/null differ
diff --git a/docs/content/en/news/0.81.0-relnotes/index.md b/docs/content/en/news/0.81.0-relnotes/index.md
deleted file mode 100644
index ebcbb5ac71b..00000000000
--- a/docs/content/en/news/0.81.0-relnotes/index.md
+++ /dev/null
@@ -1,223 +0,0 @@
-
----
-date: 2021-02-19
-title: "Hugo 0.81.0: The Smorgasbord Edition"
-description: "Attribute lists (e.g. CSS classes) for Markdown blocks, newlines in template actions/blocks, native Apple M1 ARM64 binary, it's faster, and more …"
-categories: ["Releases"]
-toc: true
----
-
-**Hugo 0.81.0** is the first release of this decade, it is the fastest to date, and it's packed with useful new features.
-
-## Newlines in Template Actions and Commands
-
-You can now have newlines within template actions and pipelines. This means that you can now do this and similar:
-
-```go-html-template
-{{ dict
- "country" "Norway"
- "population" "5 millions"
- "language" "Norwegian"
- "language_code" "nb"
- "weather" "freezing cold"
- "capitol" "Oslo"
- "largest_city" "Oslo"
- "currency" "Norwegian krone"
- "dialing_code" "+47"
-}}
-```
-
-Note that the above construction will fail in Hugo versions < `0.81.0`.
-
-## Attribute Lists after Markdown Blocks
-
-Hugo already supports adding attribute lists (e.g CSS classes) after titles. We now also allow adding attribute lists after Markdown blocks, e.g. tables, lists, paragraphs etc.:
-
-```
-> foo
-> bar
-{.myclass}
-```
-
-See [Configure Goldmark](https://gohugo.io/getting-started/configuration-markup#goldmark).
-
-## Performance
-
-This release is the fastest Hugo to date, see details in the benchmarks below. This is [especially true](https://gohugo.io/news/hugo-macos-intel-vs-arm/) if you use the new ARM64 MacOS binary (only works on [Apple M1](https://en.wikipedia.org/wiki/Apple_M1) devices).
-
-### Site Building and Rebuilding Benchmarks: v0.80.0 => v0.81.0
-
-```
-name old time/op new time/op delta
-SiteNew/Edit_Bundle_with_image-16 771µs ± 6% 817µs ± 7% ~ (p=0.200 n=4+4)
-SiteNew/Edit_Bundle_with_JSON_file-16 728µs ± 2% 737µs ± 1% ~ (p=0.343 n=4+4)
-SiteNew/Edit_Tags_and_categories-16 16.6ms ± 5% 16.3ms ± 3% ~ (p=0.686 n=4+4)
-SiteNew/Edit_Canonify_URLs-16 29.4ms ± 6% 26.9ms ± 4% -8.37% (p=0.029 n=4+4)
-SiteNew/Edit_Deep_content_tree-16 33.8ms ± 3% 31.2ms ± 3% -7.53% (p=0.029 n=4+4)
-SiteNew/Edit_Many_HTML_templates-16 12.1ms ± 2% 11.6ms ± 1% -3.94% (p=0.029 n=4+4)
-SiteNew/Edit_Page_collections-16 20.6ms ± 1% 19.8ms ± 0% -3.57% (p=0.029 n=4+4)
-SiteNew/Edit_List_terms-16 3.91ms ± 1% 3.81ms ± 2% -2.52% (p=0.029 n=4+4)
-SiteNew/Regular_Bundle_with_image-16 6.15ms ± 2% 5.53ms ± 2% -10.11% (p=0.029 n=4+4)
-SiteNew/Regular_Bundle_with_JSON_file-16 6.26ms ± 4% 5.76ms ± 4% -7.98% (p=0.029 n=4+4)
-SiteNew/Regular_Tags_and_categories-16 26.2ms ± 2% 25.5ms ± 1% -2.42% (p=0.029 n=4+4)
-SiteNew/Regular_Canonify_URLs-16 34.7ms ± 8% 33.8ms ± 9% ~ (p=0.486 n=4+4)
-SiteNew/Regular_Deep_content_tree-16 43.8ms ± 1% 43.4ms ± 6% ~ (p=0.343 n=4+4)
-SiteNew/Regular_Many_HTML_templates-16 21.5ms ± 1% 19.7ms ± 2% -8.54% (p=0.029 n=4+4)
-SiteNew/Regular_Page_collections-16 30.7ms ± 2% 28.2ms ± 1% -8.23% (p=0.029 n=4+4)
-SiteNew/Regular_List_terms-16 9.70ms ± 1% 8.95ms ± 0% -7.72% (p=0.029 n=4+4)
-
-name old alloc/op new alloc/op delta
-SiteNew/Edit_Bundle_with_image-16 437kB ± 0% 428kB ± 0% -2.02% (p=0.029 n=4+4)
-SiteNew/Edit_Bundle_with_JSON_file-16 216kB ± 0% 207kB ± 0% -4.20% (p=0.029 n=4+4)
-SiteNew/Edit_Tags_and_categories-16 10.4MB ± 0% 9.7MB ± 0% -6.08% (p=0.029 n=4+4)
-SiteNew/Edit_Canonify_URLs-16 84.4MB ± 0% 85.2MB ± 0% +0.87% (p=0.029 n=4+4)
-SiteNew/Edit_Deep_content_tree-16 26.6MB ± 0% 25.6MB ± 0% -3.57% (p=0.029 n=4+4)
-SiteNew/Edit_Many_HTML_templates-16 6.03MB ± 0% 5.75MB ± 0% -4.57% (p=0.029 n=4+4)
-SiteNew/Edit_Page_collections-16 14.8MB ± 0% 14.2MB ± 0% -4.10% (p=0.029 n=4+4)
-SiteNew/Edit_List_terms-16 1.83MB ± 0% 1.73MB ± 0% -5.51% (p=0.029 n=4+4)
-SiteNew/Regular_Bundle_with_image-16 1.93MB ± 0% 1.90MB ± 0% -1.43% (p=0.029 n=4+4)
-SiteNew/Regular_Bundle_with_JSON_file-16 1.72MB ± 0% 1.69MB ± 0% -1.72% (p=0.029 n=4+4)
-SiteNew/Regular_Tags_and_categories-16 14.3MB ± 0% 13.6MB ± 0% -4.80% (p=0.029 n=4+4)
-SiteNew/Regular_Canonify_URLs-16 89.7MB ± 0% 90.2MB ± 0% +0.61% (p=0.029 n=4+4)
-SiteNew/Regular_Deep_content_tree-16 30.4MB ± 0% 29.2MB ± 0% -3.95% (p=0.029 n=4+4)
-SiteNew/Regular_Many_HTML_templates-16 9.26MB ± 0% 8.94MB ± 0% -3.47% (p=0.029 n=4+4)
-SiteNew/Regular_Page_collections-16 18.5MB ± 0% 17.7MB ± 0% -4.25% (p=0.029 n=4+4)
-SiteNew/Regular_List_terms-16 4.00MB ± 0% 3.85MB ± 0% -3.55% (p=0.029 n=4+4)
-
-name old allocs/op new allocs/op delta
-SiteNew/Edit_Bundle_with_image-16 3.99k ± 0% 4.07k ± 0% +1.80% (p=0.029 n=4+4)
-SiteNew/Edit_Bundle_with_JSON_file-16 3.99k ± 0% 4.06k ± 0% +1.81% (p=0.029 n=4+4)
-SiteNew/Edit_Tags_and_categories-16 241k ± 0% 245k ± 0% +1.67% (p=0.029 n=4+4)
-SiteNew/Edit_Canonify_URLs-16 364k ± 0% 321k ± 0% -11.78% (p=0.029 n=4+4)
-SiteNew/Edit_Deep_content_tree-16 264k ± 0% 268k ± 0% +1.53% (p=0.029 n=4+4)
-SiteNew/Edit_Many_HTML_templates-16 90.3k ± 0% 91.0k ± 0% +0.83% (p=0.029 n=4+4)
-SiteNew/Edit_Page_collections-16 153k ± 0% 156k ± 0% +1.46% (p=0.029 n=4+4)
-SiteNew/Edit_List_terms-16 30.4k ± 0% 30.9k ± 0% +1.54% (p=0.029 n=4+4)
-SiteNew/Regular_Bundle_with_image-16 23.3k ± 0% 23.1k ± 0% -0.57% (p=0.029 n=4+4)
-SiteNew/Regular_Bundle_with_JSON_file-16 23.3k ± 0% 23.1k ± 0% -0.59% (p=0.029 n=4+4)
-SiteNew/Regular_Tags_and_categories-16 284k ± 0% 288k ± 0% +1.58% (p=0.029 n=4+4)
-SiteNew/Regular_Canonify_URLs-16 387k ± 0% 343k ± 0% -11.41% (p=0.029 n=4+4)
-SiteNew/Regular_Deep_content_tree-16 307k ± 0% 309k ± 0% +0.52% (p=0.029 n=4+4)
-SiteNew/Regular_Many_HTML_templates-16 129k ± 0% 129k ± 0% +0.35% (p=0.029 n=4+4)
-SiteNew/Regular_Page_collections-16 199k ± 0% 200k ± 0% +0.55% (p=0.029 n=4+4)
-SiteNew/Regular_List_terms-16 53.5k ± 0% 53.4k ± 0% -0.18% (p=0.029 n=4+4)
-```
-
-
-
-## Native Arm Binary for Apple M1
-
-We finally provide native Hugo binary for [Apple M1](https://en.wikipedia.org/wiki/Apple_M1) devices. Download the file named `hugo_0.81.0_macOS-ARM64.tar.gz`.
-
-## JavaScript Building
-
-* Add `inject` config option allowing you to automatically replace a global variable with an import from another file relative to `assets`. [32b86076](https://github.com/gohugoio/hugo/commit/32b86076ee1c0833b538b84e1cc9e6d79babecf2) [@bep](https://github.com/bep) [#8164](https://github.com/gohugoio/hugo/issues/8164)
-* Add `shims` config option to swap out a component with another. A common use case is to load dependencies like React from a CDN (with _shims_) when in production, but running with the full bundled `node_modules` dependency during development [e19a046c](https://github.com/gohugoio/hugo/commit/e19a046c4be9b0654884259b9df94f41561e4fc3) [@bep](https://github.com/bep) [#8165](https://github.com/gohugoio/hugo/issues/8165)
-* Add external source map support to js.Build and Babel [2c8b5d91](https://github.com/gohugoio/hugo/commit/2c8b5d9165011c4b24b494e661ae60dfc7bb7d1b) [@richtera](https://github.com/richtera) [#8132](https://github.com/gohugoio/hugo/issues/8132)
-* Fix nilpointer in js.Build error handling [a1fe552f](https://github.com/gohugoio/hugo/commit/a1fe552fc9e622a15010a94281f604eb85bebd84) [@bep](https://github.com/bep) [#8162](https://github.com/gohugoio/hugo/issues/8162)
-
-Also see [js.Build Options](https://gohugo.io/hugo-pipes/js#options).
-
-## Hugo Modules
-
-There are several [Hugo Modules](https://gohugo.io/hugo-modules/)-related improvements in this release:
-
-* Allow absolute paths for any modules resolved via project replacement [3a5ee0d2](https://github.com/gohugoio/hugo/commit/3a5ee0d2d6e344b12efc7a97354ec3480c4c578b) [@bep](https://github.com/bep) [#8240](https://github.com/gohugoio/hugo/issues/8240)
-* Add config option modules.vendorClosest [bdfbcf6f](https://github.com/gohugoio/hugo/commit/bdfbcf6f4b4ab53a617ab76f72e8aa28da6067de) [@bep](https://github.com/bep) [#8235](https://github.com/gohugoio/hugo/issues/8235)[#8242](https://github.com/gohugoio/hugo/issues/8242)
-* Throw an error running hugo mod vendor on mountless module [4ffaeaf1](https://github.com/gohugoio/hugo/commit/4ffaeaf15536596c94dc73b393ca7894e3bd5e2c) [@bep](https://github.com/bep)
-
-## Minify - Keep Comments
-
-Keep comments when running `hugo --minify` with a new setting:
-
-{{< code-toggle file="config" >}}
-[minify.tdewolff.html]
-keepComments = true
-{{< /code-toggle >}}
-
-The default value for this setting is `false`.
-
-## Statistics
-
-This release represents **59 contributions by 14 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 [@benmezger](https://github.com/benmezger) 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 **20 contributions by 13 contributors**. A special thanks to [@bep](https://github.com/bep), [@gagarine](https://github.com/gagarine), [@fridde](https://github.com/fridde), and [@NicoHood](https://github.com/NicoHood) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 50152+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 435+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 370+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* We have updated to Beta 6 of the Dart Sass Protocol which is not backwards compatible, so if you use Dart Sass you need to also update [that binary](https://gohugo.io/hugo-pipes/scss-sass/#options).
-* `hugo gen autocomplete` now default to `stdout`; you can change this by setting `--completionfile`. As an added bonus we now also support auto completion for zsh, fish and powershell.
-
-## Changelog
-
-* Make the build green again [fe77f743](https://github.com/gohugoio/hugo/commit/fe77f7434bc0d7a9b54af69014eb28dbea2b236b) [@bep](https://github.com/bep)
-* Regenerate internal templates [c6080655](https://github.com/gohugoio/hugo/commit/c60806550a21062936b0d02708c9a8c240cafa9d) [@bep](https://github.com/bep)
-* Update date logic of opengraph and schema internal templates [ffd9dac4](https://github.com/gohugoio/hugo/commit/ffd9dac4218b8f1709de04f7131ca661715fc481) [@djatwood](https://github.com/djatwood)
-* Synch Go templates fork with Go 1.16dev [cf3e077d](https://github.com/gohugoio/hugo/commit/cf3e077da304e6f4d7c22f8296e1382335d055c6) [@bep](https://github.com/bep)
-* Exclude pages without Permalink from sitemap [4867cd1d](https://github.com/gohugoio/hugo/commit/4867cd1dea34ee53fb73cede2bcff4792e470104) [@Jaza](https://github.com/Jaza)
-* Add default user-agent header for getJSON requests [35def0ae](https://github.com/gohugoio/hugo/commit/35def0ae4560bb86febd12663bf5602485ad4b20) [@peacecwz](https://github.com/peacecwz)
-* remove 1mb limit for readFile. [ee9c1367](https://github.com/gohugoio/hugo/commit/ee9c1367635eab446fcf9baa1ab8b4066882548e) [@avdva](https://github.com/avdva)
-* Do not return errors in substr for out-of-bounds cases [8a26ab0b](https://github.com/gohugoio/hugo/commit/8a26ab0bc5dd9fa34e1362681fc08b0e522cd4ea) [@moorereason](https://github.com/moorereason) [#8113](https://github.com/gohugoio/hugo/issues/8113)
-* Add missing test scenario for strings.Substr [788e50ad](https://github.com/gohugoio/hugo/commit/788e50ad3a55609ed49ce0b7ee98965c181fe9cf) [@moorereason](https://github.com/moorereason)
-* Regen CLI docs [9e99950c](https://github.com/gohugoio/hugo/commit/9e99950c6ebf82c85ee52a8de85e284a506a2f90) [@bep](https://github.com/bep)
-* Regen docs helper [1b364b00](https://github.com/gohugoio/hugo/commit/1b364b003f68df3adb1644769fe69810d85e3897) [@bep](https://github.com/bep)
-* Run go mod tidy [88b93a09](https://github.com/gohugoio/hugo/commit/88b93a09dc79518d7fbd14681eeeea3411dab1dd) [@bep](https://github.com/bep)
-* Add arm64 to Darwinextended build and add vendorInfo [29fb456c](https://github.com/gohugoio/hugo/commit/29fb456c9e63ee1a2314bf4a7227a5146e7f9b31) [@bep](https://github.com/bep) [#8003](https://github.com/gohugoio/hugo/issues/8003)
-* Update Travis, GitHub, CircleCI and Snap to Go 1.16 (only) [718fba7d](https://github.com/gohugoio/hugo/commit/718fba7d63424017cb3b9774c33e7acc69c68af6) [@bep](https://github.com/bep)
-* Pull in latest Go 1.16 template source [e77b2e3a](https://github.com/gohugoio/hugo/commit/e77b2e3aa0b24c5ca960905772335b27845705eb) [@bep](https://github.com/bep)
-* Add breaking tests for "map read and map write in templates" [b5485aea](https://github.com/gohugoio/hugo/commit/b5485aeae7e1f73f18835fbf0b8eedc305d450d0) [@bep](https://github.com/bep) [#7293](https://github.com/gohugoio/hugo/issues/7293)
-* Pull in latest Go template source [ccb822eb](https://github.com/gohugoio/hugo/commit/ccb822eb5afad210432eb46ec3727e3536a87f58) [@bep](https://github.com/bep)
-* Expand template newline testcase to commands [21e9eb18](https://github.com/gohugoio/hugo/commit/21e9eb18acc2a2f8d8b97f096615b836e65091a2) [@bep](https://github.com/bep)
-* Add a test case for Go 1.16 template action newlines [ae57ba6a](https://github.com/gohugoio/hugo/commit/ae57ba6a9dee87347fa2d5e8c6865f390989622e) [@bep](https://github.com/bep)
-* Update github.com/tdewolff/minify/v2 v2.6.2 => v2.9.13 [66beac99](https://github.com/gohugoio/hugo/commit/66beac99c64b5e5fe7bec0bda437ba5858d49a36) [@bep](https://github.com/bep) [#8258](https://github.com/gohugoio/hugo/issues/8258)
-* bump github.com/frankban/quicktest from 1.11.2 to 1.11.3 [968dd7a7](https://github.com/gohugoio/hugo/commit/968dd7a711063934af84bd1c017c58a1e66f51bb) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/getkin/kin-openapi from 0.32.0 to 0.39.0 [38f29e81](https://github.com/gohugoio/hugo/commit/38f29e817f2058ed56f96fb8e628315f3ab5d7f9) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.36.33 to 1.37.11 [cd87813a](https://github.com/gohugoio/hugo/commit/cd87813aa0327ec7a7e6f023dadcea5a3e6a9fef) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/sanity-io/litter from 1.3.0 to 1.5.0 [4e815b06](https://github.com/gohugoio/hugo/commit/4e815b063e4af70f21b6796688025675253bec65) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/olekukonko/tablewriter from 0.0.4 to 0.0.5 [652a59d3](https://github.com/gohugoio/hugo/commit/652a59d38523e23e39376cba9c554abbe87b198d) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Update to esbuild v0.8.46 [84f0ec7f](https://github.com/gohugoio/hugo/commit/84f0ec7f80855dcc9b123418bcbf816b5efa2cdf) [@bep](https://github.com/bep)
-* Add config option modules.vendorClosest [bdfbcf6f](https://github.com/gohugoio/hugo/commit/bdfbcf6f4b4ab53a617ab76f72e8aa28da6067de) [@bep](https://github.com/bep) [#8235](https://github.com/gohugoio/hugo/issues/8235)[#8242](https://github.com/gohugoio/hugo/issues/8242)
-* bump google.golang.org/api from 0.26.0 to 0.40.0 [a9b0fea6](https://github.com/gohugoio/hugo/commit/a9b0fea6a3aec658912a8db134824dee4a9b6369) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Change version string format and add VendorInfo to help with issue triaging [e8df0977](https://github.com/gohugoio/hugo/commit/e8df09774534abe6131eb455b4f5c614fb438983) [@anthonyfok](https://github.com/anthonyfok)
-* Allow absolute paths for any modules resolved via project replacement [3a5ee0d2](https://github.com/gohugoio/hugo/commit/3a5ee0d2d6e344b12efc7a97354ec3480c4c578b) [@bep](https://github.com/bep) [#8240](https://github.com/gohugoio/hugo/issues/8240)
-* Throw an error running hugo mod vendor on mountless module [4ffaeaf1](https://github.com/gohugoio/hugo/commit/4ffaeaf15536596c94dc73b393ca7894e3bd5e2c) [@bep](https://github.com/bep)
-* Add PowerShell completion support [5f621df2](https://github.com/gohugoio/hugo/commit/5f621df2570236a08cd21e8dd1c60502ec3db328) [@anthonyfok](https://github.com/anthonyfok) [#8122](https://github.com/gohugoio/hugo/issues/8122)
-* Refer to mage instead of make in comment regarding commitHash [7118f89c](https://github.com/gohugoio/hugo/commit/7118f89cf35246767e26dcb5e747469ffa61f473) [@anthonyfok](https://github.com/anthonyfok)
-* Add attributes support for blocks (tables etc.) [2681633d](https://github.com/gohugoio/hugo/commit/2681633db8d340d2dc59cf801419874d572fc704) [@bep](https://github.com/bep) [#7548](https://github.com/gohugoio/hugo/issues/7548)
-* Update to Goldmark v1.3.2 [1b247282](https://github.com/gohugoio/hugo/commit/1b2472825664763c0b88807b0d193e73553423ec) [@bep](https://github.com/bep) [#8143](https://github.com/gohugoio/hugo/issues/8143)
-* Update to Dart Sass Protocol beta6 [441b11be](https://github.com/gohugoio/hugo/commit/441b11beec3cf0371ff9a2898f220a0bf00faf8c) [@bep](https://github.com/bep)
-* Write to stdout by default [d36fd5b3](https://github.com/gohugoio/hugo/commit/d36fd5b3ee6989203de2a29b1de67521fd1c8ea5) [@benmezger](https://github.com/benmezger)
-* Remove powershell support [a7c515e1](https://github.com/gohugoio/hugo/commit/a7c515e1b56e8cab34ca2647b4116904df9c8250) [@benmezger](https://github.com/benmezger)
-* Add zsh, fish and powershell completion support [216b00f3](https://github.com/gohugoio/hugo/commit/216b00f358dbfa36b34ff515d7f4f88387156db8) [@benmezger](https://github.com/benmezger) [#4296](https://github.com/gohugoio/hugo/issues/4296)
-* Enable NPM tests on Windows [14494379](https://github.com/gohugoio/hugo/commit/144943798c2a199ed256ae901a14d3c918055eba) [@bep](https://github.com/bep) [#8196](https://github.com/gohugoio/hugo/issues/8196)
-* Update to esbuild v0.8.39 [440fdb0e](https://github.com/gohugoio/hugo/commit/440fdb0eb96b3230ddefee732b0c1afe52a37228) [@bep](https://github.com/bep) [#8189](https://github.com/gohugoio/hugo/issues/8189)
-* Trim whitespace in elements written to hugo_stats.json [b2a48dce](https://github.com/gohugoio/hugo/commit/b2a48dce58abd3a661aa198af3277ef12f44cce0) [@pmatiash](https://github.com/pmatiash) [#7958](https://github.com/gohugoio/hugo/issues/7958)
-* bump github.com/aws/aws-sdk-go from 1.35.0 to 1.36.33 [2f9dadae](https://github.com/gohugoio/hugo/commit/2f9dadae4072960bbaec3656347e20eec238288c) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Remove mention of a file size limit for readFile [ed3071b7](https://github.com/gohugoio/hugo/commit/ed3071b753c8dec83a2c054624e49b204553ecd3) [@avdva](https://github.com/avdva)
-* Add Inject config option [32b86076](https://github.com/gohugoio/hugo/commit/32b86076ee1c0833b538b84e1cc9e6d79babecf2) [@bep](https://github.com/bep) [#8164](https://github.com/gohugoio/hugo/issues/8164)
-* Add Shims option [e19a046c](https://github.com/gohugoio/hugo/commit/e19a046c4be9b0654884259b9df94f41561e4fc3) [@bep](https://github.com/bep) [#8165](https://github.com/gohugoio/hugo/issues/8165)
-* bump github.com/spf13/afero from 1.4.1 to 1.5.1 [07ad283f](https://github.com/gohugoio/hugo/commit/07ad283f686904e5835f621d73ed342ba2a48eb3) [@eclipseo](https://github.com/eclipseo)
-* Add external source map support to js.Build and Babel [2c8b5d91](https://github.com/gohugoio/hugo/commit/2c8b5d9165011c4b24b494e661ae60dfc7bb7d1b) [@richtera](https://github.com/richtera) [#8132](https://github.com/gohugoio/hugo/issues/8132)
-* Run go mod tidy [4d2b6fc4](https://github.com/gohugoio/hugo/commit/4d2b6fc4c0e714f3f1ed345d6d75ed1662948791) [@bep](https://github.com/bep)
-* Update go-org to v1.4.0 [212e5e55](https://github.com/gohugoio/hugo/commit/212e5e554284bc9368e52a512ed09be5a0224d3e) [@niklasfasching](https://github.com/niklasfasching)
-* Adjust log level [4fdec67b](https://github.com/gohugoio/hugo/commit/4fdec67b1155ae1cdf051582d9ab387286b71a07) [@bep](https://github.com/bep)
-* Add temporary patch to fix template data race [9650e568](https://github.com/gohugoio/hugo/commit/9650e568418a316e71ad94d7e27caf544a4a2d0d) [@bep](https://github.com/bep) [#7293](https://github.com/gohugoio/hugo/issues/7293)
-* Fix race condition in text template baseof [241b7483](https://github.com/gohugoio/hugo/commit/241b7483ea954653512d4895ad6bacf79ee26ddc) [@moorereason](https://github.com/moorereason)
-* Fix metrics hint tracking [0004a733](https://github.com/gohugoio/hugo/commit/0004a733c85cee991a8a170e93cd69c326cc8f2f) [@moorereason](https://github.com/moorereason) [#8125](https://github.com/gohugoio/hugo/issues/8125)
-* Fix potential path issue on Windows [b60e9279](https://github.com/gohugoio/hugo/commit/b60e9279ab95030828eb4f822be96250284c4d8d) [@bep](https://github.com/bep)
-* Fix some humanize issues [bf55afd7](https://github.com/gohugoio/hugo/commit/bf55afd71f2fdb47272ebf1188c9cc87df47b233) [@susiwen8](https://github.com/susiwen8) [#7912](https://github.com/gohugoio/hugo/issues/7912)
-* Fix handling of legacy attribute config [e6dd3128](https://github.com/gohugoio/hugo/commit/e6dd312812c7c711986af2d60f2999d116b82ea0) [@bep](https://github.com/bep) [#7548](https://github.com/gohugoio/hugo/issues/7548)
-* Support translation files with suffix *.yml [92c6c404](https://github.com/gohugoio/hugo/commit/92c6c40419bdc13b8bb422a212d1d79240356651) [@bep](https://github.com/bep) [#8212](https://github.com/gohugoio/hugo/issues/8212)
-* Fix nilpointer in js.Build error handling [a1fe552f](https://github.com/gohugoio/hugo/commit/a1fe552fc9e622a15010a94281f604eb85bebd84) [@bep](https://github.com/bep) [#8162](https://github.com/gohugoio/hugo/issues/8162)
-
-
-
diff --git a/docs/content/en/news/0.82.0-relnotes/featured.png b/docs/content/en/news/0.82.0-relnotes/featured.png
deleted file mode 100644
index d09243f61c6..00000000000
Binary files a/docs/content/en/news/0.82.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.82.0-relnotes/index.md b/docs/content/en/news/0.82.0-relnotes/index.md
deleted file mode 100644
index 0297ea04159..00000000000
--- a/docs/content/en/news/0.82.0-relnotes/index.md
+++ /dev/null
@@ -1,78 +0,0 @@
-
----
-date: 2021-03-21
-title: "Hugo 0.82: Mostly bugfixes"
-description: "Mostly bug fixes, but some useful improvements with Markdown attributes."
-categories: ["Releases"]
----
-
-This is a small release, mostly a maintainance/bugfix release. But also notable is that you can now add custom Markdown attributes (e.g. CSS classes) to code fences ([aed7df62](https://github.com/gohugoio/hugo/commit/aed7df62a811b07b73ec5cbbf03e69e4bbf00919) [@bep](https://github.com/bep) [#8278](https://github.com/gohugoio/hugo/issues/8278)) and that you can use the attribute lists in title render hooks (`.Attributes`; see [cd0c5d7e](https://github.com/gohugoio/hugo/commit/cd0c5d7ef32cbd570af00c50ce760452381df64e) [@bep](https://github.com/bep) [#8270](https://github.com/gohugoio/hugo/issues/8270)).
-
-This release represents **28 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 to [@moorereason](https://github.com/moorereason), and [@gzagatti](https://github.com/gzagatti) 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 **20 contributions by 12 contributors**. A special thanks to [@bep](https://github.com/bep), [@jmooring](https://github.com/jmooring), [@rootkea](https://github.com/rootkea), and [@PaulPineda](https://github.com/PaulPineda) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 50763+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 435+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 370+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* We have made `.MediaType` comparable [ba1d0051](https://github.com/gohugoio/hugo/commit/ba1d0051b44fdd242b20899e195e37ab26501516) [@bep](https://github.com/bep) [#8317](https://github.com/gohugoio/hugo/issues/8317)[#8324](https://github.com/gohugoio/hugo/issues/8324). This also means that the old `MediaType.Suffix` and `MediaType.FullSuffix` is moved to `MediaType.FirstSuffix.Suffix` and `MediaType.FirstSuffix.FullSuffix`, which also better describes what they represent.
-
-## Enhancements
-
-### Templates
-
-* Add method mappings for strings.Contains, strings.ContainsAny [7f853003](https://github.com/gohugoio/hugo/commit/7f8530039aa018f23bad9d58e97777705a6d19ac) [@bep](https://github.com/bep)
-
-### Output
-
-* Make Type comparable [ba1d0051](https://github.com/gohugoio/hugo/commit/ba1d0051b44fdd242b20899e195e37ab26501516) [@bep](https://github.com/bep) [#8317](https://github.com/gohugoio/hugo/issues/8317)[#8324](https://github.com/gohugoio/hugo/issues/8324)
-* Add a basic benchmark [4d24e2a3](https://github.com/gohugoio/hugo/commit/4d24e2a3261d8c7dc0395db3ac4de89ebb0974a5) [@bep](https://github.com/bep)
-
-### Other
-
-* Regenerate docs helper [86b4fd35](https://github.com/gohugoio/hugo/commit/86b4fd35e78f545510f19b49246a3ccf5487831b) [@bep](https://github.com/bep)
-* Regen CLI docs [195d108d](https://github.com/gohugoio/hugo/commit/195d108da75c9e5b9ef790bc4a5879c1e913964b) [@bep](https://github.com/bep)
-* Simplify some config loading code [df8bb881](https://github.com/gohugoio/hugo/commit/df8bb8812f466bce563cdba297db3cd3f954a799) [@bep](https://github.com/bep)
-* Update github.com/evanw/esbuild v0.9.0 => v0.9.6 [57d8d208](https://github.com/gohugoio/hugo/commit/57d8d208ed2245858c6439f19803bf2749f9377f) [@bep](https://github.com/bep)
-* Apply OS env overrides twice [fc06e850](https://github.com/gohugoio/hugo/commit/fc06e85082b63a54d9403e57c8d01a7d5a62fc04) [@bep](https://github.com/bep)
-* Attributes for code fences should be placed after the lang indicator only [b725253f](https://github.com/gohugoio/hugo/commit/b725253f9e3033e18bd45096c0622e6fb7b1ff79) [@bep](https://github.com/bep) [#8313](https://github.com/gohugoio/hugo/issues/8313)
-* Bump github.com/tdewolff/minify/v2 v2.9.15 [35dedf15](https://github.com/gohugoio/hugo/commit/35dedf15c04a605df4d4a09263b0b299e5161f86) [@bep](https://github.com/bep) [#8332](https://github.com/gohugoio/hugo/issues/8332)
-* More explicit support link to discourse [137d2dab](https://github.com/gohugoio/hugo/commit/137d2dab3285e9b0f8fe4dcc65ab6ecf8bb09002) [@davidsneighbour](https://github.com/davidsneighbour)
-* Update to esbuild v0.9.0 [1b1dcf58](https://github.com/gohugoio/hugo/commit/1b1dcf586e220c3a8ad5ecfa8e4c3dac97f0ab44) [@bep](https://github.com/bep)
-* Allow more spacing characters in strings [0a2ab3f8](https://github.com/gohugoio/hugo/commit/0a2ab3f8feb961f8394b1f9964fab36bfa468027) [@moorereason](https://github.com/moorereason) [#8079](https://github.com/gohugoio/hugo/issues/8079)[#8079](https://github.com/gohugoio/hugo/issues/8079)
-* Rename a test [35bfb662](https://github.com/gohugoio/hugo/commit/35bfb662229226d5f3cc3077ca74323f0aa88b7d) [@bep](https://github.com/bep)
-* Add a debug helper [6d21559f](https://github.com/gohugoio/hugo/commit/6d21559fb55cda39c7b92bb61fd8e65a84465fe5) [@bep](https://github.com/bep)
-* Add support for Google Analytics v4 [ba16a14c](https://github.com/gohugoio/hugo/commit/ba16a14c6e884e309380610331aff78213f84751) [@djatwood](https://github.com/djatwood)
-* Bump go.mod to Go 1.16 [782c79ae](https://github.com/gohugoio/hugo/commit/782c79ae61a5ec30746ce3729933d6b4d31e0540) [@bep](https://github.com/bep) [#8294](https://github.com/gohugoio/hugo/issues/8294)
-* #8210 Upgrade golang version for Dockerfile [5afcae7e](https://github.com/gohugoio/hugo/commit/5afcae7e0b4c08bc37db6e34ab4cf960558f4b6e) [@systemkern](https://github.com/systemkern)
-* Update CONTRIBUTING.md [60469f42](https://github.com/gohugoio/hugo/commit/60469f429e227631d76d951f2ed92986f0bd92e9) [@bep](https://github.com/bep)
-* Handle attribute lists in code fences [aed7df62](https://github.com/gohugoio/hugo/commit/aed7df62a811b07b73ec5cbbf03e69e4bbf00919) [@bep](https://github.com/bep) [#8278](https://github.com/gohugoio/hugo/issues/8278)
-* Allow markdown attribute lists to be used in title render hooks [cd0c5d7e](https://github.com/gohugoio/hugo/commit/cd0c5d7ef32cbd570af00c50ce760452381df64e) [@bep](https://github.com/bep) [#8270](https://github.com/gohugoio/hugo/issues/8270)
-* bump github.com/kyokomi/emoji/v2 from 2.2.7 to 2.2.8 [88a85dce](https://github.com/gohugoio/hugo/commit/88a85dcea951b0b5622cf02b167ec9299d93118b) [@dependabot[bot]](https://github.com/apps/dependabot)
-
-## Fixes
-
-### Output
-
-* Fix output format handling for render hooks [18074d0c](https://github.com/gohugoio/hugo/commit/18074d0c2375cc4bf4d7933dd4206cb878a23d1c) [@bep](https://github.com/bep) [#8176](https://github.com/gohugoio/hugo/issues/8176)
-
-### Other
-
-* Fix OS env override for nested config param only available in theme [7ed56c69](https://github.com/gohugoio/hugo/commit/7ed56c6941edfdfa42eef2b779020b5d46ca194a) [@bep](https://github.com/bep) [#8346](https://github.com/gohugoio/hugo/issues/8346)
-* Fix `new theme` command description [24c716ca](https://github.com/gohugoio/hugo/commit/24c716cac35b0c5476944108e545058749c43e61) [@rootkea](https://github.com/rootkea)
-* Fix handling of utf8 runes in nullString() [f6612d8b](https://github.com/gohugoio/hugo/commit/f6612d8bd8c4c3bb498178d14f45d3acdf86aa7c) [@moorereason](https://github.com/moorereason)
-* Fixes #7698. [01dd7c16](https://github.com/gohugoio/hugo/commit/01dd7c16af6204d18d530f9d3018689215482170) [@gzagatti](https://github.com/gzagatti)
-* Fix autocomplete docs [c8f45d1d](https://github.com/gohugoio/hugo/commit/c8f45d1d861f596821afc068bd12eb1213aba5ce) [@bep](https://github.com/bep)
-
-
-
-
-
diff --git a/docs/content/en/news/0.82.1-relnotes/index.md b/docs/content/en/news/0.82.1-relnotes/index.md
deleted file mode 100644
index 54462b8ad81..00000000000
--- a/docs/content/en/news/0.82.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2021-04-20
-title: "Hugo 0.82.1: One Bug Fix"
-description: "This version fixes a bug introduced in 0.82.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* Regression in media type suffix lookup [6e9d2bf0](https://github.com/gohugoio/hugo/commit/6e9d2bf0c936900f8f676d485098755b3f463373) [@bep](https://github.com/bep) [#8406](https://github.com/gohugoio/hugo/issues/8406)
-
-
-
diff --git a/docs/content/en/news/0.83.0-relnotes/featured.png b/docs/content/en/news/0.83.0-relnotes/featured.png
deleted file mode 100644
index 473170efdd1..00000000000
Binary files a/docs/content/en/news/0.83.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.83.0-relnotes/index.md b/docs/content/en/news/0.83.0-relnotes/index.md
deleted file mode 100644
index 987110c3fdb..00000000000
--- a/docs/content/en/news/0.83.0-relnotes/index.md
+++ /dev/null
@@ -1,133 +0,0 @@
-
----
-date: 2021-05-01
-title: "Hugo 0.83: WebP Support!"
-description: "WebP image encoding support, some important i18n fixes, and more."
-categories: ["Releases"]
----
-
-**Note:** If you use i18n, there is an unfortunate regression bug in this release (see [issue](https://github.com/gohugoio/hugo/issues/8492)). A patch release coming Sunday.
-
-
-Hugo `0.83` finally brings [WebP](https://gohugo.io/content-management/image-processing/) image processing support. Note that you need the [extended version](https://gohugo.io/troubleshooting/faq/#i-get-tocss--this-feature-is-not-available-in-your-current-hugo-version) of Hugo to encode to WebP. If you want to target all Hugo versions, you may use a construct such as this:
-
-```go-html-template
-{{ $images := slice }}
-{{ $images = $images | append ($img.Resize "300x") }}
-{{ if hugo.IsExtended }}
- {{ $images = $images | append ($img.Resize "300x webp") }}
-{{ end }}
-```
-
-Also worth highlighting:
-
-* Some important language/i18n fixes (thanks to [@jmooring](https://github.com/jmooring) for helping out with these):
- * Fix multiple unknown language codes [7eb80a9e](https://github.com/gohugoio/hugo/commit/7eb80a9e6fcb6d31711effa20310cfefb7b23c1b) [@bep](https://github.com/bep) [#7838](https://github.com/gohugoio/hugo/issues/7838)
- * Improve plural handling of floats [eebde0c2](https://github.com/gohugoio/hugo/commit/eebde0c2ac4964e91d26d8b0cf0ac43afcfd207f) [@bep](https://github.com/bep) [#8464](https://github.com/gohugoio/hugo/issues/8464)
- * Revise the plural implementation [537c905e](https://github.com/gohugoio/hugo/commit/537c905ec103dc5adaf8a1b2ccdef5da7cc660fd) [@bep](https://github.com/bep) [#8454](https://github.com/gohugoio/hugo/issues/8454)[#7822](https://github.com/gohugoio/hugo/issues/7822)
-* You can now use slice syntax in the sections permalinks config[2dc222ce](https://github.com/gohugoio/hugo/commit/2dc222cec4460595af8569165d1c498bb45aac84) [@bep](https://github.com/bep) [#8363](https://github.com/gohugoio/hugo/issues/8363).
-
-This release represents **61 contributions by 9 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 [@dependabot[bot]](https://github.com/apps/dependabot), [@jmooring](https://github.com/jmooring), and [@anthonyfok](https://github.com/anthonyfok) 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.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **10 contributions by 5 contributors**. A special thanks to [@lupsa](https://github.com/lupsa), [@jmooring](https://github.com/jmooring), [@bep](https://github.com/bep), and [@arhuman](https://github.com/arhuman) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 51594+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 432+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 370+ [themes](http://themes.gohugo.io/)
-
-## Notes
-
-* We have updated ESBUild to v0.11.16. There are no breaking changes on the API side, but you may want to read the release upstream release notes: https://github.com/evanw/esbuild/releases/tag/v0.10.0 https://github.com/evanw/esbuild/releases/tag/v0.11.0
-
-## Enhancements
-
-### Templates
-
-* Remove the FuzzMarkdownify func for now [5656a908](https://github.com/gohugoio/hugo/commit/5656a908d837f2aa21837d39712b8ab4aa6db842) [@bep](https://github.com/bep)
-
-### Output
-
-* Make the shortcode template lookup for output formats stable [0d86a32d](https://github.com/gohugoio/hugo/commit/0d86a32d8f3031e2124c8005b680b597f3c0e558) [@bep](https://github.com/bep) [#7774](https://github.com/gohugoio/hugo/issues/7774)
-* Only output mediaType once in docshelper JSON [7b4ade56](https://github.com/gohugoio/hugo/commit/7b4ade56dd50d89a91760fc5ef8e2f151874de96) [@bep](https://github.com/bep) [#8379](https://github.com/gohugoio/hugo/issues/8379)
-
-### Other
-
-* Regenerate docs helper [a9b52b41](https://github.com/gohugoio/hugo/commit/a9b52b41758d20ae4c10b71721b22175395c69e9) [@bep](https://github.com/bep)
-* Regenerate CLI docs [b073a1c9](https://github.com/gohugoio/hugo/commit/b073a1c9723980eeb58717884006148dfc0e0c8e) [@bep](https://github.com/bep)
-* Remove all dates from gendoc [4227cc1b](https://github.com/gohugoio/hugo/commit/4227cc1bd308d1ef1ea151c86f72f537b5e77b1d) [@bep](https://github.com/bep)
-* Update getkin/kin-openapi v0.60.0 => v0.61. [3cc4fdd6](https://github.com/gohugoio/hugo/commit/3cc4fdd6f358263ffde33ccbf61546f073979e32) [@bep](https://github.com/bep)
-* Update github.com/evanw/esbuild v0.11.14 => v0.11.16 [78c1a6a7](https://github.com/gohugoio/hugo/commit/78c1a6a7c6e14f006854ee97ec561abdcf6203fc) [@bep](https://github.com/bep)
-* Remove .Site.Authors from embedded templates [f6745ad3](https://github.com/gohugoio/hugo/commit/f6745ad3588a7b3aaae228fec18fe0027affd566) [@jmooring](https://github.com/jmooring) [#4458](https://github.com/gohugoio/hugo/issues/4458)
-* Don't treat a NotFound response for Delete as a fatal error. [f523e9f0](https://github.com/gohugoio/hugo/commit/f523e9f0fd0e0b0ce75879532caa834742297d16) [@vangent](https://github.com/vangent)
-* Switch to deb packages of nodejs and python3-pygments [63cd05ce](https://github.com/gohugoio/hugo/commit/63cd05ce5ae308c496b848f6b11bcb3fdbdf5cb2) [@anthonyfok](https://github.com/anthonyfok)
-* Install bin/node from node/14/stable [902535ef](https://github.com/gohugoio/hugo/commit/902535ef11fce449b377896ab7498c4799beb9ce) [@anthonyfok](https://github.com/anthonyfok)
-* bump github.com/getkin/kin-openapi from 0.55.0 to 0.60.0 [70aebba0](https://github.com/gohugoio/hugo/commit/70aebba04d801fe6a3784394d25c433ffeb6d123) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/evanw/esbuild from 0.11.13 to 0.11.14 [3e3b7d44](https://github.com/gohugoio/hugo/commit/3e3b7d4474ea97a1990f303482a12f0c3031bd07) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Update to Chroma v0.9.1 [048418ba](https://github.com/gohugoio/hugo/commit/048418ba749d02eb3dde9d6895cedef2adaefefd) [@caarlos0](https://github.com/caarlos0)
-* Improve plural handling of floats [eebde0c2](https://github.com/gohugoio/hugo/commit/eebde0c2ac4964e91d26d8b0cf0ac43afcfd207f) [@bep](https://github.com/bep) [#8464](https://github.com/gohugoio/hugo/issues/8464)
-* bump github.com/evanw/esbuild from 0.11.12 to 0.11.13 [65c502cc](https://github.com/gohugoio/hugo/commit/65c502cc8110e49540cbe2b49ecd5a8ede9e67a1) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Revise the plural implementation [537c905e](https://github.com/gohugoio/hugo/commit/537c905ec103dc5adaf8a1b2ccdef5da7cc660fd) [@bep](https://github.com/bep) [#8454](https://github.com/gohugoio/hugo/issues/8454)[#7822](https://github.com/gohugoio/hugo/issues/7822)
-* Update to "base: core20" [243951eb](https://github.com/gohugoio/hugo/commit/243951ebe9715d3da3968e96e6f60dcd53e25d92) [@anthonyfok](https://github.com/anthonyfok)
-* bump github.com/frankban/quicktest from 1.11.3 to 1.12.0 [fe2ee028](https://github.com/gohugoio/hugo/commit/fe2ee028024836695c99e28595393588e3930136) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump google.golang.org/api from 0.44.0 to 0.45.0 [316d65cd](https://github.com/gohugoio/hugo/commit/316d65cd7049d60b0d5ac0080a87236198e74fc9) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/aws/aws-sdk-go from 1.37.11 to 1.38.23 [b95229ab](https://github.com/gohugoio/hugo/commit/b95229ab49ac2126aefe7802392ef34fdd021c3b) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Correct function name in comment [0551df09](https://github.com/gohugoio/hugo/commit/0551df090e6b2a391941bf7383b79c2dbc11d416) [@xhit](https://github.com/xhit)
-* Upgraded github.com/evanw/esbuild v0.11.0 => v0.11.12 [057e5a22](https://github.com/gohugoio/hugo/commit/057e5a22af937459082c3096ba3095b343d1a8bf) [@bep](https://github.com/bep)
-* Regen docs helper [fd96f65a](https://github.com/gohugoio/hugo/commit/fd96f65a3d7755e49b4a70fb276dfffcba4e541a) [@bep](https://github.com/bep)
-* bump github.com/tdewolff/minify/v2 from 2.9.15 to 2.9.16 [d3a64708](https://github.com/gohugoio/hugo/commit/d3a64708f49139552ca79a199a4cbf6544375443) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump golang.org/x/text from 0.3.5 to 0.3.6 [3b56244f](https://github.com/gohugoio/hugo/commit/3b56244f425a72c783bb58c30542aeb4b045acca) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Remove some unreachable code [f5d3d635](https://github.com/gohugoio/hugo/commit/f5d3d635e6b88d7c5d304b80f04e7b4361349fd6) [@bep](https://github.com/bep)
-* bump github.com/getkin/kin-openapi from 0.39.0 to 0.55.0 [0d3c42da](https://github.com/gohugoio/hugo/commit/0d3c42da56151325f16802b3b1a4105a21ce250e) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Some performance tweaks for the HTML elements collector [ef34dd8f](https://github.com/gohugoio/hugo/commit/ef34dd8f0e94e52ba6f1d5d607e4ac3ae98a7abb) [@bep](https://github.com/bep)
-* Exclude comment and doctype elements from writeStats [bc80022e](https://github.com/gohugoio/hugo/commit/bc80022e033a5462d1a9ce541f40a050994011cc) [@dirkolbrich](https://github.com/dirkolbrich) [#8396](https://github.com/gohugoio/hugo/issues/8396)[#8417](https://github.com/gohugoio/hugo/issues/8417)
-* Merge branch 'release-0.82.1' [2bb9496c](https://github.com/gohugoio/hugo/commit/2bb9496ce29dfe90e8b3664ed8cf7f895011b2d4) [@bep](https://github.com/bep)
-* bump github.com/yuin/goldmark from 1.3.2 to 1.3.5 [3ddffd06](https://github.com/gohugoio/hugo/commit/3ddffd064dbacf62aa854b26ea8ddc5d15ba1ef8) [@jmooring](https://github.com/jmooring) [#8377](https://github.com/gohugoio/hugo/issues/8377)
-* Remove duplicate references from release notes [6fc52d18](https://github.com/gohugoio/hugo/commit/6fc52d185a98b86c70b6ba862549cc6aae782691) [@jmooring](https://github.com/jmooring) [#8360](https://github.com/gohugoio/hugo/issues/8360)
-* bump github.com/spf13/afero from 1.5.1 to 1.6.0 [73c3ae81](https://github.com/gohugoio/hugo/commit/73c3ae818a7fc78febff092ac74772a114a2cbd2) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/pelletier/go-toml from 1.8.1 to 1.9.0 [7ca118fd](https://github.com/gohugoio/hugo/commit/7ca118fdfd9f0d1c636ef5e266c9000a20099e03) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Add webp image encoding support [33d5f805](https://github.com/gohugoio/hugo/commit/33d5f805923eb50dfb309d024f6555c59a339846) [@bep](https://github.com/bep) [#5924](https://github.com/gohugoio/hugo/issues/5924)
-* bump google.golang.org/api from 0.40.0 to 0.44.0 [509d39fa](https://github.com/gohugoio/hugo/commit/509d39fa6ddbba106c127b7923a41b0dcaea9381) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/nicksnyder/go-i18n/v2 from 2.1.1 to 2.1.2 [7725c41d](https://github.com/gohugoio/hugo/commit/7725c41d40b7009c2701a5ad3fa6bc9de57b88ee) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/rogpeppe/go-internal from 1.6.2 to 1.8.0 [5d36d801](https://github.com/gohugoio/hugo/commit/5d36d801534c0823697610fdb32e1eeb61f70e33) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Remove extraneous space from figure shortcode [9b34d42b](https://github.com/gohugoio/hugo/commit/9b34d42bb2ff05deaeeef63ff4b5b993f35f0451) [@jmooring](https://github.com/jmooring) [#8401](https://github.com/gohugoio/hugo/issues/8401)
-* bump github.com/magefile/mage from 1.10.0 to 1.11.0 [c2d8f87c](https://github.com/gohugoio/hugo/commit/c2d8f87cfc1c4ae666fbb1fb5b8983d43492333f) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/google/go-cmp from 0.5.4 to 0.5.5 [cbc24661](https://github.com/gohugoio/hugo/commit/cbc246616e88729322dad70971eae18ef59dd5d4) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Disable broken pretty relative links feature [fa432b17](https://github.com/gohugoio/hugo/commit/fa432b17b349ed7e914af3625187e2c1dc2e243b) [@niklasfasching](https://github.com/niklasfasching)
-* Update go-org to v1.5.0 [0cd55c66](https://github.com/gohugoio/hugo/commit/0cd55c66d370559b66eea220626c4842efaf7039) [@niklasfasching](https://github.com/niklasfasching)
-* bump github.com/jdkato/prose from 1.2.0 to 1.2.1 [0d5cf256](https://github.com/gohugoio/hugo/commit/0d5cf256e4f2a5babcbcf7b49a6818869c3c0691) [@dependabot[bot]](https://github.com/apps/dependabot)
-* bump github.com/spf13/cobra from 1.1.1 to 1.1.3 [36527576](https://github.com/gohugoio/hugo/commit/36527576b30224dff2eae7f6c9f27eff807d5402) [@dependabot[bot]](https://github.com/apps/dependabot)
-* Add complete dependency list in "hugo env -v" [9b83f45b](https://github.com/gohugoio/hugo/commit/9b83f45b6dcafa6e50df80a4786d6a36400a47fe) [@bep](https://github.com/bep) [#8400](https://github.com/gohugoio/hugo/issues/8400)
-* Add hugo.IsExtended [7fdd2b95](https://github.com/gohugoio/hugo/commit/7fdd2b95e20f322b0a47f63ff1010a04f47ce67b) [@bep](https://github.com/bep) [#8399](https://github.com/gohugoio/hugo/issues/8399)
-* Also test minified HTML in the element collector [3d5dbdcb](https://github.com/gohugoio/hugo/commit/3d5dbdcb1a11b059fc2f93ed6fadb9009bf72673) [@bep](https://github.com/bep) [#7567](https://github.com/gohugoio/hugo/issues/7567)
-* Skip script, pre and textarea content when looking for HTML elements [8a308944](https://github.com/gohugoio/hugo/commit/8a308944e46f8c2aa054005d5aed89f2711f9c1d) [@bep](https://github.com/bep) [#7567](https://github.com/gohugoio/hugo/issues/7567)
-* Add slice syntax to sections permalinks config [2dc222ce](https://github.com/gohugoio/hugo/commit/2dc222cec4460595af8569165d1c498bb45aac84) [@bep](https://github.com/bep) [#8363](https://github.com/gohugoio/hugo/issues/8363)
-* Upgrade github.com/evanw/esbuild v0.9.6 => v0.11.0 [4d22ad58](https://github.com/gohugoio/hugo/commit/4d22ad580ec8c8e5e27cf4f5cce69b6828aa8501) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Fix where on type mismatches [e4dc9a82](https://github.com/gohugoio/hugo/commit/e4dc9a82b557a417b1552c533b0df605c6ff1cc0) [@bep](https://github.com/bep) [#8353](https://github.com/gohugoio/hugo/issues/8353)
-
-### Output
-
-* Regression in media type suffix lookup [6e9d2bf0](https://github.com/gohugoio/hugo/commit/6e9d2bf0c936900f8f676d485098755b3f463373) [@bep](https://github.com/bep) [#8406](https://github.com/gohugoio/hugo/issues/8406)
-* Regression in media type suffix lookup [e73f7a77](https://github.com/gohugoio/hugo/commit/e73f7a770dfb06f23d842d589bdd3d0fb53c7eed) [@bep](https://github.com/bep) [#8406](https://github.com/gohugoio/hugo/issues/8406)
-
-### Other
-
-* Fix multiple unknown language codes [7eb80a9e](https://github.com/gohugoio/hugo/commit/7eb80a9e6fcb6d31711effa20310cfefb7b23c1b) [@bep](https://github.com/bep) [#7838](https://github.com/gohugoio/hugo/issues/7838)
-* Fix permalinks pattern detection for some of the sections variants [c13d3687](https://github.com/gohugoio/hugo/commit/c13d368746992eb39a33f065ca808e129baec4ef) [@bep](https://github.com/bep) [#8363](https://github.com/gohugoio/hugo/issues/8363)
-* Fix Params case handling in where with slices of structs (e.g. Pages) [bca40cf0](https://github.com/gohugoio/hugo/commit/bca40cf0c9c7b75e6d5b4a9ac8b927eb17590c7e) [@bep](https://github.com/bep) [#7009](https://github.com/gohugoio/hugo/issues/7009)
-* Fix typo in docshelper.go [7c7974b7](https://github.com/gohugoio/hugo/commit/7c7974b711879938eafc08a2ce242d0f00c8e9e6) [@jmooring](https://github.com/jmooring) [#8380](https://github.com/gohugoio/hugo/issues/8380)
-* Try to fix the fuzz build [5e2f1289](https://github.com/gohugoio/hugo/commit/5e2f1289118dc1489fb782bf289298a05104eeaf) [@bep](https://github.com/bep)
-
-
-
-
-
diff --git a/docs/content/en/news/0.83.1-relnotes/index.md b/docs/content/en/news/0.83.1-relnotes/index.md
deleted file mode 100644
index e896b04e136..00000000000
--- a/docs/content/en/news/0.83.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2021-05-02
-title: "Hugo 0.83.1: One Bug Fix"
-description: "This version fixes an issue introduced in 0.83.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* langs/i18n: Fix warning regression in i18n [ececd1b1](https://github.com/gohugoio/hugo/commit/ececd1b122c741567a80acd8d60ccd6356fa5323) [@bep](https://github.com/bep) [#8492](https://github.com/gohugoio/hugo/issues/8492)
-
-
-
diff --git a/docs/content/en/news/0.84.0-relnotes/featured.png b/docs/content/en/news/0.84.0-relnotes/featured.png
deleted file mode 100644
index e733669e33d..00000000000
Binary files a/docs/content/en/news/0.84.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.84.0-relnotes/index.md b/docs/content/en/news/0.84.0-relnotes/index.md
deleted file mode 100644
index 8d3dfac24cd..00000000000
--- a/docs/content/en/news/0.84.0-relnotes/index.md
+++ /dev/null
@@ -1,160 +0,0 @@
-
----
-date: 2021-06-18
-title: "Config Revamp"
-description: "Hugo 0.84.0: Deep merge of theme configuration, config dir support now also in themes/modules, HTTP header support in getJSON, and more."
-categories: ["Releases"]
----
-
-**This release brings several configuration fixes and improvements that will be especially useful for themes.**
-
-## Deep merge of theme Params
-
-One of the most common complaints from Hugo theme owners/users has been about the configuration handling. Hugo has up until now only performed a shallow merge of theme `params` into the configuration.
-
-With that, given this example from a theme configuration:
-
-```toml
-[params]
-[params.colours]
-blue="#337DFF"
-green="#68FF33"
-red="#FF3358"
-```
-
-If you would like to use the above theme, but want a different shade of red, you earlier had to copy the entire block, even the colours you're totally happy with. This was painful with even the simplest setup.
-
-Now you can just override the `params` keys you want to change, e.g.:
-
-```toml
-[params]
-[params.colours]
-red="#fc0f03"
-```
-
-For more information, and especially about the way you can opt out of the above behaviour, see [Merge Configuration from Themes](https://gohugo.io/getting-started/configuration/#merge-configuration-from-themes).
-
-## Themes now support the config directory
-
-Now both the project and themes/modules can store its configuration in both the top level config file (e.g. `config.toml`) or in the `config` directory. See [Configuration Directory](https://gohugo.io/getting-started/configuration/#configuration-directory).
-
-## HTTP headers in getJSON/getCSV
-
-`getJSON` now supports custom HTTP headers. This has been a big limitation in Hugo, especially considering the [Authorization](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) header.
-
-We have updated the internal Instagram shortcode to pass the access token in a header:
-
-```
-{{ $hideCaption := cond (eq (.Get 1) "hidecaption") "1" "0" }}
-{{ $headers := dict "Authorization" (printf "Bearer %s" $accessToken) }}
-{{ with getJSON "https://graph.facebook.com/v8.0/instagram_oembed/?url=https://instagram.com/p/" $id "/&hidecaption=" $hideCaption $headers }}
- {{ .html | safeHTML }}
-{{ end }}
-```
-
- Also see the discussion [this issue](https://github.com/gohugoio/hugo/issues/7879) about the access token above.
-
-## New erroridf template func
-
-Sometimes, especially when creating themes, it is useful to be able to let the user decide if an error situation is critical enough to fail the build. The new `erroridf` produces `ERROR` log statements that can be toggled off:
-
-```html
-{{ erroridf "some-custom-id" "Some error message." }}
-```
-
-Will log:
-
-```
-ERROR: Some error message.
-If you feel that this should not be logged as an ERROR, you can ignore it by adding this to your site config:
-ignoreErrors = ["some-custom-id"]
-```
-## Stats
-
-This release represents **46 contributions by 11 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 [@jmooring](https://github.com/jmooring), [@satotake](https://github.com/satotake), and [@Seirdy](https://github.com/Seirdy) 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.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **20 contributions by 10 contributors**. A special thanks to [@salim-b](https://github.com/salim-b), [@bep](https://github.com/bep), [@thomasjsn](https://github.com/thomasjsn), and [@lucasew](https://github.com/lucasew) for their work on the documentation site.
-
-
-Hugo now has:
-
-* 52487+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 432+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 370+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* We now do deep merging of `params` from theme config(s). That is you most likely what you want, but [Merge Configuration from Themes](https://gohugo.io/getting-started/configuration/#merge-configuration-from-themes) describes how you can get the old behaviour back.
-
-## Enhancements
-
-### Templates
-
-* Rename err-missing-instagram-accesstoken => error-missing-instagram-accesstoken [9096842b](https://github.com/gohugoio/hugo/commit/9096842b0494166e401cc08a70b93ae2ee19a198) [@bep](https://github.com/bep)
-* Add a terse pagination template variant to improve performance [73483d0f](https://github.com/gohugoio/hugo/commit/73483d0f9eb46838d41640f88cc05c1d16811dc5) [@jmooring](https://github.com/jmooring) [#8599](https://github.com/gohugoio/hugo/issues/8599)
-* Add erroridf template func [f55d2f43](https://github.com/gohugoio/hugo/commit/f55d2f43769053b80b419a690554e747dc5dcede) [@bep](https://github.com/bep) [#8613](https://github.com/gohugoio/hugo/issues/8613)
-* Print response body on HTTP errors [282f1aa3](https://github.com/gohugoio/hugo/commit/282f1aa3db9f6420fdd360e46db1ffadd5b083a1) [@bep](https://github.com/bep)
-* Misc header improvements, tests, allow multiple headers of same key [fcd63de3](https://github.com/gohugoio/hugo/commit/fcd63de3a54fadcd30972654d8eb86dc4d889784) [@bep](https://github.com/bep) [#5617](https://github.com/gohugoio/hugo/issues/5617)
-* Allows user-defined HTTP headers with getJSON and getCSV [150d7573](https://github.com/gohugoio/hugo/commit/150d75738b54acddc485d363436757189144da6a) [@chamberlainpj](https://github.com/chamberlainpj) [#5617](https://github.com/gohugoio/hugo/issues/5617)
-* Allow 'Querify' to take lone slice/interface argument [c46fc838](https://github.com/gohugoio/hugo/commit/c46fc838a9320adfc6532b1b543e903c48b3b4cb) [@importhuman](https://github.com/importhuman) [#6735](https://github.com/gohugoio/hugo/issues/6735)
-
-### Output
-
-* Make WebAppManifestFormat NotAlternative=true [643b6719](https://github.com/gohugoio/hugo/commit/643b671931ed5530855e7d4819896790bf3f6c28) [@bep](https://github.com/bep) [#8624](https://github.com/gohugoio/hugo/issues/8624)
-* Adjust test assertion [ab4e1dfa](https://github.com/gohugoio/hugo/commit/ab4e1dfa4eebe0ac18f1d1f60a9647cbb7b41d7f) [@bep](https://github.com/bep) [#8625](https://github.com/gohugoio/hugo/issues/8625)
-* support application/manifest+json [02f31897](https://github.com/gohugoio/hugo/commit/02f31897b4f7252154850a65c900e88e0b237fa3) [@Seirdy](https://github.com/Seirdy) [#8624](https://github.com/gohugoio/hugo/issues/8624)
-
-### Other
-
-* Regenerate docs helper [be6b901c](https://github.com/gohugoio/hugo/commit/be6b901cf7d07238337334e6b6d886a7b039f5e6) [@bep](https://github.com/bep)
-* Regenerate docshelper [402da3f8](https://github.com/gohugoio/hugo/commit/402da3f8f327f97302c4b5d69cd4832a94bd189b) [@bep](https://github.com/bep)
-* Implement configuration in a directory for modules [bb2aa087](https://github.com/gohugoio/hugo/commit/bb2aa08709c812a5be29922a1a7f4d814e200cab) [@bep](https://github.com/bep) [#8654](https://github.com/gohugoio/hugo/issues/8654)
-* Update github.com/alecthomas/chroma v0.9.1 => v0.9.2 [3aa7f0b2](https://github.com/gohugoio/hugo/commit/3aa7f0b27fc736b4c32adbb1fc1fc7fbefd6efd9) [@bep](https://github.com/bep) [#8658](https://github.com/gohugoio/hugo/issues/8658)
-* Run go mod tidy [9b870aa7](https://github.com/gohugoio/hugo/commit/9b870aa788ab1b5159bc836fbac6e60a29bee329) [@bep](https://github.com/bep)
-* Split out the puthe path/filepath functions into common/paths [93aad3c5](https://github.com/gohugoio/hugo/commit/93aad3c543828efca2adeb7f96cf50ae29878593) [@bep](https://github.com/bep) [#8654](https://github.com/gohugoio/hugo/issues/8654)
-* Update to Goldmark v1.3.8 [8eafe084](https://github.com/gohugoio/hugo/commit/8eafe0845d66efd3cf442a8ed89a6da5c1d3117b) [@jmooring](https://github.com/jmooring) [#8648](https://github.com/gohugoio/hugo/issues/8648)
-* Do not read config from os.Environ when running tests [31fb29fb](https://github.com/gohugoio/hugo/commit/31fb29fb3f306678f3697e05bbccefb2078d7f78) [@bep](https://github.com/bep) [#8655](https://github.com/gohugoio/hugo/issues/8655)
-* Set a dummy Instagram token [a886dd53](https://github.com/gohugoio/hugo/commit/a886dd53b80322e1edf924f2ede4d4ea037c5baf) [@bep](https://github.com/bep)
-* Regenerate docs helper [a91cd765](https://github.com/gohugoio/hugo/commit/a91cd7652f7559492b070dbe02fe558348f3d0b6) [@bep](https://github.com/bep)
-* Update to Go 1.16.5, Goreleaser 0.169.0 [552cef5c](https://github.com/gohugoio/hugo/commit/552cef5c576ae4dbf4626f77f3c8b15b42a9e7f3) [@bep](https://github.com/bep) [#8619](https://github.com/gohugoio/hugo/issues/8619)[#8263](https://github.com/gohugoio/hugo/issues/8263)
-* Upgrade Instagram shortcode [9b5debe4](https://github.com/gohugoio/hugo/commit/9b5debe4b820132759cfdf7bff7fe9c1ad0a6bb1) [@bep](https://github.com/bep) [#7879](https://github.com/gohugoio/hugo/issues/7879)
-* Set modTime at creation time [06d29542](https://github.com/gohugoio/hugo/commit/06d295427f798da85de469924fd10f58c0de9a58) [@bep](https://github.com/bep) [#6161](https://github.com/gohugoio/hugo/issues/6161)
-* Add math.Max and math.Min [01758f99](https://github.com/gohugoio/hugo/commit/01758f99b915f34fe7ca4621e4d1ee09efe385b1) [@jmooring](https://github.com/jmooring) [#8583](https://github.com/gohugoio/hugo/issues/8583)
-* Catch incomplete shortcode error [845a7ba4](https://github.com/gohugoio/hugo/commit/845a7ba4fc30c61842148d67d31d0fa3db8f40b9) [@satotake](https://github.com/satotake) [#6866](https://github.com/gohugoio/hugo/issues/6866)
-* Use SPDX license identifier [10f60de8](https://github.com/gohugoio/hugo/commit/10f60de89a5a53528f1e3a47a77224e5c7915e4e) [@jmooring](https://github.com/jmooring) [#8555](https://github.com/gohugoio/hugo/issues/8555)
-* Cache and copy Menu for sorting [785a31b5](https://github.com/gohugoio/hugo/commit/785a31b5b84643f4769f9bd363599cbcce86f098) [@satotake](https://github.com/satotake) [#7594](https://github.com/gohugoio/hugo/issues/7594)
-* Update to LibSASS 3.6.5 [bc1e0528](https://github.com/gohugoio/hugo/commit/bc1e05286a96d08ad02ad200d6a4076bb01c486e) [@bep](https://github.com/bep)
-* Make the HTML element collector more robust [f518b4f7](https://github.com/gohugoio/hugo/commit/f518b4f71e1a61b09d660b5c284121ebf3b3b86b) [@bep](https://github.com/bep) [#8530](https://github.com/gohugoio/hugo/issues/8530)
-* Make the HTML element collector more robust" [dc6b7a75](https://github.com/gohugoio/hugo/commit/dc6b7a75ff5b7fcb8a0b0e3f7ed406422d847624) [@bep](https://github.com/bep)
-* Get the collector in line with the io.Writer interface" [3f515f0e](https://github.com/gohugoio/hugo/commit/3f515f0e3395b24776ae24045b846ff2b33b8906) [@bep](https://github.com/bep)
-* Get the collector in line with the io.Writer interface [a9bcd381](https://github.com/gohugoio/hugo/commit/a9bcd38181ceb79afba82adcd4de1aebf571e74c) [@bep](https://github.com/bep)
-* Make the HTML element collector more robust [ef0f1a72](https://github.com/gohugoio/hugo/commit/ef0f1a726901d6c614040cfc2d7e8f9a2ca97816) [@bep](https://github.com/bep) [#8530](https://github.com/gohugoio/hugo/issues/8530)
-* Add Scratch.DeleteInMap [abbc99d4](https://github.com/gohugoio/hugo/commit/abbc99d4c60b102e2779e4362ceb433095719384) [@meehawk](https://github.com/meehawk) [#8504](https://github.com/gohugoio/hugo/issues/8504)
-* Display version when building site (#8533) [76c95f55](https://github.com/gohugoio/hugo/commit/76c95f55a5d18290baa7f23667161d4af9fb9b53) [@jmooring](https://github.com/jmooring) [#8531](https://github.com/gohugoio/hugo/issues/8531)
-* Update querify function description and examples [2c7f5b62](https://github.com/gohugoio/hugo/commit/2c7f5b62f6c1fa1c7b3cf2c1f3a1663b18e75004) [@jmooring](https://github.com/jmooring)
-* Change SetEscapeHTML to false [504c78da](https://github.com/gohugoio/hugo/commit/504c78da4b5020e1fd13a1195ad38a9e85f8289a) [@peaceiris](https://github.com/peaceiris) [#8512](https://github.com/gohugoio/hugo/issues/8512)
-* Add a benchmark [b660ea8d](https://github.com/gohugoio/hugo/commit/b660ea8d545d6ba5479dd28a670044d57e5d196f) [@bep](https://github.com/bep)
-* Update dependency list [64f88f30](https://github.com/gohugoio/hugo/commit/64f88f3011de5a510d8e6d6bad8ac4a091b11c0c) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Templates
-
-* Fix countwords to handle special chars [7a2c10ae](https://github.com/gohugoio/hugo/commit/7a2c10ae60f096dacee4b44e0c8ae0a1b66ae033) [@ResamVi](https://github.com/ResamVi) [#8479](https://github.com/gohugoio/hugo/issues/8479)
-
-### Other
-
-* Fix fill with smartcrop sometimes returning 0 bytes images [5af045eb](https://github.com/gohugoio/hugo/commit/5af045ebab109d3e5501b8b6d9fd448840c96c9a) [@bep](https://github.com/bep) [#7955](https://github.com/gohugoio/hugo/issues/7955)
-* Misc config loading fixes [d392893c](https://github.com/gohugoio/hugo/commit/d392893cd73dc00c927f342778f6dca9628d328e) [@bep](https://github.com/bep) [#8633](https://github.com/gohugoio/hugo/issues/8633)[#8618](https://github.com/gohugoio/hugo/issues/8618)[#8630](https://github.com/gohugoio/hugo/issues/8630)[#8591](https://github.com/gohugoio/hugo/issues/8591)[#6680](https://github.com/gohugoio/hugo/issues/6680)[#5192](https://github.com/gohugoio/hugo/issues/5192)
-* Fix nested OS env config override when parent does not exist [12530519](https://github.com/gohugoio/hugo/commit/12530519d8fb4513c9c18a6494099b7dff8e4fd4) [@bep](https://github.com/bep) [#8618](https://github.com/gohugoio/hugo/issues/8618)
-* Fix invalid timestamp of the "public" folder [26ae12c0](https://github.com/gohugoio/hugo/commit/26ae12c0c64b847d24bde60d7d710ea2efcb40d4) [@anthonyfok](https://github.com/anthonyfok) [#6161](https://github.com/gohugoio/hugo/issues/6161)
-* Fix env split to allow = character in values [ee733085](https://github.com/gohugoio/hugo/commit/ee733085b7f5d3f2aef1667901ab6ecb8041d699) [@xqbumu](https://github.com/xqbumu) [#8589](https://github.com/gohugoio/hugo/issues/8589)
-* Fix warning regression in i18n [ececd1b1](https://github.com/gohugoio/hugo/commit/ececd1b122c741567a80acd8d60ccd6356fa5323) [@bep](https://github.com/bep) [#8492](https://github.com/gohugoio/hugo/issues/8492)
-
-
-
-
-
diff --git a/docs/content/en/news/0.84.1-relnotes/index.md b/docs/content/en/news/0.84.1-relnotes/index.md
deleted file mode 100644
index 3cee1e29010..00000000000
--- a/docs/content/en/news/0.84.1-relnotes/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-date: 2021-06-24
-title: "Hugo 0.84.1: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.84.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Fix language menu config regression [093dacab](https://github.com/gohugoio/hugo/commit/093dacab29a3c6fc363408453d0bc3b1fc159ad5) [@bep](https://github.com/bep) [#8672](https://github.com/gohugoio/hugo/issues/8672)
-* config: Fix merge of config with map[string]string values. [4a9d408f](https://github.com/gohugoio/hugo/commit/4a9d408fe0bbf4c563546e35d2be7ade4e920c4c) [@bep](https://github.com/bep) [#8679](https://github.com/gohugoio/hugo/issues/8679)
-* markup: Rename Header(s) to Heading(s) in ToC struct [a7e3da24](https://github.com/gohugoio/hugo/commit/a7e3da242f98d4799dad013d7ba2f285717640d6) [@bep](https://github.com/bep)
-
-
-
diff --git a/docs/content/en/news/0.84.2-relnotes/index.md b/docs/content/en/news/0.84.2-relnotes/index.md
deleted file mode 100644
index d2469ff0c00..00000000000
--- a/docs/content/en/news/0.84.2-relnotes/index.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
----
-date: 2021-06-28
-title: "Hugo 0.84.2: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.84.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is mostly a bug fix release, but it also contains some minor modules related improvements. Most notable you now get some more information in ` hugo config mounts`, and even more so when typing ` hugo config mounts -v`.
-
-* modules: Add module.import.noMounts config [40dfdd09](https://github.com/gohugoio/hugo/commit/40dfdd09521bcb8f56150e6791d60445198f27ab) [@bep](https://github.com/bep) [#8708](https://github.com/gohugoio/hugo/issues/8708)
-* modules: Use value type for module.Time [3a6dc6d3](https://github.com/gohugoio/hugo/commit/3a6dc6d3f423c4acb79ef21b5a76e616fa2c9477) [@bep](https://github.com/bep)
-* commands: Add version time to "hugo config mounts" [6cd2110a](https://github.com/gohugoio/hugo/commit/6cd2110ab295f598907a18da91e34d31407c1d9d) [@bep](https://github.com/bep)
-* commands: Add some more info to "hugo config mounts" [6a365c27](https://github.com/gohugoio/hugo/commit/6a365c2712c7607e067e192d213b266f0c88d0f3) [@bep](https://github.com/bep)
-* Fix config handling with empty config entries after merge [19aa95fc](https://github.com/gohugoio/hugo/commit/19aa95fc7f4cd58dcc8a8ff075762cfc86d41dc3) [@bep](https://github.com/bep) [#8701](https://github.com/gohugoio/hugo/issues/8701)
-* Fix config loading for "hugo mod init" [923dd9d1](https://github.com/gohugoio/hugo/commit/923dd9d1c1f649142f3f377109318b07e0f44d5d) [@bep](https://github.com/bep) [#8697](https://github.com/gohugoio/hugo/issues/8697)
-* deps: Update to Minify v2.9.18 [d9bdd37d](https://github.com/gohugoio/hugo/commit/d9bdd37d35ccd436b4dd470ef99efa372a6a086b) [@bep](https://github.com/bep) [#8693](https://github.com/gohugoio/hugo/issues/8693)
-* Remove credit from release notes [b2eaf4c8](https://github.com/gohugoio/hugo/commit/b2eaf4c8c2e31aa1c1bc4a2c0061f661e01d2de1) [@digitalcraftsman](https://github.com/digitalcraftsman)
-
-
-
diff --git a/docs/content/en/news/0.84.3-relnotes/index.md b/docs/content/en/news/0.84.3-relnotes/index.md
deleted file mode 100644
index c805efb46e8..00000000000
--- a/docs/content/en/news/0.84.3-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2021-06-29
-title: "Hugo 0.84.3: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.84.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* config: Fix Netlify default cache dir logic [6c8c0c8b](https://github.com/gohugoio/hugo/commit/6c8c0c8b6a0b39b91de44d72a7bd1cd49534a0f1) [@bep](https://github.com/bep) [#8710](https://github.com/gohugoio/hugo/issues/8710)
-* config: Fix handling of invalid OS env config overrides [49fedbc5](https://github.com/gohugoio/hugo/commit/49fedbc51cafa64e4eb0eae9fb79ccbe2d4c6774) [@bep](https://github.com/bep) [#8709](https://github.com/gohugoio/hugo/issues/8709)
-
-
-
diff --git a/docs/content/en/news/0.84.4-relnotes/index.md b/docs/content/en/news/0.84.4-relnotes/index.md
deleted file mode 100644
index a04e4251da8..00000000000
--- a/docs/content/en/news/0.84.4-relnotes/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-date: 2021-07-01
-title: "Hugo 0.84.4: A couple of Bug Fixes"
-description: "This version fixes a couple of bugs introduced in 0.84.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with a couple of important fixes.
-
-* Fix Cloudflare vs Netlify cache dir issue [4c8552b1](https://github.com/gohugoio/hugo/commit/4c8552b11477141777101e0e0609dd1f32d191e9) [@bep](https://github.com/bep) [#8714](https://github.com/gohugoio/hugo/issues/8714)
-* Fix date format in schema and opengraph templates [34e4742f](https://github.com/gohugoio/hugo/commit/34e4742f0caab0d3eb9efd00fce4157d112617b5) [@jmooring](https://github.com/jmooring) [#8671](https://github.com/gohugoio/hugo/issues/8671)
-
-
-
diff --git a/docs/content/en/news/0.85.0-relnotes/featured.png b/docs/content/en/news/0.85.0-relnotes/featured.png
deleted file mode 100644
index eb68d317180..00000000000
Binary files a/docs/content/en/news/0.85.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.85.0-relnotes/index.md b/docs/content/en/news/0.85.0-relnotes/index.md
deleted file mode 100644
index e0c25e53718..00000000000
--- a/docs/content/en/news/0.85.0-relnotes/index.md
+++ /dev/null
@@ -1,70 +0,0 @@
-
----
-date: 2021-07-05
-title: "Poll based watching"
-description: "Hugo 0.85.0: Polled based alternative when watching for changes and some other nice improvements."
-categories: ["Releases"]
----
-
-Hugo `0.85.0` is on the smaller side of releases, but the main new thing it brings should be important to those who need it: Poll based watching the filesystem for changes.
-
-Hugo uses [Fsnotify](https://github.com/fsnotify/fsnotify) to provide native file system notifications. This is still the default, but there may situations where this isn't working. The file may not support it (e.g. NFS), or you get the "too many open files" error and cannot or do not want to increase the `ulimit`. Enable polling by passing the `--poll` flag with an interval:
-
-```bash
-hugo server --poll 700ms
-```
-
-You can even do "long polling" by passing a long interval:
-
-```bash
-hugo server --poll 24h
-```
-
-This release represents **23 contributions by 6 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 [@raoulb](https://github.com/raoulb), [@jmooring](https://github.com/jmooring), and [@digitalcraftsman](https://github.com/digitalcraftsman) for their ongoing contributions.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **1 contributions by 1 contributors**.
-
-Hugo now has:
-
-* 52755+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 431+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 370+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Other
-
-* Move time notification to after any build errors [04dc469f](https://github.com/gohugoio/hugo/commit/04dc469fbd78d9fe784829f2cba61c8cce982bdb) [@jhollowe](https://github.com/jhollowe) [#8403](https://github.com/gohugoio/hugo/issues/8403)
-* Log warning for metadata decode error [07919d1c](https://github.com/gohugoio/hugo/commit/07919d1ccb01733f4c6c5952e59228cecc9b26c8) [@IveGotNorto](https://github.com/IveGotNorto) [#8519](https://github.com/gohugoio/hugo/issues/8519)
-* Make the --poll flag a duration [e31b1d19](https://github.com/gohugoio/hugo/commit/e31b1d194655ac3a38fe903ff3995806b129b88a) [@bep](https://github.com/bep) [#8720](https://github.com/gohugoio/hugo/issues/8720)
-* Regen CLI docs [43a23239](https://github.com/gohugoio/hugo/commit/43a23239b2e3ad602c06d9af0b648e0304fc8744) [@bep](https://github.com/bep)
-* Add polling as a fallback to native filesystem events in server watch [24ce98b6](https://github.com/gohugoio/hugo/commit/24ce98b6d10b2088af61c15112f5c5ed915a0c35) [@bep](https://github.com/bep) [#8720](https://github.com/gohugoio/hugo/issues/8720)[#6849](https://github.com/gohugoio/hugo/issues/6849)[#7930](https://github.com/gohugoio/hugo/issues/7930)
-* Bump github.com/yuin/goldmark v1.3.9 [0019d60f](https://github.com/gohugoio/hugo/commit/0019d60f67b6c4dde085753641a917fcd0aa4c76) [@bep](https://github.com/bep) [#8727](https://github.com/gohugoio/hugo/issues/8727)
-* Add module.import.noMounts config [40dfdd09](https://github.com/gohugoio/hugo/commit/40dfdd09521bcb8f56150e6791d60445198f27ab) [@bep](https://github.com/bep) [#8708](https://github.com/gohugoio/hugo/issues/8708)
-* Use value type for module.Time [3a6dc6d3](https://github.com/gohugoio/hugo/commit/3a6dc6d3f423c4acb79ef21b5a76e616fa2c9477) [@bep](https://github.com/bep)
-* Add version time to "hugo config mounts" [6cd2110a](https://github.com/gohugoio/hugo/commit/6cd2110ab295f598907a18da91e34d31407c1d9d) [@bep](https://github.com/bep)
-* Add some more info to "hugo config mounts" [6a365c27](https://github.com/gohugoio/hugo/commit/6a365c2712c7607e067e192d213b266f0c88d0f3) [@bep](https://github.com/bep)
-* Update to Minify v2.9.18 [d9bdd37d](https://github.com/gohugoio/hugo/commit/d9bdd37d35ccd436b4dd470ef99efa372a6a086b) [@bep](https://github.com/bep) [#8693](https://github.com/gohugoio/hugo/issues/8693)
-* Remove credit from release notes [b2eaf4c8](https://github.com/gohugoio/hugo/commit/b2eaf4c8c2e31aa1c1bc4a2c0061f661e01d2de1) [@digitalcraftsman](https://github.com/digitalcraftsman)
-* Rename Header(s) to Heading(s) in ToC struct [a7e3da24](https://github.com/gohugoio/hugo/commit/a7e3da242f98d4799dad013d7ba2f285717640d6) [@bep](https://github.com/bep)
-
-## Fixes
-
-### Other
-
-* Fix tab selection of disabled items in internal pagination template [f75f9007](https://github.com/gohugoio/hugo/commit/f75f90079a6f2a239c8186faba5db5dbe6e36cb6) [@raoulb](https://github.com/raoulb)
-* Fix panic when theme has permalinks config [e451b984](https://github.com/gohugoio/hugo/commit/e451b984cfb45b54a3972cefa59a02d50b0b0fd2) [@bep](https://github.com/bep) [#8724](https://github.com/gohugoio/hugo/issues/8724)
-* Fix Cloudflare vs Netlify cache dir issue [4c8552b1](https://github.com/gohugoio/hugo/commit/4c8552b11477141777101e0e0609dd1f32d191e9) [@bep](https://github.com/bep) [#8714](https://github.com/gohugoio/hugo/issues/8714)
-* Fix date format in schema and opengraph templates [34e4742f](https://github.com/gohugoio/hugo/commit/34e4742f0caab0d3eb9efd00fce4157d112617b5) [@jmooring](https://github.com/jmooring) [#8671](https://github.com/gohugoio/hugo/issues/8671)
-* Fix Netlify default cache dir logic [6c8c0c8b](https://github.com/gohugoio/hugo/commit/6c8c0c8b6a0b39b91de44d72a7bd1cd49534a0f1) [@bep](https://github.com/bep) [#8710](https://github.com/gohugoio/hugo/issues/8710)
-* Fix handling of invalid OS env config overrides [49fedbc5](https://github.com/gohugoio/hugo/commit/49fedbc51cafa64e4eb0eae9fb79ccbe2d4c6774) [@bep](https://github.com/bep) [#8709](https://github.com/gohugoio/hugo/issues/8709)
-* Fix config handling with empty config entries after merge [19aa95fc](https://github.com/gohugoio/hugo/commit/19aa95fc7f4cd58dcc8a8ff075762cfc86d41dc3) [@bep](https://github.com/bep) [#8701](https://github.com/gohugoio/hugo/issues/8701)
-* Fix config loading for "hugo mod init" [923dd9d1](https://github.com/gohugoio/hugo/commit/923dd9d1c1f649142f3f377109318b07e0f44d5d) [@bep](https://github.com/bep) [#8697](https://github.com/gohugoio/hugo/issues/8697)
-* Fix language menu config regression [093dacab](https://github.com/gohugoio/hugo/commit/093dacab29a3c6fc363408453d0bc3b1fc159ad5) [@bep](https://github.com/bep) [#8672](https://github.com/gohugoio/hugo/issues/8672)
-* Fix merge of config with map[string]string values. [4a9d408f](https://github.com/gohugoio/hugo/commit/4a9d408fe0bbf4c563546e35d2be7ade4e920c4c) [@bep](https://github.com/bep) [#8679](https://github.com/gohugoio/hugo/issues/8679)
-
-
-
-
-
diff --git a/docs/content/en/news/0.86.0-relnotes/featured.png b/docs/content/en/news/0.86.0-relnotes/featured.png
deleted file mode 100644
index e9967e864b7..00000000000
Binary files a/docs/content/en/news/0.86.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.86.0-relnotes/index.md b/docs/content/en/news/0.86.0-relnotes/index.md
deleted file mode 100644
index 4b717ed7cab..00000000000
--- a/docs/content/en/news/0.86.0-relnotes/index.md
+++ /dev/null
@@ -1,56 +0,0 @@
-
----
-date: 2021-07-21
-title: "Hugo 0.86.0: Cascade in Config"
-description: "Hugo 0.86.0 adds cascade keyword to site config, much improved \"active menu item\" logic for section pages, and more."
-categories: ["Releases"]
----
-
-This release is a set of smaller fixes and improvements. Some of the more notable:
-
-You can now have a top level [cascade](https://gohugo.io/content-management/front-matter#front-matter-cascade) (or one per language, if needed) section in your site configuration (e.g. `config.toml`). This way you can control default front matter values from outside of the content files.
-
-Hugo's [Menu system](https://gohugo.io/content-management/menus/) works well, but hasn't been particularly easy to set the active menu state for section pages without a menu definition. We have had the option [Section Menu for Lazy Bloggers](https://gohugo.io/templates/menu-templates/#section-menu-for-lazy-bloggers). That helped for the common case, but we have now made it behave more sensible out of the box: `$page.HasMenuCurrent $sectionMenuEntry` will now always return true for any descendant of that section. To support this for menu definitions in the site config, we have added a new `pageRef` option on [MenuEntry](https://gohugo.io/variables/menus/#menu-entry-variables):
-
-```toml
-[[menus.main]]
-pageRef = "blog"
-# When pageRef is set, setting `url` is optional; it will be used as a fallback if the page is not found.
-url = "/blog"
-```
-
-Set `pageRef` to a value that [site.GetPage](https://gohugo.io/functions/getpage/) understands, and the menu entry will be correctly connected to the page.
-
-This release represents **14 contributions by 2 contributors** to the main Hugo code base.
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **1 contributions by 1 contributors**.
-
-Hugo now has:
-
-* 53005+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 431+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 370+ [themes](http://themes.gohugo.io/)
-
-## Enhancements
-
-### Other
-
-* Simplify "active menu" logic for section menus [d831d2fc](https://github.com/gohugoio/hugo/commit/d831d2fce8198fb814ea4d3d8c311db5c388d04c) [@bep](https://github.com/bep) [#8776](https://github.com/gohugoio/hugo/issues/8776)
-* Make keepWhitespace = true default for HTML [c19f65f9](https://github.com/gohugoio/hugo/commit/c19f65f956739ab76c38222d48a3e461525e31af) [@bep](https://github.com/bep) [#8771](https://github.com/gohugoio/hugo/issues/8771)
-* Make FileMeta a struct [022c4795](https://github.com/gohugoio/hugo/commit/022c4795510306e08a4aba31504ca382d41c7fac) [@bep](https://github.com/bep) [#8749](https://github.com/gohugoio/hugo/issues/8749)
-* Add tabindex="0" to default wrapper [f27e5424](https://github.com/gohugoio/hugo/commit/f27e542442d19436f1428cc22bb03aca398d37a7) [@rhymes](https://github.com/rhymes) [#7194](https://github.com/gohugoio/hugo/issues/7194)
-* Rename/reorder the hook methods [80566481](https://github.com/gohugoio/hugo/commit/805664818d0e1f95a3474271c2db3e5f49db26ba) [@bep](https://github.com/bep) [#8755](https://github.com/gohugoio/hugo/issues/8755)
-* Support auto links in render hook [ee3d2bb1](https://github.com/gohugoio/hugo/commit/ee3d2bb1d3974584f47cde7c973fbd1ae1f512b6) [@bep](https://github.com/bep) [#8755](https://github.com/gohugoio/hugo/issues/8755)
-* Adjust a test helper [eb2a5003](https://github.com/gohugoio/hugo/commit/eb2a500367780b07d67c301ce7c866e6b67aa687) [@bep](https://github.com/bep)
-* Add config.cascade [5cb52c23](https://github.com/gohugoio/hugo/commit/5cb52c23150032b3fdb211a095745c512369b463) [@bep](https://github.com/bep) [#8741](https://github.com/gohugoio/hugo/issues/8741)
-* Regenerate image golden testdata [30eea391](https://github.com/gohugoio/hugo/commit/30eea3915b67f72611a3b2f4547146d4c6a96864) [@bep](https://github.com/bep) [#8729](https://github.com/gohugoio/hugo/issues/8729)
-
-## Fixes
-
-### Other
-
-* Fix panic on invalid config in "hugo mod get" and similar [351ed0f5](https://github.com/gohugoio/hugo/commit/351ed0f569f96aff29b03925bf5154d80a164e00) [@bep](https://github.com/bep) [#8773](https://github.com/gohugoio/hugo/issues/8773)
-* Fix Params case handling for menu items defined in site config [634481ba](https://github.com/gohugoio/hugo/commit/634481ba8cfcd865ba0d8811d8834f6af45663d7) [@bep](https://github.com/bep) [#8775](https://github.com/gohugoio/hugo/issues/8775)
-* Fix default values when loading from config dir [ae6cf93c](https://github.com/gohugoio/hugo/commit/ae6cf93c84c3584b111f4b9fa3fb4e3f63d37915) [@bep](https://github.com/bep) [#8763](https://github.com/gohugoio/hugo/issues/8763)
-* Fix the deprecation error/warn log levels [a70da2b7](https://github.com/gohugoio/hugo/commit/a70da2b74a6af0834cce9668cdb6acdb1c86a4c0) [@bep](https://github.com/bep)
-* Fix transparency problem when converting 32-bit images to WebP [8f40f34c](https://github.com/gohugoio/hugo/commit/8f40f34cd10a98598bb822ec633fd5d0ea64b612) [@bep](https://github.com/bep) [#8729](https://github.com/gohugoio/hugo/issues/8729)
diff --git a/docs/content/en/news/0.86.1-relnotes/index.md b/docs/content/en/news/0.86.1-relnotes/index.md
deleted file mode 100644
index 68a893bfbde..00000000000
--- a/docs/content/en/news/0.86.1-relnotes/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
----
-date: 2021-07-30
-title: "Hugo 0.86.1: One Bug Fix"
-description: "This version fixes a bug introduced in 0.86.0."
-categories: ["Releases"]
-images:
-- images/blog/hugo-bug-poster.png
-
----
-
-
-
-This is a bug-fix release with one important fix.
-
-* config: Fix a potential deadlock in config reading [94b616bd](https://github.com/gohugoio/hugo/commit/94b616bdfad177daa99f5e87535943f509198f6f) [@bep](https://github.com/bep) [#8791](https://github.com/gohugoio/hugo/issues/8791)
-
-
-
diff --git a/docs/content/en/news/0.87.0-relnotes/featured.png b/docs/content/en/news/0.87.0-relnotes/featured.png
deleted file mode 100644
index 21d20985745..00000000000
Binary files a/docs/content/en/news/0.87.0-relnotes/featured.png and /dev/null differ
diff --git a/docs/content/en/news/0.87.0-relnotes/index.md b/docs/content/en/news/0.87.0-relnotes/index.md
deleted file mode 100644
index e033aaa82c6..00000000000
--- a/docs/content/en/news/0.87.0-relnotes/index.md
+++ /dev/null
@@ -1,90 +0,0 @@
-
----
-date: 2021-08-03
-title: "Localized Time and Dates and Numbers"
-description: "Hugo 0.87.0 brings time zone support, localized time and dates and numbers backed by CLDR, and more."
-categories: ["Releases"]
----
-
-Hugo `0.87` brings two long sought-after features: Default time zone support (per language if needed) for dates without zone offset or location info, and localized time and dates and numbers (backed by [CLDR](https://en.wikipedia.org/wiki/Common_Locale_Data_Repository)).
-
-For more information, see:
-
-* The [time zone config](https://gohugo.io/getting-started/configuration/#timezone) documentation.
-* The [time.Format](https://gohugo.io/functions/dateformat/) documentation. This function will now give you localized dates (with weekdays and months in the current language). It supports all of Go's layout syntax, but also some predefined constants, e.g. `{{ .Date | time.Format ":date_long" }}`.
-* A set of new [localized number formatting ](https://gohugo.io/functions/lang/) functions.
-
-Also in this release, we have switched to using [go-toml](https://github.com/pelletier/go-toml) for all things TOML in Hugo. A big thanks to [@pelletier](https://github.com/pelletier) for his work on the `v2` version. It's both faster than what we had and [TOML v1.0.0](https://toml.io/en/v1.0.0) compliant.
-
-This release represents **40 contributions by 4 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 [@dependabot[bot]](https://github.com/apps/dependabot), [@digitalcraftsman](https://github.com/digitalcraftsman), and [@jmooring](https://github.com/jmooring) for their ongoing contributions.
-
-Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
-which has received **1 contributions by 1 contributors**.
-
-Hugo now has:
-
-* 53261+ [stars](https://github.com/gohugoio/hugo/stargazers)
-* 430+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
-* 395+ [themes](http://themes.gohugo.io/)
-
-
-## Notes
-
-* Deprecate Blackfriday and fix a potential deadlock in config [c7252224](https://github.com/gohugoio/hugo/commit/c7252224c4fecfe8321f31b901e2510d98b657c4) [@bep](https://github.com/bep) [#8792](https://github.com/gohugoio/hugo/issues/8792)[#8791](https://github.com/gohugoio/hugo/issues/8791)
-
-## Enhancements
-
-### Templates
-
-* Adjust tests to handle matching local time zones [9ff17c33](https://github.com/gohugoio/hugo/commit/9ff17c332405da5830cef9b3711706b1fc9a7444) [@bep](https://github.com/bep) [#8843](https://github.com/gohugoio/hugo/issues/8843)
-* Add new localized versions of lang.FormatNumber etc. [7907d24b](https://github.com/gohugoio/hugo/commit/7907d24ba16fc5a80930c1aabf5144e684ff7f29) [@bep](https://github.com/bep) [#8820](https://github.com/gohugoio/hugo/issues/8820)
-
-### Other
-
-* Make sure module config loading errors have file positioning info [d70c4857](https://github.com/gohugoio/hugo/commit/d70c485707edfd445bcfc0e84181bc15eb146e76) [@bep](https://github.com/bep) [#8845](https://github.com/gohugoio/hugo/issues/8845)
-* Remove superflous replace statement [7aaaf7e3](https://github.com/gohugoio/hugo/commit/7aaaf7e33afd05d2c74d74fbbfbd34d55e8129eb) [@bep](https://github.com/bep)
-* Reduce binary size vs locale, update to CLDR v36.1 [3a966555](https://github.com/gohugoio/hugo/commit/3a96655592d0b0db4126f20ca717d553dda9c4ed) [@bep](https://github.com/bep) [#8839](https://github.com/gohugoio/hugo/issues/8839)[#8841](https://github.com/gohugoio/hugo/issues/8841)
-* Update github.com/tdewolff/minify/v2 v2.9.20 => v2.9.21 [9a7383ca](https://github.com/gohugoio/hugo/commit/9a7383caf3945b9b11db2b108003f87e2e8b6a3a) [@jmooring](https://github.com/jmooring) [#8831](https://github.com/gohugoio/hugo/issues/8831)
-* Fail on invalid time zone [4d221ce4](https://github.com/gohugoio/hugo/commit/4d221ce468a1209ee9dd6cbece9d1273dad6a29b) [@bep](https://github.com/bep) [#8832](https://github.com/gohugoio/hugo/issues/8832)
-* Improve handling of
-
-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) - | -
| - - | -||||
diff --git a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/featured.png b/docs/content/en/news/lets-celebrate-hugos-5th-birthday/featured.png
deleted file mode 100644
index 4c31412fdfd..00000000000
Binary files a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/featured.png and /dev/null differ
diff --git a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/graph-stars.png b/docs/content/en/news/lets-celebrate-hugos-5th-birthday/graph-stars.png
deleted file mode 100644
index 00848fcf009..00000000000
Binary files a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/graph-stars.png and /dev/null differ
diff --git a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/graph-themes.png b/docs/content/en/news/lets-celebrate-hugos-5th-birthday/graph-themes.png
deleted file mode 100644
index 0d4dfd599d3..00000000000
Binary files a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/graph-themes.png and /dev/null differ
diff --git a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/index.md b/docs/content/en/news/lets-celebrate-hugos-5th-birthday/index.md
deleted file mode 100644
index 9912027b5d6..00000000000
--- a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/index.md
+++ /dev/null
@@ -1,108 +0,0 @@
----
-date: 2018-07-04
-title: "Let’s celebrate Hugo’s 5th birthday"
-description: "How a side project became one of the most popular frameworks for building websites."
-categories: [blog]
-author: bep
----
-
-_By Bjørn Erik Pedersen ([@bepsays](https://twitter.com/bepsays) / [@bep](https://github.com/bep)), Hugo Lead_
-
-**Five years ago today, [Steve Francia](https://github.com/spf13/) made his [first commit](https://github.com/gohugoio/hugo/commit/50a1d6f3f155ab837310e00ffb309a9199773c73
-) on the Hugo project: "Hugo: A Fast and Flexible Static Site Generator built with love by spf13 in GoLang".**
-
-Steve was writing that on a train commute to New York. I'm writing this article running Hugo `v0.43-DEV`, the preview version of the next Hugo release. The release is scheduled for Monday and adds a powerful [assets pipeline](https://github.com/gohugoio/hugo/issues/4854#issue-333062459), with SCSS/SASS support, assets minification, fingerprinting/subresource integrity, ad-hoc image processing and much more.
-
-**I cannot remember the last time I was this excited about a Hugo release. "Game changer" may be too strong, but it makes for a really nice integrated website design-workflow that, with Hugo's build speed, is hard to beat.**
-
-{{< imgproc sunset Fill "600x300" >}}
-Fetch and scale an image in the upcoming Hugo 0.43.
-{{< /imgproc >}}
-
-But that is a release for Monday. Now is a time to look at the current status of Hugo after the first five years.
-
-## Hugo in Numbers
-
-According to [BuiltWith](https://trends.builtwith.com/cms/Hugo), more than 29 000 live websites are built with Hugo. Of those, 390 are in the top 1 million. Wappalyzer [reports](https://www.wappalyzer.com/categories/static-site-generator) that Hugo serves almost 50% of the static sites.
-
-Hugo is big in the [public sector](https://discourse.gohugo.io/t/hugo-in-public-administration/8792), with the US Government as a prominent user. Some examples are [vote.gov](https://vote.gov/) and [digital.gov](https://digital.gov/).
-
-[Smashing Magazine](https://www.smashingmagazine.com/) is a big and very popular Hugo site. It is [reported](https://discourse.gohugo.io/t/smashing-magazine-s-redesign-powered-by-hugo-jamstack/5826/7) that they build their complex site with 7500 content pages in 13 seconds.
-
-Some other example sites are [kubernetes.io](https://kubernetes.io/), [letsencrypt.org](https://gohugo.io/showcase/letsencrypt/), [support.1password.com](http://gohugo.io/showcase/1password-support/), [netlify.com](https://www.netlify.com), [litecoin.org](https://litecoin.org/), and [forestry.io](https://forestry.io/).
-
-
-{{< imgproc graph-stars Fit "600x400" >}}
-Number of GitHub stars in relation to the Hugo release dates.
-{{< /imgproc >}}
-
-More numbers:
-
-* 26800+ [stars](https://github.com/gohugoio/hugo/stargazers) on GitHub.
-* 444+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors) to the Hugo source repository, 654+ to [Hugo Docs](https://github.com/gohugoio/hugoDocs/graphs/contributors). [@bep](https://github.com/bep) is the most active with around 70% of the current code base (line count).
-* 235+ [themes](https://themes.gohugo.io/)
-* 50% increase in the number of user sessions on the [gohugo.io](https://gohugo.io/) web sites the last 12 months.[^2]
-* Hugo build release binaries for [a myriad](https://github.com/gohugoio/hugo/releases/tag/v0.42.2) of platforms. And since it can also be installed from Chocolatey on Windows, Brew on MacOs, Snap on Linux and `apt-get` on Debian/Ubuntu, it is impossible to give accurate download numbers. But the number is not small.
-
-## Hugo Next
-
-We're not finished with Hugo, but Hugo `0.43` very nicely wraps up the first five years. It started out as a small and fast static site generator. It is now [even faster](https://forestry.io/blog/hugo-vs-jekyll-benchmark/), and now so loaded with features that it has grown out of being just a "static site generator". It is a _framework for building websites_.
-
-My interest in Hugo started on the Sunday when I moved my blog, [bepsays.com](https://bepsays.com/en/), twice. The second static generator choice of that day, Hugo, was a good match. I remember Steve being very enthusiastic about getting patches with fixes and enhancements, and I was eventually taken over by the simplicity and power of Go, the programming language, and started to implement lots of new features.
-
-My goal with all of this, if there is one, is to get a single binary with native and really fast implementations of the complete stack I need for web development and content editing. The single binary takes most of the pain out of installation and upgrades (if you stick with the same binary, it will continue to just work for decades).
-
-**With 0.43, we are almost there.** With that release, it should be possible to set up a Hugo-only project without any additional tools (Gulp, WebPack) for all aspects of website building. There will still be situations where those tools will still be needed, of course, but we will continue to fill the gaps in the feature set.
-
-Hugo has stuck with the sub-zero versions to signal active development, with a new main release every 5-6 weeks. But we take stability very seriously (breaking things add lots of support work, we don't like that) and most site upgrades are [smooth](https://twitter.com/tmmx/status/1006288444459503616). But we are closing in on the first major stable version.
-
-
-### The Road to 1.0
-
-We have some more technical tasks that needs to be done (there is ongoing work to get the page queries into a more consistent state, also a simpler `.GetPage` method), but also some cool new functionality. The following roadmap is taken from memory, and may not be complete, but should be a good indication of what's ahead.
-
-Pages from "other data sources"
-: Currently, in addition to Hugo's list pages, every URL must be backed by a content file (Markdown, HTML etc.). This covers most use cases, but we need a flexible way to generate pages from other data sources. Think product catalogues and similar.
-
-Upgrade Blackfriday to v2
-: [Blackfriday](https://github.com/russross/blackfriday) is the main content renderer in Hugo. It has been rewritten to a more flexible architecture, which should allow us to fix some of the current shortcomings.
-
-We should be able to create a better and easier-to-use data structure from the rendered content: Summary, the content after the summary, being able to range over the footnotes and the ToC. Having ToC as a proper data structure also opens up a few other potential uses; using it as an index in [Related Content](https://gohugo.io/content-management/related/) would be one example.
-
-This should also enable us to _do more_ with [Custom Output Formats](/templates/output-formats). It is already very powerful. GettyPubs are using it in [Quire](https://github.com/gettypubs/quire) to build [beautiful multi-platform publications](http://www.getty.edu/publications/digital/digitalpubs.html). But it can be improved. For rendering of content files, you are currently restricted to HTML. It would be great if we could configure alternative renderers per output format, such as LaTeX and EPUB.
-
-Related to this is also to add a configurable "Markdown URL rewriter", which should make more portable URLs in Markdown, e.g. image links that work both when viewed on GitHub and your published site.
-
-### The Road to the Future
-
-These are the items that first come to mind if you ask me to think even further ahead:
-
-Dependency manager for Theme Components
-: In Hugo `0.42` we added [Theme Components](/themes/theme-components/) and Theme Inheritance. With SCSS support in Hugo `0.43`, which also follows the same project/themes precedence order (add `_variables.scss` to your project, configure SASS colour variables in `config.toml`), we have a solid foundation for creating easy to use and extensible themes. But we are missing some infrastructure around this. We have a site with 235+ [themes](https://themes.gohugo.io/)[^themes] listed, but you currently need to do some added work to get the theme up and running for your site. In the Go world, we don't have NPM to use, which is a curse and a blessing, but I have some ideas about building a simple dependency manager into Hugo, modelled after how Go is doing it (`hugo install`). You should be able to configure what theme and theme components you want to use, and Hugo should handle the installation of the correct versions. This should make it easier for the user, but it would also enable community driven and even commercial "theme stores".
-
-
-{{< imgproc graph-themes Fit "600x400" >}}
-Number of Hugo themes on themes.gohugo.io in relation to the Hugo release dates.
-{{< /imgproc >}}
-
-
-The "New York Times on Hugo" Use Case
-: There are recurring questions on the support forum from [really big sites](https://discourse.gohugo.io/t/transition-2m-posts-from-wordpress-to-hugo/12704) that want to move to Hugo. There are many [good reasons](https://www.netlify.com/blog/2016/05/18/9-reasons-your-site-should-be-static/) why they want this (security, cost-saving, EU regulations etc.). And while there have been reports about companies building 600 000 pages with Hugo on very powerful hardware, we will have to rethink the build model to make this usable. Keywords are: streaming builds, segmented builds, partial rebuilds. There are other site generators also talking about this. It should be possible, and my instinct tells me that it should be easier to do when your starting point is "really fast". But this is not a small weekend project for me, and I have already talked to several companies about sponsoring this.
-
-Plugins
-: A Theme Component could also be called a plugin. But there are several potential plugin hooks into Hugo's build pipeline: resource transformations, content rendering, etc. We will eventually get there, but we should do it without giving up too much of the Hugo speed and simplicity.
-
-
-## Thanks
-
-So, thanks to everyone who has contributed to getting Hugo where it is today. It is hard to single out individuals, but a big shout-out to all the Hugo experts and moderators helping out making [discourse.gohugo.io](https://discourse.gohugo.io/) a very active and possibly one of the best support forums out there.
-
-And the last shout-out goes to two maintainers who have been there more or less from the start. [@digitalcraftsman](https://github.com/digitalcraftsman/) has been doing a fantastic job keeping the fast growing theme site and [repository](https://github.com/gohugoio/hugoThemes) in pristine condition. I have it on my watch list, but that is just out of curiosity. There is lots of activity, but it runs as clock work. [Anthony Fok](https://github.com/anthonyfok) has contributed with a variety of things but is most notable as the Linux expert on the team. He manages the Debian build and is the one to thank for up-to-date binaries on Debian and Ubuntu.
-
-One final note: If you have not done so already, please visit [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) and push the "star button".
-
-Gopher artwork by [Ashley McNamara](https://github.com/ashleymcnamara/gophers/) (licensed under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)). Inspired by [Renee French](https://reneefrench.blogspot.com/).
-
-[^2]: Numbers from Google Analytics. The Hugo websites are https://discourse.gohugo.io, https://gohugo.io and https://themes.gohugo.io. It is rumoured that when [Matt Biilman](https://twitter.com/biilmann?lang=en), CEO and Co-founder of Netlify, opened the first power bill after sponsoring Hugo's hosting, said: "Du må lave fis med mig, those Hugo sites have lots of web traffic!"
-[^sgen]: That was at the time of writing this article. _Next_, a React based static site generator, has momentum and is closing in on Hugo's 2nd place.
-[^themes]: We pull all the themes from GitHub and build the theme site and 235 demo sites on Netlify in 4 minutes. That is impressive.
diff --git a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/sunset-get.png b/docs/content/en/news/lets-celebrate-hugos-5th-birthday/sunset-get.png
deleted file mode 100644
index 5b368b97a4b..00000000000
Binary files a/docs/content/en/news/lets-celebrate-hugos-5th-birthday/sunset-get.png and /dev/null differ
diff --git a/docs/content/en/quick-reference/_index.md b/docs/content/en/quick-reference/_index.md
new file mode 100644
index 00000000000..98f978f4fcb
--- /dev/null
+++ b/docs/content/en/quick-reference/_index.md
@@ -0,0 +1,8 @@
+---
+title: Quick reference guides
+linkTitle: Quick reference
+description: Use these quick reference guides for quick access to key information.
+categories: []
+keywords: []
+weight: 10
+---
diff --git a/docs/content/en/quick-reference/emojis.md b/docs/content/en/quick-reference/emojis.md
new file mode 100644
index 00000000000..75f26973067
--- /dev/null
+++ b/docs/content/en/quick-reference/emojis.md
@@ -0,0 +1,1681 @@
+---
+title: Emojis
+description: Include emoji shortcodes in your Markdown or templates.
+categories: []
+keywords: []
+params:
+ searchable: false
+---
+
+## Attribution
+
+This quick reference guide was generated using the [ikatyang/emoji-cheat-sheet] project which reads from the [GitHub Emoji API] and the [Unicode Full Emoji List].
+
+Note that GitHub [custom emoji] are not supported.
+
+[custom emoji]: #github-custom-emoji
+[github emoji api]: https://api.github.com/emojis
+[ikatyang/emoji-cheat-sheet]: https://github.com/ikatyang/emoji-cheat-sheet/
+[unicode full emoji list]: https://unicode.org/emoji/charts/full-emoji-list.html
+
+## Usage
+
+Configure Hugo to enable emoji processing in Markdown:
+
+{{< code-toggle file=hugo >}}
+enableEmoji = true
+{{< /code-toggle >}}
+
+With emoji processing enabled, this Markdown:
+
+```md
+Hello! :wave:
+```
+
+Is rendered to:
+
+```html
+Hello! 👋
+```
+
+And in your browser... Hello! :wave:
+
+To process an emoji shortcode from within a template, use the [`emojify`] function or pass the string through the [`RenderString`] method on a `Page` object:
+
+```go-html-template
+{{ "Hello! :wave:" | .RenderString }}
+```
+
+[`emojify`]: /functions/transform/emojify/
+[`RenderString`]: /methods/page/renderstring/
+
+
+
+## Table of Contents
+
+- [Smileys & Emotion](#smileys--emotion)
+- [People & Body](#people--body)
+- [Animals & Nature](#animals--nature)
+- [Food & Drink](#food--drink)
+- [Travel & Places](#travel--places)
+- [Activities](#activities)
+- [Objects](#objects)
+- [Symbols](#symbols)
+- [Flags](#flags)
+- [GitHub Custom Emoji](#github-custom-emoji)
+
+## Smileys & Emotion
+
+- [Face Smiling](#face-smiling)
+- [Face Affection](#face-affection)
+- [Face Tongue](#face-tongue)
+- [Face Hand](#face-hand)
+- [Face Neutral Skeptical](#face-neutral-skeptical)
+- [Face Sleepy](#face-sleepy)
+- [Face Unwell](#face-unwell)
+- [Face Hat](#face-hat)
+- [Face Glasses](#face-glasses)
+- [Face Concerned](#face-concerned)
+- [Face Negative](#face-negative)
+- [Face Costume](#face-costume)
+- [Cat Face](#cat-face)
+- [Monkey Face](#monkey-face)
+- [Heart](#heart)
+- [Emotion](#emotion)
+
+### Face Smiling
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :grinning: | `:grinning:` | :smiley: | `:smiley:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :smile: | `:smile:` | :grin: | `:grin:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :laughing: | `:laughing:` `:satisfied:` | :sweat_smile: | `:sweat_smile:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :rofl: | `:rofl:` | :joy: | `:joy:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :slightly_smiling_face: | `:slightly_smiling_face:` | :upside_down_face: | `:upside_down_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :melting_face: | `:melting_face:` | :wink: | `:wink:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :blush: | `:blush:` | :innocent: | `:innocent:` | [top](#table-of-contents) |
+
+### Face Affection
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :smiling_face_with_three_hearts: | `:smiling_face_with_three_hearts:` | :heart_eyes: | `:heart_eyes:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :star_struck: | `:star_struck:` | :kissing_heart: | `:kissing_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :kissing: | `:kissing:` | :relaxed: | `:relaxed:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :kissing_closed_eyes: | `:kissing_closed_eyes:` | :kissing_smiling_eyes: | `:kissing_smiling_eyes:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :smiling_face_with_tear: | `:smiling_face_with_tear:` | | | [top](#table-of-contents) |
+
+### Face Tongue
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :yum: | `:yum:` | :stuck_out_tongue: | `:stuck_out_tongue:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :stuck_out_tongue_winking_eye: | `:stuck_out_tongue_winking_eye:` | :zany_face: | `:zany_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :stuck_out_tongue_closed_eyes: | `:stuck_out_tongue_closed_eyes:` | :money_mouth_face: | `:money_mouth_face:` | [top](#table-of-contents) |
+
+### Face Hand
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :hugs: | `:hugs:` | :hand_over_mouth: | `:hand_over_mouth:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :face_with_open_eyes_and_hand_over_mouth: | `:face_with_open_eyes_and_hand_over_mouth:` | :face_with_peeking_eye: | `:face_with_peeking_eye:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :shushing_face: | `:shushing_face:` | :thinking: | `:thinking:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :saluting_face: | `:saluting_face:` | | | [top](#table-of-contents) |
+
+### Face Neutral Skeptical
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :zipper_mouth_face: | `:zipper_mouth_face:` | :raised_eyebrow: | `:raised_eyebrow:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :neutral_face: | `:neutral_face:` | :expressionless: | `:expressionless:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :no_mouth: | `:no_mouth:` | :dotted_line_face: | `:dotted_line_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :face_in_clouds: | `:face_in_clouds:` | :smirk: | `:smirk:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :unamused: | `:unamused:` | :roll_eyes: | `:roll_eyes:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :grimacing: | `:grimacing:` | :face_exhaling: | `:face_exhaling:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :lying_face: | `:lying_face:` | :shaking_face: | `:shaking_face:` | [top](#table-of-contents) |
+
+### Face Sleepy
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :relieved: | `:relieved:` | :pensive: | `:pensive:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :sleepy: | `:sleepy:` | :drooling_face: | `:drooling_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :sleeping: | `:sleeping:` | | | [top](#table-of-contents) |
+
+### Face Unwell
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :mask: | `:mask:` | :face_with_thermometer: | `:face_with_thermometer:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :face_with_head_bandage: | `:face_with_head_bandage:` | :nauseated_face: | `:nauseated_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :vomiting_face: | `:vomiting_face:` | :sneezing_face: | `:sneezing_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :hot_face: | `:hot_face:` | :cold_face: | `:cold_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :woozy_face: | `:woozy_face:` | :dizzy_face: | `:dizzy_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :face_with_spiral_eyes: | `:face_with_spiral_eyes:` | :exploding_head: | `:exploding_head:` | [top](#table-of-contents) |
+
+### Face Hat
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :cowboy_hat_face: | `:cowboy_hat_face:` | :partying_face: | `:partying_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :disguised_face: | `:disguised_face:` | | | [top](#table-of-contents) |
+
+### Face Glasses
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :sunglasses: | `:sunglasses:` | :nerd_face: | `:nerd_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :monocle_face: | `:monocle_face:` | | | [top](#table-of-contents) |
+
+### Face Concerned
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :confused: | `:confused:` | :face_with_diagonal_mouth: | `:face_with_diagonal_mouth:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :worried: | `:worried:` | :slightly_frowning_face: | `:slightly_frowning_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :frowning_face: | `:frowning_face:` | :open_mouth: | `:open_mouth:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :hushed: | `:hushed:` | :astonished: | `:astonished:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :flushed: | `:flushed:` | :pleading_face: | `:pleading_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :face_holding_back_tears: | `:face_holding_back_tears:` | :frowning: | `:frowning:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :anguished: | `:anguished:` | :fearful: | `:fearful:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :cold_sweat: | `:cold_sweat:` | :disappointed_relieved: | `:disappointed_relieved:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :cry: | `:cry:` | :sob: | `:sob:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :scream: | `:scream:` | :confounded: | `:confounded:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :persevere: | `:persevere:` | :disappointed: | `:disappointed:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :sweat: | `:sweat:` | :weary: | `:weary:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :tired_face: | `:tired_face:` | :yawning_face: | `:yawning_face:` | [top](#table-of-contents) |
+
+### Face Negative
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :triumph: | `:triumph:` | :pout: | `:pout:` `:rage:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :angry: | `:angry:` | :cursing_face: | `:cursing_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :smiling_imp: | `:smiling_imp:` | :imp: | `:imp:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :skull: | `:skull:` | :skull_and_crossbones: | `:skull_and_crossbones:` | [top](#table-of-contents) |
+
+### Face Costume
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :hankey: | `:hankey:` `:poop:` `:shit:` | :clown_face: | `:clown_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :japanese_ogre: | `:japanese_ogre:` | :japanese_goblin: | `:japanese_goblin:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :ghost: | `:ghost:` | :alien: | `:alien:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :space_invader: | `:space_invader:` | :robot: | `:robot:` | [top](#table-of-contents) |
+
+### Cat Face
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :smiley_cat: | `:smiley_cat:` | :smile_cat: | `:smile_cat:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :joy_cat: | `:joy_cat:` | :heart_eyes_cat: | `:heart_eyes_cat:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :smirk_cat: | `:smirk_cat:` | :kissing_cat: | `:kissing_cat:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :scream_cat: | `:scream_cat:` | :crying_cat_face: | `:crying_cat_face:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :pouting_cat: | `:pouting_cat:` | | | [top](#table-of-contents) |
+
+### Monkey Face
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :see_no_evil: | `:see_no_evil:` | :hear_no_evil: | `:hear_no_evil:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :speak_no_evil: | `:speak_no_evil:` | | | [top](#table-of-contents) |
+
+### Heart
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :love_letter: | `:love_letter:` | :cupid: | `:cupid:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :gift_heart: | `:gift_heart:` | :sparkling_heart: | `:sparkling_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :heartpulse: | `:heartpulse:` | :heartbeat: | `:heartbeat:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :revolving_hearts: | `:revolving_hearts:` | :two_hearts: | `:two_hearts:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :heart_decoration: | `:heart_decoration:` | :heavy_heart_exclamation: | `:heavy_heart_exclamation:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :broken_heart: | `:broken_heart:` | :heart_on_fire: | `:heart_on_fire:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :mending_heart: | `:mending_heart:` | :heart: | `:heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :pink_heart: | `:pink_heart:` | :orange_heart: | `:orange_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :yellow_heart: | `:yellow_heart:` | :green_heart: | `:green_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :blue_heart: | `:blue_heart:` | :light_blue_heart: | `:light_blue_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :purple_heart: | `:purple_heart:` | :brown_heart: | `:brown_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :black_heart: | `:black_heart:` | :grey_heart: | `:grey_heart:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :white_heart: | `:white_heart:` | | | [top](#table-of-contents) |
+
+### Emotion
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#smileys--emotion) | :kiss: | `:kiss:` | :100: | `:100:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :anger: | `:anger:` | :boom: | `:boom:` `:collision:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :dizzy: | `:dizzy:` | :sweat_drops: | `:sweat_drops:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :dash: | `:dash:` | :hole: | `:hole:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :speech_balloon: | `:speech_balloon:` | :eye_speech_bubble: | `:eye_speech_bubble:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :left_speech_bubble: | `:left_speech_bubble:` | :right_anger_bubble: | `:right_anger_bubble:` | [top](#table-of-contents) |
+| [top](#smileys--emotion) | :thought_balloon: | `:thought_balloon:` | :zzz: | `:zzz:` | [top](#table-of-contents) |
+
+## People & Body
+
+- [Hand Fingers Open](#hand-fingers-open)
+- [Hand Fingers Partial](#hand-fingers-partial)
+- [Hand Single Finger](#hand-single-finger)
+- [Hand Fingers Closed](#hand-fingers-closed)
+- [Hands](#hands)
+- [Hand Prop](#hand-prop)
+- [Body Parts](#body-parts)
+- [Person](#person)
+- [Person Gesture](#person-gesture)
+- [Person Role](#person-role)
+- [Person Fantasy](#person-fantasy)
+- [Person Activity](#person-activity)
+- [Person Sport](#person-sport)
+- [Person Resting](#person-resting)
+- [Family](#family)
+- [Person Symbol](#person-symbol)
+
+### Hand Fingers Open
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :wave: | `:wave:` | :raised_back_of_hand: | `:raised_back_of_hand:` | [top](#table-of-contents) |
+| [top](#people--body) | :raised_hand_with_fingers_splayed: | `:raised_hand_with_fingers_splayed:` | :hand: | `:hand:` `:raised_hand:` | [top](#table-of-contents) |
+| [top](#people--body) | :vulcan_salute: | `:vulcan_salute:` | :rightwards_hand: | `:rightwards_hand:` | [top](#table-of-contents) |
+| [top](#people--body) | :leftwards_hand: | `:leftwards_hand:` | :palm_down_hand: | `:palm_down_hand:` | [top](#table-of-contents) |
+| [top](#people--body) | :palm_up_hand: | `:palm_up_hand:` | :leftwards_pushing_hand: | `:leftwards_pushing_hand:` | [top](#table-of-contents) |
+| [top](#people--body) | :rightwards_pushing_hand: | `:rightwards_pushing_hand:` | | | [top](#table-of-contents) |
+
+### Hand Fingers Partial
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :ok_hand: | `:ok_hand:` | :pinched_fingers: | `:pinched_fingers:` | [top](#table-of-contents) |
+| [top](#people--body) | :pinching_hand: | `:pinching_hand:` | :v: | `:v:` | [top](#table-of-contents) |
+| [top](#people--body) | :crossed_fingers: | `:crossed_fingers:` | :hand_with_index_finger_and_thumb_crossed: | `:hand_with_index_finger_and_thumb_crossed:` | [top](#table-of-contents) |
+| [top](#people--body) | :love_you_gesture: | `:love_you_gesture:` | :metal: | `:metal:` | [top](#table-of-contents) |
+| [top](#people--body) | :call_me_hand: | `:call_me_hand:` | | | [top](#table-of-contents) |
+
+### Hand Single Finger
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :point_left: | `:point_left:` | :point_right: | `:point_right:` | [top](#table-of-contents) |
+| [top](#people--body) | :point_up_2: | `:point_up_2:` | :fu: | `:fu:` `:middle_finger:` | [top](#table-of-contents) |
+| [top](#people--body) | :point_down: | `:point_down:` | :point_up: | `:point_up:` | [top](#table-of-contents) |
+| [top](#people--body) | :index_pointing_at_the_viewer: | `:index_pointing_at_the_viewer:` | | | [top](#table-of-contents) |
+
+### Hand Fingers Closed
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :+1: | `:+1:` `:thumbsup:` | :-1: | `:-1:` `:thumbsdown:` | [top](#table-of-contents) |
+| [top](#people--body) | :fist: | `:fist:` `:fist_raised:` | :facepunch: | `:facepunch:` `:fist_oncoming:` `:punch:` | [top](#table-of-contents) |
+| [top](#people--body) | :fist_left: | `:fist_left:` | :fist_right: | `:fist_right:` | [top](#table-of-contents) |
+
+### Hands
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :clap: | `:clap:` | :raised_hands: | `:raised_hands:` | [top](#table-of-contents) |
+| [top](#people--body) | :heart_hands: | `:heart_hands:` | :open_hands: | `:open_hands:` | [top](#table-of-contents) |
+| [top](#people--body) | :palms_up_together: | `:palms_up_together:` | :handshake: | `:handshake:` | [top](#table-of-contents) |
+| [top](#people--body) | :pray: | `:pray:` | | | [top](#table-of-contents) |
+
+### Hand Prop
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :writing_hand: | `:writing_hand:` | :nail_care: | `:nail_care:` | [top](#table-of-contents) |
+| [top](#people--body) | :selfie: | `:selfie:` | | | [top](#table-of-contents) |
+
+### Body Parts
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :muscle: | `:muscle:` | :mechanical_arm: | `:mechanical_arm:` | [top](#table-of-contents) |
+| [top](#people--body) | :mechanical_leg: | `:mechanical_leg:` | :leg: | `:leg:` | [top](#table-of-contents) |
+| [top](#people--body) | :foot: | `:foot:` | :ear: | `:ear:` | [top](#table-of-contents) |
+| [top](#people--body) | :ear_with_hearing_aid: | `:ear_with_hearing_aid:` | :nose: | `:nose:` | [top](#table-of-contents) |
+| [top](#people--body) | :brain: | `:brain:` | :anatomical_heart: | `:anatomical_heart:` | [top](#table-of-contents) |
+| [top](#people--body) | :lungs: | `:lungs:` | :tooth: | `:tooth:` | [top](#table-of-contents) |
+| [top](#people--body) | :bone: | `:bone:` | :eyes: | `:eyes:` | [top](#table-of-contents) |
+| [top](#people--body) | :eye: | `:eye:` | :tongue: | `:tongue:` | [top](#table-of-contents) |
+| [top](#people--body) | :lips: | `:lips:` | :biting_lip: | `:biting_lip:` | [top](#table-of-contents) |
+
+### Person
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :baby: | `:baby:` | :child: | `:child:` | [top](#table-of-contents) |
+| [top](#people--body) | :boy: | `:boy:` | :girl: | `:girl:` | [top](#table-of-contents) |
+| [top](#people--body) | :adult: | `:adult:` | :blond_haired_person: | `:blond_haired_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :man: | `:man:` | :bearded_person: | `:bearded_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_beard: | `:man_beard:` | :woman_beard: | `:woman_beard:` | [top](#table-of-contents) |
+| [top](#people--body) | :red_haired_man: | `:red_haired_man:` | :curly_haired_man: | `:curly_haired_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :white_haired_man: | `:white_haired_man:` | :bald_man: | `:bald_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman: | `:woman:` | :red_haired_woman: | `:red_haired_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_red_hair: | `:person_red_hair:` | :curly_haired_woman: | `:curly_haired_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_curly_hair: | `:person_curly_hair:` | :white_haired_woman: | `:white_haired_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_white_hair: | `:person_white_hair:` | :bald_woman: | `:bald_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_bald: | `:person_bald:` | :blond_haired_woman: | `:blond_haired_woman:` `:blonde_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :blond_haired_man: | `:blond_haired_man:` | :older_adult: | `:older_adult:` | [top](#table-of-contents) |
+| [top](#people--body) | :older_man: | `:older_man:` | :older_woman: | `:older_woman:` | [top](#table-of-contents) |
+
+### Person Gesture
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :frowning_person: | `:frowning_person:` | :frowning_man: | `:frowning_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :frowning_woman: | `:frowning_woman:` | :pouting_face: | `:pouting_face:` | [top](#table-of-contents) |
+| [top](#people--body) | :pouting_man: | `:pouting_man:` | :pouting_woman: | `:pouting_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :no_good: | `:no_good:` | :ng_man: | `:ng_man:` `:no_good_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :ng_woman: | `:ng_woman:` `:no_good_woman:` | :ok_person: | `:ok_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :ok_man: | `:ok_man:` | :ok_woman: | `:ok_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :information_desk_person: | `:information_desk_person:` `:tipping_hand_person:` | :sassy_man: | `:sassy_man:` `:tipping_hand_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :sassy_woman: | `:sassy_woman:` `:tipping_hand_woman:` | :raising_hand: | `:raising_hand:` | [top](#table-of-contents) |
+| [top](#people--body) | :raising_hand_man: | `:raising_hand_man:` | :raising_hand_woman: | `:raising_hand_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :deaf_person: | `:deaf_person:` | :deaf_man: | `:deaf_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :deaf_woman: | `:deaf_woman:` | :bow: | `:bow:` | [top](#table-of-contents) |
+| [top](#people--body) | :bowing_man: | `:bowing_man:` | :bowing_woman: | `:bowing_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :facepalm: | `:facepalm:` | :man_facepalming: | `:man_facepalming:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_facepalming: | `:woman_facepalming:` | :shrug: | `:shrug:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_shrugging: | `:man_shrugging:` | :woman_shrugging: | `:woman_shrugging:` | [top](#table-of-contents) |
+
+### Person Role
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :health_worker: | `:health_worker:` | :man_health_worker: | `:man_health_worker:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_health_worker: | `:woman_health_worker:` | :student: | `:student:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_student: | `:man_student:` | :woman_student: | `:woman_student:` | [top](#table-of-contents) |
+| [top](#people--body) | :teacher: | `:teacher:` | :man_teacher: | `:man_teacher:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_teacher: | `:woman_teacher:` | :judge: | `:judge:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_judge: | `:man_judge:` | :woman_judge: | `:woman_judge:` | [top](#table-of-contents) |
+| [top](#people--body) | :farmer: | `:farmer:` | :man_farmer: | `:man_farmer:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_farmer: | `:woman_farmer:` | :cook: | `:cook:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_cook: | `:man_cook:` | :woman_cook: | `:woman_cook:` | [top](#table-of-contents) |
+| [top](#people--body) | :mechanic: | `:mechanic:` | :man_mechanic: | `:man_mechanic:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_mechanic: | `:woman_mechanic:` | :factory_worker: | `:factory_worker:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_factory_worker: | `:man_factory_worker:` | :woman_factory_worker: | `:woman_factory_worker:` | [top](#table-of-contents) |
+| [top](#people--body) | :office_worker: | `:office_worker:` | :man_office_worker: | `:man_office_worker:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_office_worker: | `:woman_office_worker:` | :scientist: | `:scientist:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_scientist: | `:man_scientist:` | :woman_scientist: | `:woman_scientist:` | [top](#table-of-contents) |
+| [top](#people--body) | :technologist: | `:technologist:` | :man_technologist: | `:man_technologist:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_technologist: | `:woman_technologist:` | :singer: | `:singer:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_singer: | `:man_singer:` | :woman_singer: | `:woman_singer:` | [top](#table-of-contents) |
+| [top](#people--body) | :artist: | `:artist:` | :man_artist: | `:man_artist:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_artist: | `:woman_artist:` | :pilot: | `:pilot:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_pilot: | `:man_pilot:` | :woman_pilot: | `:woman_pilot:` | [top](#table-of-contents) |
+| [top](#people--body) | :astronaut: | `:astronaut:` | :man_astronaut: | `:man_astronaut:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_astronaut: | `:woman_astronaut:` | :firefighter: | `:firefighter:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_firefighter: | `:man_firefighter:` | :woman_firefighter: | `:woman_firefighter:` | [top](#table-of-contents) |
+| [top](#people--body) | :cop: | `:cop:` `:police_officer:` | :policeman: | `:policeman:` | [top](#table-of-contents) |
+| [top](#people--body) | :policewoman: | `:policewoman:` | :detective: | `:detective:` | [top](#table-of-contents) |
+| [top](#people--body) | :male_detective: | `:male_detective:` | :female_detective: | `:female_detective:` | [top](#table-of-contents) |
+| [top](#people--body) | :guard: | `:guard:` | :guardsman: | `:guardsman:` | [top](#table-of-contents) |
+| [top](#people--body) | :guardswoman: | `:guardswoman:` | :ninja: | `:ninja:` | [top](#table-of-contents) |
+| [top](#people--body) | :construction_worker: | `:construction_worker:` | :construction_worker_man: | `:construction_worker_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :construction_worker_woman: | `:construction_worker_woman:` | :person_with_crown: | `:person_with_crown:` | [top](#table-of-contents) |
+| [top](#people--body) | :prince: | `:prince:` | :princess: | `:princess:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_with_turban: | `:person_with_turban:` | :man_with_turban: | `:man_with_turban:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_with_turban: | `:woman_with_turban:` | :man_with_gua_pi_mao: | `:man_with_gua_pi_mao:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_with_headscarf: | `:woman_with_headscarf:` | :person_in_tuxedo: | `:person_in_tuxedo:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_in_tuxedo: | `:man_in_tuxedo:` | :woman_in_tuxedo: | `:woman_in_tuxedo:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_with_veil: | `:person_with_veil:` | :man_with_veil: | `:man_with_veil:` | [top](#table-of-contents) |
+| [top](#people--body) | :bride_with_veil: | `:bride_with_veil:` `:woman_with_veil:` | :pregnant_woman: | `:pregnant_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :pregnant_man: | `:pregnant_man:` | :pregnant_person: | `:pregnant_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :breast_feeding: | `:breast_feeding:` | :woman_feeding_baby: | `:woman_feeding_baby:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_feeding_baby: | `:man_feeding_baby:` | :person_feeding_baby: | `:person_feeding_baby:` | [top](#table-of-contents) |
+
+### Person Fantasy
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :angel: | `:angel:` | :santa: | `:santa:` | [top](#table-of-contents) |
+| [top](#people--body) | :mrs_claus: | `:mrs_claus:` | :mx_claus: | `:mx_claus:` | [top](#table-of-contents) |
+| [top](#people--body) | :superhero: | `:superhero:` | :superhero_man: | `:superhero_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :superhero_woman: | `:superhero_woman:` | :supervillain: | `:supervillain:` | [top](#table-of-contents) |
+| [top](#people--body) | :supervillain_man: | `:supervillain_man:` | :supervillain_woman: | `:supervillain_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :mage: | `:mage:` | :mage_man: | `:mage_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :mage_woman: | `:mage_woman:` | :fairy: | `:fairy:` | [top](#table-of-contents) |
+| [top](#people--body) | :fairy_man: | `:fairy_man:` | :fairy_woman: | `:fairy_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :vampire: | `:vampire:` | :vampire_man: | `:vampire_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :vampire_woman: | `:vampire_woman:` | :merperson: | `:merperson:` | [top](#table-of-contents) |
+| [top](#people--body) | :merman: | `:merman:` | :mermaid: | `:mermaid:` | [top](#table-of-contents) |
+| [top](#people--body) | :elf: | `:elf:` | :elf_man: | `:elf_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :elf_woman: | `:elf_woman:` | :genie: | `:genie:` | [top](#table-of-contents) |
+| [top](#people--body) | :genie_man: | `:genie_man:` | :genie_woman: | `:genie_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :zombie: | `:zombie:` | :zombie_man: | `:zombie_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :zombie_woman: | `:zombie_woman:` | :troll: | `:troll:` | [top](#table-of-contents) |
+
+### Person Activity
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :massage: | `:massage:` | :massage_man: | `:massage_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :massage_woman: | `:massage_woman:` | :haircut: | `:haircut:` | [top](#table-of-contents) |
+| [top](#people--body) | :haircut_man: | `:haircut_man:` | :haircut_woman: | `:haircut_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :walking: | `:walking:` | :walking_man: | `:walking_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :walking_woman: | `:walking_woman:` | :standing_person: | `:standing_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :standing_man: | `:standing_man:` | :standing_woman: | `:standing_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :kneeling_person: | `:kneeling_person:` | :kneeling_man: | `:kneeling_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :kneeling_woman: | `:kneeling_woman:` | :person_with_probing_cane: | `:person_with_probing_cane:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_with_probing_cane: | `:man_with_probing_cane:` | :woman_with_probing_cane: | `:woman_with_probing_cane:` | [top](#table-of-contents) |
+| [top](#people--body) | :person_in_motorized_wheelchair: | `:person_in_motorized_wheelchair:` | :man_in_motorized_wheelchair: | `:man_in_motorized_wheelchair:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_in_motorized_wheelchair: | `:woman_in_motorized_wheelchair:` | :person_in_manual_wheelchair: | `:person_in_manual_wheelchair:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_in_manual_wheelchair: | `:man_in_manual_wheelchair:` | :woman_in_manual_wheelchair: | `:woman_in_manual_wheelchair:` | [top](#table-of-contents) |
+| [top](#people--body) | :runner: | `:runner:` `:running:` | :running_man: | `:running_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :running_woman: | `:running_woman:` | :dancer: | `:dancer:` `:woman_dancing:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_dancing: | `:man_dancing:` | :business_suit_levitating: | `:business_suit_levitating:` | [top](#table-of-contents) |
+| [top](#people--body) | :dancers: | `:dancers:` | :dancing_men: | `:dancing_men:` | [top](#table-of-contents) |
+| [top](#people--body) | :dancing_women: | `:dancing_women:` | :sauna_person: | `:sauna_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :sauna_man: | `:sauna_man:` | :sauna_woman: | `:sauna_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :climbing: | `:climbing:` | :climbing_man: | `:climbing_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :climbing_woman: | `:climbing_woman:` | | | [top](#table-of-contents) |
+
+### Person Sport
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :person_fencing: | `:person_fencing:` | :horse_racing: | `:horse_racing:` | [top](#table-of-contents) |
+| [top](#people--body) | :skier: | `:skier:` | :snowboarder: | `:snowboarder:` | [top](#table-of-contents) |
+| [top](#people--body) | :golfing: | `:golfing:` | :golfing_man: | `:golfing_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :golfing_woman: | `:golfing_woman:` | :surfer: | `:surfer:` | [top](#table-of-contents) |
+| [top](#people--body) | :surfing_man: | `:surfing_man:` | :surfing_woman: | `:surfing_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :rowboat: | `:rowboat:` | :rowing_man: | `:rowing_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :rowing_woman: | `:rowing_woman:` | :swimmer: | `:swimmer:` | [top](#table-of-contents) |
+| [top](#people--body) | :swimming_man: | `:swimming_man:` | :swimming_woman: | `:swimming_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :bouncing_ball_person: | `:bouncing_ball_person:` | :basketball_man: | `:basketball_man:` `:bouncing_ball_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :basketball_woman: | `:basketball_woman:` `:bouncing_ball_woman:` | :weight_lifting: | `:weight_lifting:` | [top](#table-of-contents) |
+| [top](#people--body) | :weight_lifting_man: | `:weight_lifting_man:` | :weight_lifting_woman: | `:weight_lifting_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :bicyclist: | `:bicyclist:` | :biking_man: | `:biking_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :biking_woman: | `:biking_woman:` | :mountain_bicyclist: | `:mountain_bicyclist:` | [top](#table-of-contents) |
+| [top](#people--body) | :mountain_biking_man: | `:mountain_biking_man:` | :mountain_biking_woman: | `:mountain_biking_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :cartwheeling: | `:cartwheeling:` | :man_cartwheeling: | `:man_cartwheeling:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_cartwheeling: | `:woman_cartwheeling:` | :wrestling: | `:wrestling:` | [top](#table-of-contents) |
+| [top](#people--body) | :men_wrestling: | `:men_wrestling:` | :women_wrestling: | `:women_wrestling:` | [top](#table-of-contents) |
+| [top](#people--body) | :water_polo: | `:water_polo:` | :man_playing_water_polo: | `:man_playing_water_polo:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_playing_water_polo: | `:woman_playing_water_polo:` | :handball_person: | `:handball_person:` | [top](#table-of-contents) |
+| [top](#people--body) | :man_playing_handball: | `:man_playing_handball:` | :woman_playing_handball: | `:woman_playing_handball:` | [top](#table-of-contents) |
+| [top](#people--body) | :juggling_person: | `:juggling_person:` | :man_juggling: | `:man_juggling:` | [top](#table-of-contents) |
+| [top](#people--body) | :woman_juggling: | `:woman_juggling:` | | | [top](#table-of-contents) |
+
+### Person Resting
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :lotus_position: | `:lotus_position:` | :lotus_position_man: | `:lotus_position_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :lotus_position_woman: | `:lotus_position_woman:` | :bath: | `:bath:` | [top](#table-of-contents) |
+| [top](#people--body) | :sleeping_bed: | `:sleeping_bed:` | | | [top](#table-of-contents) |
+
+### Family
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :people_holding_hands: | `:people_holding_hands:` | :two_women_holding_hands: | `:two_women_holding_hands:` | [top](#table-of-contents) |
+| [top](#people--body) | :couple: | `:couple:` | :two_men_holding_hands: | `:two_men_holding_hands:` | [top](#table-of-contents) |
+| [top](#people--body) | :couplekiss: | `:couplekiss:` | :couplekiss_man_woman: | `:couplekiss_man_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :couplekiss_man_man: | `:couplekiss_man_man:` | :couplekiss_woman_woman: | `:couplekiss_woman_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :couple_with_heart: | `:couple_with_heart:` | :couple_with_heart_woman_man: | `:couple_with_heart_woman_man:` | [top](#table-of-contents) |
+| [top](#people--body) | :couple_with_heart_man_man: | `:couple_with_heart_man_man:` | :couple_with_heart_woman_woman: | `:couple_with_heart_woman_woman:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_woman_boy: | `:family_man_woman_boy:` | :family_man_woman_girl: | `:family_man_woman_girl:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_woman_girl_boy: | `:family_man_woman_girl_boy:` | :family_man_woman_boy_boy: | `:family_man_woman_boy_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_woman_girl_girl: | `:family_man_woman_girl_girl:` | :family_man_man_boy: | `:family_man_man_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_man_girl: | `:family_man_man_girl:` | :family_man_man_girl_boy: | `:family_man_man_girl_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_man_boy_boy: | `:family_man_man_boy_boy:` | :family_man_man_girl_girl: | `:family_man_man_girl_girl:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_woman_woman_boy: | `:family_woman_woman_boy:` | :family_woman_woman_girl: | `:family_woman_woman_girl:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_woman_woman_girl_boy: | `:family_woman_woman_girl_boy:` | :family_woman_woman_boy_boy: | `:family_woman_woman_boy_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_woman_woman_girl_girl: | `:family_woman_woman_girl_girl:` | :family_man_boy: | `:family_man_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_boy_boy: | `:family_man_boy_boy:` | :family_man_girl: | `:family_man_girl:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_man_girl_boy: | `:family_man_girl_boy:` | :family_man_girl_girl: | `:family_man_girl_girl:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_woman_boy: | `:family_woman_boy:` | :family_woman_boy_boy: | `:family_woman_boy_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_woman_girl: | `:family_woman_girl:` | :family_woman_girl_boy: | `:family_woman_girl_boy:` | [top](#table-of-contents) |
+| [top](#people--body) | :family_woman_girl_girl: | `:family_woman_girl_girl:` | | | [top](#table-of-contents) |
+
+### Person Symbol
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#people--body) | :speaking_head: | `:speaking_head:` | :bust_in_silhouette: | `:bust_in_silhouette:` | [top](#table-of-contents) |
+| [top](#people--body) | :busts_in_silhouette: | `:busts_in_silhouette:` | :people_hugging: | `:people_hugging:` | [top](#table-of-contents) |
+| [top](#people--body) | :family: | `:family:` | :footprints: | `:footprints:` | [top](#table-of-contents) |
+
+## Animals & Nature
+
+- [Animal Mammal](#animal-mammal)
+- [Animal Bird](#animal-bird)
+- [Animal Amphibian](#animal-amphibian)
+- [Animal Reptile](#animal-reptile)
+- [Animal Marine](#animal-marine)
+- [Animal Bug](#animal-bug)
+- [Plant Flower](#plant-flower)
+- [Plant Other](#plant-other)
+
+### Animal Mammal
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :monkey_face: | `:monkey_face:` | :monkey: | `:monkey:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :gorilla: | `:gorilla:` | :orangutan: | `:orangutan:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :dog: | `:dog:` | :dog2: | `:dog2:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :guide_dog: | `:guide_dog:` | :service_dog: | `:service_dog:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :poodle: | `:poodle:` | :wolf: | `:wolf:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :fox_face: | `:fox_face:` | :raccoon: | `:raccoon:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :cat: | `:cat:` | :cat2: | `:cat2:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :black_cat: | `:black_cat:` | :lion: | `:lion:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :tiger: | `:tiger:` | :tiger2: | `:tiger2:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :leopard: | `:leopard:` | :horse: | `:horse:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :moose: | `:moose:` | :donkey: | `:donkey:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :racehorse: | `:racehorse:` | :unicorn: | `:unicorn:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :zebra: | `:zebra:` | :deer: | `:deer:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :bison: | `:bison:` | :cow: | `:cow:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :ox: | `:ox:` | :water_buffalo: | `:water_buffalo:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :cow2: | `:cow2:` | :pig: | `:pig:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :pig2: | `:pig2:` | :boar: | `:boar:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :pig_nose: | `:pig_nose:` | :ram: | `:ram:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :sheep: | `:sheep:` | :goat: | `:goat:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :dromedary_camel: | `:dromedary_camel:` | :camel: | `:camel:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :llama: | `:llama:` | :giraffe: | `:giraffe:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :elephant: | `:elephant:` | :mammoth: | `:mammoth:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :rhinoceros: | `:rhinoceros:` | :hippopotamus: | `:hippopotamus:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :mouse: | `:mouse:` | :mouse2: | `:mouse2:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :rat: | `:rat:` | :hamster: | `:hamster:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :rabbit: | `:rabbit:` | :rabbit2: | `:rabbit2:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :chipmunk: | `:chipmunk:` | :beaver: | `:beaver:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :hedgehog: | `:hedgehog:` | :bat: | `:bat:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :bear: | `:bear:` | :polar_bear: | `:polar_bear:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :koala: | `:koala:` | :panda_face: | `:panda_face:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :sloth: | `:sloth:` | :otter: | `:otter:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :skunk: | `:skunk:` | :kangaroo: | `:kangaroo:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :badger: | `:badger:` | :feet: | `:feet:` `:paw_prints:` | [top](#table-of-contents) |
+
+### Animal Bird
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :turkey: | `:turkey:` | :chicken: | `:chicken:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :rooster: | `:rooster:` | :hatching_chick: | `:hatching_chick:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :baby_chick: | `:baby_chick:` | :hatched_chick: | `:hatched_chick:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :bird: | `:bird:` | :penguin: | `:penguin:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :dove: | `:dove:` | :eagle: | `:eagle:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :duck: | `:duck:` | :swan: | `:swan:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :owl: | `:owl:` | :dodo: | `:dodo:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :feather: | `:feather:` | :flamingo: | `:flamingo:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :peacock: | `:peacock:` | :parrot: | `:parrot:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :wing: | `:wing:` | :black_bird: | `:black_bird:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :goose: | `:goose:` | | | [top](#table-of-contents) |
+
+### Animal Amphibian
+
+| | ico | shortcode | |
+| - | :-: | - | - |
+| [top](#animals--nature) | :frog: | `:frog:` | [top](#table-of-contents) |
+
+### Animal Reptile
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :crocodile: | `:crocodile:` | :turtle: | `:turtle:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :lizard: | `:lizard:` | :snake: | `:snake:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :dragon_face: | `:dragon_face:` | :dragon: | `:dragon:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :sauropod: | `:sauropod:` | :t-rex: | `:t-rex:` | [top](#table-of-contents) |
+
+### Animal Marine
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :whale: | `:whale:` | :whale2: | `:whale2:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :dolphin: | `:dolphin:` `:flipper:` | :seal: | `:seal:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :fish: | `:fish:` | :tropical_fish: | `:tropical_fish:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :blowfish: | `:blowfish:` | :shark: | `:shark:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :octopus: | `:octopus:` | :shell: | `:shell:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :coral: | `:coral:` | :jellyfish: | `:jellyfish:` | [top](#table-of-contents) |
+
+### Animal Bug
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :snail: | `:snail:` | :butterfly: | `:butterfly:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :bug: | `:bug:` | :ant: | `:ant:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :bee: | `:bee:` `:honeybee:` | :beetle: | `:beetle:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :lady_beetle: | `:lady_beetle:` | :cricket: | `:cricket:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :cockroach: | `:cockroach:` | :spider: | `:spider:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :spider_web: | `:spider_web:` | :scorpion: | `:scorpion:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :mosquito: | `:mosquito:` | :fly: | `:fly:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :worm: | `:worm:` | :microbe: | `:microbe:` | [top](#table-of-contents) |
+
+### Plant Flower
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :bouquet: | `:bouquet:` | :cherry_blossom: | `:cherry_blossom:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :white_flower: | `:white_flower:` | :lotus: | `:lotus:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :rosette: | `:rosette:` | :rose: | `:rose:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :wilted_flower: | `:wilted_flower:` | :hibiscus: | `:hibiscus:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :sunflower: | `:sunflower:` | :blossom: | `:blossom:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :tulip: | `:tulip:` | :hyacinth: | `:hyacinth:` | [top](#table-of-contents) |
+
+### Plant Other
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#animals--nature) | :seedling: | `:seedling:` | :potted_plant: | `:potted_plant:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :evergreen_tree: | `:evergreen_tree:` | :deciduous_tree: | `:deciduous_tree:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :palm_tree: | `:palm_tree:` | :cactus: | `:cactus:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :ear_of_rice: | `:ear_of_rice:` | :herb: | `:herb:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :shamrock: | `:shamrock:` | :four_leaf_clover: | `:four_leaf_clover:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :maple_leaf: | `:maple_leaf:` | :fallen_leaf: | `:fallen_leaf:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :leaves: | `:leaves:` | :empty_nest: | `:empty_nest:` | [top](#table-of-contents) |
+| [top](#animals--nature) | :nest_with_eggs: | `:nest_with_eggs:` | :mushroom: | `:mushroom:` | [top](#table-of-contents) |
+
+## Food & Drink
+
+- [Food Fruit](#food-fruit)
+- [Food Vegetable](#food-vegetable)
+- [Food Prepared](#food-prepared)
+- [Food Asian](#food-asian)
+- [Food Marine](#food-marine)
+- [Food Sweet](#food-sweet)
+- [Drink](#drink)
+- [Dishware](#dishware)
+
+### Food Fruit
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :grapes: | `:grapes:` | :melon: | `:melon:` | [top](#table-of-contents) |
+| [top](#food--drink) | :watermelon: | `:watermelon:` | :mandarin: | `:mandarin:` `:orange:` `:tangerine:` | [top](#table-of-contents) |
+| [top](#food--drink) | :lemon: | `:lemon:` | :banana: | `:banana:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pineapple: | `:pineapple:` | :mango: | `:mango:` | [top](#table-of-contents) |
+| [top](#food--drink) | :apple: | `:apple:` | :green_apple: | `:green_apple:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pear: | `:pear:` | :peach: | `:peach:` | [top](#table-of-contents) |
+| [top](#food--drink) | :cherries: | `:cherries:` | :strawberry: | `:strawberry:` | [top](#table-of-contents) |
+| [top](#food--drink) | :blueberries: | `:blueberries:` | :kiwi_fruit: | `:kiwi_fruit:` | [top](#table-of-contents) |
+| [top](#food--drink) | :tomato: | `:tomato:` | :olive: | `:olive:` | [top](#table-of-contents) |
+| [top](#food--drink) | :coconut: | `:coconut:` | | | [top](#table-of-contents) |
+
+### Food Vegetable
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :avocado: | `:avocado:` | :eggplant: | `:eggplant:` | [top](#table-of-contents) |
+| [top](#food--drink) | :potato: | `:potato:` | :carrot: | `:carrot:` | [top](#table-of-contents) |
+| [top](#food--drink) | :corn: | `:corn:` | :hot_pepper: | `:hot_pepper:` | [top](#table-of-contents) |
+| [top](#food--drink) | :bell_pepper: | `:bell_pepper:` | :cucumber: | `:cucumber:` | [top](#table-of-contents) |
+| [top](#food--drink) | :leafy_green: | `:leafy_green:` | :broccoli: | `:broccoli:` | [top](#table-of-contents) |
+| [top](#food--drink) | :garlic: | `:garlic:` | :onion: | `:onion:` | [top](#table-of-contents) |
+| [top](#food--drink) | :peanuts: | `:peanuts:` | :beans: | `:beans:` | [top](#table-of-contents) |
+| [top](#food--drink) | :chestnut: | `:chestnut:` | :ginger_root: | `:ginger_root:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pea_pod: | `:pea_pod:` | | | [top](#table-of-contents) |
+
+### Food Prepared
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :bread: | `:bread:` | :croissant: | `:croissant:` | [top](#table-of-contents) |
+| [top](#food--drink) | :baguette_bread: | `:baguette_bread:` | :flatbread: | `:flatbread:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pretzel: | `:pretzel:` | :bagel: | `:bagel:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pancakes: | `:pancakes:` | :waffle: | `:waffle:` | [top](#table-of-contents) |
+| [top](#food--drink) | :cheese: | `:cheese:` | :meat_on_bone: | `:meat_on_bone:` | [top](#table-of-contents) |
+| [top](#food--drink) | :poultry_leg: | `:poultry_leg:` | :cut_of_meat: | `:cut_of_meat:` | [top](#table-of-contents) |
+| [top](#food--drink) | :bacon: | `:bacon:` | :hamburger: | `:hamburger:` | [top](#table-of-contents) |
+| [top](#food--drink) | :fries: | `:fries:` | :pizza: | `:pizza:` | [top](#table-of-contents) |
+| [top](#food--drink) | :hotdog: | `:hotdog:` | :sandwich: | `:sandwich:` | [top](#table-of-contents) |
+| [top](#food--drink) | :taco: | `:taco:` | :burrito: | `:burrito:` | [top](#table-of-contents) |
+| [top](#food--drink) | :tamale: | `:tamale:` | :stuffed_flatbread: | `:stuffed_flatbread:` | [top](#table-of-contents) |
+| [top](#food--drink) | :falafel: | `:falafel:` | :egg: | `:egg:` | [top](#table-of-contents) |
+| [top](#food--drink) | :fried_egg: | `:fried_egg:` | :shallow_pan_of_food: | `:shallow_pan_of_food:` | [top](#table-of-contents) |
+| [top](#food--drink) | :stew: | `:stew:` | :fondue: | `:fondue:` | [top](#table-of-contents) |
+| [top](#food--drink) | :bowl_with_spoon: | `:bowl_with_spoon:` | :green_salad: | `:green_salad:` | [top](#table-of-contents) |
+| [top](#food--drink) | :popcorn: | `:popcorn:` | :butter: | `:butter:` | [top](#table-of-contents) |
+| [top](#food--drink) | :salt: | `:salt:` | :canned_food: | `:canned_food:` | [top](#table-of-contents) |
+
+### Food Asian
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :bento: | `:bento:` | :rice_cracker: | `:rice_cracker:` | [top](#table-of-contents) |
+| [top](#food--drink) | :rice_ball: | `:rice_ball:` | :rice: | `:rice:` | [top](#table-of-contents) |
+| [top](#food--drink) | :curry: | `:curry:` | :ramen: | `:ramen:` | [top](#table-of-contents) |
+| [top](#food--drink) | :spaghetti: | `:spaghetti:` | :sweet_potato: | `:sweet_potato:` | [top](#table-of-contents) |
+| [top](#food--drink) | :oden: | `:oden:` | :sushi: | `:sushi:` | [top](#table-of-contents) |
+| [top](#food--drink) | :fried_shrimp: | `:fried_shrimp:` | :fish_cake: | `:fish_cake:` | [top](#table-of-contents) |
+| [top](#food--drink) | :moon_cake: | `:moon_cake:` | :dango: | `:dango:` | [top](#table-of-contents) |
+| [top](#food--drink) | :dumpling: | `:dumpling:` | :fortune_cookie: | `:fortune_cookie:` | [top](#table-of-contents) |
+| [top](#food--drink) | :takeout_box: | `:takeout_box:` | | | [top](#table-of-contents) |
+
+### Food Marine
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :crab: | `:crab:` | :lobster: | `:lobster:` | [top](#table-of-contents) |
+| [top](#food--drink) | :shrimp: | `:shrimp:` | :squid: | `:squid:` | [top](#table-of-contents) |
+| [top](#food--drink) | :oyster: | `:oyster:` | | | [top](#table-of-contents) |
+
+### Food Sweet
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :icecream: | `:icecream:` | :shaved_ice: | `:shaved_ice:` | [top](#table-of-contents) |
+| [top](#food--drink) | :ice_cream: | `:ice_cream:` | :doughnut: | `:doughnut:` | [top](#table-of-contents) |
+| [top](#food--drink) | :cookie: | `:cookie:` | :birthday: | `:birthday:` | [top](#table-of-contents) |
+| [top](#food--drink) | :cake: | `:cake:` | :cupcake: | `:cupcake:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pie: | `:pie:` | :chocolate_bar: | `:chocolate_bar:` | [top](#table-of-contents) |
+| [top](#food--drink) | :candy: | `:candy:` | :lollipop: | `:lollipop:` | [top](#table-of-contents) |
+| [top](#food--drink) | :custard: | `:custard:` | :honey_pot: | `:honey_pot:` | [top](#table-of-contents) |
+
+### Drink
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :baby_bottle: | `:baby_bottle:` | :milk_glass: | `:milk_glass:` | [top](#table-of-contents) |
+| [top](#food--drink) | :coffee: | `:coffee:` | :teapot: | `:teapot:` | [top](#table-of-contents) |
+| [top](#food--drink) | :tea: | `:tea:` | :sake: | `:sake:` | [top](#table-of-contents) |
+| [top](#food--drink) | :champagne: | `:champagne:` | :wine_glass: | `:wine_glass:` | [top](#table-of-contents) |
+| [top](#food--drink) | :cocktail: | `:cocktail:` | :tropical_drink: | `:tropical_drink:` | [top](#table-of-contents) |
+| [top](#food--drink) | :beer: | `:beer:` | :beers: | `:beers:` | [top](#table-of-contents) |
+| [top](#food--drink) | :clinking_glasses: | `:clinking_glasses:` | :tumbler_glass: | `:tumbler_glass:` | [top](#table-of-contents) |
+| [top](#food--drink) | :pouring_liquid: | `:pouring_liquid:` | :cup_with_straw: | `:cup_with_straw:` | [top](#table-of-contents) |
+| [top](#food--drink) | :bubble_tea: | `:bubble_tea:` | :beverage_box: | `:beverage_box:` | [top](#table-of-contents) |
+| [top](#food--drink) | :mate: | `:mate:` | :ice_cube: | `:ice_cube:` | [top](#table-of-contents) |
+
+### Dishware
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#food--drink) | :chopsticks: | `:chopsticks:` | :plate_with_cutlery: | `:plate_with_cutlery:` | [top](#table-of-contents) |
+| [top](#food--drink) | :fork_and_knife: | `:fork_and_knife:` | :spoon: | `:spoon:` | [top](#table-of-contents) |
+| [top](#food--drink) | :hocho: | `:hocho:` `:knife:` | :jar: | `:jar:` | [top](#table-of-contents) |
+| [top](#food--drink) | :amphora: | `:amphora:` | | | [top](#table-of-contents) |
+
+## Travel & Places
+
+- [Place Map](#place-map)
+- [Place Geographic](#place-geographic)
+- [Place Building](#place-building)
+- [Place Religious](#place-religious)
+- [Place Other](#place-other)
+- [Transport Ground](#transport-ground)
+- [Transport Water](#transport-water)
+- [Transport Air](#transport-air)
+- [Hotel](#hotel)
+- [Time](#time)
+- [Sky & Weather](#sky--weather)
+
+### Place Map
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :earth_africa: | `:earth_africa:` | :earth_americas: | `:earth_americas:` | [top](#table-of-contents) |
+| [top](#travel--places) | :earth_asia: | `:earth_asia:` | :globe_with_meridians: | `:globe_with_meridians:` | [top](#table-of-contents) |
+| [top](#travel--places) | :world_map: | `:world_map:` | :japan: | `:japan:` | [top](#table-of-contents) |
+| [top](#travel--places) | :compass: | `:compass:` | | | [top](#table-of-contents) |
+
+### Place Geographic
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :mountain_snow: | `:mountain_snow:` | :mountain: | `:mountain:` | [top](#table-of-contents) |
+| [top](#travel--places) | :volcano: | `:volcano:` | :mount_fuji: | `:mount_fuji:` | [top](#table-of-contents) |
+| [top](#travel--places) | :camping: | `:camping:` | :beach_umbrella: | `:beach_umbrella:` | [top](#table-of-contents) |
+| [top](#travel--places) | :desert: | `:desert:` | :desert_island: | `:desert_island:` | [top](#table-of-contents) |
+| [top](#travel--places) | :national_park: | `:national_park:` | | | [top](#table-of-contents) |
+
+### Place Building
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :stadium: | `:stadium:` | :classical_building: | `:classical_building:` | [top](#table-of-contents) |
+| [top](#travel--places) | :building_construction: | `:building_construction:` | :bricks: | `:bricks:` | [top](#table-of-contents) |
+| [top](#travel--places) | :rock: | `:rock:` | :wood: | `:wood:` | [top](#table-of-contents) |
+| [top](#travel--places) | :hut: | `:hut:` | :houses: | `:houses:` | [top](#table-of-contents) |
+| [top](#travel--places) | :derelict_house: | `:derelict_house:` | :house: | `:house:` | [top](#table-of-contents) |
+| [top](#travel--places) | :house_with_garden: | `:house_with_garden:` | :office: | `:office:` | [top](#table-of-contents) |
+| [top](#travel--places) | :post_office: | `:post_office:` | :european_post_office: | `:european_post_office:` | [top](#table-of-contents) |
+| [top](#travel--places) | :hospital: | `:hospital:` | :bank: | `:bank:` | [top](#table-of-contents) |
+| [top](#travel--places) | :hotel: | `:hotel:` | :love_hotel: | `:love_hotel:` | [top](#table-of-contents) |
+| [top](#travel--places) | :convenience_store: | `:convenience_store:` | :school: | `:school:` | [top](#table-of-contents) |
+| [top](#travel--places) | :department_store: | `:department_store:` | :factory: | `:factory:` | [top](#table-of-contents) |
+| [top](#travel--places) | :japanese_castle: | `:japanese_castle:` | :european_castle: | `:european_castle:` | [top](#table-of-contents) |
+| [top](#travel--places) | :wedding: | `:wedding:` | :tokyo_tower: | `:tokyo_tower:` | [top](#table-of-contents) |
+| [top](#travel--places) | :statue_of_liberty: | `:statue_of_liberty:` | | | [top](#table-of-contents) |
+
+### Place Religious
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :church: | `:church:` | :mosque: | `:mosque:` | [top](#table-of-contents) |
+| [top](#travel--places) | :hindu_temple: | `:hindu_temple:` | :synagogue: | `:synagogue:` | [top](#table-of-contents) |
+| [top](#travel--places) | :shinto_shrine: | `:shinto_shrine:` | :kaaba: | `:kaaba:` | [top](#table-of-contents) |
+
+### Place Other
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :fountain: | `:fountain:` | :tent: | `:tent:` | [top](#table-of-contents) |
+| [top](#travel--places) | :foggy: | `:foggy:` | :night_with_stars: | `:night_with_stars:` | [top](#table-of-contents) |
+| [top](#travel--places) | :cityscape: | `:cityscape:` | :sunrise_over_mountains: | `:sunrise_over_mountains:` | [top](#table-of-contents) |
+| [top](#travel--places) | :sunrise: | `:sunrise:` | :city_sunset: | `:city_sunset:` | [top](#table-of-contents) |
+| [top](#travel--places) | :city_sunrise: | `:city_sunrise:` | :bridge_at_night: | `:bridge_at_night:` | [top](#table-of-contents) |
+| [top](#travel--places) | :hotsprings: | `:hotsprings:` | :carousel_horse: | `:carousel_horse:` | [top](#table-of-contents) |
+| [top](#travel--places) | :playground_slide: | `:playground_slide:` | :ferris_wheel: | `:ferris_wheel:` | [top](#table-of-contents) |
+| [top](#travel--places) | :roller_coaster: | `:roller_coaster:` | :barber: | `:barber:` | [top](#table-of-contents) |
+| [top](#travel--places) | :circus_tent: | `:circus_tent:` | | | [top](#table-of-contents) |
+
+### Transport Ground
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :steam_locomotive: | `:steam_locomotive:` | :railway_car: | `:railway_car:` | [top](#table-of-contents) |
+| [top](#travel--places) | :bullettrain_side: | `:bullettrain_side:` | :bullettrain_front: | `:bullettrain_front:` | [top](#table-of-contents) |
+| [top](#travel--places) | :train2: | `:train2:` | :metro: | `:metro:` | [top](#table-of-contents) |
+| [top](#travel--places) | :light_rail: | `:light_rail:` | :station: | `:station:` | [top](#table-of-contents) |
+| [top](#travel--places) | :tram: | `:tram:` | :monorail: | `:monorail:` | [top](#table-of-contents) |
+| [top](#travel--places) | :mountain_railway: | `:mountain_railway:` | :train: | `:train:` | [top](#table-of-contents) |
+| [top](#travel--places) | :bus: | `:bus:` | :oncoming_bus: | `:oncoming_bus:` | [top](#table-of-contents) |
+| [top](#travel--places) | :trolleybus: | `:trolleybus:` | :minibus: | `:minibus:` | [top](#table-of-contents) |
+| [top](#travel--places) | :ambulance: | `:ambulance:` | :fire_engine: | `:fire_engine:` | [top](#table-of-contents) |
+| [top](#travel--places) | :police_car: | `:police_car:` | :oncoming_police_car: | `:oncoming_police_car:` | [top](#table-of-contents) |
+| [top](#travel--places) | :taxi: | `:taxi:` | :oncoming_taxi: | `:oncoming_taxi:` | [top](#table-of-contents) |
+| [top](#travel--places) | :car: | `:car:` `:red_car:` | :oncoming_automobile: | `:oncoming_automobile:` | [top](#table-of-contents) |
+| [top](#travel--places) | :blue_car: | `:blue_car:` | :pickup_truck: | `:pickup_truck:` | [top](#table-of-contents) |
+| [top](#travel--places) | :truck: | `:truck:` | :articulated_lorry: | `:articulated_lorry:` | [top](#table-of-contents) |
+| [top](#travel--places) | :tractor: | `:tractor:` | :racing_car: | `:racing_car:` | [top](#table-of-contents) |
+| [top](#travel--places) | :motorcycle: | `:motorcycle:` | :motor_scooter: | `:motor_scooter:` | [top](#table-of-contents) |
+| [top](#travel--places) | :manual_wheelchair: | `:manual_wheelchair:` | :motorized_wheelchair: | `:motorized_wheelchair:` | [top](#table-of-contents) |
+| [top](#travel--places) | :auto_rickshaw: | `:auto_rickshaw:` | :bike: | `:bike:` | [top](#table-of-contents) |
+| [top](#travel--places) | :kick_scooter: | `:kick_scooter:` | :skateboard: | `:skateboard:` | [top](#table-of-contents) |
+| [top](#travel--places) | :roller_skate: | `:roller_skate:` | :busstop: | `:busstop:` | [top](#table-of-contents) |
+| [top](#travel--places) | :motorway: | `:motorway:` | :railway_track: | `:railway_track:` | [top](#table-of-contents) |
+| [top](#travel--places) | :oil_drum: | `:oil_drum:` | :fuelpump: | `:fuelpump:` | [top](#table-of-contents) |
+| [top](#travel--places) | :wheel: | `:wheel:` | :rotating_light: | `:rotating_light:` | [top](#table-of-contents) |
+| [top](#travel--places) | :traffic_light: | `:traffic_light:` | :vertical_traffic_light: | `:vertical_traffic_light:` | [top](#table-of-contents) |
+| [top](#travel--places) | :stop_sign: | `:stop_sign:` | :construction: | `:construction:` | [top](#table-of-contents) |
+
+### Transport Water
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :anchor: | `:anchor:` | :ring_buoy: | `:ring_buoy:` | [top](#table-of-contents) |
+| [top](#travel--places) | :boat: | `:boat:` `:sailboat:` | :canoe: | `:canoe:` | [top](#table-of-contents) |
+| [top](#travel--places) | :speedboat: | `:speedboat:` | :passenger_ship: | `:passenger_ship:` | [top](#table-of-contents) |
+| [top](#travel--places) | :ferry: | `:ferry:` | :motor_boat: | `:motor_boat:` | [top](#table-of-contents) |
+| [top](#travel--places) | :ship: | `:ship:` | | | [top](#table-of-contents) |
+
+### Transport Air
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :airplane: | `:airplane:` | :small_airplane: | `:small_airplane:` | [top](#table-of-contents) |
+| [top](#travel--places) | :flight_departure: | `:flight_departure:` | :flight_arrival: | `:flight_arrival:` | [top](#table-of-contents) |
+| [top](#travel--places) | :parachute: | `:parachute:` | :seat: | `:seat:` | [top](#table-of-contents) |
+| [top](#travel--places) | :helicopter: | `:helicopter:` | :suspension_railway: | `:suspension_railway:` | [top](#table-of-contents) |
+| [top](#travel--places) | :mountain_cableway: | `:mountain_cableway:` | :aerial_tramway: | `:aerial_tramway:` | [top](#table-of-contents) |
+| [top](#travel--places) | :artificial_satellite: | `:artificial_satellite:` | :rocket: | `:rocket:` | [top](#table-of-contents) |
+| [top](#travel--places) | :flying_saucer: | `:flying_saucer:` | | | [top](#table-of-contents) |
+
+### Hotel
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :bellhop_bell: | `:bellhop_bell:` | :luggage: | `:luggage:` | [top](#table-of-contents) |
+
+### Time
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :hourglass: | `:hourglass:` | :hourglass_flowing_sand: | `:hourglass_flowing_sand:` | [top](#table-of-contents) |
+| [top](#travel--places) | :watch: | `:watch:` | :alarm_clock: | `:alarm_clock:` | [top](#table-of-contents) |
+| [top](#travel--places) | :stopwatch: | `:stopwatch:` | :timer_clock: | `:timer_clock:` | [top](#table-of-contents) |
+| [top](#travel--places) | :mantelpiece_clock: | `:mantelpiece_clock:` | :clock12: | `:clock12:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock1230: | `:clock1230:` | :clock1: | `:clock1:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock130: | `:clock130:` | :clock2: | `:clock2:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock230: | `:clock230:` | :clock3: | `:clock3:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock330: | `:clock330:` | :clock4: | `:clock4:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock430: | `:clock430:` | :clock5: | `:clock5:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock530: | `:clock530:` | :clock6: | `:clock6:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock630: | `:clock630:` | :clock7: | `:clock7:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock730: | `:clock730:` | :clock8: | `:clock8:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock830: | `:clock830:` | :clock9: | `:clock9:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock930: | `:clock930:` | :clock10: | `:clock10:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock1030: | `:clock1030:` | :clock11: | `:clock11:` | [top](#table-of-contents) |
+| [top](#travel--places) | :clock1130: | `:clock1130:` | | | [top](#table-of-contents) |
+
+### Sky & Weather
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#travel--places) | :new_moon: | `:new_moon:` | :waxing_crescent_moon: | `:waxing_crescent_moon:` | [top](#table-of-contents) |
+| [top](#travel--places) | :first_quarter_moon: | `:first_quarter_moon:` | :moon: | `:moon:` `:waxing_gibbous_moon:` | [top](#table-of-contents) |
+| [top](#travel--places) | :full_moon: | `:full_moon:` | :waning_gibbous_moon: | `:waning_gibbous_moon:` | [top](#table-of-contents) |
+| [top](#travel--places) | :last_quarter_moon: | `:last_quarter_moon:` | :waning_crescent_moon: | `:waning_crescent_moon:` | [top](#table-of-contents) |
+| [top](#travel--places) | :crescent_moon: | `:crescent_moon:` | :new_moon_with_face: | `:new_moon_with_face:` | [top](#table-of-contents) |
+| [top](#travel--places) | :first_quarter_moon_with_face: | `:first_quarter_moon_with_face:` | :last_quarter_moon_with_face: | `:last_quarter_moon_with_face:` | [top](#table-of-contents) |
+| [top](#travel--places) | :thermometer: | `:thermometer:` | :sunny: | `:sunny:` | [top](#table-of-contents) |
+| [top](#travel--places) | :full_moon_with_face: | `:full_moon_with_face:` | :sun_with_face: | `:sun_with_face:` | [top](#table-of-contents) |
+| [top](#travel--places) | :ringed_planet: | `:ringed_planet:` | :star: | `:star:` | [top](#table-of-contents) |
+| [top](#travel--places) | :star2: | `:star2:` | :stars: | `:stars:` | [top](#table-of-contents) |
+| [top](#travel--places) | :milky_way: | `:milky_way:` | :cloud: | `:cloud:` | [top](#table-of-contents) |
+| [top](#travel--places) | :partly_sunny: | `:partly_sunny:` | :cloud_with_lightning_and_rain: | `:cloud_with_lightning_and_rain:` | [top](#table-of-contents) |
+| [top](#travel--places) | :sun_behind_small_cloud: | `:sun_behind_small_cloud:` | :sun_behind_large_cloud: | `:sun_behind_large_cloud:` | [top](#table-of-contents) |
+| [top](#travel--places) | :sun_behind_rain_cloud: | `:sun_behind_rain_cloud:` | :cloud_with_rain: | `:cloud_with_rain:` | [top](#table-of-contents) |
+| [top](#travel--places) | :cloud_with_snow: | `:cloud_with_snow:` | :cloud_with_lightning: | `:cloud_with_lightning:` | [top](#table-of-contents) |
+| [top](#travel--places) | :tornado: | `:tornado:` | :fog: | `:fog:` | [top](#table-of-contents) |
+| [top](#travel--places) | :wind_face: | `:wind_face:` | :cyclone: | `:cyclone:` | [top](#table-of-contents) |
+| [top](#travel--places) | :rainbow: | `:rainbow:` | :closed_umbrella: | `:closed_umbrella:` | [top](#table-of-contents) |
+| [top](#travel--places) | :open_umbrella: | `:open_umbrella:` | :umbrella: | `:umbrella:` | [top](#table-of-contents) |
+| [top](#travel--places) | :parasol_on_ground: | `:parasol_on_ground:` | :zap: | `:zap:` | [top](#table-of-contents) |
+| [top](#travel--places) | :snowflake: | `:snowflake:` | :snowman_with_snow: | `:snowman_with_snow:` | [top](#table-of-contents) |
+| [top](#travel--places) | :snowman: | `:snowman:` | :comet: | `:comet:` | [top](#table-of-contents) |
+| [top](#travel--places) | :fire: | `:fire:` | :droplet: | `:droplet:` | [top](#table-of-contents) |
+| [top](#travel--places) | :ocean: | `:ocean:` | | | [top](#table-of-contents) |
+
+## Activities
+
+- [Event](#event)
+- [Award Medal](#award-medal)
+- [Sport](#sport)
+- [Game](#game)
+- [Arts & Crafts](#arts--crafts)
+
+### Event
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#activities) | :jack_o_lantern: | `:jack_o_lantern:` | :christmas_tree: | `:christmas_tree:` | [top](#table-of-contents) |
+| [top](#activities) | :fireworks: | `:fireworks:` | :sparkler: | `:sparkler:` | [top](#table-of-contents) |
+| [top](#activities) | :firecracker: | `:firecracker:` | :sparkles: | `:sparkles:` | [top](#table-of-contents) |
+| [top](#activities) | :balloon: | `:balloon:` | :tada: | `:tada:` | [top](#table-of-contents) |
+| [top](#activities) | :confetti_ball: | `:confetti_ball:` | :tanabata_tree: | `:tanabata_tree:` | [top](#table-of-contents) |
+| [top](#activities) | :bamboo: | `:bamboo:` | :dolls: | `:dolls:` | [top](#table-of-contents) |
+| [top](#activities) | :flags: | `:flags:` | :wind_chime: | `:wind_chime:` | [top](#table-of-contents) |
+| [top](#activities) | :rice_scene: | `:rice_scene:` | :red_envelope: | `:red_envelope:` | [top](#table-of-contents) |
+| [top](#activities) | :ribbon: | `:ribbon:` | :gift: | `:gift:` | [top](#table-of-contents) |
+| [top](#activities) | :reminder_ribbon: | `:reminder_ribbon:` | :tickets: | `:tickets:` | [top](#table-of-contents) |
+| [top](#activities) | :ticket: | `:ticket:` | | | [top](#table-of-contents) |
+
+### Award Medal
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#activities) | :medal_military: | `:medal_military:` | :trophy: | `:trophy:` | [top](#table-of-contents) |
+| [top](#activities) | :medal_sports: | `:medal_sports:` | :1st_place_medal: | `:1st_place_medal:` | [top](#table-of-contents) |
+| [top](#activities) | :2nd_place_medal: | `:2nd_place_medal:` | :3rd_place_medal: | `:3rd_place_medal:` | [top](#table-of-contents) |
+
+### Sport
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#activities) | :soccer: | `:soccer:` | :baseball: | `:baseball:` | [top](#table-of-contents) |
+| [top](#activities) | :softball: | `:softball:` | :basketball: | `:basketball:` | [top](#table-of-contents) |
+| [top](#activities) | :volleyball: | `:volleyball:` | :football: | `:football:` | [top](#table-of-contents) |
+| [top](#activities) | :rugby_football: | `:rugby_football:` | :tennis: | `:tennis:` | [top](#table-of-contents) |
+| [top](#activities) | :flying_disc: | `:flying_disc:` | :bowling: | `:bowling:` | [top](#table-of-contents) |
+| [top](#activities) | :cricket_game: | `:cricket_game:` | :field_hockey: | `:field_hockey:` | [top](#table-of-contents) |
+| [top](#activities) | :ice_hockey: | `:ice_hockey:` | :lacrosse: | `:lacrosse:` | [top](#table-of-contents) |
+| [top](#activities) | :ping_pong: | `:ping_pong:` | :badminton: | `:badminton:` | [top](#table-of-contents) |
+| [top](#activities) | :boxing_glove: | `:boxing_glove:` | :martial_arts_uniform: | `:martial_arts_uniform:` | [top](#table-of-contents) |
+| [top](#activities) | :goal_net: | `:goal_net:` | :golf: | `:golf:` | [top](#table-of-contents) |
+| [top](#activities) | :ice_skate: | `:ice_skate:` | :fishing_pole_and_fish: | `:fishing_pole_and_fish:` | [top](#table-of-contents) |
+| [top](#activities) | :diving_mask: | `:diving_mask:` | :running_shirt_with_sash: | `:running_shirt_with_sash:` | [top](#table-of-contents) |
+| [top](#activities) | :ski: | `:ski:` | :sled: | `:sled:` | [top](#table-of-contents) |
+| [top](#activities) | :curling_stone: | `:curling_stone:` | | | [top](#table-of-contents) |
+
+### Game
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#activities) | :dart: | `:dart:` | :yo_yo: | `:yo_yo:` | [top](#table-of-contents) |
+| [top](#activities) | :kite: | `:kite:` | :gun: | `:gun:` | [top](#table-of-contents) |
+| [top](#activities) | :8ball: | `:8ball:` | :crystal_ball: | `:crystal_ball:` | [top](#table-of-contents) |
+| [top](#activities) | :magic_wand: | `:magic_wand:` | :video_game: | `:video_game:` | [top](#table-of-contents) |
+| [top](#activities) | :joystick: | `:joystick:` | :slot_machine: | `:slot_machine:` | [top](#table-of-contents) |
+| [top](#activities) | :game_die: | `:game_die:` | :jigsaw: | `:jigsaw:` | [top](#table-of-contents) |
+| [top](#activities) | :teddy_bear: | `:teddy_bear:` | :pinata: | `:pinata:` | [top](#table-of-contents) |
+| [top](#activities) | :mirror_ball: | `:mirror_ball:` | :nesting_dolls: | `:nesting_dolls:` | [top](#table-of-contents) |
+| [top](#activities) | :spades: | `:spades:` | :hearts: | `:hearts:` | [top](#table-of-contents) |
+| [top](#activities) | :diamonds: | `:diamonds:` | :clubs: | `:clubs:` | [top](#table-of-contents) |
+| [top](#activities) | :chess_pawn: | `:chess_pawn:` | :black_joker: | `:black_joker:` | [top](#table-of-contents) |
+| [top](#activities) | :mahjong: | `:mahjong:` | :flower_playing_cards: | `:flower_playing_cards:` | [top](#table-of-contents) |
+
+### Arts & Crafts
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#activities) | :performing_arts: | `:performing_arts:` | :framed_picture: | `:framed_picture:` | [top](#table-of-contents) |
+| [top](#activities) | :art: | `:art:` | :thread: | `:thread:` | [top](#table-of-contents) |
+| [top](#activities) | :sewing_needle: | `:sewing_needle:` | :yarn: | `:yarn:` | [top](#table-of-contents) |
+| [top](#activities) | :knot: | `:knot:` | | | [top](#table-of-contents) |
+
+## Objects
+
+- [Clothing](#clothing)
+- [Sound](#sound)
+- [Music](#music)
+- [Musical Instrument](#musical-instrument)
+- [Phone](#phone)
+- [Computer](#computer)
+- [Light & Video](#light--video)
+- [Book Paper](#book-paper)
+- [Money](#money)
+- [Mail](#mail)
+- [Writing](#writing)
+- [Office](#office)
+- [Lock](#lock)
+- [Tool](#tool)
+- [Science](#science)
+- [Medical](#medical)
+- [Household](#household)
+- [Other Object](#other-object)
+
+### Clothing
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :eyeglasses: | `:eyeglasses:` | :dark_sunglasses: | `:dark_sunglasses:` | [top](#table-of-contents) |
+| [top](#objects) | :goggles: | `:goggles:` | :lab_coat: | `:lab_coat:` | [top](#table-of-contents) |
+| [top](#objects) | :safety_vest: | `:safety_vest:` | :necktie: | `:necktie:` | [top](#table-of-contents) |
+| [top](#objects) | :shirt: | `:shirt:` `:tshirt:` | :jeans: | `:jeans:` | [top](#table-of-contents) |
+| [top](#objects) | :scarf: | `:scarf:` | :gloves: | `:gloves:` | [top](#table-of-contents) |
+| [top](#objects) | :coat: | `:coat:` | :socks: | `:socks:` | [top](#table-of-contents) |
+| [top](#objects) | :dress: | `:dress:` | :kimono: | `:kimono:` | [top](#table-of-contents) |
+| [top](#objects) | :sari: | `:sari:` | :one_piece_swimsuit: | `:one_piece_swimsuit:` | [top](#table-of-contents) |
+| [top](#objects) | :swim_brief: | `:swim_brief:` | :shorts: | `:shorts:` | [top](#table-of-contents) |
+| [top](#objects) | :bikini: | `:bikini:` | :womans_clothes: | `:womans_clothes:` | [top](#table-of-contents) |
+| [top](#objects) | :folding_hand_fan: | `:folding_hand_fan:` | :purse: | `:purse:` | [top](#table-of-contents) |
+| [top](#objects) | :handbag: | `:handbag:` | :pouch: | `:pouch:` | [top](#table-of-contents) |
+| [top](#objects) | :shopping: | `:shopping:` | :school_satchel: | `:school_satchel:` | [top](#table-of-contents) |
+| [top](#objects) | :thong_sandal: | `:thong_sandal:` | :mans_shoe: | `:mans_shoe:` `:shoe:` | [top](#table-of-contents) |
+| [top](#objects) | :athletic_shoe: | `:athletic_shoe:` | :hiking_boot: | `:hiking_boot:` | [top](#table-of-contents) |
+| [top](#objects) | :flat_shoe: | `:flat_shoe:` | :high_heel: | `:high_heel:` | [top](#table-of-contents) |
+| [top](#objects) | :sandal: | `:sandal:` | :ballet_shoes: | `:ballet_shoes:` | [top](#table-of-contents) |
+| [top](#objects) | :boot: | `:boot:` | :hair_pick: | `:hair_pick:` | [top](#table-of-contents) |
+| [top](#objects) | :crown: | `:crown:` | :womans_hat: | `:womans_hat:` | [top](#table-of-contents) |
+| [top](#objects) | :tophat: | `:tophat:` | :mortar_board: | `:mortar_board:` | [top](#table-of-contents) |
+| [top](#objects) | :billed_cap: | `:billed_cap:` | :military_helmet: | `:military_helmet:` | [top](#table-of-contents) |
+| [top](#objects) | :rescue_worker_helmet: | `:rescue_worker_helmet:` | :prayer_beads: | `:prayer_beads:` | [top](#table-of-contents) |
+| [top](#objects) | :lipstick: | `:lipstick:` | :ring: | `:ring:` | [top](#table-of-contents) |
+| [top](#objects) | :gem: | `:gem:` | | | [top](#table-of-contents) |
+
+### Sound
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :mute: | `:mute:` | :speaker: | `:speaker:` | [top](#table-of-contents) |
+| [top](#objects) | :sound: | `:sound:` | :loud_sound: | `:loud_sound:` | [top](#table-of-contents) |
+| [top](#objects) | :loudspeaker: | `:loudspeaker:` | :mega: | `:mega:` | [top](#table-of-contents) |
+| [top](#objects) | :postal_horn: | `:postal_horn:` | :bell: | `:bell:` | [top](#table-of-contents) |
+| [top](#objects) | :no_bell: | `:no_bell:` | | | [top](#table-of-contents) |
+
+### Music
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :musical_score: | `:musical_score:` | :musical_note: | `:musical_note:` | [top](#table-of-contents) |
+| [top](#objects) | :notes: | `:notes:` | :studio_microphone: | `:studio_microphone:` | [top](#table-of-contents) |
+| [top](#objects) | :level_slider: | `:level_slider:` | :control_knobs: | `:control_knobs:` | [top](#table-of-contents) |
+| [top](#objects) | :microphone: | `:microphone:` | :headphones: | `:headphones:` | [top](#table-of-contents) |
+| [top](#objects) | :radio: | `:radio:` | | | [top](#table-of-contents) |
+
+### Musical Instrument
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :saxophone: | `:saxophone:` | :accordion: | `:accordion:` | [top](#table-of-contents) |
+| [top](#objects) | :guitar: | `:guitar:` | :musical_keyboard: | `:musical_keyboard:` | [top](#table-of-contents) |
+| [top](#objects) | :trumpet: | `:trumpet:` | :violin: | `:violin:` | [top](#table-of-contents) |
+| [top](#objects) | :banjo: | `:banjo:` | :drum: | `:drum:` | [top](#table-of-contents) |
+| [top](#objects) | :long_drum: | `:long_drum:` | :maracas: | `:maracas:` | [top](#table-of-contents) |
+| [top](#objects) | :flute: | `:flute:` | | | [top](#table-of-contents) |
+
+### Phone
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :iphone: | `:iphone:` | :calling: | `:calling:` | [top](#table-of-contents) |
+| [top](#objects) | :phone: | `:phone:` `:telephone:` | :telephone_receiver: | `:telephone_receiver:` | [top](#table-of-contents) |
+| [top](#objects) | :pager: | `:pager:` | :fax: | `:fax:` | [top](#table-of-contents) |
+
+### Computer
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :battery: | `:battery:` | :low_battery: | `:low_battery:` | [top](#table-of-contents) |
+| [top](#objects) | :electric_plug: | `:electric_plug:` | :computer: | `:computer:` | [top](#table-of-contents) |
+| [top](#objects) | :desktop_computer: | `:desktop_computer:` | :printer: | `:printer:` | [top](#table-of-contents) |
+| [top](#objects) | :keyboard: | `:keyboard:` | :computer_mouse: | `:computer_mouse:` | [top](#table-of-contents) |
+| [top](#objects) | :trackball: | `:trackball:` | :minidisc: | `:minidisc:` | [top](#table-of-contents) |
+| [top](#objects) | :floppy_disk: | `:floppy_disk:` | :cd: | `:cd:` | [top](#table-of-contents) |
+| [top](#objects) | :dvd: | `:dvd:` | :abacus: | `:abacus:` | [top](#table-of-contents) |
+
+### Light & Video
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :movie_camera: | `:movie_camera:` | :film_strip: | `:film_strip:` | [top](#table-of-contents) |
+| [top](#objects) | :film_projector: | `:film_projector:` | :clapper: | `:clapper:` | [top](#table-of-contents) |
+| [top](#objects) | :tv: | `:tv:` | :camera: | `:camera:` | [top](#table-of-contents) |
+| [top](#objects) | :camera_flash: | `:camera_flash:` | :video_camera: | `:video_camera:` | [top](#table-of-contents) |
+| [top](#objects) | :vhs: | `:vhs:` | :mag: | `:mag:` | [top](#table-of-contents) |
+| [top](#objects) | :mag_right: | `:mag_right:` | :candle: | `:candle:` | [top](#table-of-contents) |
+| [top](#objects) | :bulb: | `:bulb:` | :flashlight: | `:flashlight:` | [top](#table-of-contents) |
+| [top](#objects) | :izakaya_lantern: | `:izakaya_lantern:` `:lantern:` | :diya_lamp: | `:diya_lamp:` | [top](#table-of-contents) |
+
+### Book Paper
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :notebook_with_decorative_cover: | `:notebook_with_decorative_cover:` | :closed_book: | `:closed_book:` | [top](#table-of-contents) |
+| [top](#objects) | :book: | `:book:` `:open_book:` | :green_book: | `:green_book:` | [top](#table-of-contents) |
+| [top](#objects) | :blue_book: | `:blue_book:` | :orange_book: | `:orange_book:` | [top](#table-of-contents) |
+| [top](#objects) | :books: | `:books:` | :notebook: | `:notebook:` | [top](#table-of-contents) |
+| [top](#objects) | :ledger: | `:ledger:` | :page_with_curl: | `:page_with_curl:` | [top](#table-of-contents) |
+| [top](#objects) | :scroll: | `:scroll:` | :page_facing_up: | `:page_facing_up:` | [top](#table-of-contents) |
+| [top](#objects) | :newspaper: | `:newspaper:` | :newspaper_roll: | `:newspaper_roll:` | [top](#table-of-contents) |
+| [top](#objects) | :bookmark_tabs: | `:bookmark_tabs:` | :bookmark: | `:bookmark:` | [top](#table-of-contents) |
+| [top](#objects) | :label: | `:label:` | | | [top](#table-of-contents) |
+
+### Money
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :moneybag: | `:moneybag:` | :coin: | `:coin:` | [top](#table-of-contents) |
+| [top](#objects) | :yen: | `:yen:` | :dollar: | `:dollar:` | [top](#table-of-contents) |
+| [top](#objects) | :euro: | `:euro:` | :pound: | `:pound:` | [top](#table-of-contents) |
+| [top](#objects) | :money_with_wings: | `:money_with_wings:` | :credit_card: | `:credit_card:` | [top](#table-of-contents) |
+| [top](#objects) | :receipt: | `:receipt:` | :chart: | `:chart:` | [top](#table-of-contents) |
+
+### Mail
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :envelope: | `:envelope:` | :e-mail: | `:e-mail:` `:email:` | [top](#table-of-contents) |
+| [top](#objects) | :incoming_envelope: | `:incoming_envelope:` | :envelope_with_arrow: | `:envelope_with_arrow:` | [top](#table-of-contents) |
+| [top](#objects) | :outbox_tray: | `:outbox_tray:` | :inbox_tray: | `:inbox_tray:` | [top](#table-of-contents) |
+| [top](#objects) | :package: | `:package:` | :mailbox: | `:mailbox:` | [top](#table-of-contents) |
+| [top](#objects) | :mailbox_closed: | `:mailbox_closed:` | :mailbox_with_mail: | `:mailbox_with_mail:` | [top](#table-of-contents) |
+| [top](#objects) | :mailbox_with_no_mail: | `:mailbox_with_no_mail:` | :postbox: | `:postbox:` | [top](#table-of-contents) |
+| [top](#objects) | :ballot_box: | `:ballot_box:` | | | [top](#table-of-contents) |
+
+### Writing
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :pencil2: | `:pencil2:` | :black_nib: | `:black_nib:` | [top](#table-of-contents) |
+| [top](#objects) | :fountain_pen: | `:fountain_pen:` | :pen: | `:pen:` | [top](#table-of-contents) |
+| [top](#objects) | :paintbrush: | `:paintbrush:` | :crayon: | `:crayon:` | [top](#table-of-contents) |
+| [top](#objects) | :memo: | `:memo:` `:pencil:` | | | [top](#table-of-contents) |
+
+### Office
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :briefcase: | `:briefcase:` | :file_folder: | `:file_folder:` | [top](#table-of-contents) |
+| [top](#objects) | :open_file_folder: | `:open_file_folder:` | :card_index_dividers: | `:card_index_dividers:` | [top](#table-of-contents) |
+| [top](#objects) | :date: | `:date:` | :calendar: | `:calendar:` | [top](#table-of-contents) |
+| [top](#objects) | :spiral_notepad: | `:spiral_notepad:` | :spiral_calendar: | `:spiral_calendar:` | [top](#table-of-contents) |
+| [top](#objects) | :card_index: | `:card_index:` | :chart_with_upwards_trend: | `:chart_with_upwards_trend:` | [top](#table-of-contents) |
+| [top](#objects) | :chart_with_downwards_trend: | `:chart_with_downwards_trend:` | :bar_chart: | `:bar_chart:` | [top](#table-of-contents) |
+| [top](#objects) | :clipboard: | `:clipboard:` | :pushpin: | `:pushpin:` | [top](#table-of-contents) |
+| [top](#objects) | :round_pushpin: | `:round_pushpin:` | :paperclip: | `:paperclip:` | [top](#table-of-contents) |
+| [top](#objects) | :paperclips: | `:paperclips:` | :straight_ruler: | `:straight_ruler:` | [top](#table-of-contents) |
+| [top](#objects) | :triangular_ruler: | `:triangular_ruler:` | :scissors: | `:scissors:` | [top](#table-of-contents) |
+| [top](#objects) | :card_file_box: | `:card_file_box:` | :file_cabinet: | `:file_cabinet:` | [top](#table-of-contents) |
+| [top](#objects) | :wastebasket: | `:wastebasket:` | | | [top](#table-of-contents) |
+
+### Lock
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :lock: | `:lock:` | :unlock: | `:unlock:` | [top](#table-of-contents) |
+| [top](#objects) | :lock_with_ink_pen: | `:lock_with_ink_pen:` | :closed_lock_with_key: | `:closed_lock_with_key:` | [top](#table-of-contents) |
+| [top](#objects) | :key: | `:key:` | :old_key: | `:old_key:` | [top](#table-of-contents) |
+
+### Tool
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :hammer: | `:hammer:` | :axe: | `:axe:` | [top](#table-of-contents) |
+| [top](#objects) | :pick: | `:pick:` | :hammer_and_pick: | `:hammer_and_pick:` | [top](#table-of-contents) |
+| [top](#objects) | :hammer_and_wrench: | `:hammer_and_wrench:` | :dagger: | `:dagger:` | [top](#table-of-contents) |
+| [top](#objects) | :crossed_swords: | `:crossed_swords:` | :bomb: | `:bomb:` | [top](#table-of-contents) |
+| [top](#objects) | :boomerang: | `:boomerang:` | :bow_and_arrow: | `:bow_and_arrow:` | [top](#table-of-contents) |
+| [top](#objects) | :shield: | `:shield:` | :carpentry_saw: | `:carpentry_saw:` | [top](#table-of-contents) |
+| [top](#objects) | :wrench: | `:wrench:` | :screwdriver: | `:screwdriver:` | [top](#table-of-contents) |
+| [top](#objects) | :nut_and_bolt: | `:nut_and_bolt:` | :gear: | `:gear:` | [top](#table-of-contents) |
+| [top](#objects) | :clamp: | `:clamp:` | :balance_scale: | `:balance_scale:` | [top](#table-of-contents) |
+| [top](#objects) | :probing_cane: | `:probing_cane:` | :link: | `:link:` | [top](#table-of-contents) |
+| [top](#objects) | :chains: | `:chains:` | :hook: | `:hook:` | [top](#table-of-contents) |
+| [top](#objects) | :toolbox: | `:toolbox:` | :magnet: | `:magnet:` | [top](#table-of-contents) |
+| [top](#objects) | :ladder: | `:ladder:` | | | [top](#table-of-contents) |
+
+### Science
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :alembic: | `:alembic:` | :test_tube: | `:test_tube:` | [top](#table-of-contents) |
+| [top](#objects) | :petri_dish: | `:petri_dish:` | :dna: | `:dna:` | [top](#table-of-contents) |
+| [top](#objects) | :microscope: | `:microscope:` | :telescope: | `:telescope:` | [top](#table-of-contents) |
+| [top](#objects) | :satellite: | `:satellite:` | | | [top](#table-of-contents) |
+
+### Medical
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :syringe: | `:syringe:` | :drop_of_blood: | `:drop_of_blood:` | [top](#table-of-contents) |
+| [top](#objects) | :pill: | `:pill:` | :adhesive_bandage: | `:adhesive_bandage:` | [top](#table-of-contents) |
+| [top](#objects) | :crutch: | `:crutch:` | :stethoscope: | `:stethoscope:` | [top](#table-of-contents) |
+| [top](#objects) | :x_ray: | `:x_ray:` | | | [top](#table-of-contents) |
+
+### Household
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :door: | `:door:` | :elevator: | `:elevator:` | [top](#table-of-contents) |
+| [top](#objects) | :mirror: | `:mirror:` | :window: | `:window:` | [top](#table-of-contents) |
+| [top](#objects) | :bed: | `:bed:` | :couch_and_lamp: | `:couch_and_lamp:` | [top](#table-of-contents) |
+| [top](#objects) | :chair: | `:chair:` | :toilet: | `:toilet:` | [top](#table-of-contents) |
+| [top](#objects) | :plunger: | `:plunger:` | :shower: | `:shower:` | [top](#table-of-contents) |
+| [top](#objects) | :bathtub: | `:bathtub:` | :mouse_trap: | `:mouse_trap:` | [top](#table-of-contents) |
+| [top](#objects) | :razor: | `:razor:` | :lotion_bottle: | `:lotion_bottle:` | [top](#table-of-contents) |
+| [top](#objects) | :safety_pin: | `:safety_pin:` | :broom: | `:broom:` | [top](#table-of-contents) |
+| [top](#objects) | :basket: | `:basket:` | :roll_of_paper: | `:roll_of_paper:` | [top](#table-of-contents) |
+| [top](#objects) | :bucket: | `:bucket:` | :soap: | `:soap:` | [top](#table-of-contents) |
+| [top](#objects) | :bubbles: | `:bubbles:` | :toothbrush: | `:toothbrush:` | [top](#table-of-contents) |
+| [top](#objects) | :sponge: | `:sponge:` | :fire_extinguisher: | `:fire_extinguisher:` | [top](#table-of-contents) |
+| [top](#objects) | :shopping_cart: | `:shopping_cart:` | | | [top](#table-of-contents) |
+
+### Other Object
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#objects) | :smoking: | `:smoking:` | :coffin: | `:coffin:` | [top](#table-of-contents) |
+| [top](#objects) | :headstone: | `:headstone:` | :funeral_urn: | `:funeral_urn:` | [top](#table-of-contents) |
+| [top](#objects) | :nazar_amulet: | `:nazar_amulet:` | :hamsa: | `:hamsa:` | [top](#table-of-contents) |
+| [top](#objects) | :moyai: | `:moyai:` | :placard: | `:placard:` | [top](#table-of-contents) |
+| [top](#objects) | :identification_card: | `:identification_card:` | | | [top](#table-of-contents) |
+
+## Symbols
+
+- [Transport Sign](#transport-sign)
+- [Warning](#warning)
+- [Arrow](#arrow)
+- [Religion](#religion)
+- [Zodiac](#zodiac)
+- [Av Symbol](#av-symbol)
+- [Gender](#gender)
+- [Math](#math)
+- [Punctuation](#punctuation)
+- [Currency](#currency)
+- [Other Symbol](#other-symbol)
+- [Keycap](#keycap)
+- [Alphanum](#alphanum)
+- [Geometric](#geometric)
+
+### Transport Sign
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :atm: | `:atm:` | :put_litter_in_its_place: | `:put_litter_in_its_place:` | [top](#table-of-contents) |
+| [top](#symbols) | :potable_water: | `:potable_water:` | :wheelchair: | `:wheelchair:` | [top](#table-of-contents) |
+| [top](#symbols) | :mens: | `:mens:` | :womens: | `:womens:` | [top](#table-of-contents) |
+| [top](#symbols) | :restroom: | `:restroom:` | :baby_symbol: | `:baby_symbol:` | [top](#table-of-contents) |
+| [top](#symbols) | :wc: | `:wc:` | :passport_control: | `:passport_control:` | [top](#table-of-contents) |
+| [top](#symbols) | :customs: | `:customs:` | :baggage_claim: | `:baggage_claim:` | [top](#table-of-contents) |
+| [top](#symbols) | :left_luggage: | `:left_luggage:` | | | [top](#table-of-contents) |
+
+### Warning
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :warning: | `:warning:` | :children_crossing: | `:children_crossing:` | [top](#table-of-contents) |
+| [top](#symbols) | :no_entry: | `:no_entry:` | :no_entry_sign: | `:no_entry_sign:` | [top](#table-of-contents) |
+| [top](#symbols) | :no_bicycles: | `:no_bicycles:` | :no_smoking: | `:no_smoking:` | [top](#table-of-contents) |
+| [top](#symbols) | :do_not_litter: | `:do_not_litter:` | :non-potable_water: | `:non-potable_water:` | [top](#table-of-contents) |
+| [top](#symbols) | :no_pedestrians: | `:no_pedestrians:` | :no_mobile_phones: | `:no_mobile_phones:` | [top](#table-of-contents) |
+| [top](#symbols) | :underage: | `:underage:` | :radioactive: | `:radioactive:` | [top](#table-of-contents) |
+| [top](#symbols) | :biohazard: | `:biohazard:` | | | [top](#table-of-contents) |
+
+### Arrow
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :arrow_up: | `:arrow_up:` | :arrow_upper_right: | `:arrow_upper_right:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_right: | `:arrow_right:` | :arrow_lower_right: | `:arrow_lower_right:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_down: | `:arrow_down:` | :arrow_lower_left: | `:arrow_lower_left:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_left: | `:arrow_left:` | :arrow_upper_left: | `:arrow_upper_left:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_up_down: | `:arrow_up_down:` | :left_right_arrow: | `:left_right_arrow:` | [top](#table-of-contents) |
+| [top](#symbols) | :leftwards_arrow_with_hook: | `:leftwards_arrow_with_hook:` | :arrow_right_hook: | `:arrow_right_hook:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_heading_up: | `:arrow_heading_up:` | :arrow_heading_down: | `:arrow_heading_down:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrows_clockwise: | `:arrows_clockwise:` | :arrows_counterclockwise: | `:arrows_counterclockwise:` | [top](#table-of-contents) |
+| [top](#symbols) | :back: | `:back:` | :end: | `:end:` | [top](#table-of-contents) |
+| [top](#symbols) | :on: | `:on:` | :soon: | `:soon:` | [top](#table-of-contents) |
+| [top](#symbols) | :top: | `:top:` | | | [top](#table-of-contents) |
+
+### Religion
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :place_of_worship: | `:place_of_worship:` | :atom_symbol: | `:atom_symbol:` | [top](#table-of-contents) |
+| [top](#symbols) | :om: | `:om:` | :star_of_david: | `:star_of_david:` | [top](#table-of-contents) |
+| [top](#symbols) | :wheel_of_dharma: | `:wheel_of_dharma:` | :yin_yang: | `:yin_yang:` | [top](#table-of-contents) |
+| [top](#symbols) | :latin_cross: | `:latin_cross:` | :orthodox_cross: | `:orthodox_cross:` | [top](#table-of-contents) |
+| [top](#symbols) | :star_and_crescent: | `:star_and_crescent:` | :peace_symbol: | `:peace_symbol:` | [top](#table-of-contents) |
+| [top](#symbols) | :menorah: | `:menorah:` | :six_pointed_star: | `:six_pointed_star:` | [top](#table-of-contents) |
+| [top](#symbols) | :khanda: | `:khanda:` | | | [top](#table-of-contents) |
+
+### Zodiac
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :aries: | `:aries:` | :taurus: | `:taurus:` | [top](#table-of-contents) |
+| [top](#symbols) | :gemini: | `:gemini:` | :cancer: | `:cancer:` | [top](#table-of-contents) |
+| [top](#symbols) | :leo: | `:leo:` | :virgo: | `:virgo:` | [top](#table-of-contents) |
+| [top](#symbols) | :libra: | `:libra:` | :scorpius: | `:scorpius:` | [top](#table-of-contents) |
+| [top](#symbols) | :sagittarius: | `:sagittarius:` | :capricorn: | `:capricorn:` | [top](#table-of-contents) |
+| [top](#symbols) | :aquarius: | `:aquarius:` | :pisces: | `:pisces:` | [top](#table-of-contents) |
+| [top](#symbols) | :ophiuchus: | `:ophiuchus:` | | | [top](#table-of-contents) |
+
+### Av Symbol
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :twisted_rightwards_arrows: | `:twisted_rightwards_arrows:` | :repeat: | `:repeat:` | [top](#table-of-contents) |
+| [top](#symbols) | :repeat_one: | `:repeat_one:` | :arrow_forward: | `:arrow_forward:` | [top](#table-of-contents) |
+| [top](#symbols) | :fast_forward: | `:fast_forward:` | :next_track_button: | `:next_track_button:` | [top](#table-of-contents) |
+| [top](#symbols) | :play_or_pause_button: | `:play_or_pause_button:` | :arrow_backward: | `:arrow_backward:` | [top](#table-of-contents) |
+| [top](#symbols) | :rewind: | `:rewind:` | :previous_track_button: | `:previous_track_button:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_up_small: | `:arrow_up_small:` | :arrow_double_up: | `:arrow_double_up:` | [top](#table-of-contents) |
+| [top](#symbols) | :arrow_down_small: | `:arrow_down_small:` | :arrow_double_down: | `:arrow_double_down:` | [top](#table-of-contents) |
+| [top](#symbols) | :pause_button: | `:pause_button:` | :stop_button: | `:stop_button:` | [top](#table-of-contents) |
+| [top](#symbols) | :record_button: | `:record_button:` | :eject_button: | `:eject_button:` | [top](#table-of-contents) |
+| [top](#symbols) | :cinema: | `:cinema:` | :low_brightness: | `:low_brightness:` | [top](#table-of-contents) |
+| [top](#symbols) | :high_brightness: | `:high_brightness:` | :signal_strength: | `:signal_strength:` | [top](#table-of-contents) |
+| [top](#symbols) | :wireless: | `:wireless:` | :vibration_mode: | `:vibration_mode:` | [top](#table-of-contents) |
+| [top](#symbols) | :mobile_phone_off: | `:mobile_phone_off:` | | | [top](#table-of-contents) |
+
+### Gender
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :female_sign: | `:female_sign:` | :male_sign: | `:male_sign:` | [top](#table-of-contents) |
+| [top](#symbols) | :transgender_symbol: | `:transgender_symbol:` | | | [top](#table-of-contents) |
+
+### Math
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :heavy_multiplication_x: | `:heavy_multiplication_x:` | :heavy_plus_sign: | `:heavy_plus_sign:` | [top](#table-of-contents) |
+| [top](#symbols) | :heavy_minus_sign: | `:heavy_minus_sign:` | :heavy_division_sign: | `:heavy_division_sign:` | [top](#table-of-contents) |
+| [top](#symbols) | :heavy_equals_sign: | `:heavy_equals_sign:` | :infinity: | `:infinity:` | [top](#table-of-contents) |
+
+### Punctuation
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :bangbang: | `:bangbang:` | :interrobang: | `:interrobang:` | [top](#table-of-contents) |
+| [top](#symbols) | :question: | `:question:` | :grey_question: | `:grey_question:` | [top](#table-of-contents) |
+| [top](#symbols) | :grey_exclamation: | `:grey_exclamation:` | :exclamation: | `:exclamation:` `:heavy_exclamation_mark:` | [top](#table-of-contents) |
+| [top](#symbols) | :wavy_dash: | `:wavy_dash:` | | | [top](#table-of-contents) |
+
+### Currency
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :currency_exchange: | `:currency_exchange:` | :heavy_dollar_sign: | `:heavy_dollar_sign:` | [top](#table-of-contents) |
+
+### Other Symbol
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :medical_symbol: | `:medical_symbol:` | :recycle: | `:recycle:` | [top](#table-of-contents) |
+| [top](#symbols) | :fleur_de_lis: | `:fleur_de_lis:` | :trident: | `:trident:` | [top](#table-of-contents) |
+| [top](#symbols) | :name_badge: | `:name_badge:` | :beginner: | `:beginner:` | [top](#table-of-contents) |
+| [top](#symbols) | :o: | `:o:` | :white_check_mark: | `:white_check_mark:` | [top](#table-of-contents) |
+| [top](#symbols) | :ballot_box_with_check: | `:ballot_box_with_check:` | :heavy_check_mark: | `:heavy_check_mark:` | [top](#table-of-contents) |
+| [top](#symbols) | :x: | `:x:` | :negative_squared_cross_mark: | `:negative_squared_cross_mark:` | [top](#table-of-contents) |
+| [top](#symbols) | :curly_loop: | `:curly_loop:` | :loop: | `:loop:` | [top](#table-of-contents) |
+| [top](#symbols) | :part_alternation_mark: | `:part_alternation_mark:` | :eight_spoked_asterisk: | `:eight_spoked_asterisk:` | [top](#table-of-contents) |
+| [top](#symbols) | :eight_pointed_black_star: | `:eight_pointed_black_star:` | :sparkle: | `:sparkle:` | [top](#table-of-contents) |
+| [top](#symbols) | :copyright: | `:copyright:` | :registered: | `:registered:` | [top](#table-of-contents) |
+| [top](#symbols) | :tm: | `:tm:` | | | [top](#table-of-contents) |
+
+### Keycap
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :hash: | `:hash:` | :asterisk: | `:asterisk:` | [top](#table-of-contents) |
+| [top](#symbols) | :zero: | `:zero:` | :one: | `:one:` | [top](#table-of-contents) |
+| [top](#symbols) | :two: | `:two:` | :three: | `:three:` | [top](#table-of-contents) |
+| [top](#symbols) | :four: | `:four:` | :five: | `:five:` | [top](#table-of-contents) |
+| [top](#symbols) | :six: | `:six:` | :seven: | `:seven:` | [top](#table-of-contents) |
+| [top](#symbols) | :eight: | `:eight:` | :nine: | `:nine:` | [top](#table-of-contents) |
+| [top](#symbols) | :keycap_ten: | `:keycap_ten:` | | | [top](#table-of-contents) |
+
+### Alphanum
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :capital_abcd: | `:capital_abcd:` | :abcd: | `:abcd:` | [top](#table-of-contents) |
+| [top](#symbols) | :1234: | `:1234:` | :symbols: | `:symbols:` | [top](#table-of-contents) |
+| [top](#symbols) | :abc: | `:abc:` | :a: | `:a:` | [top](#table-of-contents) |
+| [top](#symbols) | :ab: | `:ab:` | :b: | `:b:` | [top](#table-of-contents) |
+| [top](#symbols) | :cl: | `:cl:` | :cool: | `:cool:` | [top](#table-of-contents) |
+| [top](#symbols) | :free: | `:free:` | :information_source: | `:information_source:` | [top](#table-of-contents) |
+| [top](#symbols) | :id: | `:id:` | :m: | `:m:` | [top](#table-of-contents) |
+| [top](#symbols) | :new: | `:new:` | :ng: | `:ng:` | [top](#table-of-contents) |
+| [top](#symbols) | :o2: | `:o2:` | :ok: | `:ok:` | [top](#table-of-contents) |
+| [top](#symbols) | :parking: | `:parking:` | :sos: | `:sos:` | [top](#table-of-contents) |
+| [top](#symbols) | :up: | `:up:` | :vs: | `:vs:` | [top](#table-of-contents) |
+| [top](#symbols) | :koko: | `:koko:` | :sa: | `:sa:` | [top](#table-of-contents) |
+| [top](#symbols) | :u6708: | `:u6708:` | :u6709: | `:u6709:` | [top](#table-of-contents) |
+| [top](#symbols) | :u6307: | `:u6307:` | :ideograph_advantage: | `:ideograph_advantage:` | [top](#table-of-contents) |
+| [top](#symbols) | :u5272: | `:u5272:` | :u7121: | `:u7121:` | [top](#table-of-contents) |
+| [top](#symbols) | :u7981: | `:u7981:` | :accept: | `:accept:` | [top](#table-of-contents) |
+| [top](#symbols) | :u7533: | `:u7533:` | :u5408: | `:u5408:` | [top](#table-of-contents) |
+| [top](#symbols) | :u7a7a: | `:u7a7a:` | :congratulations: | `:congratulations:` | [top](#table-of-contents) |
+| [top](#symbols) | :secret: | `:secret:` | :u55b6: | `:u55b6:` | [top](#table-of-contents) |
+| [top](#symbols) | :u6e80: | `:u6e80:` | | | [top](#table-of-contents) |
+
+### Geometric
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#symbols) | :red_circle: | `:red_circle:` | :orange_circle: | `:orange_circle:` | [top](#table-of-contents) |
+| [top](#symbols) | :yellow_circle: | `:yellow_circle:` | :green_circle: | `:green_circle:` | [top](#table-of-contents) |
+| [top](#symbols) | :large_blue_circle: | `:large_blue_circle:` | :purple_circle: | `:purple_circle:` | [top](#table-of-contents) |
+| [top](#symbols) | :brown_circle: | `:brown_circle:` | :black_circle: | `:black_circle:` | [top](#table-of-contents) |
+| [top](#symbols) | :white_circle: | `:white_circle:` | :red_square: | `:red_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :orange_square: | `:orange_square:` | :yellow_square: | `:yellow_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :green_square: | `:green_square:` | :blue_square: | `:blue_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :purple_square: | `:purple_square:` | :brown_square: | `:brown_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :black_large_square: | `:black_large_square:` | :white_large_square: | `:white_large_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :black_medium_square: | `:black_medium_square:` | :white_medium_square: | `:white_medium_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :black_medium_small_square: | `:black_medium_small_square:` | :white_medium_small_square: | `:white_medium_small_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :black_small_square: | `:black_small_square:` | :white_small_square: | `:white_small_square:` | [top](#table-of-contents) |
+| [top](#symbols) | :large_orange_diamond: | `:large_orange_diamond:` | :large_blue_diamond: | `:large_blue_diamond:` | [top](#table-of-contents) |
+| [top](#symbols) | :small_orange_diamond: | `:small_orange_diamond:` | :small_blue_diamond: | `:small_blue_diamond:` | [top](#table-of-contents) |
+| [top](#symbols) | :small_red_triangle: | `:small_red_triangle:` | :small_red_triangle_down: | `:small_red_triangle_down:` | [top](#table-of-contents) |
+| [top](#symbols) | :diamond_shape_with_a_dot_inside: | `:diamond_shape_with_a_dot_inside:` | :radio_button: | `:radio_button:` | [top](#table-of-contents) |
+| [top](#symbols) | :white_square_button: | `:white_square_button:` | :black_square_button: | `:black_square_button:` | [top](#table-of-contents) |
+
+## Flags
+
+- [Flag](#flag)
+- [Country Flag](#country-flag)
+- [Subdivision Flag](#subdivision-flag)
+
+### Flag
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#flags) | :checkered_flag: | `:checkered_flag:` | :triangular_flag_on_post: | `:triangular_flag_on_post:` | [top](#table-of-contents) |
+| [top](#flags) | :crossed_flags: | `:crossed_flags:` | :black_flag: | `:black_flag:` | [top](#table-of-contents) |
+| [top](#flags) | :white_flag: | `:white_flag:` | :rainbow_flag: | `:rainbow_flag:` | [top](#table-of-contents) |
+| [top](#flags) | :transgender_flag: | `:transgender_flag:` | :pirate_flag: | `:pirate_flag:` | [top](#table-of-contents) |
+
+### Country Flag
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#flags) | :ascension_island: | `:ascension_island:` | :andorra: | `:andorra:` | [top](#table-of-contents) |
+| [top](#flags) | :united_arab_emirates: | `:united_arab_emirates:` | :afghanistan: | `:afghanistan:` | [top](#table-of-contents) |
+| [top](#flags) | :antigua_barbuda: | `:antigua_barbuda:` | :anguilla: | `:anguilla:` | [top](#table-of-contents) |
+| [top](#flags) | :albania: | `:albania:` | :armenia: | `:armenia:` | [top](#table-of-contents) |
+| [top](#flags) | :angola: | `:angola:` | :antarctica: | `:antarctica:` | [top](#table-of-contents) |
+| [top](#flags) | :argentina: | `:argentina:` | :american_samoa: | `:american_samoa:` | [top](#table-of-contents) |
+| [top](#flags) | :austria: | `:austria:` | :australia: | `:australia:` | [top](#table-of-contents) |
+| [top](#flags) | :aruba: | `:aruba:` | :aland_islands: | `:aland_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :azerbaijan: | `:azerbaijan:` | :bosnia_herzegovina: | `:bosnia_herzegovina:` | [top](#table-of-contents) |
+| [top](#flags) | :barbados: | `:barbados:` | :bangladesh: | `:bangladesh:` | [top](#table-of-contents) |
+| [top](#flags) | :belgium: | `:belgium:` | :burkina_faso: | `:burkina_faso:` | [top](#table-of-contents) |
+| [top](#flags) | :bulgaria: | `:bulgaria:` | :bahrain: | `:bahrain:` | [top](#table-of-contents) |
+| [top](#flags) | :burundi: | `:burundi:` | :benin: | `:benin:` | [top](#table-of-contents) |
+| [top](#flags) | :st_barthelemy: | `:st_barthelemy:` | :bermuda: | `:bermuda:` | [top](#table-of-contents) |
+| [top](#flags) | :brunei: | `:brunei:` | :bolivia: | `:bolivia:` | [top](#table-of-contents) |
+| [top](#flags) | :caribbean_netherlands: | `:caribbean_netherlands:` | :brazil: | `:brazil:` | [top](#table-of-contents) |
+| [top](#flags) | :bahamas: | `:bahamas:` | :bhutan: | `:bhutan:` | [top](#table-of-contents) |
+| [top](#flags) | :bouvet_island: | `:bouvet_island:` | :botswana: | `:botswana:` | [top](#table-of-contents) |
+| [top](#flags) | :belarus: | `:belarus:` | :belize: | `:belize:` | [top](#table-of-contents) |
+| [top](#flags) | :canada: | `:canada:` | :cocos_islands: | `:cocos_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :congo_kinshasa: | `:congo_kinshasa:` | :central_african_republic: | `:central_african_republic:` | [top](#table-of-contents) |
+| [top](#flags) | :congo_brazzaville: | `:congo_brazzaville:` | :switzerland: | `:switzerland:` | [top](#table-of-contents) |
+| [top](#flags) | :cote_divoire: | `:cote_divoire:` | :cook_islands: | `:cook_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :chile: | `:chile:` | :cameroon: | `:cameroon:` | [top](#table-of-contents) |
+| [top](#flags) | :cn: | `:cn:` | :colombia: | `:colombia:` | [top](#table-of-contents) |
+| [top](#flags) | :clipperton_island: | `:clipperton_island:` | :costa_rica: | `:costa_rica:` | [top](#table-of-contents) |
+| [top](#flags) | :cuba: | `:cuba:` | :cape_verde: | `:cape_verde:` | [top](#table-of-contents) |
+| [top](#flags) | :curacao: | `:curacao:` | :christmas_island: | `:christmas_island:` | [top](#table-of-contents) |
+| [top](#flags) | :cyprus: | `:cyprus:` | :czech_republic: | `:czech_republic:` | [top](#table-of-contents) |
+| [top](#flags) | :de: | `:de:` | :diego_garcia: | `:diego_garcia:` | [top](#table-of-contents) |
+| [top](#flags) | :djibouti: | `:djibouti:` | :denmark: | `:denmark:` | [top](#table-of-contents) |
+| [top](#flags) | :dominica: | `:dominica:` | :dominican_republic: | `:dominican_republic:` | [top](#table-of-contents) |
+| [top](#flags) | :algeria: | `:algeria:` | :ceuta_melilla: | `:ceuta_melilla:` | [top](#table-of-contents) |
+| [top](#flags) | :ecuador: | `:ecuador:` | :estonia: | `:estonia:` | [top](#table-of-contents) |
+| [top](#flags) | :egypt: | `:egypt:` | :western_sahara: | `:western_sahara:` | [top](#table-of-contents) |
+| [top](#flags) | :eritrea: | `:eritrea:` | :es: | `:es:` | [top](#table-of-contents) |
+| [top](#flags) | :ethiopia: | `:ethiopia:` | :eu: | `:eu:` `:european_union:` | [top](#table-of-contents) |
+| [top](#flags) | :finland: | `:finland:` | :fiji: | `:fiji:` | [top](#table-of-contents) |
+| [top](#flags) | :falkland_islands: | `:falkland_islands:` | :micronesia: | `:micronesia:` | [top](#table-of-contents) |
+| [top](#flags) | :faroe_islands: | `:faroe_islands:` | :fr: | `:fr:` | [top](#table-of-contents) |
+| [top](#flags) | :gabon: | `:gabon:` | :gb: | `:gb:` `:uk:` | [top](#table-of-contents) |
+| [top](#flags) | :grenada: | `:grenada:` | :georgia: | `:georgia:` | [top](#table-of-contents) |
+| [top](#flags) | :french_guiana: | `:french_guiana:` | :guernsey: | `:guernsey:` | [top](#table-of-contents) |
+| [top](#flags) | :ghana: | `:ghana:` | :gibraltar: | `:gibraltar:` | [top](#table-of-contents) |
+| [top](#flags) | :greenland: | `:greenland:` | :gambia: | `:gambia:` | [top](#table-of-contents) |
+| [top](#flags) | :guinea: | `:guinea:` | :guadeloupe: | `:guadeloupe:` | [top](#table-of-contents) |
+| [top](#flags) | :equatorial_guinea: | `:equatorial_guinea:` | :greece: | `:greece:` | [top](#table-of-contents) |
+| [top](#flags) | :south_georgia_south_sandwich_islands: | `:south_georgia_south_sandwich_islands:` | :guatemala: | `:guatemala:` | [top](#table-of-contents) |
+| [top](#flags) | :guam: | `:guam:` | :guinea_bissau: | `:guinea_bissau:` | [top](#table-of-contents) |
+| [top](#flags) | :guyana: | `:guyana:` | :hong_kong: | `:hong_kong:` | [top](#table-of-contents) |
+| [top](#flags) | :heard_mcdonald_islands: | `:heard_mcdonald_islands:` | :honduras: | `:honduras:` | [top](#table-of-contents) |
+| [top](#flags) | :croatia: | `:croatia:` | :haiti: | `:haiti:` | [top](#table-of-contents) |
+| [top](#flags) | :hungary: | `:hungary:` | :canary_islands: | `:canary_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :indonesia: | `:indonesia:` | :ireland: | `:ireland:` | [top](#table-of-contents) |
+| [top](#flags) | :israel: | `:israel:` | :isle_of_man: | `:isle_of_man:` | [top](#table-of-contents) |
+| [top](#flags) | :india: | `:india:` | :british_indian_ocean_territory: | `:british_indian_ocean_territory:` | [top](#table-of-contents) |
+| [top](#flags) | :iraq: | `:iraq:` | :iran: | `:iran:` | [top](#table-of-contents) |
+| [top](#flags) | :iceland: | `:iceland:` | :it: | `:it:` | [top](#table-of-contents) |
+| [top](#flags) | :jersey: | `:jersey:` | :jamaica: | `:jamaica:` | [top](#table-of-contents) |
+| [top](#flags) | :jordan: | `:jordan:` | :jp: | `:jp:` | [top](#table-of-contents) |
+| [top](#flags) | :kenya: | `:kenya:` | :kyrgyzstan: | `:kyrgyzstan:` | [top](#table-of-contents) |
+| [top](#flags) | :cambodia: | `:cambodia:` | :kiribati: | `:kiribati:` | [top](#table-of-contents) |
+| [top](#flags) | :comoros: | `:comoros:` | :st_kitts_nevis: | `:st_kitts_nevis:` | [top](#table-of-contents) |
+| [top](#flags) | :north_korea: | `:north_korea:` | :kr: | `:kr:` | [top](#table-of-contents) |
+| [top](#flags) | :kuwait: | `:kuwait:` | :cayman_islands: | `:cayman_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :kazakhstan: | `:kazakhstan:` | :laos: | `:laos:` | [top](#table-of-contents) |
+| [top](#flags) | :lebanon: | `:lebanon:` | :st_lucia: | `:st_lucia:` | [top](#table-of-contents) |
+| [top](#flags) | :liechtenstein: | `:liechtenstein:` | :sri_lanka: | `:sri_lanka:` | [top](#table-of-contents) |
+| [top](#flags) | :liberia: | `:liberia:` | :lesotho: | `:lesotho:` | [top](#table-of-contents) |
+| [top](#flags) | :lithuania: | `:lithuania:` | :luxembourg: | `:luxembourg:` | [top](#table-of-contents) |
+| [top](#flags) | :latvia: | `:latvia:` | :libya: | `:libya:` | [top](#table-of-contents) |
+| [top](#flags) | :morocco: | `:morocco:` | :monaco: | `:monaco:` | [top](#table-of-contents) |
+| [top](#flags) | :moldova: | `:moldova:` | :montenegro: | `:montenegro:` | [top](#table-of-contents) |
+| [top](#flags) | :st_martin: | `:st_martin:` | :madagascar: | `:madagascar:` | [top](#table-of-contents) |
+| [top](#flags) | :marshall_islands: | `:marshall_islands:` | :macedonia: | `:macedonia:` | [top](#table-of-contents) |
+| [top](#flags) | :mali: | `:mali:` | :myanmar: | `:myanmar:` | [top](#table-of-contents) |
+| [top](#flags) | :mongolia: | `:mongolia:` | :macau: | `:macau:` | [top](#table-of-contents) |
+| [top](#flags) | :northern_mariana_islands: | `:northern_mariana_islands:` | :martinique: | `:martinique:` | [top](#table-of-contents) |
+| [top](#flags) | :mauritania: | `:mauritania:` | :montserrat: | `:montserrat:` | [top](#table-of-contents) |
+| [top](#flags) | :malta: | `:malta:` | :mauritius: | `:mauritius:` | [top](#table-of-contents) |
+| [top](#flags) | :maldives: | `:maldives:` | :malawi: | `:malawi:` | [top](#table-of-contents) |
+| [top](#flags) | :mexico: | `:mexico:` | :malaysia: | `:malaysia:` | [top](#table-of-contents) |
+| [top](#flags) | :mozambique: | `:mozambique:` | :namibia: | `:namibia:` | [top](#table-of-contents) |
+| [top](#flags) | :new_caledonia: | `:new_caledonia:` | :niger: | `:niger:` | [top](#table-of-contents) |
+| [top](#flags) | :norfolk_island: | `:norfolk_island:` | :nigeria: | `:nigeria:` | [top](#table-of-contents) |
+| [top](#flags) | :nicaragua: | `:nicaragua:` | :netherlands: | `:netherlands:` | [top](#table-of-contents) |
+| [top](#flags) | :norway: | `:norway:` | :nepal: | `:nepal:` | [top](#table-of-contents) |
+| [top](#flags) | :nauru: | `:nauru:` | :niue: | `:niue:` | [top](#table-of-contents) |
+| [top](#flags) | :new_zealand: | `:new_zealand:` | :oman: | `:oman:` | [top](#table-of-contents) |
+| [top](#flags) | :panama: | `:panama:` | :peru: | `:peru:` | [top](#table-of-contents) |
+| [top](#flags) | :french_polynesia: | `:french_polynesia:` | :papua_new_guinea: | `:papua_new_guinea:` | [top](#table-of-contents) |
+| [top](#flags) | :philippines: | `:philippines:` | :pakistan: | `:pakistan:` | [top](#table-of-contents) |
+| [top](#flags) | :poland: | `:poland:` | :st_pierre_miquelon: | `:st_pierre_miquelon:` | [top](#table-of-contents) |
+| [top](#flags) | :pitcairn_islands: | `:pitcairn_islands:` | :puerto_rico: | `:puerto_rico:` | [top](#table-of-contents) |
+| [top](#flags) | :palestinian_territories: | `:palestinian_territories:` | :portugal: | `:portugal:` | [top](#table-of-contents) |
+| [top](#flags) | :palau: | `:palau:` | :paraguay: | `:paraguay:` | [top](#table-of-contents) |
+| [top](#flags) | :qatar: | `:qatar:` | :reunion: | `:reunion:` | [top](#table-of-contents) |
+| [top](#flags) | :romania: | `:romania:` | :serbia: | `:serbia:` | [top](#table-of-contents) |
+| [top](#flags) | :ru: | `:ru:` | :rwanda: | `:rwanda:` | [top](#table-of-contents) |
+| [top](#flags) | :saudi_arabia: | `:saudi_arabia:` | :solomon_islands: | `:solomon_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :seychelles: | `:seychelles:` | :sudan: | `:sudan:` | [top](#table-of-contents) |
+| [top](#flags) | :sweden: | `:sweden:` | :singapore: | `:singapore:` | [top](#table-of-contents) |
+| [top](#flags) | :st_helena: | `:st_helena:` | :slovenia: | `:slovenia:` | [top](#table-of-contents) |
+| [top](#flags) | :svalbard_jan_mayen: | `:svalbard_jan_mayen:` | :slovakia: | `:slovakia:` | [top](#table-of-contents) |
+| [top](#flags) | :sierra_leone: | `:sierra_leone:` | :san_marino: | `:san_marino:` | [top](#table-of-contents) |
+| [top](#flags) | :senegal: | `:senegal:` | :somalia: | `:somalia:` | [top](#table-of-contents) |
+| [top](#flags) | :suriname: | `:suriname:` | :south_sudan: | `:south_sudan:` | [top](#table-of-contents) |
+| [top](#flags) | :sao_tome_principe: | `:sao_tome_principe:` | :el_salvador: | `:el_salvador:` | [top](#table-of-contents) |
+| [top](#flags) | :sint_maarten: | `:sint_maarten:` | :syria: | `:syria:` | [top](#table-of-contents) |
+| [top](#flags) | :swaziland: | `:swaziland:` | :tristan_da_cunha: | `:tristan_da_cunha:` | [top](#table-of-contents) |
+| [top](#flags) | :turks_caicos_islands: | `:turks_caicos_islands:` | :chad: | `:chad:` | [top](#table-of-contents) |
+| [top](#flags) | :french_southern_territories: | `:french_southern_territories:` | :togo: | `:togo:` | [top](#table-of-contents) |
+| [top](#flags) | :thailand: | `:thailand:` | :tajikistan: | `:tajikistan:` | [top](#table-of-contents) |
+| [top](#flags) | :tokelau: | `:tokelau:` | :timor_leste: | `:timor_leste:` | [top](#table-of-contents) |
+| [top](#flags) | :turkmenistan: | `:turkmenistan:` | :tunisia: | `:tunisia:` | [top](#table-of-contents) |
+| [top](#flags) | :tonga: | `:tonga:` | :tr: | `:tr:` | [top](#table-of-contents) |
+| [top](#flags) | :trinidad_tobago: | `:trinidad_tobago:` | :tuvalu: | `:tuvalu:` | [top](#table-of-contents) |
+| [top](#flags) | :taiwan: | `:taiwan:` | :tanzania: | `:tanzania:` | [top](#table-of-contents) |
+| [top](#flags) | :ukraine: | `:ukraine:` | :uganda: | `:uganda:` | [top](#table-of-contents) |
+| [top](#flags) | :us_outlying_islands: | `:us_outlying_islands:` | :united_nations: | `:united_nations:` | [top](#table-of-contents) |
+| [top](#flags) | :us: | `:us:` | :uruguay: | `:uruguay:` | [top](#table-of-contents) |
+| [top](#flags) | :uzbekistan: | `:uzbekistan:` | :vatican_city: | `:vatican_city:` | [top](#table-of-contents) |
+| [top](#flags) | :st_vincent_grenadines: | `:st_vincent_grenadines:` | :venezuela: | `:venezuela:` | [top](#table-of-contents) |
+| [top](#flags) | :british_virgin_islands: | `:british_virgin_islands:` | :us_virgin_islands: | `:us_virgin_islands:` | [top](#table-of-contents) |
+| [top](#flags) | :vietnam: | `:vietnam:` | :vanuatu: | `:vanuatu:` | [top](#table-of-contents) |
+| [top](#flags) | :wallis_futuna: | `:wallis_futuna:` | :samoa: | `:samoa:` | [top](#table-of-contents) |
+| [top](#flags) | :kosovo: | `:kosovo:` | :yemen: | `:yemen:` | [top](#table-of-contents) |
+| [top](#flags) | :mayotte: | `:mayotte:` | :south_africa: | `:south_africa:` | [top](#table-of-contents) |
+| [top](#flags) | :zambia: | `:zambia:` | :zimbabwe: | `:zimbabwe:` | [top](#table-of-contents) |
+
+### Subdivision Flag
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#flags) | :england: | `:england:` | :scotland: | `:scotland:` | [top](#table-of-contents) |
+| [top](#flags) | :wales: | `:wales:` | | | [top](#table-of-contents) |
+
+## GitHub Custom Emoji
+
+| | ico | shortcode | ico | shortcode | |
+| - | :-: | - | :-: | - | - |
+| [top](#github-custom-emoji) | :accessibility: | `:accessibility:` | :atom: | `:atom:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :basecamp: | `:basecamp:` | :basecampy: | `:basecampy:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :bowtie: | `:bowtie:` | :dependabot: | `:dependabot:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :electron: | `:electron:` | :feelsgood: | `:feelsgood:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :finnadie: | `:finnadie:` | :fishsticks: | `:fishsticks:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :goberserk: | `:goberserk:` | :godmode: | `:godmode:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :hurtrealbad: | `:hurtrealbad:` | :neckbeard: | `:neckbeard:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :octocat: | `:octocat:` | :rage1: | `:rage1:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :rage2: | `:rage2:` | :rage3: | `:rage3:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :rage4: | `:rage4:` | :shipit: | `:shipit:` | [top](#table-of-contents) |
+| [top](#github-custom-emoji) | :suspect: | `:suspect:` | :trollface: | `:trollface:` | [top](#table-of-contents) |
diff --git a/docs/content/en/quick-reference/functions.md b/docs/content/en/quick-reference/functions.md
new file mode 100644
index 00000000000..72235d0f348
--- /dev/null
+++ b/docs/content/en/quick-reference/functions.md
@@ -0,0 +1,8 @@
+---
+title: Functions
+description: A quick reference guide to Hugo's functions, grouped by namespace. Aliases, if any, appear in parentheses to the right of the function name.
+categories: []
+keywords: []
+---
+
+{{% quick-reference section="functions" %}}
diff --git a/docs/content/en/quick-reference/glob-patterns.md b/docs/content/en/quick-reference/glob-patterns.md
new file mode 100644
index 00000000000..13cd01f54be
--- /dev/null
+++ b/docs/content/en/quick-reference/glob-patterns.md
@@ -0,0 +1,38 @@
+---
+title: Glob patterns
+description: A quick reference guide to glob pattern syntax and matching rules for wildcards, character sets, and delimiters, featuring illustrative examples.
+categories: []
+keywords: []
+---
+
+{{% glossary-term "glob pattern" %}}
+
+The table below details the supported glob pattern syntax and its matching behavior. Each example illustrates a specific match type, the pattern used, and the expected boolean result when evaluated against a test string.
+
+| Match type | Glob pattern | Test string | Match? |
+| :--- | :--- | :--- | :--- |
+| Simple wildcard | `a/*.md` | `a/page.md` | true |
+| Literal match | `'a/*.md'` | `a/*.md` | true |
+| Single-level wildcard | `a/*/page.md` | `a/b/page.md` | true |
+| Single-level wildcard | `a/*/page.md` | `a/b/c/page.md` | false |
+| Multi-level wildcard | `a/**/page.md` | `a/b/c/page.md` | true |
+| Single character | `file.???` | `file.txt` | true |
+| Single character | `file.???` | `file.js` | false |
+| Delimiter exclusion | `?at` | `f/at` | false |
+| Character list | `f.[jt]xt` | `f.txt` | true |
+| Negated list | `f.[!j]xt` | `f.txt` | true |
+| Character range | `f.[a-c].txt` | `f.b.txt` | true |
+| Character range | `f.[a-c].txt` | `f.z.txt` | false |
+| Negated range | `f.[!a-c].txt` | `f.z.txt` | true |
+| Pattern alternates | `*.{jpg,png}` | `logo.png` | true |
+| No match | `*.{jpg,png}` | `logo.webp` | false |
+
+The matching logic follows these rules:
+
+- Standard wildcard (`*`) matches any character except for a delimiter.
+- Super wildcard (`**`) matches any character including delimiters.
+- Single character (`?`) matches exactly one character, excluding delimiters.
+- Negation (`!`) matches any character except those specified in a list or range when used inside brackets.
+- Character ranges (`[a-z]`) match any single character within the specified range.
+
+The delimiter is a slash (`/`), except when matching semantic version strings, where the delimiter is a dot (`.`).
diff --git a/docs/content/en/quick-reference/glossary/_index.md b/docs/content/en/quick-reference/glossary/_index.md
new file mode 100644
index 00000000000..8940fd73b3d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/_index.md
@@ -0,0 +1,20 @@
+---
+title: Glossary
+description: Terms commonly used throughout the documentation.
+categories: []
+keywords: []
+build:
+ render: always
+ list: always
+cascade:
+ build:
+ render: never
+ list: local
+layout: single
+params:
+ hide_in_this_section: true
+ searchable: true
+aliases: [/getting-started/glossary/]
+---
+
+{{% glossary %}}
diff --git a/docs/content/en/quick-reference/glossary/action.md b/docs/content/en/quick-reference/glossary/action.md
new file mode 100644
index 00000000000..ced87732797
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/action.md
@@ -0,0 +1,5 @@
+---
+title: action
+---
+
+See [_template action_](g).
diff --git a/docs/content/en/quick-reference/glossary/archetype.md b/docs/content/en/quick-reference/glossary/archetype.md
new file mode 100644
index 00000000000..d22fae9549c
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/archetype.md
@@ -0,0 +1,7 @@
+---
+title: archetype
+params:
+ reference: /content-management/archetypes/
+---
+
+An _archetype_ is a template for new content.
diff --git a/docs/content/en/quick-reference/glossary/argument.md b/docs/content/en/quick-reference/glossary/argument.md
new file mode 100644
index 00000000000..912951d2b2d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/argument.md
@@ -0,0 +1,5 @@
+---
+title: argument
+---
+
+An _argument_ is a [_scalar_](g), [_array_](g), [_slice_](g), [_map_](g), or [_object_](g) passed to a [_function_](g), [_method_](g), or [_shortcode_](g).
diff --git a/docs/content/en/quick-reference/glossary/array.md b/docs/content/en/quick-reference/glossary/array.md
new file mode 100644
index 00000000000..0df45f2121a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/array.md
@@ -0,0 +1,6 @@
+---
+title: array
+reference: https://go.dev/ref/spec#Array_types
+---
+
+An _array_ is a numbered sequence of [_elements_](g). Unlike Go's [_slice_](g) data type, an array has a fixed length. Elements within an array can be [_scalars_](g), slices, [_maps_](g), pages, or other arrays.
diff --git a/docs/content/en/quick-reference/glossary/asset-pipeline.md b/docs/content/en/quick-reference/glossary/asset-pipeline.md
new file mode 100644
index 00000000000..5f3264a6ed5
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/asset-pipeline.md
@@ -0,0 +1,5 @@
+---
+title: asset pipeline
+---
+
+An _asset pipeline_ is a system that automates and optimizes the handling of static assets like images, stylesheets, and JavaScript files.
diff --git a/docs/content/en/quick-reference/glossary/bool.md b/docs/content/en/quick-reference/glossary/bool.md
new file mode 100644
index 00000000000..a4f33b5b99b
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/bool.md
@@ -0,0 +1,5 @@
+---
+title: bool
+---
+
+See [_boolean_](g).
diff --git a/docs/content/en/quick-reference/glossary/boolean.md b/docs/content/en/quick-reference/glossary/boolean.md
new file mode 100644
index 00000000000..e727c40b0a3
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/boolean.md
@@ -0,0 +1,5 @@
+---
+title: boolean
+---
+
+A _boolean_ is a data type with two possible values, either `true` or `false`.
diff --git a/docs/content/en/quick-reference/glossary/branch-bundle.md b/docs/content/en/quick-reference/glossary/branch-bundle.md
new file mode 100644
index 00000000000..d5688ba0b31
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/branch-bundle.md
@@ -0,0 +1,6 @@
+---
+title: branch bundle
+reference: /content-management/page-bundles
+---
+
+A _branch bundle_ is a top-level content directory or any content directory containing an `_index.md` file. Analogous to a physical branch, a branch bundle may have descendants including [_leaf bundles_](g) and other branch bundles. A branch bundle may also contain [_page resources_](g) such as images.
diff --git a/docs/content/en/quick-reference/glossary/build-artifacts.md b/docs/content/en/quick-reference/glossary/build-artifacts.md
new file mode 100644
index 00000000000..c3c2dbd6a9e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/build-artifacts.md
@@ -0,0 +1,5 @@
+---
+title: build artifacts
+---
+
+The _build artifacts_ are the static files produced during the [_build_](g) process. These assets are stored in the `public` directory by default and represent the final, ready-to-deploy output of the project.
diff --git a/docs/content/en/quick-reference/glossary/build.md b/docs/content/en/quick-reference/glossary/build.md
new file mode 100644
index 00000000000..4d4f73cb4bc
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/build.md
@@ -0,0 +1,5 @@
+---
+title: build
+---
+
+To _build_ (verb) is to generate the static files for a [_project_](g), including HTML, images, CSS, and JavaScript. This process involves rendering templates, transforming resources, and resolving the matrix of [_language_](g), [_role_](g), and [_version_](g) defined in your project configuration.
diff --git a/docs/content/en/quick-reference/glossary/bundle.md b/docs/content/en/quick-reference/glossary/bundle.md
new file mode 100644
index 00000000000..fddc28ef85f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/bundle.md
@@ -0,0 +1,5 @@
+---
+title: bundle
+---
+
+See [_page bundle_](g).
diff --git a/docs/content/en/quick-reference/glossary/cache.md b/docs/content/en/quick-reference/glossary/cache.md
new file mode 100644
index 00000000000..a86068e4ad5
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/cache.md
@@ -0,0 +1,5 @@
+---
+title: cache
+---
+
+A _cache_ is a software component that stores data so that future requests for the same data are faster.
diff --git a/docs/content/en/quick-reference/glossary/canonical-output-format.md b/docs/content/en/quick-reference/glossary/canonical-output-format.md
new file mode 100644
index 00000000000..d360083ba92
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/canonical-output-format.md
@@ -0,0 +1,14 @@
+---
+title: canonical output format
+---
+
+The _canonical output format_ is the [_output format_](g) for the current page where the format's [`rel`][] property is set to `canonical` in your project configuration, if such a format exists. If there is only one _output format_ for the current page, that is the _canonical output format_, regardless of whether the format's `rel` property is set to `canonical`.
+
+ By default, `html` is the only predefined _output format_ with this setting; the `rel` property for all others is set to `alternate`. If two or more _output formats_ for the current page have their `rel` property set to `canonical`, the _canonical output format_ is the first one specified in:
+
+ - The [`outputs`][outputs_front_matter] front matter field of the current page, or
+ - The [`outputs`][outputs_project_config] section of your project configuration for the current [_page kind_](g).
+
+ [`rel`]: /configuration/output-formats/#rel
+ [outputs_front_matter]: /configuration/outputs/#outputs-per-page
+ [outputs_project_config]: /configuration/outputs/#outputs-per-page-kind
diff --git a/docs/content/en/quick-reference/glossary/chain.md b/docs/content/en/quick-reference/glossary/chain.md
new file mode 100644
index 00000000000..c5d19b1b26b
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/chain.md
@@ -0,0 +1,5 @@
+---
+title: chain
+---
+
+To _chain_ (verb) is to connect one or more [_identifiers_](g) with a dot. An identifier can represent a [_method_](g), [_object_](g), or [_field_](g). For example, `.Site.Params.author.name` or `.Date.UTC.Hour`.
diff --git a/docs/content/en/quick-reference/glossary/cicd.md b/docs/content/en/quick-reference/glossary/cicd.md
new file mode 100644
index 00000000000..594a60e1994
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/cicd.md
@@ -0,0 +1,16 @@
+---
+title: CI/CD
+params:
+ reference: https://en.wikipedia.org/wiki/CI/CD
+---
+
+The term _CI/CD_ is an abbreviation for Continuous Integration and Continuous Delivery or Continuous Deployment depending on context.
+
+ Popular _CI/CD_ platforms for building and deploying Hugo sites include [Cloudflare][], [GitHub Pages][], [GitLab Pages][], [Netlify][], [Render][], and [Vercel][].
+
+ [Cloudflare]: /host-and-deploy/host-on-cloudflare/
+ [GitHub Pages]: /host-and-deploy/host-on-github-pages/
+ [GitLab Pages]: /host-and-deploy/host-on-gitlab-pages/
+ [Netlify]: /host-and-deploy/host-on-netlify/
+ [Render]: /host-and-deploy/host-on-render/
+ [Vercel]: /host-and-deploy/host-on-vercel/
diff --git a/docs/content/en/quick-reference/glossary/cjk.md b/docs/content/en/quick-reference/glossary/cjk.md
new file mode 100644
index 00000000000..05a294d4461
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/cjk.md
@@ -0,0 +1,5 @@
+---
+title: CJK
+---
+
+_CJK_ is a collective term for the Chinese, Japanese, and Korean languages.
diff --git a/docs/content/en/quick-reference/glossary/cli.md b/docs/content/en/quick-reference/glossary/cli.md
new file mode 100644
index 00000000000..8f898e364ed
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/cli.md
@@ -0,0 +1,5 @@
+---
+title: CLI
+---
+
+_CLI_ stands for command-line interface, a text-based method for interacting with computer programs or operating systems.
diff --git a/docs/content/en/quick-reference/glossary/collection.md b/docs/content/en/quick-reference/glossary/collection.md
new file mode 100644
index 00000000000..30e1ef80574
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/collection.md
@@ -0,0 +1,5 @@
+---
+title: collection
+---
+
+A _collection_ is an [_array_](g), [_slice_](g), or [_map_](g).
diff --git a/docs/content/en/quick-reference/glossary/component.md b/docs/content/en/quick-reference/glossary/component.md
new file mode 100644
index 00000000000..1843b1838f1
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/component.md
@@ -0,0 +1,16 @@
+---
+title: component
+---
+
+A _component_ is a collection of related files, housed within the [_unified file system_](g), that fulfills a specific function in building a Hugo [_project_](g). These components are categorized into seven types: [_archetypes_](g), assets, content, data, templates, [_translation tables_](g), and static files, and can be defined within the project or provided by [_modules_](g). Each component has a dedicated directory within the unified file system:
+
+ Component|Directory within the unified file system
+ :--|:--
+ archetypes|`archetypes`
+ assets|`assets`
+ content|`content`
+ data|`data`
+ templates|`layouts`
+ translation tables|`i18n`
+ static files|`static`
+ {class="!mt-0"}
diff --git a/docs/content/en/quick-reference/glossary/content-adapter.md b/docs/content/en/quick-reference/glossary/content-adapter.md
new file mode 100644
index 00000000000..974e61dca5e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/content-adapter.md
@@ -0,0 +1,6 @@
+---
+title: content adapter
+reference: /content-management/content-adapters
+---
+
+A _content adapter_ is a template that dynamically creates pages when building a site. For example, use a content adapter to create pages from a remote data source such as JSON, TOML, YAML, or XML.
diff --git a/docs/content/en/quick-reference/glossary/content-dimension.md b/docs/content/en/quick-reference/glossary/content-dimension.md
new file mode 100644
index 00000000000..7317740e08d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/content-dimension.md
@@ -0,0 +1,5 @@
+---
+title: content dimension
+---
+
+See [_dimension_](g).
diff --git a/docs/content/en/quick-reference/glossary/content-format.md b/docs/content/en/quick-reference/glossary/content-format.md
new file mode 100644
index 00000000000..ea459deb77d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/content-format.md
@@ -0,0 +1,6 @@
+---
+title: content format
+reference: /content-management/formats
+---
+
+A _content format_ is a markup language for creating content. Typically Markdown, but may also be HTML, AsciiDoc, Org, Pandoc, or reStructuredText.
diff --git a/docs/content/en/quick-reference/glossary/content-type.md b/docs/content/en/quick-reference/glossary/content-type.md
new file mode 100644
index 00000000000..758800ccf8b
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/content-type.md
@@ -0,0 +1,5 @@
+---
+title: content type
+---
+
+A _content type_ is a classification of content inferred from the top-level directory name or the `type` set in [_front matter_](g). Pages in the root of the `content` directory, including the home page, are of type "page". The content type is a contributing factor in the template lookup order and determines which [_archetype_](g) template to use when creating new content.
diff --git a/docs/content/en/quick-reference/glossary/content-view.md b/docs/content/en/quick-reference/glossary/content-view.md
new file mode 100644
index 00000000000..443a07afd0a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/content-view.md
@@ -0,0 +1,6 @@
+---
+title: content view
+reference: /templates/types/#content-view
+---
+
+A _content view_ is a template called with the [`Render`](/methods/page/render/) method on a `Page` object.
diff --git a/docs/content/en/quick-reference/glossary/context.md b/docs/content/en/quick-reference/glossary/context.md
new file mode 100644
index 00000000000..75afc709d88
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/context.md
@@ -0,0 +1,6 @@
+---
+title: context
+reference: /templates/introduction/#context
+---
+
+Represented by a dot (`.`) within a [_template action_](g), _context_ is the current location in a data structure. For example, while iterating over a [_collection_](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called.
diff --git a/docs/content/en/quick-reference/glossary/default-language.md b/docs/content/en/quick-reference/glossary/default-language.md
new file mode 100644
index 00000000000..73f942c2f71
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/default-language.md
@@ -0,0 +1,9 @@
+---
+title: default language
+---
+
+The _default language_ is is the value defined by the [`defaultContentLanguage`][] setting, falling back to the first language in the project, and finally to `en`. The first language is identified by the lowest [_weight_](g), using lexicographical order as the final fallback if weights are tied or undefined.
+
+ See also: [_language_](g).
+
+ [`defaultContentLanguage`]: /configuration/all/#defaultcontentlanguage
diff --git a/docs/content/en/quick-reference/glossary/default-role.md b/docs/content/en/quick-reference/glossary/default-role.md
new file mode 100644
index 00000000000..f065189c1b6
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/default-role.md
@@ -0,0 +1,9 @@
+---
+title: default role
+---
+
+The _default role_ is the value defined by the [`defaultContentRole`][] setting, falling back to the first role in the project, and finally to `guest`. The first role is identified by the lowest [_weight_](g), using lexicographical order as the final fallback if weights are tied or undefined.
+
+ See also: [_role_](g).
+
+ [`defaultContentRole`]: /configuration/all/#defaultcontentrole
diff --git a/docs/content/en/quick-reference/glossary/default-site.md b/docs/content/en/quick-reference/glossary/default-site.md
new file mode 100644
index 00000000000..3acad31d078
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/default-site.md
@@ -0,0 +1,5 @@
+---
+title: default site
+---
+
+The _default site_ is the [_site_](g) with the [_default language_](g), [_default version_](g), and [_default role_](g).
diff --git a/docs/content/en/quick-reference/glossary/default-sort-order.md b/docs/content/en/quick-reference/glossary/default-sort-order.md
new file mode 100644
index 00000000000..9b981a7e9ff
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/default-sort-order.md
@@ -0,0 +1,10 @@
+---
+title: default sort order
+---
+
+The _default sort order_ for [_page collections_](g), used when no other criteria are set, follows this priority:
+
+ 1. [`weight`](/content-management/front-matter/#weight) (ascending)
+ 1. [`date`](/content-management/front-matter/#date) (descending)
+ 1. [`linkTitle`](/content-management/front-matter/#linktitle) falling back to [`title`](/content-management/front-matter/#title) (ascending)
+ 1. [logical path](g) (ascending)
diff --git a/docs/content/en/quick-reference/glossary/default-version.md b/docs/content/en/quick-reference/glossary/default-version.md
new file mode 100644
index 00000000000..dc290472555
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/default-version.md
@@ -0,0 +1,9 @@
+---
+title: default version
+---
+
+The _default version_ is the value defined by the [`defaultContentVersion`][] setting, falling back to the first version in the project, and finally to `v1.0.0`. The first version is identified by the lowest [_weight_](g), using a descending semantic sort as the final fallback if weights are tied or undefined.
+
+ See also: [_version_](g).
+
+ [`defaultContentVersion`]: /configuration/all/#defaultcontentversion
diff --git a/docs/content/en/quick-reference/glossary/dependency-graph.md b/docs/content/en/quick-reference/glossary/dependency-graph.md
new file mode 100644
index 00000000000..946e5b19705
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/dependency-graph.md
@@ -0,0 +1,5 @@
+---
+title: dependency graph
+---
+
+A _dependency graph_ visually represents the relationships between the [_modules_](g) used in a Hugo project. It shows how modules depend on each other, forming a network of dependencies.
diff --git a/docs/content/en/quick-reference/glossary/dimension.md b/docs/content/en/quick-reference/glossary/dimension.md
new file mode 100644
index 00000000000..9db6d64b804
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/dimension.md
@@ -0,0 +1,5 @@
+---
+title: dimension
+---
+
+A _dimension_ is a categorized axis of content variation that allows multiple variations of a logical page to exist simultaneously. The three dimensions are [_language_](g), [_role_](g), and [_version_](g). For example, a logical page may exist in 6 languages, 4 versions, and 2 roles.
diff --git a/docs/content/en/quick-reference/glossary/duration.md b/docs/content/en/quick-reference/glossary/duration.md
new file mode 100644
index 00000000000..21fd3c83222
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/duration.md
@@ -0,0 +1,5 @@
+---
+title: duration
+---
+
+A _duration_ is a data type that represent a length of time, expressed using units such as seconds (represented by `s`), minutes (represented by `m`), and hours (represented by `h`). For example, `42s` means 42 seconds, `6m7s` means 6 minutes and 7 seconds, and `6h7m42s` means 6 hours, 7 minutes, and 42 seconds.
diff --git a/docs/content/en/quick-reference/glossary/element.md b/docs/content/en/quick-reference/glossary/element.md
new file mode 100644
index 00000000000..39f5df65645
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/element.md
@@ -0,0 +1,5 @@
+---
+title: element
+---
+
+An _element_ is a member of a [_slice_](g) or [_array_](g).
diff --git a/docs/content/en/quick-reference/glossary/embedded-template.md b/docs/content/en/quick-reference/glossary/embedded-template.md
new file mode 100644
index 00000000000..3a087169022
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/embedded-template.md
@@ -0,0 +1,5 @@
+---
+title: embedded template
+---
+
+An _embedded template_ is a built-in component within the Hugo application. This includes features like [_partials_](g), [_shortcodes_](g), and [_render hooks_](g) that provide pre-defined structures or functionalities for creating website content.
diff --git a/docs/content/en/quick-reference/glossary/environment.md b/docs/content/en/quick-reference/glossary/environment.md
new file mode 100644
index 00000000000..0cfba95f73f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/environment.md
@@ -0,0 +1,9 @@
+---
+title: environment
+---
+
+Typically one of `development`, `staging`, or `production`, each _environment_ may exhibit different behavior depending on configuration and template logic. For example, in a production environment you might minify and fingerprint CSS, but that probably doesn't make sense in a development environment.
+
+ When running the built-in development server with the `hugo server` command, the environment is set to `development`. When building your project with the `hugo build` command, the environment is set to `production`. To override the environment value, use the `--environment` command line flag or the `HUGO_ENVIRONMENT` environment variable.
+
+ To determine the current environment within a template, use the [`hugo.Environment`](/functions/hugo/environment/) function.
diff --git a/docs/content/en/quick-reference/glossary/field.md b/docs/content/en/quick-reference/glossary/field.md
new file mode 100644
index 00000000000..a32eb3a6bff
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/field.md
@@ -0,0 +1,5 @@
+---
+title: field
+---
+
+A _field_ is a predefined key-value pair in front matter such as `date` or `title`.
diff --git a/docs/content/en/quick-reference/glossary/flag.md b/docs/content/en/quick-reference/glossary/flag.md
new file mode 100644
index 00000000000..e7b6c5746f8
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/flag.md
@@ -0,0 +1,6 @@
+---
+title: flag
+reference: /commands/hugo
+---
+
+A _flag_ is an option passed to a command-line program, beginning with one or two hyphens.
diff --git a/docs/content/en/quick-reference/glossary/float.md b/docs/content/en/quick-reference/glossary/float.md
new file mode 100644
index 00000000000..86f2c8ffb03
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/float.md
@@ -0,0 +1,6 @@
+---
+title: float
+alias: true
+---
+
+See [floating point](g).
diff --git a/docs/content/en/quick-reference/glossary/floating-point.md b/docs/content/en/quick-reference/glossary/floating-point.md
new file mode 100644
index 00000000000..38ba9f012b8
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/floating-point.md
@@ -0,0 +1,5 @@
+---
+title: floating point
+---
+
+The term _floating point_ refers to a numeric data type with a fractional component. For example, `3.14159`.
diff --git a/docs/content/en/quick-reference/glossary/fragment.md b/docs/content/en/quick-reference/glossary/fragment.md
new file mode 100644
index 00000000000..57ef1b4ef4d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/fragment.md
@@ -0,0 +1,5 @@
+---
+title: fragment
+---
+
+A _fragment_ is the final segment of a URL, beginning with a hash (`#`) mark, that references an `id` attribute of an HTML element on the page.
diff --git a/docs/content/en/quick-reference/glossary/front-matter.md b/docs/content/en/quick-reference/glossary/front-matter.md
new file mode 100644
index 00000000000..5a3cd30409d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/front-matter.md
@@ -0,0 +1,6 @@
+---
+title: front matter
+reference: /content-management/front-matter
+---
+
+The term _front matter_ refers to the metadata at the beginning of each content page, separated from the content by format-specific delimiters.
diff --git a/docs/content/en/quick-reference/glossary/function.md b/docs/content/en/quick-reference/glossary/function.md
new file mode 100644
index 00000000000..a7da52cd289
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/function.md
@@ -0,0 +1,6 @@
+---
+title: function
+reference: /functions
+---
+
+Used within a [_template action_](g), a _function_ takes one or more [_arguments_](g) and returns a value. Unlike [_methods_](g), functions are not associated with an [_object_](g).
diff --git a/docs/content/en/quick-reference/glossary/glob-pattern.md b/docs/content/en/quick-reference/glossary/glob-pattern.md
new file mode 100644
index 00000000000..c57b452c147
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/glob-pattern.md
@@ -0,0 +1,6 @@
+---
+title: glob pattern
+reference: /quick-reference/glob-patterns/
+---
+
+A _glob pattern_ is a pattern used to match sets of values. It is a shorthand for specifying multiple targets at once, making it easier to work with groups of data or configurations.
diff --git a/docs/content/en/quick-reference/glossary/glob-slice.md b/docs/content/en/quick-reference/glossary/glob-slice.md
new file mode 100644
index 00000000000..df37718b1ee
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/glob-slice.md
@@ -0,0 +1,16 @@
+---
+title: glob slice
+---
+
+A _glob slice_ is a [_slice_](g) of [_glob patterns_](g). Within the _slice_, a _glob_ can be negated by prefixing it with an exclamation mark (`!`) and one space. Matches in negated patterns short-circuit the evaluation of the rest of the _slice_, and are useful for early coarse grained exclusions.
+
+ The following example illustrates how to use _glob slices_ to define a [_sites matrix_](g) in your project configuration:
+
+ ```toml
+ [sites.matrix]
+ languages = [ "! no", "**" ]
+ versions = [ "! v1.2.3", "v1.*.*", "v2.*.*" ]
+ roles = [ "{member, guest}" ]
+ ```
+
+ The `versions` example above evaluates as: `(not v1.2.3) AND (v1.*.* OR v2.*.*)`.
diff --git a/docs/content/en/quick-reference/glossary/global-resource.md b/docs/content/en/quick-reference/glossary/global-resource.md
new file mode 100644
index 00000000000..a4df65f6726
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/global-resource.md
@@ -0,0 +1,5 @@
+---
+title: global resource
+---
+
+A _global resource_ is file within the `assets` directory, or within any directory mounted to the `assets` directory.
diff --git a/docs/content/en/quick-reference/glossary/headless-bundle.md b/docs/content/en/quick-reference/glossary/headless-bundle.md
new file mode 100644
index 00000000000..ac7bf79c861
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/headless-bundle.md
@@ -0,0 +1,6 @@
+---
+title: headless bundle
+reference: /content-management/build-options/
+---
+
+A _headless bundle_ is an unpublished [_leaf bundle_](g) or an unpublished [_branch bundle_](g) whose content and resources you can include in other pages.
diff --git a/docs/content/en/quick-reference/glossary/i18n.md b/docs/content/en/quick-reference/glossary/i18n.md
new file mode 100644
index 00000000000..168828aa8ed
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/i18n.md
@@ -0,0 +1,5 @@
+---
+title: i18n
+---
+
+See [_internationalization_](g).
diff --git a/docs/content/en/quick-reference/glossary/iana.md b/docs/content/en/quick-reference/glossary/iana.md
new file mode 100644
index 00000000000..89497f76aae
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/iana.md
@@ -0,0 +1,6 @@
+---
+title: IANA
+reference: https://www.iana.org/about
+---
+
+_IANA_ is an abbreviation for the Internet Assigned Numbers Authority, a non-profit organization that manages the allocation of global IP addresses, autonomous system numbers, DNS root zone, media types, and other Internet Protocol-related resources.
diff --git a/docs/content/en/quick-reference/glossary/identifier.md b/docs/content/en/quick-reference/glossary/identifier.md
new file mode 100644
index 00000000000..f53472fa79a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/identifier.md
@@ -0,0 +1,5 @@
+---
+title: identifier
+---
+
+An _identifier_ is a string that represents a variable, method, object, or field. It must conform to Go's [language specification](https://go.dev/ref/spec#Identifiers), beginning with a letter or underscore, followed by zero or more letters, digits, or underscores.
diff --git a/docs/content/en/quick-reference/glossary/int.md b/docs/content/en/quick-reference/glossary/int.md
new file mode 100644
index 00000000000..0896f1ce73f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/int.md
@@ -0,0 +1,5 @@
+---
+title: int
+---
+
+See [_integer_](g).
diff --git a/docs/content/en/quick-reference/glossary/integer.md b/docs/content/en/quick-reference/glossary/integer.md
new file mode 100644
index 00000000000..0af821300da
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/integer.md
@@ -0,0 +1,5 @@
+---
+title: integer
+---
+
+An _integer_ is a numeric data type without a fractional component. For example, `42`.
diff --git a/docs/content/en/quick-reference/glossary/interleave.md b/docs/content/en/quick-reference/glossary/interleave.md
new file mode 100644
index 00000000000..077ff7e2c29
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/interleave.md
@@ -0,0 +1,5 @@
+---
+title: interleave
+---
+
+To _interleave_ (verb) is to insert a string at the beginning, the end, and between every character of another string.
diff --git a/docs/content/en/quick-reference/glossary/internationalization.md b/docs/content/en/quick-reference/glossary/internationalization.md
new file mode 100644
index 00000000000..4e8b0199cf2
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/internationalization.md
@@ -0,0 +1,5 @@
+---
+title: internationalization
+---
+
+The term _internationalization_ refers to software design and development efforts that enable [_localization_](g).
diff --git a/docs/content/en/quick-reference/glossary/interpreted-string-literal.md b/docs/content/en/quick-reference/glossary/interpreted-string-literal.md
new file mode 100644
index 00000000000..fa92c976fde
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/interpreted-string-literal.md
@@ -0,0 +1,6 @@
+---
+title: interpreted string literal
+reference: https://go.dev/ref/spec#String_literals
+---
+
+An _interpreted string literal_ is a character sequence between double quotes, as in `"foo"`. Within the quotes, any character may appear except a newline and an unescaped double quote. The text between the quotes forms the value of the literal, with backslash escapes interpreted.
diff --git a/docs/content/en/quick-reference/glossary/interval.md b/docs/content/en/quick-reference/glossary/interval.md
new file mode 100644
index 00000000000..a7ed8a6cdd9
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/interval.md
@@ -0,0 +1,11 @@
+---
+title: interval
+---
+
+An [_interval_](https://en.wikipedia.org/wiki/Interval_(mathematics)) is a range of numbers between two endpoints: closed, open, or half-open.
+
+ - A _closed interval_, denoted by brackets, includes its endpoints. For example, [0, 1] is the interval where `0 <= x <= 1`.
+
+ - An _open interval_, denoted by parentheses, excludes its endpoints. For example, (0, 1) is the interval where `0 < x < 1`.
+
+ - A _half-open interval_ includes only one of its endpoints. For example, (0, 1] is the _left-open_ interval where `0 < x <= 1`, while [0, 1) is the _right-open_ interval where `0 <= x < 1`.
diff --git a/docs/content/en/quick-reference/glossary/kind.md b/docs/content/en/quick-reference/glossary/kind.md
new file mode 100644
index 00000000000..a214dfbf13e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/kind.md
@@ -0,0 +1,5 @@
+---
+title: kind
+---
+
+See [_page kind_](g).
diff --git a/docs/content/en/quick-reference/glossary/l10n.md b/docs/content/en/quick-reference/glossary/l10n.md
new file mode 100644
index 00000000000..013d0ab550f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/l10n.md
@@ -0,0 +1,5 @@
+---
+title: l10n
+---
+
+See [_localization_](g).
diff --git a/docs/content/en/quick-reference/glossary/language.md b/docs/content/en/quick-reference/glossary/language.md
new file mode 100644
index 00000000000..551dc691ca2
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/language.md
@@ -0,0 +1,7 @@
+---
+title: language
+---
+
+A _language_ is a [_dimension_](g) that facilitates the localization and internationalization of content. While [_version_](g) focuses on lifecycle and [_role_](g) focuses on audience, the language dimension allows a logical page to be represented in different locales across the project.
+
+ See also: [_default language_](g).
diff --git a/docs/content/en/quick-reference/glossary/layout.md b/docs/content/en/quick-reference/glossary/layout.md
new file mode 100644
index 00000000000..a4e6b33f191
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/layout.md
@@ -0,0 +1,5 @@
+---
+title: layout
+---
+
+See [_template_](g).
diff --git a/docs/content/en/quick-reference/glossary/leaf-bundle.md b/docs/content/en/quick-reference/glossary/leaf-bundle.md
new file mode 100644
index 00000000000..aa41384ee32
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/leaf-bundle.md
@@ -0,0 +1,6 @@
+---
+title: leaf bundle
+reference: /content-management/page-bundles/
+---
+
+A _leaf bundle_ is a directory that contains an `index.md` file and zero or more [_resources_](g). Analogous to a physical leaf, a leaf bundle is at the end of a [_branch bundle_](g). It has no descendants.
diff --git a/docs/content/en/quick-reference/glossary/lexer.md b/docs/content/en/quick-reference/glossary/lexer.md
new file mode 100644
index 00000000000..a462231482b
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/lexer.md
@@ -0,0 +1,5 @@
+---
+title: lexer
+---
+
+A _lexer_ is a software component that identifies keywords, identifiers, operators, numbers, and other basic building blocks of a programming language within the input text.
diff --git a/docs/content/en/quick-reference/glossary/list-page.md b/docs/content/en/quick-reference/glossary/list-page.md
new file mode 100644
index 00000000000..d18efcfe725
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/list-page.md
@@ -0,0 +1,5 @@
+---
+title: list page
+---
+
+A list page is any [_page kind_](g) that receives a page [_collection_](g) in [_context_](g). This includes the home page, [_section pages_](g), [_taxonomy pages_](g), and [_term pages_](g).
diff --git a/docs/content/en/quick-reference/glossary/localization.md b/docs/content/en/quick-reference/glossary/localization.md
new file mode 100644
index 00000000000..01f45063589
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/localization.md
@@ -0,0 +1,6 @@
+---
+title: localization
+reference: /content-management/multilingual/
+---
+
+The term _localization_ refers to the process of adapting a site to meet language and regional requirements. This includes translations, date formats, number formats, currency formats, and collation order.
diff --git a/docs/content/en/quick-reference/glossary/logical-path.md b/docs/content/en/quick-reference/glossary/logical-path.md
new file mode 100644
index 00000000000..2eeee751f1a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/logical-path.md
@@ -0,0 +1,6 @@
+---
+title: logical path
+reference: /methods/page/path/#examples
+---
+
+A _logical path_ is a page or page resource identifier derived from the file path, excluding its extension and language identifier. This value is neither a file path nor a URL. Starting with a file path relative to the `content` directory, Hugo determines the logical path by stripping the file extension and language identifier, converting to lower case, then replacing spaces with hyphens. Path segments are separated with a slash (`/`).
diff --git a/docs/content/en/quick-reference/glossary/map.md b/docs/content/en/quick-reference/glossary/map.md
new file mode 100644
index 00000000000..b4605d20be0
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/map.md
@@ -0,0 +1,6 @@
+---
+title: map
+reference: https://go.dev/ref/spec#Map_types
+---
+
+A _map_ is an unordered group of elements, each indexed by a unique key.
diff --git a/docs/content/en/quick-reference/glossary/markdown-attribute.md b/docs/content/en/quick-reference/glossary/markdown-attribute.md
new file mode 100644
index 00000000000..f5c57c728ec
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/markdown-attribute.md
@@ -0,0 +1,6 @@
+---
+title: Markdown attribute
+reference: /content-management/markdown-attributes/
+---
+
+A _Markdown attribute_ is a key-value pair attached to a Markdown element. These attributes are commonly used to add HTML attributes, like `class` and `id`, to the element when it's rendered into HTML. They provide a way to extend the basic Markdown syntax and add more semantic meaning or styling hooks to your content.
diff --git a/docs/content/en/quick-reference/glossary/marshal.md b/docs/content/en/quick-reference/glossary/marshal.md
new file mode 100644
index 00000000000..ce7d769b5ab
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/marshal.md
@@ -0,0 +1,6 @@
+---
+title: marshal
+reference: /functions/transform/remarshal/
+---
+
+To _marshal_ (verb) is to transform a data structure into a serialized object. For example, transforming a [_map_](g) into a JSON string.
diff --git a/docs/content/en/quick-reference/glossary/media-type.md b/docs/content/en/quick-reference/glossary/media-type.md
new file mode 100644
index 00000000000..2994360ef39
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/media-type.md
@@ -0,0 +1,6 @@
+---
+title: media type
+reference: /configuration/media-types/
+---
+
+A _media type_ (formerly known as a MIME type) is a two-part identifier for file formats and transmitted content. For example, the media type for JSON data is `application/json`.
diff --git a/docs/content/en/quick-reference/glossary/method.md b/docs/content/en/quick-reference/glossary/method.md
new file mode 100644
index 00000000000..634cd4b9791
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/method.md
@@ -0,0 +1,5 @@
+---
+title: method
+---
+
+Used within a [_template action_](g) and associated with an [_object_](g), a _method_ takes zero or more [_arguments_](g) and either returns a value or performs an action. For example, `IsHome` is a method on a `Page` object which returns `true` if the current page is the home page. See also [_function_](g).
diff --git a/docs/content/en/quick-reference/glossary/module.md b/docs/content/en/quick-reference/glossary/module.md
new file mode 100644
index 00000000000..30ec49ea4e3
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/module.md
@@ -0,0 +1,5 @@
+---
+title: module
+---
+
+A _module_ is a packaged combination of [_components_](g) which may include [_archetypes_](g), assets, content, data, templates, [_translation tables_](g), and static files. A module may be a [_theme_](g), a complete project, or a smaller collection of one or more components.
diff --git a/docs/content/en/quick-reference/glossary/mount.md b/docs/content/en/quick-reference/glossary/mount.md
new file mode 100644
index 00000000000..1608e750408
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/mount.md
@@ -0,0 +1,7 @@
+---
+title: mount
+params:
+ reference: /configuration/module
+---
+
+A _mount_ is a configuration object that maps a file path (source) to a [_component_](g) path (target) within Hugo's [_unified file system_](g).
diff --git a/docs/content/en/quick-reference/glossary/node.md b/docs/content/en/quick-reference/glossary/node.md
new file mode 100644
index 00000000000..b722e07c87e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/node.md
@@ -0,0 +1,5 @@
+---
+title: node
+---
+
+A _node_ is a class of [_page kinds_](g) including `home`, `section`, `taxonomy`, and `term`.
diff --git a/docs/content/en/quick-reference/glossary/noop.md b/docs/content/en/quick-reference/glossary/noop.md
new file mode 100644
index 00000000000..bd159bb26b5
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/noop.md
@@ -0,0 +1,5 @@
+---
+title: noop
+---
+
+An abbreviated form of "no operation", a _noop_ is a statement that does nothing.
diff --git a/docs/content/en/quick-reference/glossary/object.md b/docs/content/en/quick-reference/glossary/object.md
new file mode 100644
index 00000000000..216609d0d74
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/object.md
@@ -0,0 +1,5 @@
+---
+title: object
+---
+
+An _object_ is a data structure with or without associated [_methods_](g).
diff --git a/docs/content/en/quick-reference/glossary/ordered-taxonomy.md b/docs/content/en/quick-reference/glossary/ordered-taxonomy.md
new file mode 100644
index 00000000000..9b6c1d92cd6
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/ordered-taxonomy.md
@@ -0,0 +1,5 @@
+---
+title: ordered taxonomy
+---
+
+Created by invoking the [`Alphabetical`](/methods/taxonomy/alphabetical/) or [`ByCount`](/methods/taxonomy/bycount/) method on a [`Taxonomy`](g) object, which is a [_map_](g), an _ordered taxonomy_ is a [_slice_](g), where each element is an object that contains the [_term_](g) and a slice of its [_weighted pages_](g).
diff --git a/docs/content/en/quick-reference/glossary/output-format.md b/docs/content/en/quick-reference/glossary/output-format.md
new file mode 100644
index 00000000000..aa5ddbdd770
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/output-format.md
@@ -0,0 +1,6 @@
+---
+title: output format
+reference: /configuration/output-formats/
+---
+
+An _output format_ is a collection of settings that defines how Hugo renders a file when building a site. For example, `html`, `json`, and `rss` are built-in output formats. You can create multiple output formats and control their generation based on [_page kind_](g), or by enabling one or more output formats for specific pages.
diff --git a/docs/content/en/quick-reference/glossary/page-bundle.md b/docs/content/en/quick-reference/glossary/page-bundle.md
new file mode 100644
index 00000000000..af76da2aa94
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/page-bundle.md
@@ -0,0 +1,6 @@
+---
+title: page bundle
+reference: /content-management/page-bundles/
+---
+
+A _page bundle_ is a directory that encapsulates both content and associated [_resources_](g). There are two types of page bundles: [_leaf bundles_](g) and [_branch bundles_](g).
diff --git a/docs/content/en/quick-reference/glossary/page-collection.md b/docs/content/en/quick-reference/glossary/page-collection.md
new file mode 100644
index 00000000000..f078ecf2770
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/page-collection.md
@@ -0,0 +1,5 @@
+---
+title: page collection
+---
+
+A _page collection_ is a slice of `Page` objects.
diff --git a/docs/content/en/quick-reference/glossary/page-kind.md b/docs/content/en/quick-reference/glossary/page-kind.md
new file mode 100644
index 00000000000..ee47fe0103c
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/page-kind.md
@@ -0,0 +1,6 @@
+---
+title: page kind
+reference: /methods/page/kind/
+---
+
+A _page kind_ is a classification of pages, one of `home`, `page`, `section`, `taxonomy`, or `term`.
diff --git a/docs/content/en/quick-reference/glossary/page-relative.md b/docs/content/en/quick-reference/glossary/page-relative.md
new file mode 100644
index 00000000000..d12327bb9cb
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/page-relative.md
@@ -0,0 +1,7 @@
+---
+title: page-relative
+---
+
+A _page-relative_ path is resolved relative to the current page's location in the content hierarchy. These paths do not begin with a leading slash. Examples include `old-name`, `./old-name`, and `../old-name`.
+
+ See also: [_site-relative_](g), [_server-relative_](g).
diff --git a/docs/content/en/quick-reference/glossary/page-resource.md b/docs/content/en/quick-reference/glossary/page-resource.md
new file mode 100644
index 00000000000..dab119eb409
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/page-resource.md
@@ -0,0 +1,5 @@
+---
+title: page resource
+---
+
+A _page resource_ is a file within a [_page bundle_](g).
diff --git a/docs/content/en/quick-reference/glossary/pager.md b/docs/content/en/quick-reference/glossary/pager.md
new file mode 100644
index 00000000000..f58874e4a87
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/pager.md
@@ -0,0 +1,5 @@
+---
+title: pager
+---
+
+Created during [_pagination_](g), a _pager_ contains a subset of a list page and navigation links to other pagers.
diff --git a/docs/content/en/quick-reference/glossary/paginate.md b/docs/content/en/quick-reference/glossary/paginate.md
new file mode 100644
index 00000000000..1caf9a07f6e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/paginate.md
@@ -0,0 +1,5 @@
+---
+title: paginate
+---
+
+To _paginate_ (verb) is to split a list page into two or more subsets.
diff --git a/docs/content/en/quick-reference/glossary/pagination.md b/docs/content/en/quick-reference/glossary/pagination.md
new file mode 100644
index 00000000000..136341dbf6e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/pagination.md
@@ -0,0 +1,6 @@
+---
+title: pagination
+reference: /templates/pagination
+---
+
+The term _pagination_ refers to the process of [_paginating_](g) a list page.
diff --git a/docs/content/en/quick-reference/glossary/paginator.md b/docs/content/en/quick-reference/glossary/paginator.md
new file mode 100644
index 00000000000..4d197348d62
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/paginator.md
@@ -0,0 +1,5 @@
+---
+title: paginator
+---
+
+A _paginator_ is a collection of [_pagers_](g).
diff --git a/docs/content/en/quick-reference/glossary/parameter.md b/docs/content/en/quick-reference/glossary/parameter.md
new file mode 100644
index 00000000000..f1a45ea3473
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/parameter.md
@@ -0,0 +1,5 @@
+---
+title: parameter
+---
+
+A _parameter_ is typically a user-defined key-value pair at the site or page level, but may also refer to a configuration setting or an [_argument_](g).
diff --git a/docs/content/en/quick-reference/glossary/partial-decorator.md b/docs/content/en/quick-reference/glossary/partial-decorator.md
new file mode 100644
index 00000000000..149e17ef242
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/partial-decorator.md
@@ -0,0 +1,8 @@
+---
+title: partial decorator
+reference: /templates/partial-decorators/
+---
+
+A _partial decorator_ is specific type of [_partial_](g) that functions as a [_wrapper component_](g). While a standard partial simply renders data within a fixed template, a decorator uses composition to enclose an entire block of content. It utilizes the [`templates.Inner`][] function as a placeholder to define exactly where that external content should be injected within the wrapper's layout.
+
+ [`templates.Inner`]: /functions/templates/inner/
diff --git a/docs/content/en/quick-reference/glossary/partial.md b/docs/content/en/quick-reference/glossary/partial.md
new file mode 100644
index 00000000000..a5dd5e51a1a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/partial.md
@@ -0,0 +1,5 @@
+---
+title: partial
+---
+
+A _partial_ is a [_template_](g) called from any other template including [_shortcodes_](g), [render hooks](g), and other partials. A partial either renders something or returns something. A partial can also call itself, for example, to [_walk_](g) a data structure.
diff --git a/docs/content/en/quick-reference/glossary/permalink.md b/docs/content/en/quick-reference/glossary/permalink.md
new file mode 100644
index 00000000000..45651de83c1
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/permalink.md
@@ -0,0 +1,5 @@
+---
+title: permalink
+---
+
+A _permalink_ is the absolute URL of a published resource or a rendered page, including scheme and host.
diff --git a/docs/content/en/quick-reference/glossary/pipe.md b/docs/content/en/quick-reference/glossary/pipe.md
new file mode 100644
index 00000000000..f587eeccf9c
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/pipe.md
@@ -0,0 +1,5 @@
+---
+title: pipe
+---
+
+See [_pipeline_](g).
diff --git a/docs/content/en/quick-reference/glossary/pipeline.md b/docs/content/en/quick-reference/glossary/pipeline.md
new file mode 100644
index 00000000000..6dab5257886
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/pipeline.md
@@ -0,0 +1,7 @@
+---
+title: pipeline
+---
+
+Within a [_template action_](g), a _pipeline_ is a possibly chained sequence of values, [_function_](g) calls, or [_method_](g) calls. Functions and methods in the pipeline may take multiple [_arguments_](g).
+
+ A pipeline may be chained by separating a sequence of commands with pipeline characters (`|`). In a chained pipeline, the result of each command is passed as the last argument to the following command. The output of the final command in the pipeline is the value of the pipeline.
diff --git a/docs/content/en/quick-reference/glossary/pretty-url.md b/docs/content/en/quick-reference/glossary/pretty-url.md
new file mode 100644
index 00000000000..b15ef9f0f9f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/pretty-url.md
@@ -0,0 +1,5 @@
+---
+title: pretty URL
+---
+
+A _pretty URL_ is a URL that does not include a file extension.
diff --git a/docs/content/en/quick-reference/glossary/primary-output-format.md b/docs/content/en/quick-reference/glossary/primary-output-format.md
new file mode 100644
index 00000000000..d89fe2563d5
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/primary-output-format.md
@@ -0,0 +1,10 @@
+---
+title: primary output format
+details: /configuration/outputs/
+---
+
+A _primary output format_ defines the default URL returned by the [`Permalink`] and [`RelPermalink`] methods for a given [_page kind_](g). It is specified as the first entry within the [outputs configuration] for that page kind.
+
+[`Permalink`]: /methods/page/permalink/
+[`RelPermalink`]: /methods/page/relpermalink/
+[outputs configuration]: /configuration/outputs/
diff --git a/docs/content/en/quick-reference/glossary/processable-image.md b/docs/content/en/quick-reference/glossary/processable-image.md
new file mode 100644
index 00000000000..eed69f105f2
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/processable-image.md
@@ -0,0 +1,19 @@
+---
+title: processable image
+---
+
+A _processable image_ is an image file characterized by one of the following [_media types_](g):
+
+ - `image/bmp`
+ - `image/gif`
+ - `image/jpeg`
+ - `image/png`
+ - `image/tiff`
+ - `image/webp`
+
+ Hugo can decode and encode these image formats, allowing you to use any of the [resource methods][] applicable to images such as `Width`, `Height`, `Crop`, `Fill`, `Fit`, `Filter`, `Process`, `Resize`, etc.
+
+ Use the [`reflect.IsImageResourceProcessable`][] function to determine if an image can be processed.
+
+ [`reflect.IsImageResourceProcessable`]: /functions/reflect/isimageresourceprocessable/
+ [resource methods]: /methods/resource
diff --git a/docs/content/en/quick-reference/glossary/project.md b/docs/content/en/quick-reference/glossary/project.md
new file mode 100644
index 00000000000..86a3f63d369
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/project.md
@@ -0,0 +1,5 @@
+---
+title: project
+---
+
+A _project_ is a collection of [_components_](g) used to generate one or more [sites](g). While a project may consist of only a single site, Hugo allows a single project to generate a matrix of sites based on [_language_](g), [role](g), and [_version_](g). The project serves as the parent container for the common assets and logic used across all sites within the build.
diff --git a/docs/content/en/quick-reference/glossary/publish.md b/docs/content/en/quick-reference/glossary/publish.md
new file mode 100644
index 00000000000..743e87a3e02
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/publish.md
@@ -0,0 +1,5 @@
+---
+title: publish
+---
+
+See [_build_](g).
diff --git a/docs/content/en/quick-reference/glossary/raw-string-literal.md b/docs/content/en/quick-reference/glossary/raw-string-literal.md
new file mode 100644
index 00000000000..056c0e6fc5a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/raw-string-literal.md
@@ -0,0 +1,6 @@
+---
+title: raw string literal
+reference: https://go.dev/ref/spec#String_literals
+---
+
+A _raw string literal_ is a character sequence between backticks, as in `` `bar` ``. Within the backticks, any character may appear except a backtick. Backslashes have no special meaning and the string may contain newlines. Carriage return characters (`\r`) inside raw string literals are discarded from the raw string value.
diff --git a/docs/content/en/quick-reference/glossary/regular-expression.md b/docs/content/en/quick-reference/glossary/regular-expression.md
new file mode 100644
index 00000000000..82f8d98f549
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/regular-expression.md
@@ -0,0 +1,8 @@
+---
+title: regular expression
+reference:
+---
+
+A _regular expression_, also known as a _regex_, is a sequence of characters that defines a search pattern. Use the [RE2 syntax] when defining regular expressions in your templates or in your project configuration.
+
+ [RE2 syntax]: https://github.com/google/re2/wiki/syntax
diff --git a/docs/content/en/quick-reference/glossary/regular-page.md b/docs/content/en/quick-reference/glossary/regular-page.md
new file mode 100644
index 00000000000..084408e57f4
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/regular-page.md
@@ -0,0 +1,5 @@
+---
+title: regular page
+---
+
+A _regular page_ is a page with the "page" [_page kind_](g). See also [_section page_](g).
diff --git a/docs/content/en/quick-reference/glossary/relative-permalink.md b/docs/content/en/quick-reference/glossary/relative-permalink.md
new file mode 100644
index 00000000000..a272133a38f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/relative-permalink.md
@@ -0,0 +1,5 @@
+---
+title: relative permalink
+---
+
+A _relative permalink_ is the host-relative URL of a published resource or a rendered page.
diff --git a/docs/content/en/quick-reference/glossary/remote-resource.md b/docs/content/en/quick-reference/glossary/remote-resource.md
new file mode 100644
index 00000000000..1637497633d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/remote-resource.md
@@ -0,0 +1,5 @@
+---
+title: remote resource
+---
+
+A _remote resource_ is a file on a remote server, accessible via HTTP or HTTPS.
diff --git a/docs/content/en/quick-reference/glossary/render-hook.md b/docs/content/en/quick-reference/glossary/render-hook.md
new file mode 100644
index 00000000000..2cdb98e05ec
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/render-hook.md
@@ -0,0 +1,6 @@
+---
+title: render hook
+reference: /render-hooks
+---
+
+A _render hook_ is a [_template_](g) that overrides standard Markdown rendering.
diff --git a/docs/content/en/quick-reference/glossary/resource-type.md b/docs/content/en/quick-reference/glossary/resource-type.md
new file mode 100644
index 00000000000..b10cd5925fb
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/resource-type.md
@@ -0,0 +1,5 @@
+---
+title: resource type
+---
+
+A _resource type_ is the main type of a resource's [_media type_](g). Content files such as Markdown, HTML, AsciiDoc, Pandoc, reStructuredText, and Emacs Org Mode have resource type `page`. Other resource types include `image`, `text`, `video`, and others. Retrieve the resource type using the [`ResourceType`](/methods/resource/resourcetype/) method on a `Resource` object.
diff --git a/docs/content/en/quick-reference/glossary/resource.md b/docs/content/en/quick-reference/glossary/resource.md
new file mode 100644
index 00000000000..0864bc43d65
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/resource.md
@@ -0,0 +1,7 @@
+---
+title: resource
+---
+
+A _resource_ is any file consumed by the build process to augment or generate content, structure, behavior, or presentation. For example: images, videos, content snippets, CSS, Sass, JavaScript, and data.
+
+ Hugo supports three types of resources: [_global resources_](g), [_page resources_](g), and [_remote resources_](g).
diff --git a/docs/content/en/quick-reference/glossary/role.md b/docs/content/en/quick-reference/glossary/role.md
new file mode 100644
index 00000000000..f491d361091
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/role.md
@@ -0,0 +1,7 @@
+---
+title: role
+---
+
+A _role_ is a [_dimension_](g) that allows a logical page to be served in different forms depending on the target audience. While [_language_](g) focuses on localization and [_version_](g) focuses on lifecycle, the role dimension allows a project to generate variations of a page without duplicating content.
+
+ See also: [_default role_](g).
diff --git a/docs/content/en/quick-reference/glossary/rune-literal.md b/docs/content/en/quick-reference/glossary/rune-literal.md
new file mode 100644
index 00000000000..8a19b489ba4
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/rune-literal.md
@@ -0,0 +1,10 @@
+---
+title: rune literal
+reference: https://go.dev/ref/spec#Rune_literals
+---
+
+A _rune literal_ is the textual representation of a [_rune_](g) within a [_template_](g). It consists of a character sequence enclosed in single quotes, such as `'x'`, `'\n'`, or `'ü'`.
+
+ Unlike [_interpreted string literals_](g) or [_raw string literals_](g), which represent a sequence of characters, a _rune literal_ represents a single [_integer_](g) value identifying a Unicode [code point][]. Within the quotes, any character may appear except a newline or an unescaped single quote. Multi-character sequences starting with a backslash (`\`) can be used to encode specific values, such as `\n` for a newline or `\u00FC` for the letter `ü`.
+
+ [code point]: https://en.wikipedia.org/wiki/Code_point
diff --git a/docs/content/en/quick-reference/glossary/rune.md b/docs/content/en/quick-reference/glossary/rune.md
new file mode 100644
index 00000000000..74dfa4b5b8d
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/rune.md
@@ -0,0 +1,11 @@
+---
+title: rune
+---
+
+A _rune_ is a way to represent a single character as a number. In Hugo and Go, text is stored as a sequence of bytes. However, while a basic letter like `x` uses only one byte, a single character such as the German `ü` is made up of multiple bytes. A _rune_ represents the entire character as one single value, no matter how many bytes it takes to store it.
+
+ Technically, a _rune_ is just another name for a 32-bit [_integer_](g). It stores the Unicode [code point][], which is the official number assigned to that specific character.
+
+ When you want to manipulate text character-by-character rather than by raw data size, you are working with _runes_. You write a _rune_ in a [_template_](g) using a [_rune literal_](g), such as `'x'`, `'\n'`, or `'ü'`.
+
+ [code point]: https://en.wikipedia.org/wiki/Code_point
diff --git a/docs/content/en/quick-reference/glossary/scalar.md b/docs/content/en/quick-reference/glossary/scalar.md
new file mode 100644
index 00000000000..63ae27d3f12
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/scalar.md
@@ -0,0 +1,5 @@
+---
+title: scalar
+---
+
+A _scalar_ is a single value, one of [_string_](g), [_integer_](g), [floating point](g), or [_boolean_](g).
diff --git a/docs/content/en/quick-reference/glossary/scope.md b/docs/content/en/quick-reference/glossary/scope.md
new file mode 100644
index 00000000000..5230340bdea
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/scope.md
@@ -0,0 +1,5 @@
+---
+title: scope
+---
+
+The term _scope_ refers to the specific region of code where a [_variable_](g) or [_object_](g) is accessible. For example, a variable initialized in one [_template_](g) is not available within another.
diff --git a/docs/content/en/quick-reference/glossary/scratch-pad.md b/docs/content/en/quick-reference/glossary/scratch-pad.md
new file mode 100644
index 00000000000..4792ce12ea2
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/scratch-pad.md
@@ -0,0 +1,5 @@
+---
+title: scratch pad
+---
+
+Conceptually, a _scratch pad_ is a [_map_](g) with [_methods_](g) to set, get, update, and delete values. Attach the data structure to a `Page` or `Site` object using the [`Store`](/methods/page/store/) method, or create a locally scoped scratch pad using the [`newScratch`](/functions/collections/newscratch/) function.
diff --git a/docs/content/en/quick-reference/glossary/section-page.md b/docs/content/en/quick-reference/glossary/section-page.md
new file mode 100644
index 00000000000..fd84ed5f21b
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/section-page.md
@@ -0,0 +1,5 @@
+---
+title: section page
+---
+
+A _section page_ is a page with the "section" [_page kind_](g). Typically a listing of [_regular pages_](g) and/or other section pages within the current [_section_](g).
diff --git a/docs/content/en/quick-reference/glossary/section.md b/docs/content/en/quick-reference/glossary/section.md
new file mode 100644
index 00000000000..45d1203e0fd
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/section.md
@@ -0,0 +1,5 @@
+---
+title: section
+---
+
+A _section_ is a top-level content directory or any content directory containing an `_index.md` file.
diff --git a/docs/content/en/quick-reference/glossary/seed.md b/docs/content/en/quick-reference/glossary/seed.md
new file mode 100644
index 00000000000..bbb6e48091a
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/seed.md
@@ -0,0 +1,6 @@
+---
+title: seed
+reference: https://en.wikipedia.org/wiki/Random_seed
+---
+
+A _seed_ is the starting point for a computer algorithm that generates pseudo-random numbers. Using the same seed will always produce the identical sequence of numbers, which is essential for reproducibility in areas like simulations, cryptography, and video games.
diff --git a/docs/content/en/quick-reference/glossary/segment.md b/docs/content/en/quick-reference/glossary/segment.md
new file mode 100644
index 00000000000..21c62556b72
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/segment.md
@@ -0,0 +1,7 @@
+---
+title: segment
+params:
+ reference: /configuration/segments/
+---
+
+A _segment_ is a subset of a site, filtered by [_logical path_](g), [_sites matrix_](g), [_page kind_](g), or [_output format_](g).
diff --git a/docs/content/en/quick-reference/glossary/server-relative.md b/docs/content/en/quick-reference/glossary/server-relative.md
new file mode 100644
index 00000000000..8783a25aff3
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/server-relative.md
@@ -0,0 +1,9 @@
+---
+title: server-relative
+---
+
+A _server-relative_ path is the final path from the web server's root, used in the generated site. These paths always begin with a leading slash and account for the [`baseURL`] and [_content dimension_](g) prefixes such as language, [_role_](g), or version. For example, `/en/examples/old-name/` is a server-relative path.
+
+ See also: [_page-relative_](g), [_site-relative_](g).
+
+ [`baseURL`]: /configuration/all/#baseurl
diff --git a/docs/content/en/quick-reference/glossary/shortcode.md b/docs/content/en/quick-reference/glossary/shortcode.md
new file mode 100644
index 00000000000..a6503ea63ca
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/shortcode.md
@@ -0,0 +1,6 @@
+---
+title: shortcode
+reference: /content-management/shortcodes
+---
+
+A _shortcode_ is a [_template_](g) invoked within markup, accepting any number of [_arguments_](g). They can be used with any [_content format_](g) to insert elements such as videos, images, and social media embeds into your content.
diff --git a/docs/content/en/quick-reference/glossary/site-relative.md b/docs/content/en/quick-reference/glossary/site-relative.md
new file mode 100644
index 00000000000..b434fd1c2e3
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/site-relative.md
@@ -0,0 +1,7 @@
+---
+title: site-relative
+---
+
+A _site-relative_ path is resolved relative to the root of the content directory. These paths begin with a leading slash. For example, `/old-name` is a site-relative path.
+
+ See also: [_page-relative_](g), [_server-relative_](g).
diff --git a/docs/content/en/quick-reference/glossary/site-root.md b/docs/content/en/quick-reference/glossary/site-root.md
new file mode 100644
index 00000000000..1066acb4d14
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/site-root.md
@@ -0,0 +1,13 @@
+---
+title: site root
+---
+
+The _site root_ is the root directory of the current [_site_](g), relative to the [`publishDir`][]. The _site root_ may include one or more content [_dimension_](g) prefixes, such as [_language_](g), [_role_](g), or [_version_](g).
+
+ Project description|Site root examples
+ :--|:--|:--
+ Monolingual|`/`, `/guest`, `/guest/v1.2.3`
+ Multilingual single-host|`/en`, `/guest/en`, `/guest/v1.2.3/en`
+ Multilingual multihost|`/en`, `/en/guest`, `/en/guest/v1.2.3`
+
+ [`publishDir`]: /configuration/all/#publishdir
diff --git a/docs/content/en/quick-reference/glossary/site.md b/docs/content/en/quick-reference/glossary/site.md
new file mode 100644
index 00000000000..f3be3a1f3e2
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/site.md
@@ -0,0 +1,5 @@
+---
+title: site
+---
+
+A _site_ is a specific instance of your [_project_](g) representing a unique combination of [_language_](g), [_role_](g), and [_version_](g). While a simple project may consist of only a single site, Hugo's multidimensional content model allows a single codebase to generate a matrix of sites simultaneously.
diff --git a/docs/content/en/quick-reference/glossary/sites-complements.md b/docs/content/en/quick-reference/glossary/sites-complements.md
new file mode 100644
index 00000000000..80213e1f923
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/sites-complements.md
@@ -0,0 +1,5 @@
+---
+title: sites complements
+---
+
+A _sites complements_ is a configuration object defined in content front matter or a file mount. The links will point to the complementary [_sites_](g). The configuration is structured as a map of [_glob slices_](g).
diff --git a/docs/content/en/quick-reference/glossary/sites-matrix.md b/docs/content/en/quick-reference/glossary/sites-matrix.md
new file mode 100644
index 00000000000..8e6838d4e42
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/sites-matrix.md
@@ -0,0 +1,7 @@
+---
+title: sites matrix
+---
+
+A _sites matrix_ is a configuration object defined in content front matter or a file mount to precisely control which [_sites_](g) the content should be generated for. When defined in a file mount for templates, it controls which sites the template will be applied to. In Hugo multidimensional content model, the matrix defines the intersection of three dimensions: [_language_](g), [_role_](g), and [_version_](g). The configuration is structured as a map of [_glob slices_](g).
+
+ See also [_sites complements_](g), [front matter: sites](/content-management/front-matter/#sites), [module mounts: sites](/configuration/module/#sites), and [segments: sites](/configuration/segments/#sites).
diff --git a/docs/content/en/quick-reference/glossary/slice.md b/docs/content/en/quick-reference/glossary/slice.md
new file mode 100644
index 00000000000..5d83bed6b85
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/slice.md
@@ -0,0 +1,6 @@
+---
+title: slice
+reference: https://go.dev/ref/spec#Slice_types
+---
+
+A _slice_ is a numbered sequence of elements. Unlike Go's [_array_](g) data type, slices are dynamically sized. [_Elements_](g) within a slice can be [_scalars_](g), [_arrays_](g), [_maps_](g), pages, or other slices.
diff --git a/docs/content/en/quick-reference/glossary/string.md b/docs/content/en/quick-reference/glossary/string.md
new file mode 100644
index 00000000000..54ed4c1d145
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/string.md
@@ -0,0 +1,5 @@
+---
+title: string
+---
+
+A _string_ is a sequence of bytes. For example, `"What is 6 times 7?"`.
diff --git a/docs/content/en/quick-reference/glossary/taxonomic-weight.md b/docs/content/en/quick-reference/glossary/taxonomic-weight.md
new file mode 100644
index 00000000000..90bd804e08b
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/taxonomic-weight.md
@@ -0,0 +1,6 @@
+---
+title: taxonomic weight
+reference: /content-management/taxonomies/#taxonomic-weight
+---
+
+Defined in front matter and unique to each taxonomy, a _taxonomic weight_ is a [_weight_](g) that determines the sort order of page collections contained within a [`Taxonomy`](g) object.
diff --git a/docs/content/en/quick-reference/glossary/taxonomy-object.md b/docs/content/en/quick-reference/glossary/taxonomy-object.md
new file mode 100644
index 00000000000..525446a8e49
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/taxonomy-object.md
@@ -0,0 +1,5 @@
+---
+title: taxonomy object
+---
+
+A _taxonomy object_ is a [_map_](g) of [_terms_](g) and the [_weighted pages_](g) associated with each term.
diff --git a/docs/content/en/quick-reference/glossary/taxonomy-page.md b/docs/content/en/quick-reference/glossary/taxonomy-page.md
new file mode 100644
index 00000000000..6b62f0912e8
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/taxonomy-page.md
@@ -0,0 +1,5 @@
+---
+title: taxonomy page
+---
+
+A _taxonomy page_ is a page with the "taxonomy" [_page kind_](g). Typically a listing of [_terms_](g) within a given [_taxonomy_](g).
diff --git a/docs/content/en/quick-reference/glossary/taxonomy.md b/docs/content/en/quick-reference/glossary/taxonomy.md
new file mode 100644
index 00000000000..ce35a634cfd
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/taxonomy.md
@@ -0,0 +1,5 @@
+---
+title: taxonomy
+reference: /content-management/taxonomies
+---
+A _taxonomy_ is a group of related [_terms_](g) used to classify content. For example, a "colors" taxonomy might include the terms "red", "green", and "blue".
diff --git a/docs/content/en/quick-reference/glossary/template-action.md b/docs/content/en/quick-reference/glossary/template-action.md
new file mode 100644
index 00000000000..e40c228fe89
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/template-action.md
@@ -0,0 +1,6 @@
+---
+title: template action
+reference: https://pkg.go.dev/text/template#hdr-Actions
+---
+
+A data evaluation or control structure within a [_template_](g), delimited by `{{` and `}}`.
diff --git a/docs/content/en/quick-reference/glossary/template.md b/docs/content/en/quick-reference/glossary/template.md
new file mode 100644
index 00000000000..d442c0a224e
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/template.md
@@ -0,0 +1,6 @@
+---
+title: template
+reference: /templates
+---
+
+A _template_ is a file with [_template actions_](g), located within the `layouts` directory of a project, theme, or module.
diff --git a/docs/content/en/quick-reference/glossary/term-page.md b/docs/content/en/quick-reference/glossary/term-page.md
new file mode 100644
index 00000000000..78eabc11f66
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/term-page.md
@@ -0,0 +1,5 @@
+---
+title: term page
+---
+
+A _term page_ is a page with the "term" [_page kind_](g). Typically a listing of [_regular pages_](g) and [_section pages_](g) with a given [_term_](g).
diff --git a/docs/content/en/quick-reference/glossary/term.md b/docs/content/en/quick-reference/glossary/term.md
new file mode 100644
index 00000000000..cafd9258567
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/term.md
@@ -0,0 +1,6 @@
+---
+title: term
+reference: /content-management/taxonomies
+---
+
+A _term_ is a member of a [_taxonomy_](g), used to classify content.
diff --git a/docs/content/en/quick-reference/glossary/theme.md b/docs/content/en/quick-reference/glossary/theme.md
new file mode 100644
index 00000000000..4c6d15ecb18
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/theme.md
@@ -0,0 +1,5 @@
+---
+title: theme
+---
+
+A _theme_ is a [_module_](g) that delivers a complete set of [_components_](g) defining a site's layout, presentation, and behavior. While every theme is a module, not every module is a theme.
diff --git a/docs/content/en/quick-reference/glossary/token.md b/docs/content/en/quick-reference/glossary/token.md
new file mode 100644
index 00000000000..f8c12d57077
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/token.md
@@ -0,0 +1,5 @@
+---
+title: token
+---
+
+A _token_ is an identifier within a format string, beginning with a colon and replaced with a value when rendered. For example, use tokens in format strings for both [permalinks](/content-management/urls/#permalinks) and [dates](/functions/time/format/#localization).
diff --git a/docs/content/en/quick-reference/glossary/translation-table.md b/docs/content/en/quick-reference/glossary/translation-table.md
new file mode 100644
index 00000000000..a48febb67ce
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/translation-table.md
@@ -0,0 +1,5 @@
+---
+title: translation table
+---
+
+A _translation table_ is a data file within the `i18n` directory, holding translations for a single language.
diff --git a/docs/content/en/quick-reference/glossary/type.md b/docs/content/en/quick-reference/glossary/type.md
new file mode 100644
index 00000000000..18b9ab5597f
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/type.md
@@ -0,0 +1,5 @@
+---
+title: type
+---
+
+See [_content type_](g).
diff --git a/docs/content/en/quick-reference/glossary/ugly-url.md b/docs/content/en/quick-reference/glossary/ugly-url.md
new file mode 100644
index 00000000000..4083f937838
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/ugly-url.md
@@ -0,0 +1,5 @@
+---
+title: ugly URL
+---
+
+An _ugly URL_ is a URL that includes a file extension.
diff --git a/docs/content/en/quick-reference/glossary/unified-file-system.md b/docs/content/en/quick-reference/glossary/unified-file-system.md
new file mode 100644
index 00000000000..4e5f430d6f4
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/unified-file-system.md
@@ -0,0 +1,5 @@
+---
+title: unified file system
+---
+
+Hugo's _unified file system_ provides a layered view for each of its seven [_component_](g) types: [_archetypes_](g), assets, content, data, templates, [_translation tables_](g), and static files. Project component directories are layered over [_module_](g) component directories. When multiple layers contain the same file, Hugo uses the version from the highest layer.
diff --git a/docs/content/en/quick-reference/glossary/unmarshal.md b/docs/content/en/quick-reference/glossary/unmarshal.md
new file mode 100644
index 00000000000..d449b0b8c86
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/unmarshal.md
@@ -0,0 +1,6 @@
+---
+title: unmarshal
+reference: /functions/transform/unmarshal/
+---
+
+To _unmarshal_ (verb) is to transform a serialized object into a data structure. For example, transforming a JSON file into a [_map_](g) that you can access within a template.
diff --git a/docs/content/en/quick-reference/glossary/utc.md b/docs/content/en/quick-reference/glossary/utc.md
new file mode 100644
index 00000000000..a4627be5a09
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/utc.md
@@ -0,0 +1,6 @@
+---
+title: UTC
+reference: https://en.wikipedia.org/wiki/Coordinated_Universal_Time
+---
+
+_UTC_ is an abbreviation for Coordinated Universal Time, the primary time standard used worldwide to regulate clocks and time. It is the basis for civil time and time zones across the globe.
diff --git a/docs/content/en/quick-reference/glossary/variable.md b/docs/content/en/quick-reference/glossary/variable.md
new file mode 100644
index 00000000000..f8139a41f33
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/variable.md
@@ -0,0 +1,5 @@
+---
+title: variable
+---
+
+A _variable_ is a user-defined [_identifier_](g) prepended with a `$` symbol, representing a value of any data type, initialized or assigned within a [_template action_](g). For example, `$foo` and `$bar` are variables.
diff --git a/docs/content/en/quick-reference/glossary/vendor.md b/docs/content/en/quick-reference/glossary/vendor.md
new file mode 100644
index 00000000000..f745a4e1544
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/vendor.md
@@ -0,0 +1,7 @@
+---
+title: vendor
+---
+
+To _vendor_ (verb) in a software context is the process of including the source code of third-party dependencies directly within your own project's repository, rather than downloading them on the fly from an external package manager.
+
+ When you are asked to "vendor the dependencies into the project root," you are being told to move those external libraries from a temporary cache into a dedicated folder that gets committed to your version control system.
diff --git a/docs/content/en/quick-reference/glossary/version.md b/docs/content/en/quick-reference/glossary/version.md
new file mode 100644
index 00000000000..62eb8f35ae6
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/version.md
@@ -0,0 +1,9 @@
+---
+title: version
+---
+
+A _version_ is a [_dimension_](g) that represents a specific iteration, release, or lifecycle stage of content. While [_language_](g) focuses on localization and [_role_](g) focuses on audience, the version dimension allows you to maintain multiple states of the same content simultaneously using [semantic versioning].
+
+ See also: [_default version_](g).
+
+ [semantic versioning]: https://semver.org/
diff --git a/docs/content/en/quick-reference/glossary/walk.md b/docs/content/en/quick-reference/glossary/walk.md
new file mode 100644
index 00000000000..2b2a84462b1
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/walk.md
@@ -0,0 +1,5 @@
+---
+title: walk
+---
+
+To _walk_ (verb) is to recursively traverse a nested data structure. For example, rendering a multilevel menu.
diff --git a/docs/content/en/quick-reference/glossary/weight.md b/docs/content/en/quick-reference/glossary/weight.md
new file mode 100644
index 00000000000..01b91fe5258
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/weight.md
@@ -0,0 +1,5 @@
+---
+title: weight
+---
+
+A _weight_ is a numeric value used to position an element within a sorted [_collection_](g). Assign weights using non-zero integers. Lighter items float to the top, while heavier items sink to the bottom. Unweighted or zero-weighted elements are placed at the end of the collection. Weights are typically assigned to pages, menu entries, languages, [_roles_](g), versions, and output formats.
diff --git a/docs/content/en/quick-reference/glossary/weighted-page.md b/docs/content/en/quick-reference/glossary/weighted-page.md
new file mode 100644
index 00000000000..e6cf8d6dbde
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/weighted-page.md
@@ -0,0 +1,5 @@
+---
+title: weighted page
+---
+
+Contained within a [_taxonomy object_](g), a _weighted page_ is a [_map_](g) with two [_elements_](g): a `Page` object, and its [_taxonomic weight_](g) as defined in front matter. Access the elements using the `Page` and `Weight` keys.
diff --git a/docs/content/en/quick-reference/glossary/workspace.md b/docs/content/en/quick-reference/glossary/workspace.md
new file mode 100644
index 00000000000..6eda9bab3c7
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/workspace.md
@@ -0,0 +1,7 @@
+---
+title: workspace
+params:
+ reference: /hugo-modules/use-modules/#workspace
+---
+
+A _workspace_ is a collection of [_modules_](g) on disk.
diff --git a/docs/content/en/quick-reference/glossary/wrapper-component.md b/docs/content/en/quick-reference/glossary/wrapper-component.md
new file mode 100644
index 00000000000..ada5d466e53
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/wrapper-component.md
@@ -0,0 +1,7 @@
+---
+title: wrapper component
+---
+
+A _wrapper component_ is an interface pattern that encloses other content through composition rather than fixed parameters. It provides a reusable shell to handle layout, styling, or logic, allowing the calling template to inject arbitrary content into the component's interior.
+
+ See also: [_partial decorator_](g).
diff --git a/docs/content/en/quick-reference/glossary/zero-time.md b/docs/content/en/quick-reference/glossary/zero-time.md
new file mode 100644
index 00000000000..9701f391287
--- /dev/null
+++ b/docs/content/en/quick-reference/glossary/zero-time.md
@@ -0,0 +1,5 @@
+---
+title: zero time
+---
+
+The _zero time_ is January 1, 0001, 00:00:00 UTC. Formatted per [RFC3339](https://www.rfc-editor.org/rfc/rfc3339) the _zero time_ is 0001-01-01T00:00:00-00:00.
diff --git a/docs/content/en/quick-reference/methods.md b/docs/content/en/quick-reference/methods.md
new file mode 100644
index 00000000000..524713c1f47
--- /dev/null
+++ b/docs/content/en/quick-reference/methods.md
@@ -0,0 +1,8 @@
+---
+title: Methods
+description: A quick reference guide to Hugo's methods, grouped by object.
+categories: []
+keywords: []
+---
+
+{{% quick-reference section="methods" %}}
diff --git a/docs/content/en/quick-reference/page-collections.md b/docs/content/en/quick-reference/page-collections.md
new file mode 100644
index 00000000000..14bededbcac
--- /dev/null
+++ b/docs/content/en/quick-reference/page-collections.md
@@ -0,0 +1,38 @@
+---
+title: Page collections
+description: A quick reference guide to Hugo's page collections.
+categories: []
+keywords: []
+---
+
+## Page
+
+Use these `Page` methods when rendering lists on [section pages](g), [taxonomy pages](g), [term pages](g), and the home page.
+
+{{% render-list-of-pages-in-section path=/methods/page filter=methods_page_page_collections filterType=include titlePrefix=PAGE. %}}
+
+## Site
+
+Use these `Site` methods when rendering lists on any page.
+
+{{% render-list-of-pages-in-section path=/methods/site filter=methods_site_page_collections filterType=include titlePrefix=SITE. %}}
+
+## Filter
+
+Use the [`where`][] function to filter page collections.
+
+## Sort
+
+{{% glossary-term "default sort order" %}}
+
+Use these methods to sort page collections by different criteria.
+
+{{% render-list-of-pages-in-section path=/methods/pages filter=methods_pages_sort filterType=include titlePrefix=. titlePrefix=PAGES. %}}
+
+## Group
+
+Use these methods to group page collections.
+
+{{% render-list-of-pages-in-section path=/methods/pages filter=methods_pages_group filterType=include titlePrefix=. titlePrefix=PAGES. %}}
+
+[`where`]: /functions/collections/where/
diff --git a/docs/content/en/quick-reference/syntax-highlighting-styles.md b/docs/content/en/quick-reference/syntax-highlighting-styles.md
new file mode 100644
index 00000000000..3ba6fd833b9
--- /dev/null
+++ b/docs/content/en/quick-reference/syntax-highlighting-styles.md
@@ -0,0 +1,35 @@
+---
+title: Syntax highlighting styles
+description: Highlight code examples using one of these styles.
+categories: []
+keywords: [highlight]
+---
+
+## Overview
+
+Hugo provides several methods to add syntax highlighting to code examples:
+
+- Use the [`transform.Highlight`] function within your templates
+- Use the [`highlight`] shortcode with any [content format](g)
+- Use [fenced code blocks] with the Markdown content format
+
+Regardless of method, use any of the syntax highlighting styles below.
+
+Set the default syntax highlighting style in your project configuration:
+
+{{< code-toggle file=hugo >}}
+[markup.highlight]
+style = 'monokai'
+{{< /code-toggle >}}
+
+See [configure Markup](/configuration/markup/#highlight).
+
+[`transform.Highlight`]: /functions/transform/highlight/
+[`highlight`]: /shortcodes/highlight/
+[fenced code blocks]: /content-management/syntax-highlighting/#fenced-code-blocks
+
+## Styles
+
+This gallery demonstrates the application of each syntax highlighting style with code examples written in different programming languages.
+
+{{% syntax-highlighting-styles %}}
diff --git a/docs/content/en/readfiles/README.md b/docs/content/en/readfiles/README.md
deleted file mode 100644
index 4b10f0e4755..00000000000
--- a/docs/content/en/readfiles/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# readdirs Directory for Reusable Content
-
-Files in this directory are:
-
-1. Used in *more than one place* within the Hugo docs
-2. Used in Examples of readdir (i.e. in local file templates)
-
-These files are called using the [`readfile` shortcode (source)](../layouts/readfile.html).
-
-You can call this shortcode in the docs as follows:
-
-
-{{% readfile file="/path/to/file.txt" markdown="true" %}}
-
-
-`markdown="true"` is optional (default = `"false"`) and parses the string through the Blackfriday renderer.
diff --git a/docs/content/en/readfiles/dateformatting.md b/docs/content/en/readfiles/dateformatting.md
deleted file mode 100644
index 42138dd8aca..00000000000
--- a/docs/content/en/readfiles/dateformatting.md
+++ /dev/null
@@ -1,87 +0,0 @@
-Go templates [format your dates][time] according to a single reference time:
-
-```
-Mon Jan 2 15:04:05 MST 2006
-```
-
-You can think of `MST` as `07`, thus making the reference format string a sequence of numbers. The following is [taken directly from the Go docs][gdex]:
-
-```
-Jan 2 15:04:05 2006 MST
- 1 2 3 4 5 6 -7
-```
-
-### Hugo Date Templating Reference
-
-Each of the following examples show the reference formatting string followed by the string Hugo will output in your HTML.
-
-Note that the examples were rendered and tested in [CST][] and pull from a single example date you might have in your content's front matter:
-
-```
-date: 2017-03-03T14:15:59-06:00
-```
-
-`.Date` (i.e. called via [page variable][pagevars])
-: **Returns**: `2017-03-03 14:15:59 -0600 CST`
-
-`"Monday, January 2, 2006"`
-: **Returns**: `Friday, March 3, 2017`
-
-`"Mon Jan 2 2006"`
-: **Returns**: `Fri Mar 3 2017`
-
-`"January 2nd"`
-: **Returns**: `March 3rd`
-
-`"January 2006"`
-: **Returns**: `March 2017`
-
-`"2006-01-02"`
-: **Returns**: `2017-03-03`
-
-`"Monday"`
-: **Returns**: `Friday`
-
-`"02 Jan 06 15:04 MST"` (RFC822)
-: **Returns**: `03 Mar 17 14:15 CST`
-
-`"02 Jan 06 15:04 -0700"` (RFC822Z)
-: **Returns**: `03 Mar 17 14:15 -0600`
-
-`"Mon, 02 Jan 2006 15:04:05 MST"` (RFC1123)
-: **Returns**: `Fri, 03 Mar 2017 14:15:59 CST`
-
-`"Mon, 02 Jan 2006 15:04:05 -0700"` (RFC339)
-: **Returns**: `Fri, 03 Mar 2017 14:15:59 -0600`
-
-### Cardinal Numbers and Ordinal Abbreviations
-
-Spelled-out cardinal numbers (e.g. "one", "two", and "three") and ordinal abbreviations (e.g. "1st", "2nd", and "3rd") are not currently supported.
-
-To continue with the example above:
-
-```
-{{.Date.Format "Jan 2nd 2006"}}
-```
-
-Hugo assumes you want to append `nd` as a string to the day of the month and outputs the following:
-
-```
-Mar 3nd 2017
-```
-
-### Use `.Local` and `.UTC`
-
-In conjunction with the [`dateFormat` function][dateFormat], you can also convert your dates to `UTC` or to local timezones:
-
-`{{ dateFormat "02 Jan 06 15:04 MST" .Date.UTC }}`
-: **Returns**: `03 Mar 17 20:15 UTC`
-
-`{{ dateFormat "02 Jan 06 15:04 MST" .Date.Local }}`
-: **Returns**: `03 Mar 17 14:15 CST`
-
-[CST]: https://en.wikipedia.org/wiki/Central_Time_Zone
-[dateFormat]: /functions/dateformat/
-[gdex]: https://golang.org/pkg/time/#example_Time_Format
-[pagevars]: /variables/page/
-[time]: https://golang.org/pkg/time/
\ No newline at end of file
diff --git a/docs/content/en/readfiles/index.md b/docs/content/en/readfiles/index.md
deleted file mode 100644
index 3d65eaa0ff9..00000000000
--- a/docs/content/en/readfiles/index.md
+++ /dev/null
@@ -1,3 +0,0 @@
----
-headless: true
----
\ No newline at end of file
diff --git a/docs/content/en/readfiles/pages-vs-site-pages.md b/docs/content/en/readfiles/pages-vs-site-pages.md
deleted file mode 100644
index df5c7d26e97..00000000000
--- a/docs/content/en/readfiles/pages-vs-site-pages.md
+++ /dev/null
@@ -1,34 +0,0 @@
-* A _regular_ page is a "post" page or a "content" page.
- * A _leaf bundle_ is a regular page.
-* A _list_ page can list _regular_ pages and other _list_ pages. Some
- examples are: homepage, section pages, _taxonomy_ (`/tags/`) and
- _term_ (`/tags/foo/`) pages.
- * A _branch bundle_ is a _list_ page.
-
-`.Site.Pages`
-: Collection of **all** pages of the site: _regular_ pages,
- sections, taxonomies, etc. -- Superset of everything!
-
-`.Site.RegularPages`
-: Collection of only _regular_ pages.
-
-The above `.Site. ..` page collections can be accessed from any scope in
-the templates.
-
-Below variables return a collection of pages only from the scope of
-the current _list_ page:
-
-`.Pages`
-: Collection of _regular_ pages and _only first-level_
- section pages under the current _list_ page.
-
-`.RegularPages`
-: Collection of only _regular_ pages under the
- current _list_ page. This **excludes** regular pages in nested sections/_list_ pages (those are subdirectories with an `_index.md` file.
-
-`.RegularPagesRecursive`
-: {{< new-in "0.68.0" >}} Collection of **all** _regular_ pages under a _list_ page. This **includes** regular pages in nested sections/_list_ pages.
-
-Note
-: From the scope of _regular_ pages, `.Pages` and
- `.RegularPages` return an empty slice.
diff --git a/docs/content/en/readfiles/sectionvars.md b/docs/content/en/readfiles/sectionvars.md
deleted file mode 100644
index 45aaff1f3f4..00000000000
--- a/docs/content/en/readfiles/sectionvars.md
+++ /dev/null
@@ -1,23 +0,0 @@
-.CurrentSection
-: The page's current section. The value can be the page itself if it is a section or the homepage.
-
-.FirstSection
-: The page's first section below root, e.g. `/docs`, `/blog` etc.
-
-.InSection $anotherPage
-: Whether the given page is in the current section.
-
-.IsAncestor $anotherPage
-: Whether the current page is an ancestor of the given page.
-
-.IsDescendant $anotherPage
-: Whether the current page is a descendant of the given page.
-
-.Parent
-: A section's parent section or a page's section.
-
-.Section
-: The [section](/content-management/sections/) this content belongs to. **Note:** For nested sections, this is the first path element in the directory, for example, `/blog/funny/mypost/ => blog`.
-
-.Sections
-: The [sections](/content-management/sections/) below this content.
diff --git a/docs/content/en/readfiles/testing.txt b/docs/content/en/readfiles/testing.txt
deleted file mode 100644
index 6428710e3cf..00000000000
--- a/docs/content/en/readfiles/testing.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-##### Hello World!
-
-Testing one, **two**, *three*. Don't delete this sample file used in the [templates](/templates/) section of the Hugo docs.
\ No newline at end of file
diff --git a/docs/content/en/render-hooks/_index.md b/docs/content/en/render-hooks/_index.md
new file mode 100644
index 00000000000..a957cb4cf6e
--- /dev/null
+++ b/docs/content/en/render-hooks/_index.md
@@ -0,0 +1,8 @@
+---
+title: Render hooks
+description: Create render hook templates to override the rendering of Markdown to HTML.
+categories: []
+keywords: []
+weight: 10
+aliases: [/templates/render-hooks/]
+---
diff --git a/docs/content/en/render-hooks/blockquotes.md b/docs/content/en/render-hooks/blockquotes.md
new file mode 100755
index 00000000000..77e7059c709
--- /dev/null
+++ b/docs/content/en/render-hooks/blockquotes.md
@@ -0,0 +1,183 @@
+---
+title: Blockquote render hooks
+linkTitle: Blockquotes
+description: Create blockquote render hook templates to override the rendering of Markdown blockquotes to HTML.
+categories: []
+keywords: []
+---
+
+{{< new-in 0.132.0 />}}
+
+## Context
+
+Blockquote _render hook_ templates receive the following [context](g):
+
+AlertType
+: (`string`) Applicable when [`Type`](#type) is `alert`, this is the alert type converted to lowercase. See the [alerts](#alerts) section below.
+
+AlertTitle
+: {{< new-in 0.134.0 />}}
+: (`template.HTML`) Applicable when [`Type`](#type) is `alert`, this is the alert title. See the [alerts](#alerts) section below.
+
+AlertSign
+: {{< new-in 0.134.0 />}}
+: (`string`) Applicable when [`Type`](#type) is `alert`, this is the alert sign. Typically used to indicate whether an alert is graphically foldable, this is one of `+`, `-`, or an empty string. See the [alerts](#alerts) section below.
+
+Attributes
+: (`map`) The [Markdown attributes], available if you configure your site as follows:
+
+ {{< code-toggle file=hugo >}}
+ [markup.goldmark.parser.attribute]
+ block = true
+ {{< /code-toggle >}}
+
+Ordinal
+: (`int`) The zero-based ordinal of the blockquote on the page.
+
+Page
+: (`page`) A reference to the current page.
+
+PageInner
+: (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details).
+
+Position
+: (`string`) The position of the blockquote within the page content.
+
+Text
+: (`template.HTML`) The blockquote text, excluding the first line if [`Type`](#type) is `alert`. See the [alerts](#alerts) section below.
+
+Type
+: (`string`) The blockquote type. Returns `alert` if the blockquote has an alert designator, else `regular`. See the [alerts](#alerts) section below.
+
+## Examples
+
+In its default configuration, Hugo renders Markdown blockquotes according to the [CommonMark specification]. To create a render hook that does the same thing:
+
+```go-html-template {file="layouts/_markup/render-blockquote.html" copy=true}
+
+ {{ .Text }} +
+```
+
+To render a blockquote as an HTML `figure` element with an optional citation and caption:
+
+```go-html-template {file="layouts/_markup/render-blockquote.html" copy=true}
+
+ {{ .Text }}
+
+ {{ with .Attributes.caption }}
+
++ {{ transform.Emojify (index $emojis .AlertType) }} + {{ with .AlertTitle }} + {{ . }} + {{ else }} + {{ or (i18n .AlertType) (title .AlertType) }} + {{ end }} +
+ {{ .Text }} +
+{{ else }} +
+ {{ .Text }} +
+{{ end }} +``` + +To override the label, create these entries in your i18n files: + +{{< code-toggle file=i18n/en.toml >}} +caution = 'Caution' +important = 'Important' +note = 'Note' +tip = 'Tip' +warning = 'Warning' +{{< /code-toggle >}} + +Although you can use one template with conditional logic as shown above, you can also create separate templates for each [`Type`](#type) of blockquote: + +```text +layouts/ + └── _markup/ + ├── render-blockquote-alert.html + └── render-blockquote-regular.html +``` + +{{% include "/_common/render-hooks/pageinner.md" %}} + +[`RenderShortcodes`]: /methods/page/rendershortcodes +[CommonMark specification]: https://spec.commonmark.org/current/ +[GitHub]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts +[Markdown attributes]: /content-management/markdown-attributes/ +[Obsidian]: https://help.obsidian.md/Editing+and+formatting/Callouts +[Typora]: https://support.typora.io/Markdown-Reference/#callouts--github-style-alerts diff --git a/docs/content/en/render-hooks/code-blocks.md b/docs/content/en/render-hooks/code-blocks.md new file mode 100755 index 00000000000..5b226467be3 --- /dev/null +++ b/docs/content/en/render-hooks/code-blocks.md @@ -0,0 +1,125 @@ +--- +title: Code block render hooks +linkTitle: Code blocks +description: Create code block render hook templates to override the rendering of Markdown code blocks to HTML. +categories: [] +keywords: [] +--- + +## Markdown + +This Markdown example contains a fenced code block: + +````text {file="content/example.md"} +```sh {class="my-class" id="my-codeblock" lineNos=inline tabWidth=2} +declare a=1 +echo "$a" +exit +``` +```` + +A fenced code block consists of: + +- A leading [code fence] +- An optional [info string] +- A code sample +- A trailing code fence + +In the previous example, the info string contains: + +- The language of the code sample (the first word) +- An optional space-delimited or comma-delimited list of attributes (everything within braces) + +The attributes in the info string can be generic attributes or highlighting options. + +In the example above, the _generic attributes_ are `class` and `id`. In the absence of special handling within a code block render hook, Hugo adds each generic attribute to the HTML element surrounding the rendered code block. Consistent with its content security model, Hugo removes HTML event attributes such as `onclick` and `onmouseover`. Generic attributes are typically global HTML attributes, but you may include custom attributes as well. + +In the example above, the _highlighting options_ are `lineNos` and `tabWidth`. Hugo uses the [Chroma] syntax highlighter to render the code sample. You can control the appearance of the rendered code by specifying one or more [highlighting options]. + +> [!note] +> Although `style` is a global HTML attribute, when used in an info string it is a highlighting option. + +## Context + +Code block _render hook_ templates receive the following [context](g): + +Attributes +: (`map`) The generic attributes from the info string. + +Inner +: (`string`) The content between the leading and trailing code fences, excluding the info string. + +Options +: (`map`) The highlighting options from the info string. This map is empty if [`Type`](#type) is an empty string or a code language that is not supported by the Chroma syntax highlighter. However, in this case, the highlighting options are available in the [`Attributes`](#attributes) map. + +Ordinal +: (`int`) The zero-based ordinal of the code block on the page. + +Page +: (`page`) A reference to the current page. + +PageInner +: (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). + +Position +: (`text.Position`) The position of the code block within the page content. + +Type +: (`string`) The first word of the info string, typically the code language. + +## Examples + +In its default configuration, Hugo renders fenced code blocks by passing the code sample through the Chroma syntax highlighter and wrapping the result. To create a render hook that does the same thing: + +```go-html-template {file="layouts/_markup/render-codeblock.html" copy=true} +{{ $result := transform.HighlightCodeBlock . }} +{{ $result.Wrapped }} +``` + +Although you can use one template with conditional logic to control the behavior on a per-language basis, you can also create language-specific templates. + +```text +layouts/ + └── _markup/ + ├── render-codeblock-mermaid.html + ├── render-codeblock-python.html + └── render-codeblock.html +``` + +For example, to create a code block render hook to render [Mermaid] diagrams: + +```go-html-template {file="layouts/_markup/render-codeblock-mermaid.html" copy=true} +
+ {{ .Inner | htmlEscape | safeHTML }}
+
+{{ .Page.Store.Set "hasMermaid" true }}
+```
+
+Then include this snippet at the _bottom_ of your base template, before the closing `body` tag:
+
+```go-html-template {file="layouts/baseof.html" copy=true}
+{{ if .Store.Get "hasMermaid" }}
+
+{{ end }}
+```
+
+See the [diagrams] page for details.
+
+## Embedded
+
+Hugo includes an [embedded code block render hook] to render [GoAT diagrams].
+
+{{% include "/_common/render-hooks/pageinner.md" %}}
+
+[`RenderShortcodes`]: /methods/page/rendershortcodes
+[Chroma]: https://github.com/alecthomas/chroma/
+[code fence]: https://spec.commonmark.org/current/#code-fence
+[diagrams]: /content-management/diagrams/#mermaid-diagrams
+[embedded code block render hook]: <{{% eturl render-codeblock-goat %}}>
+[GoAT diagrams]: /content-management/diagrams/#goat-diagrams-ascii
+[highlighting options]: /functions/transform/highlight/#options
+[info string]: https://spec.commonmark.org/current/#info-string
+[Mermaid]: https://mermaid.js.org/
diff --git a/docs/content/en/render-hooks/headings.md b/docs/content/en/render-hooks/headings.md
new file mode 100755
index 00000000000..75c57d3d67e
--- /dev/null
+++ b/docs/content/en/render-hooks/headings.md
@@ -0,0 +1,63 @@
+---
+title: Heading render hooks
+linkTitle: Headings
+description: Create heading render hook templates to override the rendering of Markdown headings to HTML.
+categories: []
+keywords: []
+---
+
+## Context
+
+Heading _render hook_ templates receive the following [context](g):
+
+Anchor
+: (`string`) The `id` attribute of the heading element.
+
+Attributes
+: (`map`) The [Markdown attributes], available if you configure your site as follows:
+
+ {{< code-toggle file=hugo >}}
+ [markup.goldmark.parser.attribute]
+ title = true
+ {{< /code-toggle >}}
+
+Level
+: (`int`) The heading level, 1 through 6.
+
+Page
+: (`page`) A reference to the current page.
+
+PageInner
+: (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details).
+
+PlainText
+: (`string`) The heading text as plain text.
+
+Text
+: (`template.HTML`) The heading text.
+
+[Markdown attributes]: /content-management/markdown-attributes/
+[`RenderShortcodes`]: /methods/page/rendershortcodes
+
+## Examples
+
+In its default configuration, Hugo renders Markdown headings according to the [CommonMark specification] with the addition of automatic `id` attributes. To create a render hook that does the same thing:
+
+[CommonMark specification]: https://spec.commonmark.org/current/
+
+```go-html-template {file="layouts/_markup/render-heading.html" copy=true}
+
+{{- /* chomp trailing newline */ -}}
+```
+
+To render standalone images within `figure` elements:
+
+```go-html-template {file="layouts/_markup/render-image.html" copy=true}
+{{- if .IsBlock -}}
+
+ {{- with .Title }}
+{{- end -}}
+```
+
+Note that the above requires the following project configuration:
+
+{{< code-toggle file=hugo >}}
+[markup.goldmark.parser]
+wrapStandAloneImageWithinParagraph = false
+{{< /code-toggle >}}
+
+## Embedded
+
+Hugo includes an [embedded image render hook] to resolve Markdown image destinations. You can adjust its behavior in your project configuration. This is the default setting:
+
+{{< code-toggle file=hugo >}}
+[markup.goldmark.renderHooks.image]
+useEmbedded = 'auto'
+{{< /code-toggle >}}
+
+When set to `auto` as shown above, Hugo automatically uses the embedded image render hook for multilingual single-host projects, specifically when the [duplication of shared page resources] feature is disabled. This is the default behavior for such projects. If custom image render hooks are defined by your project, modules, or themes, these will be used instead.
+
+You can also configure Hugo to `always` use the embedded image render hook, use it only as a `fallback`, or `never` use it. See [details](/configuration/markup/#renderhooksimageuseembedded).
+
+The embedded image render hook resolves internal Markdown destinations by looking for a matching [page resource](g), falling back to a matching [global resource](g). Remote destinations are passed through, and the render hook will not throw an error or warning if unable to resolve a destination.
+
+You must place global resources in the `assets` directory. If you have placed your resources in the `static` directory, and you are unable or unwilling to move them, you must mount the `static` directory to the `assets` directory by including both of these entries in your project configuration:
+
+{{< code-toggle file=hugo >}}
+[[module.mounts]]
+source = 'assets'
+target = 'assets'
+
+[[module.mounts]]
+source = 'static'
+target = 'assets'
+{{< /code-toggle >}}
+
+Note that the embedded image render hook does not perform image processing. Its sole purpose is to resolve Markdown image destinations.
+
+{{% include "/_common/render-hooks/pageinner.md" %}}
+
+[`RenderShortcodes`]: /methods/page/rendershortcodes
+[CommonMark specification]: https://spec.commonmark.org/current/
+[duplication of shared page resources]: /configuration/markup/#duplicateresourcefiles
+[embedded image render hook]: <{{% eturl render-image %}}>
+[Markdown attributes]: /content-management/markdown-attributes/
diff --git a/docs/content/en/render-hooks/introduction.md b/docs/content/en/render-hooks/introduction.md
new file mode 100755
index 00000000000..aafebf3e69a
--- /dev/null
+++ b/docs/content/en/render-hooks/introduction.md
@@ -0,0 +1,79 @@
+---
+title: Introduction
+description: An introduction to Hugo's render hooks.
+categories: []
+keywords: []
+weight: 10
+---
+
+When rendering Markdown to HTML, render hooks override the conversion. Each render hook is a template, with one template for each supported element type:
+
+- [Blockquotes](/render-hooks/blockquotes)
+- [Code blocks](/render-hooks/code-blocks)
+- [Headings](/render-hooks/headings)
+- [Images](/render-hooks/images)
+- [Links](/render-hooks/links)
+- [Passthrough elements](/render-hooks/passthrough)
+- [Tables](/render-hooks/tables)
+
+> [!note]
+> Hugo supports multiple [content formats] including Markdown, HTML, AsciiDoc, Emacs Org Mode, Pandoc, and reStructuredText.
+>
+> The render hook capability is limited to Markdown. You cannot create render hooks for the other content formats.
+
+For example, consider this Markdown:
+
+```text
+[Hugo](https://gohugo.io)
+
+
+```
+
+Without link or image render hooks, the example above is rendered to:
+
+```html
+
+

+``` + +By creating link and image render hooks, you can alter the conversion from Markdown to HTML. For example: + +```html +
+

+``` + +Each render hook is a template, with one template for each supported element type: + +```text +layouts/ + └── _markup/ + ├── render-blockquote.html + ├── render-codeblock.html + ├── render-heading.html + ├── render-image.html + ├── render-link.html + ├── render-passthrough.html + └── render-table.html +``` + +The template lookup order allows you to create different render hooks for each page [type](g), [kind](g), language, and [output format](g). For example: + +```text +layouts/ +├── _markup/ +│ ├── render-link.html +│ └── render-link.rss.xml +├── books/ +│ └── _markup/ +│ ├── render-link.html +│ └── render-link.rss.xml +└── films/ + └── _markup/ + ├── render-link.html + └── render-link.rss.xml +``` + +The remaining pages in this section describe each type of render hook, including examples and the context received by each template. + +[content formats]: /content-management/formats/ diff --git a/docs/content/en/render-hooks/links.md b/docs/content/en/render-hooks/links.md new file mode 100755 index 00000000000..7cd65bdfa96 --- /dev/null +++ b/docs/content/en/render-hooks/links.md @@ -0,0 +1,104 @@ +--- +title: Link render hooks +linkTitle: Links +description: Create a link render hook to override the rendering of Markdown links to HTML. +categories: [] +keywords: [] +--- + +## Markdown + +A Markdown link has three components: the link text, the link destination, and optionally the link title. + +```text +[Post 1](/posts/post-1 "My first post") + ------ ------------- ------------- + text destination title +``` + +These components are passed into the render hook [context](g) as shown below. + +## Context + +Link _render hook_ templates receive the following context: + +Destination +: (`string`) The link destination. + +Page +: (`page`) A reference to the current page. + +PageInner +: (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). + +PlainText +: (`string`) The link description as plain text. + +Text +: (`template.HTML`) The link description. + +Title +: (`string`) The link title. + +## Examples + +> [!note] +> With inline elements such as images and links, remove leading and trailing whitespace using the `{{‑ ‑}}` delimiter notation to prevent whitespace between adjacent inline elements and text. + +In its default configuration, Hugo renders Markdown links according to the [CommonMark specification]. To create a render hook that does the same thing: + +```go-html-template {file="layouts/_markup/render-link.html" copy=true} + + {{- with .Text }}{{ . }}{{ end -}} + +{{- /* chomp trailing newline */ -}} +``` + +To include a `rel` attribute set to `external` for external links: + +```go-html-template {file="layouts/_markup/render-link.html" copy=true} +{{- $u := urls.Parse .Destination -}} + + {{- with .Text }}{{ . }}{{ end -}} + +{{- /* chomp trailing newline */ -}} +``` + +## Embedded + +Hugo includes an [embedded link render hook] to resolve Markdown link destinations. You can adjust its behavior in your project configuration. This is the default setting: + +{{< code-toggle file=hugo >}} +[markup.goldmark.renderHooks.link] +useEmbedded = 'auto' +{{< /code-toggle >}} + +When set to `auto` as shown above, Hugo automatically uses the embedded link render hook for multilingual single-host projects, specifically when the [duplication of shared page resources] feature is disabled. This is the default behavior for such projects. If custom link render hooks are defined by your project, modules, or themes, these will be used instead. + +You can also configure Hugo to `always` use the embedded link render hook, use it only as a `fallback`, or `never` use it. See [details](/configuration/markup/#renderhookslinkuseembedded). + +The embedded link render hook resolves internal Markdown destinations by looking for a matching page, falling back to a matching [page resource](g), then falling back to a matching [global resource](g). Remote destinations are passed through, and the render hook will not throw an error or warning if unable to resolve a destination. + +You must place global resources in the `assets` directory. If you have placed your resources in the `static` directory, and you are unable or unwilling to move them, you must mount the `static` directory to the `assets` directory by including both of these entries in your project configuration: + +{{< code-toggle file=hugo >}} +[[module.mounts]] +source = 'assets' +target = 'assets' + +[[module.mounts]] +source = 'static' +target = 'assets' +{{< /code-toggle >}} + +{{% include "/_common/render-hooks/pageinner.md" %}} + +[`RenderShortcodes`]: /methods/page/rendershortcodes +[CommonMark specification]: https://spec.commonmark.org/current/ +[duplication of shared page resources]: /configuration/markup/#duplicateresourcefiles +[embedded link render hook]: <{{% eturl render-link %}}> diff --git a/docs/content/en/render-hooks/passthrough.md b/docs/content/en/render-hooks/passthrough.md new file mode 100755 index 00000000000..7aada5713ec --- /dev/null +++ b/docs/content/en/render-hooks/passthrough.md @@ -0,0 +1,128 @@ +--- +title: Passthrough render hooks +linkTitle: Passthrough +description: Create passthrough render hook templates to override the rendering of text snippets captured by the Goldmark Passthrough extension. +categories: [] +keywords: [] +--- + +{{< new-in 0.132.0 />}} + +## Overview + +Hugo uses [Goldmark] to render Markdown to HTML. Goldmark supports custom extensions to extend its core functionality. The [Passthrough] extension captures and preserves raw Markdown within delimited snippets of text, including the delimiters themselves. These are known as _passthrough elements_. + +[Goldmark]: https://github.com/yuin/goldmark +[Passthrough]: /configuration/markup/#passthrough + +Depending on your choice of delimiters, Hugo will classify a passthrough element as either _block_ or _inline_. Consider this contrived example: + +```text {file="content/example.md"} +This is a + +\[block\] + +passthrough element with opening and closing block delimiters. + +This is an \(inline\) passthrough element with opening and closing inline delimiters. +``` + +Update your project configuration to enable the Passthrough extension and define opening and closing delimiters for each passthrough element type, either `block` or `inline`. For example: + +{{< code-toggle file=hugo >}} +[markup.goldmark.extensions.passthrough] +enable = true +[markup.goldmark.extensions.passthrough.delimiters] +block = [['\[', '\]'], ['$$', '$$']] +inline = [['\(', '\)']] +{{< /code-toggle >}} + +In the example above there are two sets of `block` delimiters. You may use either one in your Markdown. + +The Passthrough extension is often used in conjunction with the MathJax or KaTeX display engine to render [mathematical expressions] written in the LaTeX markup language. + +[mathematical expressions]: /content-management/mathematics/ + +To enable custom rendering of passthrough elements, create a passthrough render hook. + +## Context + +Passthrough _render hook_ templates receive the following [context](g): + +Attributes +: (`map`) The [Markdown attributes], available if you configure your site as follows: + + {{< code-toggle file=hugo >}} + [markup.goldmark.parser.attribute] + block = true + {{< /code-toggle >}} + + Hugo populates the `Attributes` map for _block_ passthrough elements. Markdown attributes are not applicable to _inline_ elements. + +Inner +: (`string`) The inner content of the passthrough element, excluding the delimiters. + +Ordinal +: (`int`) The zero-based ordinal of the passthrough element on the page. + +Page +: (`page`) A reference to the current page. + +PageInner +: (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). + +Position +: (`string`) The position of the passthrough element within the page content. + +Type +: (`string`) The passthrough element type, either `block` or `inline`. + +[Markdown attributes]: /content-management/markdown-attributes/ +[`RenderShortcodes`]: /methods/page/rendershortcodes + +## Example + +Instead of client-side JavaScript rendering of mathematical markup using MathJax or KaTeX, create a passthrough render hook which calls the [`transform.ToMath`] function. + +[`transform.ToMath`]: /functions/transform/tomath/ + +```go-html-template {file="layouts/_markup/render-passthrough.html" copy=true} +{{- $opts := dict "output" "htmlAndMathml" "displayMode" (eq .Type "block") }} +{{- with try (transform.ToMath .Inner $opts) }} + {{- with .Err }} + {{- errorf "Unable to render mathematical markup to HTML using the transform.ToMath function. The KaTeX display engine threw the following error: %s: see %s." . $.Position }} + {{- else }} + {{- .Value }} + {{- $.Page.Store.Set "hasMath" true }} + {{- end }} +{{- end -}} +``` + +Then, in your base template, conditionally include the KaTeX CSS within the head element: + +```go-html-template {file="layouts/baseof.html" copy=true} +
+ {{ $noop := .WordCount }} + {{ if .Page.Store.Get "hasMath" }} + + {{ end }} + +``` + +In the above, note the use of a [noop](g) statement to force content rendering before we check the value of `hasMath` with the `Store.Get` method. + +Although you can use one template with conditional logic as shown above, you can also create separate templates for each [`Type`](#type) of passthrough element: + +```text +layouts/ + └── _markup/ + ├── render-passthrough-block.html + └── render-passthrough-inline.html +``` + +{{% include "/_common/render-hooks/pageinner.md" %}} diff --git a/docs/content/en/render-hooks/tables.md b/docs/content/en/render-hooks/tables.md new file mode 100755 index 00000000000..852f67e1158 --- /dev/null +++ b/docs/content/en/render-hooks/tables.md @@ -0,0 +1,100 @@ +--- +title: Table render hooks +linkTitle: Tables +description: Create table render hook templates to override the rendering of Markdown tables to HTML. +categories: [] +keywords: [] +--- + +{{< new-in 0.134.0 />}} + +## Context + +Table _render hook_ templates receive the following [context](g): + +Attributes +: (`map`) The [Markdown attributes], available if you configure your site as follows: + + {{< code-toggle file=hugo >}} + [markup.goldmark.parser.attribute] + block = true + {{< /code-toggle >}} + +Ordinal +: (`int`) The zero-based ordinal of the table on the page. + +Page +: (`page`) A reference to the current page. + +PageInner +: (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). + +Position +: (`string`) The position of the table within the page content. + +THead +: (`slice`) A slice of table header rows, where each element is a slice of table cells. + +TBody +: (`slice`) A slice of table body rows, where each element is a slice of table cells. + +[Markdown attributes]: /content-management/markdown-attributes/ +[`RenderShortcodes`]: /methods/page/rendershortcodes + +## Table cells + +Each table cell within the slice of slices returned by the `THead` and `TBody` methods has the following fields: + +Alignment +: (`string`) The alignment of the text within the table cell, one of `left`, `center`, or `right`. + +Text +: (`template.HTML`) The text within the table cell. + +## Example + +In its default configuration, Hugo renders Markdown tables according to the [GitHub Flavored Markdown specification]. To create a render hook that does the same thing: + +[GitHub Flavored Markdown specification]: https://github.github.com/gfm/#tables-extension- + +```go-html-template {file="layouts/_markup/render-table.html" copy=true} +
| + {{- .Text -}} + | + {{- end }} +
|---|
| + {{- .Text -}} + | + {{- end }} +
+```
+
+{{% include "/_common/render-hooks/pageinner.md" %}}
diff --git a/docs/content/en/shortcodes/_index.md b/docs/content/en/shortcodes/_index.md
new file mode 100644
index 00000000000..826ee57960c
--- /dev/null
+++ b/docs/content/en/shortcodes/_index.md
@@ -0,0 +1,7 @@
+---
+title: Shortcodes
+description: Insert elements such as videos, images, and social media embeds into your content using Hugo's embedded shortcodes.
+categories: []
+keywords: []
+weight: 10
+---
diff --git a/docs/content/en/shortcodes/details.md b/docs/content/en/shortcodes/details.md
new file mode 100755
index 00000000000..5df6c118f00
--- /dev/null
+++ b/docs/content/en/shortcodes/details.md
@@ -0,0 +1,74 @@
+---
+title: Details shortcode
+linkTitle: Details
+description: Insert an HTML details element into your content using the details shortcode.
+categories: []
+keywords: []
+---
+
+{{< new-in 0.140.0 />}}
+
+> [!note]
+> To override Hugo's embedded `details` shortcode, copy the [source code] to a file with the same name in the `layouts/_shortcodes` directory.
+
+## Example
+
+With this markup:
+
+```text
+{{* details summary="See the details" */>}}
+This is a **bold** word.
+{{* /details */>}}
+```
+
+Hugo renders this HTML:
+
+```html
+ This is a bold word. Zion National ParkSee the details
+
+
+
We found a red shirt.
+```
+
+Access nested values by [chaining](g) the [identifiers](g):
+
+```text
+{{%/* param my.nested.param */%}}
+```
+
+[source code]: <{{% eturl param %}}>
diff --git a/docs/content/en/shortcodes/qr.md b/docs/content/en/shortcodes/qr.md
new file mode 100755
index 00000000000..d83be2a6f8c
--- /dev/null
+++ b/docs/content/en/shortcodes/qr.md
@@ -0,0 +1,107 @@
+---
+title: QR shortcode
+linkTitle: QR
+description: Insert a QR code into your content using the qr shortcode.
+categories: []
+keywords: []
+---
+
+{{< new-in 0.141.0 />}}
+
+> [!note]
+> To override Hugo's embedded `qr` shortcode, copy the [source code] to a file with the same name in the `layouts/_shortcodes` directory.
+
+The `qr` shortcode encodes the given text into a [QR code] using the specified options and renders the resulting image.
+
+Internally this shortcode calls the `images.QR` function. Please read the [related documentation] for implementation details and guidance.
+
+## Examples
+
+Use the self-closing syntax to pass the text as an argument:
+
+```text
+{{* qr text="https://gohugo.io" /*/>}}
+```
+
+Or insert the text between the opening and closing tags:
+
+```text
+{{* qr */>}}
+https://gohugo.io
+{{* /qr */>}}
+```
+
+Both of the above produce this image:
+
+{{< qr text="https://gohugo.io" class="qrcode" targetDir="images/qr" />}}
+
+To create a QR code for a phone number:
+
+```text
+{{* qr text="tel:+12065550101" /*/>}}
+```
+
+{{< qr text="tel:+12065550101" class="qrcode" targetDir="images/qr" />}}
+
+To create a QR code containing contact information in the [vCard] format:
+
+```text
+{{* qr level="low" scale=2 alt="QR code of vCard for John Smith" */>}}
+BEGIN:VCARD
+VERSION:2.1
+N;CHARSET=UTF-8:Smith;John;R.;Dr.;PhD
+FN;CHARSET=UTF-8:Dr. John R. Smith, PhD.
+ORG;CHARSET=UTF-8:ABC Widgets
+TITLE;CHARSET=UTF-8:Vice President Engineering
+TEL;TYPE=WORK:+12065550101
+EMAIL;TYPE=WORK:jsmith@example.org
+END:VCARD
+{{* /qr */>}}
+```
+
+{{< qr level="low" scale=2 alt="QR code of vCard for John Smith" class="qrcode" targetDir="images/qr" >}}
+BEGIN:VCARD
+VERSION:2.1
+N;CHARSET=UTF-8:Smith;John;R.;Dr.;PhD
+FN;CHARSET=UTF-8:Dr. John R. Smith, PhD.
+ORG;CHARSET=UTF-8:ABC Widgets
+TITLE;CHARSET=UTF-8:Vice President Engineering
+TEL;TYPE=WORK:+12065550101
+EMAIL;TYPE=WORK:jsmith@example.org
+END:VCARD
+{{< /qr >}}
+
+## Arguments
+
+text
+: (`string`) The text to encode, falling back to the text between the opening and closing shortcode tags.
+
+level
+: (`string`) The error correction level to use when encoding the text, one of `low`, `medium`, `quartile`, or `high`. Default is `medium`.
+
+scale
+: (`int`) The number of image pixels per QR code module. Must be greater than or equal to 2. Default is `4`.
+
+targetDir
+: (`string`) The subdirectory within the [`publishDir`] where Hugo will place the generated image.
+
+alt
+: (`string`) The `alt` attribute of the `img` element.
+
+class
+: (`string`) The `class` attribute of the `img` element.
+
+id
+: (`string`) The `id` attribute of the `img` element.
+
+loading
+: (`string`) The `loading` attribute of the `img` element, either `eager` or `lazy`.
+
+title
+: (`string`) The `title` attribute of the `img` element.
+
+[`publishDir`]: /configuration/all/#publishdir
+[QR code]: https://en.wikipedia.org/wiki/QR_code
+[related documentation]: /functions/images/qr/
+[source code]: <{{% eturl qr %}}>
+[vCard]: