diff --git a/website/docs/backends/config.html.md b/website/docs/backends/config.html.md
index 6eddd3ffd..5940a82d0 100644
--- a/website/docs/backends/config.html.md
+++ b/website/docs/backends/config.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Backends: Configuration"
sidebar_current: "docs-backends-config"
description: |-
diff --git a/website/docs/backends/index.html.md b/website/docs/backends/index.html.md
index f8fb843c1..e6bb09b5b 100644
--- a/website/docs/backends/index.html.md
+++ b/website/docs/backends/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Backends"
sidebar_current: "docs-backends-index"
description: |-
diff --git a/website/docs/backends/init.html.md b/website/docs/backends/init.html.md
index cbba0eb7d..7346db392 100644
--- a/website/docs/backends/init.html.md
+++ b/website/docs/backends/init.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Backends: Init"
sidebar_current: "docs-backends-init"
description: |-
diff --git a/website/docs/backends/operations.html.md b/website/docs/backends/operations.html.md
index 0272c856b..755d2c9e9 100644
--- a/website/docs/backends/operations.html.md
+++ b/website/docs/backends/operations.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Backends: Remote Operations (plan, apply, etc.)"
sidebar_current: "docs-backends-operations"
description: |-
diff --git a/website/docs/backends/state.html.md b/website/docs/backends/state.html.md
index 936367201..78f1c68af 100644
--- a/website/docs/backends/state.html.md
+++ b/website/docs/backends/state.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Backends: State Storage and Locking"
sidebar_current: "docs-backends-state"
description: |-
diff --git a/website/docs/backends/types/artifactory.html.md b/website/docs/backends/types/artifactory.html.md
index ce30ae716..2e19dea89 100644
--- a/website/docs/backends/types/artifactory.html.md
+++ b/website/docs/backends/types/artifactory.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: artifactory"
sidebar_current: "docs-backends-types-standard-artifactory"
description: |-
diff --git a/website/docs/backends/types/azurerm.html.md b/website/docs/backends/types/azurerm.html.md
index 72da9c098..147a813f8 100644
--- a/website/docs/backends/types/azurerm.html.md
+++ b/website/docs/backends/types/azurerm.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: azurerm"
sidebar_current: "docs-backends-types-standard-azurerm"
description: |-
diff --git a/website/docs/backends/types/consul.html.md b/website/docs/backends/types/consul.html.md
index 740d97502..be7cd665a 100644
--- a/website/docs/backends/types/consul.html.md
+++ b/website/docs/backends/types/consul.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: consul"
sidebar_current: "docs-backends-types-standard-consul"
description: |-
diff --git a/website/docs/backends/types/cos.html.md b/website/docs/backends/types/cos.html.md
index bf1d09945..e063fc2aa 100644
--- a/website/docs/backends/types/cos.html.md
+++ b/website/docs/backends/types/cos.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: cos"
sidebar_current: "docs-backends-types-standard-cos"
description: |-
diff --git a/website/docs/backends/types/etcd.html.md b/website/docs/backends/types/etcd.html.md
index 302d5486b..792b7354c 100644
--- a/website/docs/backends/types/etcd.html.md
+++ b/website/docs/backends/types/etcd.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: etcd"
sidebar_current: "docs-backends-types-standard-etcdv2"
description: |-
diff --git a/website/docs/backends/types/etcdv3.html.md b/website/docs/backends/types/etcdv3.html.md
index 43257c8ce..5b8558995 100644
--- a/website/docs/backends/types/etcdv3.html.md
+++ b/website/docs/backends/types/etcdv3.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: etcdv3"
sidebar_current: "docs-backends-types-standard-etcdv3"
description: |-
diff --git a/website/docs/backends/types/gcs.html.md b/website/docs/backends/types/gcs.html.md
index fc8cd9d3d..cc44251b5 100644
--- a/website/docs/backends/types/gcs.html.md
+++ b/website/docs/backends/types/gcs.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: gcs"
sidebar_current: "docs-backends-types-standard-gcs"
description: |-
diff --git a/website/docs/backends/types/http.html.md b/website/docs/backends/types/http.html.md
index e0f3e7488..e87903c44 100644
--- a/website/docs/backends/types/http.html.md
+++ b/website/docs/backends/types/http.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: http"
sidebar_current: "docs-backends-types-standard-http"
description: |-
diff --git a/website/docs/backends/types/index.html.md b/website/docs/backends/types/index.html.md
index 4034a0ae6..5ec60ee6f 100644
--- a/website/docs/backends/types/index.html.md
+++ b/website/docs/backends/types/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend: Supported Backend Types"
sidebar_current: "docs-backends-types-index"
description: |-
diff --git a/website/docs/backends/types/kubernetes.html.md b/website/docs/backends/types/kubernetes.html.md
index 80ef08763..9cf00ca81 100644
--- a/website/docs/backends/types/kubernetes.html.md
+++ b/website/docs/backends/types/kubernetes.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: Kubernetes"
sidebar_current: "docs-backends-types-standard-kubernetes"
description: |-
diff --git a/website/docs/backends/types/local.html.md b/website/docs/backends/types/local.html.md
index b8a690cb6..225e6ac27 100644
--- a/website/docs/backends/types/local.html.md
+++ b/website/docs/backends/types/local.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: local"
sidebar_current: "docs-backends-types-enhanced-local"
description: |-
diff --git a/website/docs/backends/types/manta.html.md b/website/docs/backends/types/manta.html.md
index 926891618..9fae9a679 100644
--- a/website/docs/backends/types/manta.html.md
+++ b/website/docs/backends/types/manta.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: manta"
sidebar_current: "docs-backends-types-standard-manta"
description: |-
diff --git a/website/docs/backends/types/oss.html.md b/website/docs/backends/types/oss.html.md
index c15ebd064..b3fbd828e 100644
--- a/website/docs/backends/types/oss.html.md
+++ b/website/docs/backends/types/oss.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: oss"
sidebar_current: "docs-backends-types-standard-oss"
description: |-
diff --git a/website/docs/backends/types/pg.html.md b/website/docs/backends/types/pg.html.md
index 7dd60e582..1b9ee0c3c 100644
--- a/website/docs/backends/types/pg.html.md
+++ b/website/docs/backends/types/pg.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: pg"
sidebar_current: "docs-backends-types-standard-pg"
description: |-
diff --git a/website/docs/backends/types/remote.html.md b/website/docs/backends/types/remote.html.md
index 1af0313cd..982780923 100644
--- a/website/docs/backends/types/remote.html.md
+++ b/website/docs/backends/types/remote.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: remote"
sidebar_current: "docs-backends-types-enhanced-remote"
description: |-
diff --git a/website/docs/backends/types/s3.html.md b/website/docs/backends/types/s3.html.md
index 31b3a7ac9..7579e96f4 100644
--- a/website/docs/backends/types/s3.html.md
+++ b/website/docs/backends/types/s3.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: s3"
sidebar_current: "docs-backends-types-standard-s3"
description: |-
diff --git a/website/docs/backends/types/swift.html.md b/website/docs/backends/types/swift.html.md
index 57ab752eb..35d77b7ce 100644
--- a/website/docs/backends/types/swift.html.md
+++ b/website/docs/backends/types/swift.html.md
@@ -1,5 +1,5 @@
---
-layout: "backend-types"
+layout: "language"
page_title: "Backend Type: swift"
sidebar_current: "docs-backends-types-standard-swift"
description: |-
diff --git a/website/docs/cli-index.html.md b/website/docs/cli-index.html.md
index 9fc22207d..43854ee7d 100644
--- a/website/docs/cli-index.html.md
+++ b/website/docs/cli-index.html.md
@@ -1,43 +1,20 @@
---
layout: "docs"
-page_title: "Documentation"
+page_title: "Terraform CLI Documentation"
sidebar_current: "docs-home"
description: |-
- Documentation for Terraform's core open source features, including the
- configuration language, the commands, and the main Terraform providers.
+ Documentation for Terraform's CLI-based workflows.
---
# Terraform CLI Documentation
-Welcome to the Terraform CLI documentation!
+> **Hands-on:** Try the [Terraform: Get Started](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.
-## What's in This Section of the Docs?
+This is the documentation for Terraform CLI. It is relevant to anyone working
+with Terraform's CLI-based workflows; this includes people who use Terraform CLI
+by itself, as well as those who use Terraform CLI in conjunction with Terraform
+Cloud or Terraform Enterprise.
-This section contains reference documentation for Terraform's core open source
-features, including the
-[configuration language](/docs/configuration/index.html), the
-[command-line tools](/docs/commands/index.html), and the main
-[Terraform providers](/docs/providers/index.html). Use the navigation sidebar
-to browse the various subsections.
-
-## Who is This For?
-
-The Terraform CLI docs are relevant to _all Terraform users,_ including open
-source users and Terraform Cloud users.
-
-Since these docs are reference material, they are mainly written for
-_intermediate and advanced users,_ who need to find complete and detailed
-information quickly.
-
-- **New user?** Try the
- [Get Started collection](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
- at HashiCorp Learn, then return
- here once you've used Terraform to manage some simple resources.
-- **Curious about Terraform?** See [Introduction to Terraform](/intro/index.html)
- for a broad overview of what Terraform is and why people use it.
-
-## What's Elsewhere?
-
-This is not the only section of the Terraform docs! You can find out more at the
-[Terraform docs home page](/docs/index.html), or you can jump between sections
-using the "Other Docs" area of the navigation sidebar.
+Notably, this documentation does not cover the syntax and usage of the Terraform
+language. For that, see the
+[Terraform Language Documentation](/docs/configuration/index.html).
diff --git a/website/docs/cli/auth/index.html.md b/website/docs/cli/auth/index.html.md
new file mode 100644
index 000000000..0400da546
--- /dev/null
+++ b/website/docs/cli/auth/index.html.md
@@ -0,0 +1,29 @@
+---
+layout: "docs"
+page_title: "Authentication - Terraform CLI"
+---
+
+# CLI Authentication
+
+> **Hands-on:** Try the [Authenticate the CLI with Terraform Cloud](https://learn.hashicorp.com/tutorials/terraform/cloud-login?in=terraform/cloud&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn.
+
+[Terraform Cloud](/docs/cloud/index.html) and
+[Terraform Enterprise](/docs/enterprise/index.html) are platforms that perform
+Terraform runs to provision infrastructure, offering a collaboration-focused
+environment that makes it easier for teams to use Terraform together. (For
+expediency, the content below refers to both products as "Terraform Cloud.")
+
+Terraform CLI integrates with Terraform Cloud in several ways — it can be a
+front-end for [CLI-driven runs](/docs/cloud/run/cli.html) in Terraform Cloud,
+and can also use Terraform Cloud as a state backend and a private module
+registry. All of these integrations require you to authenticate Terraform CLI
+with your Terraform Cloud account.
+
+The best way to handle CLI authentication is with the `login` and `logout`
+commands, which help automate the process of getting an API token for your
+Terraform Cloud user account.
+
+For details, see:
+
+- [The `terraform login` command](/docs/commands/login.html)
+- [The `terraform logout` command](/docs/commands/logout.html)
diff --git a/website/docs/cli/code/index.html.md b/website/docs/cli/code/index.html.md
new file mode 100644
index 000000000..ba05a8940
--- /dev/null
+++ b/website/docs/cli/code/index.html.md
@@ -0,0 +1,43 @@
+---
+layout: "docs"
+page_title: "Writing and Modifying Code - Terraform CLI"
+---
+
+# Writing and Modifying Terraform Code
+
+The [Terraform language](/docs/configuration/index.html) is Terraform's primary
+user interface, and all of Terraform's workflows rely on configurations written
+in the Terraform language.
+
+Terraform CLI includes several commands to make Terraform code more convenient
+to work with. Integrating these commands into your editing workflow can
+potentially save you time and effort.
+
+- [The `terraform console` command](/docs/commands/console.html) starts an
+ interactive shell for evaluating Terraform
+ [expressions](/docs/configuration/expressions.html), which can be a faster way
+ to verify that a particular resource argument results in the value you expect.
+
+
+- [The `terraform fmt` command](/docs/commands/fmt.html) rewrites Terraform
+ configuration files to a canonical format and style, so you don't have to
+ waste time making minor adjustments for readability and consistency. It works
+ well as a pre-commit hook in your version control system.
+
+- [The `terraform validate` command](/docs/commands/validate.html) validates the
+ syntax and arguments of the Terraform configuration files in a directory,
+ including argument and attribute names and types for resources and modules.
+ The `plan` and `apply` commands automatically validate a configuration before
+ performing any other work, so `validate` isn't a crucial part of the core
+ workflow, but it can be very useful as a pre-commit hook or as part of a
+ continuous integration pipeline.
+
+- [The `0.13upgrade` command](/docs/commands/0.13upgrade.html) and
+ [the `0.12upgrade` command](/docs/commands/0.12upgrade.html) can automatically
+ modify the configuration files in a Terraform module to help deal with major
+ syntax changes that occurred in the 0.13 and 0.12 releases of Terraform. Both
+ of these commands are only available in the Terraform version they are
+ associated with, and you are expected to upgrade older code to be compatible
+ with 0.12 before attempting to make it compatible with 0.13. For more detailed
+ information about updating code for new Terraform versions, see the [upgrade
+ guides](/upgrade-guides/index.html) in the Terraform language docs.
diff --git a/website/docs/cli/config/index.html.md b/website/docs/cli/config/index.html.md
new file mode 100644
index 000000000..deb63b59b
--- /dev/null
+++ b/website/docs/cli/config/index.html.md
@@ -0,0 +1,22 @@
+---
+layout: "docs"
+page_title: "CLI Configuration - Terraform CLI"
+---
+
+# CLI Configuration
+
+Terraform CLI can be configured with some global settings, which are separate
+from any Terraform configuration and which apply across all working directories.
+
+We've designed Terraform such that an average user running Terraform CLI
+interactively will not need to interact with any of these settings. As a result,
+most of the global settings relate to advanced or automated workflows, or
+unusual environmental conditions like running Terraform on an airgapped
+instance.
+
+- The [CLI config file](/docs/commands/cli-config.html) configures provider
+ installation and security features.
+- Several [environment variables](/docs/commands/environment-variables.html) can
+ configure Terraform's inputs and outputs; this includes some alternate ways to
+ provide information that is usually passed on the command line or read from
+ the state of the shell.
diff --git a/website/docs/cli/init/index.html.md b/website/docs/cli/init/index.html.md
new file mode 100644
index 000000000..f72a0921b
--- /dev/null
+++ b/website/docs/cli/init/index.html.md
@@ -0,0 +1,71 @@
+---
+layout: "docs"
+page_title: "Initializing Working Directories - Terraform CLI"
+---
+
+# Initializing Working Directories
+
+Terraform expects to be invoked from a working directory that contains
+configuration files written in
+[the Terraform language](/docs/configuration/index.html). Terraform uses
+configuration content from this directory, and also uses the directory to store
+settings, cached plugins and modules, and sometimes state data.
+
+A working directory must be initialized before Terraform can perform any
+operations in it (like provisioning infrastructure or modifying state).
+
+## Working Directory Contents
+
+A Terraform working directory typically contains:
+
+- A Terraform configuration describing resources Terraform should manage. This
+ configuration is expected to change over time.
+- A hidden `.terraform` directory, which Terraform uses to manage cached
+ provider plugins and modules, record which
+ [workspace](/docs/cli/workspaces/index.html) is currently active, and
+ record the last known backend configuration in case it needs to migrate state
+ on the next run. This directory is automatically managed by Terraform, and is
+ created during initialization.
+- State data, if the configuration uses the default `local` backend. This is
+ managed by Terraform in a `terraform.tfstate` file (if the directory only uses
+ the default workspace) or a `terraform.tfstate.d` directory (if the directory
+ uses multiple workspaces).
+
+## Initialization
+
+Run the `terraform init` command to initialize a working directory that contains
+a Terraform configuration. After initialization, you will be able to perform
+other commands, like `terraform plan` and `terraform apply`.
+
+If you try to run a command that relies on initialization without first
+initializing, the command will fail with an error and explain that you need to
+run init.
+
+Initialization performs several tasks to prepare a directory, including
+accessing state in the configured backend, downloading and installing provider
+plugins, and downloading modules. Under some conditions (usually when changing
+from one backend to another), it might ask the user for guidance or
+confirmation.
+
+For details, see [the `terraform init` command](/docs/commands/init.html).
+
+## Reinitialization
+
+Certain types of changes to a Terraform configuration can require
+reinitialization before normal operations can continue. This includes changes to
+provider requirements, module sources or version constraints, and backend
+configurations.
+
+You can reinitialize a directory by running `terraform init` again. In fact, you
+can reinitialize at any time; the init command is idempotent, and will have no
+effect if no changes are required.
+
+If reinitialization is required, any commands that rely on initialization will
+fail with an error and tell you so.
+
+## Reinitializing Only Modules
+
+The `terraform get` command will download modules referenced in the
+configuration, but will not perform the other required initialization tasks.
+This command is only useful for niche workflows, and most Terraform users can
+ignore it in favor of `terraform init`.
diff --git a/website/docs/cli/inspect/index.html.md b/website/docs/cli/inspect/index.html.md
new file mode 100644
index 000000000..de6899107
--- /dev/null
+++ b/website/docs/cli/inspect/index.html.md
@@ -0,0 +1,33 @@
+---
+layout: "docs"
+page_title: "Inspecting Infrastructure - Terraform CLI"
+---
+
+# Inspecting Infrastructure
+
+Terraform configurations and state data include some highly structured
+information about the resources they manage; this includes dependency
+information, outputs (which are pieces of generated or discovered data that the
+configuration's author considers important enough to surface to users), and
+more.
+
+Terraform CLI includes some commands for inspecting or transforming this data.
+You can use these to integrate other tools with Terraform's infrastructure data,
+or just to gain a deeper or more holistic understanding of your infrastructure.
+
+- [The `terraform graph` command](/docs/commands/graph.html) creates a visual
+ representation of a configuration or a set of planned changes.
+- [The `terraform output` command](/docs/commands/output.html) can get the
+ values for the top-level [output values](/docs/configuration/outputs.html) of
+ a configuration, which are often helpful when making use of the infrastructure
+ Terraform has provisioned.
+- [The `terraform show` command](/docs/commands/show.html) can generate
+ human-readable versions of a state file or plan file, or generate
+ machine-readable versions that can be integrated with other tools.
+- [The `terraform state list` command](/docs/commands/state/list.html) can list
+ the resources being managed by the current working directory and workspace,
+ providing a complete or filtered list.
+- [The `terraform state show` command](/docs/commands/state/show.html) can print
+ all of the attributes of a given resource being managed by the current working
+ directory and workspace, including generated read-only attributes like the
+ unique ID assigned by the cloud provider.
diff --git a/website/docs/cli/plugins/index.html.md b/website/docs/cli/plugins/index.html.md
new file mode 100644
index 000000000..0dce9f6c0
--- /dev/null
+++ b/website/docs/cli/plugins/index.html.md
@@ -0,0 +1,54 @@
+---
+layout: "docs"
+page_title: "Managing Plugins - Terraform CLI"
+---
+
+# Managing Plugins
+
+Terraform relies on plugins called "providers" in order to manage various types
+of resources. (For more information about providers, see
+[Providers](/docs/configuration/blocks/providers/index.html) in the Terraform
+language docs.)
+
+-> **Note:** Providers are currently the only plugin type most Terraform users
+will interact with. Terraform also supports third-party provisioner plugins, but
+we discourage their use.
+
+Terraform downloads and/or installs any providers
+[required](/docs/configuration/provider-requirements.html) by a configuration
+when [initializing](/docs/cli/init/index.html) a working directory. By default,
+this works without any additional interaction but requires network access to
+download providers from their source registry.
+
+You can configure Terraform's provider installation behavior to limit or skip
+network access, and to enable use of providers that aren't available via a
+networked source. Terraform also includes some commands to show information
+about providers and to reduce the effort of installing providers in airgapped
+environments.
+
+## Configuring Plugin Installation
+
+Terraform's configuration file includes options for caching downloaded plugins,
+or explicitly specifying a local or HTTPS mirror to install plugins from. For
+more information, see [CLI Config File](/docs/commands/cli-config.html).
+
+## Getting Plugin Information
+
+Use the [`terraform providers`](/docs/commands/providers.html) command to get information
+about the providers required by the current working directory's configuration.
+
+Use the [`terraform providers schema`](/docs/commands/providers/schema.html) command to
+get machine-readable information about the resources and configuration options
+offered by each provider.
+
+## Managing Plugin Installation
+
+Use the [`terraform providers mirror`](/docs/commands/providers/mirror.html) command to
+download local copies of every provider required by the current working
+directory's configuration. This directory will use the nested directory layout
+that Terraform expects when installing plugins from a local source, so you can
+transfer it directly to an airgapped system that runs Terraform.
+
+Use the [`terraform providers lock`](/docs/commands/providers/lock.html) command
+to update the lock file that Terraform uses to ensure predictable runs when
+using ambiguous provider version constraints.
diff --git a/website/docs/cli/run/index.html.md b/website/docs/cli/run/index.html.md
new file mode 100644
index 000000000..d7fec11ce
--- /dev/null
+++ b/website/docs/cli/run/index.html.md
@@ -0,0 +1,71 @@
+---
+layout: "docs"
+page_title: "Provisioning Infrastructure - Terraform CLI"
+---
+
+# Provisioning Infrastructure with Terraform
+
+Terraform's primary function is to create, modify, and destroy infrastructure
+resources to match the desired state described in a
+[Terraform configuration](/docs/configuration/index.html).
+
+When people refer to "running Terraform," they generally mean performing these
+provisioning actions in order to affect real infrastructure objects. The
+Terraform binary has many other subcommands for a wide variety of administrative
+actions, but these basic provisioning tasks are the core of Terraform.
+
+Terraform's provisioning workflow relies on three commands: `plan`, `apply`, and
+`destroy`. All of these commands require an
+[initialized](/docs/cli/init/index.html) working directory, and all of them act
+only upon the currently selected [workspace](/docs/cli/workspaces/index.html).
+
+## Planning
+
+The `terraform plan` command evaluates a Terraform configuration to determine
+the desired state of all the resources it declares, then compares that desired
+state to the real infrastructure objects being managed with the current working
+directory and workspace. It uses state data to determine which real objects
+correspond to which declared resources, and checks the current state of each
+resource using the relevant infrastructure provider's API.
+
+Once it has determined the difference between the current state and the desired
+state, `terraform plan` presents a description of the changes necessary to
+achieve the desired state. It _does not_ perform any actual changes to real
+world infrastructure objects; it only presents a plan for making changes.
+
+Plans are usually run to validate configuration changes and confirm that the
+resulting actions are as expected. However, `terraform plan` can also save its
+plan as a runnable artifact, which `terraform apply` can use to carry out those
+exact changes.
+
+For details, see [the `terraform plan` command](/docs/commands/plan.html).
+
+## Applying
+
+The `terraform apply` command performs a plan just like `terraform plan` does,
+but then actually carries out the planned changes to each resource using the
+relevant infrastructure provider's API. It asks for confirmation from the user
+before making any changes, unless it was explicitly told to skip approval.
+
+By default, `terraform apply` performs a fresh plan right before applying
+changes, and displays the plan to the user when asking for confirmation.
+However, it can also accept a plan file produced by `terraform plan` in lieu of
+running a new plan. You can use this to reliably perform an exact set of
+pre-approved changes, even if the configuration or the state of the real
+infrastructure has changed in the minutes since the original plan was created.
+
+For details, see [the `terraform apply` command](/docs/commands/apply.html).
+
+## Destroying
+
+The `terraform destroy` command destroys all of the resources being managed by
+the current working directory and workspace, using state data to determine which
+real world objects correspond to managed resources. Like `terraform apply`, it
+asks for confirmation before proceeding.
+
+A destroy behaves exactly like deleting every resource from the configuration
+and then running an apply, except that it doesn't require editing the
+configuration. This is more convenient if you intend to provision similar
+resources at a later date.
+
+For details, see [the `terraform destroy` command](/docs/commands/destroy.html).
diff --git a/website/docs/cli/state/index.html.md b/website/docs/cli/state/index.html.md
new file mode 100644
index 000000000..3a35e4fe5
--- /dev/null
+++ b/website/docs/cli/state/index.html.md
@@ -0,0 +1,30 @@
+---
+layout: "docs"
+page_title: "Manipulating State - Terraform CLI"
+---
+
+# Manipulating Terraform State
+
+Terraform uses [state data](/docs/state/index.html) to remember which
+real-world object corresponds to each resource in the configuration;
+this allows it to modify an existing object when its resource declaration
+changes.
+
+Terraform updates state automatically during plans and applies. However, it's
+sometimes necessary to make deliberate adjustments to Terraform's state data,
+usually to compensate for changes to the configuration or the real managed
+infrastructure.
+
+Terraform CLI supports several workflows for interacting with state:
+
+- [Inspecting State](/docs/cli/state/inspect.html)
+- [Forcing Re-creation (Tainting)](/docs/cli/state/taint.html)
+- [Moving Resources](/docs/cli/state/move.html)
+- Importing Pre-existing Resources (documented in the
+ [Importing Infrastructure](/docs/import/index.html) section)
+- [Disaster Recovery](/docs/cli/state/recover.html)
+
+~> **Important:** Modifying state data outside a normal plan or apply can cause
+Terraform to lose track of managed resources, which might waste money, annoy
+your colleagues, or even compromise the security of your operations. Make sure
+to keep backups of your state data when modifying state out-of-band.
diff --git a/website/docs/cli/state/inspect.html.md b/website/docs/cli/state/inspect.html.md
new file mode 100644
index 000000000..eb9792236
--- /dev/null
+++ b/website/docs/cli/state/inspect.html.md
@@ -0,0 +1,21 @@
+---
+layout: "docs"
+page_title: "Inspecting State - Terraform CLI"
+---
+
+# Inspecting State
+
+Terraform includes some commands for reading and updating state without taking
+any other actions.
+
+- [The `terraform state list` command](/docs/commands/state/list.html)
+ shows the resource addresses for every resource Terraform knows about in a
+ configuration, optionally filtered by partial resource address.
+
+- [The `terraform state show` command](/docs/commands/state/show.html)
+ displays detailed state data about one resource.
+
+- [The `terraform refresh` command](/docs/commands/refresh.html) updates
+ state data to match the real-world condition of the managed resources. This is
+ done automatically during plans and applies, but not when interacting with
+ state directly.
diff --git a/website/docs/cli/state/move.html.md b/website/docs/cli/state/move.html.md
new file mode 100644
index 000000000..b4cd62d90
--- /dev/null
+++ b/website/docs/cli/state/move.html.md
@@ -0,0 +1,35 @@
+---
+layout: "docs"
+page_title: "Moving Resources - Terraform CLI"
+---
+
+# Moving Resources
+
+Terraform's state associates each real-world object with a configured resource
+at a specific [resource address](/docs/internals/resource-addressing.html). This
+is seamless when changing a resource's attributes, but Terraform will lose track
+of a resource if you change its name, move it to a different module, or change
+its provider.
+
+Usually that's fine: Terraform will destroy the old resource, replace it with a
+new one (using the new resource address), and update any resources that rely on
+its attributes.
+
+In cases where it's important to preserve an existing infrastructure object, you
+can explicitly tell Terraform to associate it with a different configured
+resource.
+
+- [The `terraform state mv` command](/docs/commands/state/mv.html) changes
+ which resource address in your configuration is associated with a particular
+ real-world object. Use this to preserve an object when renaming a resource, or
+ when moving a resource into or out of a child module.
+
+- [The `terraform state rm` command](/docs/commands/state/rm.html) tells
+ Terraform to stop managing a resource as part of the current working directory
+ and workspace, _without_ destroying the corresponding real-world object. (You
+ can later use `terraform import` to start managing that resource in a
+ different workspace or a different Terraform configuration.)
+
+- [The `terraform state replace-provider` command](/docs/commands/state/replace-provider.html)
+ transfers existing resources to a new provider without requiring them to be
+ re-created.
diff --git a/website/docs/cli/state/recover.html.md b/website/docs/cli/state/recover.html.md
new file mode 100644
index 000000000..a8e55f3f6
--- /dev/null
+++ b/website/docs/cli/state/recover.html.md
@@ -0,0 +1,24 @@
+---
+layout: "docs"
+page_title: "Recovering from State Disasters - Terraform CLI"
+---
+
+# Recovering from State Disasters
+
+If something has gone horribly wrong (possibly due to accidents when performing
+other state manipulation actions), you might need to take drastic actions with
+your state data.
+
+- [The `terraform force-unlock` command](/docs/commands/force-unlock.html) can
+ override the protections Terraform uses to prevent two processes from
+ modifying state at the same time. You might need this if a Terraform process
+ (like a normal apply) is unexpectedly terminated (like by the complete
+ destruction of the VM it's running in) before it can release its lock on the
+ state backend. Do not run this until you are completely certain what happened
+ to the process that caused the lock to get stuck.
+
+- [The `terraform state pull` command](/docs/commands/state/pull.html) and
+ [the `terraform state push` command](/docs/commands/state/push.html) can
+ directly read and write entire state files from and to the configured backend.
+ You might need this for obtaining or restoring a state backup.
+
diff --git a/website/docs/cli/state/taint.html.md b/website/docs/cli/state/taint.html.md
new file mode 100644
index 000000000..433e80591
--- /dev/null
+++ b/website/docs/cli/state/taint.html.md
@@ -0,0 +1,25 @@
+---
+layout: "docs"
+page_title: "Forcing Re-creation of Resources (Tainting) - Terraform CLI"
+---
+
+# Forcing Re-creation of Resources (Tainting)
+
+When a resource declaration is modified, Terraform usually attempts to update
+the existing resource in place (although some changes can require destruction
+and re-creation, usually due to upstream API limitations).
+
+In some cases, you might want a resource to be destroyed and re-created even
+when Terraform doesn't think it's necessary. This is usually for objects that
+aren't fully described by their resource arguments due to side-effects that
+happen during creation; for example, a virtual machine that configures itself
+with `cloud-init` on startup might no longer meet your needs if the cloud-init
+configuration changes.
+
+- [The `terraform taint` command](/docs/commands/taint.html) tells Terraform to
+ destroy and re-create a particular resource during the next apply, regardless
+ of whether its resource arguments would normally require that.
+
+- [The `terraform untaint` command](/docs/commands/untaint.html) undoes a
+ previous taint, or can preserve a resource that was automatically tainted due
+ to failed [provisioners](/docs/provisioners/index.html).
diff --git a/website/docs/cli/workspaces/index.html.md b/website/docs/cli/workspaces/index.html.md
new file mode 100644
index 000000000..afb7d164c
--- /dev/null
+++ b/website/docs/cli/workspaces/index.html.md
@@ -0,0 +1,78 @@
+---
+layout: "docs"
+page_title: "Managing Workspaces - Terraform CLI"
+---
+
+# Managing Workspaces
+
+In Terraform CLI, _workspaces_ are separate instances of
+[state data](/docs/state/index.html) that can be used from the same working
+directory. You can use workspaces to manage multiple non-overlapping groups of
+resources with the same configuration.
+
+- Every [initialized working directory](/docs/cli/init/index.html) has at least
+ one workspace. (If you haven't created other workspaces, it is a workspace
+ named `default`.)
+- For a given working directory, only one workspace can be _selected_ at a time.
+- Most Terraform commands (including [provisioning](/docs/cli/run/index.html)
+ and [state manipulation](/docs/cli/state/index.html) commands) only interact
+ with the currently selected workspace.
+- Use [the `terraform workspace select` command](/docs/commands/workspace/select.html)
+ to change the currently selected workspace.
+- Use the [`terraform workspace list`](/docs/commands/workspace/list.html),
+ [`terraform workspace new`](/docs/commands/workspace/new.html), and
+ [`terraform workspace delete`](/docs/commands/workspace/delete.html) commands
+ to manage the available workspaces in the current working directory.
+
+-> **Note:** Terraform Cloud and Terraform CLI both have features called
+"workspaces," but they're slightly different. Terraform Cloud's workspaces
+behave more like completely separate working directories.
+
+## The Purpose of Workspaces
+
+Since most of the resources you can manage with Terraform don't include a unique
+name as part of their configuration, it's common to use the same Terraform
+configuration to provision multiple groups of similar resources.
+
+Terraform relies on [state](/docs/state/index.html) to associate resources with
+real-world objects, so if you run the same configuration multiple times with
+completely separate state data, Terraform can manage many non-overlapping groups
+of resources. In some cases you'll want to change
+[variable values](/docs/configuration/variables.html) for these different
+resource collections (like when specifying differences between staging and
+production deployments), and in other cases you might just want many instances
+of a particular infrastructure pattern.
+
+The simplest way to maintain multiple instances of a configuration with
+completely separate state data is to use multiple
+[working directories](/docs/cli/init/index.html) (with different
+[backend](/docs/configuration/backend.html) configurations per directory, if you
+aren't using the default `local` backend).
+
+However, this isn't always the most _convenient_ way to handle separate states.
+Terraform installs a separate cache of plugins and modules for each working
+directory, so maintaining multiple directories can waste bandwidth and disk
+space. You must also update your configuration code from version control
+separately for each directory, reinitialize each directory separately when
+changing the configuration, etc.
+
+Workspaces allow you to use the same working copy of your configuration and the
+same plugin and module caches, while still keeping separate states for each
+collection of resources you manage.
+
+## Interactions with Terraform Cloud Workspaces
+
+Terraform Cloud organizes infrastructure using workspaces, but its workspaces
+act more like completely separate working directories; each Terraform Cloud
+workspace has its own Terraform configuration, set of variable values, state
+data, run history, and settings.
+
+These two kinds of workspaces are different, but related. When using Terraform
+CLI as a frontend for Terraform Cloud, you associate the current working
+directory with one or more remote workspaces by configuring
+[the `remote` backend](/docs/backends/types/remote.html). If you associate the
+directory with multiple workspaces (using a name prefix), you can use the
+`terraform workspace` commands to select which remote workspace to use.
+
+For more information about using Terraform CLI with Terraform Cloud, see
+[CLI-driven Runs](/docs/cloud/run/cli.html) in the Terraform Cloud docs.
diff --git a/website/docs/commands/index.html.markdown b/website/docs/commands/index.html.markdown
index 2f8ee2a4e..2374d71d8 100644
--- a/website/docs/commands/index.html.markdown
+++ b/website/docs/commands/index.html.markdown
@@ -1,12 +1,12 @@
---
layout: "docs"
-page_title: "Commands"
+page_title: "Basic CLI Features"
sidebar_current: "docs-commands"
description: |-
Main usage information for the Terraform CLI tool.
---
-# Terraform Commands (CLI)
+# Basic CLI Features
> **Hands-on:** Try the [Terraform: Get Started](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.
diff --git a/website/docs/commands/providers.html.markdown b/website/docs/commands/providers.html.markdown
index d30c21303..4da6a4e3b 100644
--- a/website/docs/commands/providers.html.markdown
+++ b/website/docs/commands/providers.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "commands-providers"
+layout: "docs"
page_title: "Command: providers"
sidebar_current: "docs-commands-providers"
description: |-
diff --git a/website/docs/commands/providers/lock.html.md b/website/docs/commands/providers/lock.html.md
index 25dea21e1..affa202a9 100644
--- a/website/docs/commands/providers/lock.html.md
+++ b/website/docs/commands/providers/lock.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-providers"
+layout: "docs"
page_title: "Command: providers lock"
sidebar_current: "docs-commands-providers-lock"
description: |-
diff --git a/website/docs/commands/providers/mirror.html.md b/website/docs/commands/providers/mirror.html.md
index 39e7b183b..829508d2f 100644
--- a/website/docs/commands/providers/mirror.html.md
+++ b/website/docs/commands/providers/mirror.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-providers"
+layout: "docs"
page_title: "Command: providers mirror"
sidebar_current: "docs-commands-providers-mirror"
description: |-
diff --git a/website/docs/commands/providers/schema.html.md b/website/docs/commands/providers/schema.html.md
index 717d463eb..e97e50f23 100644
--- a/website/docs/commands/providers/schema.html.md
+++ b/website/docs/commands/providers/schema.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-providers"
+layout: "docs"
page_title: "Command: providers schema"
sidebar_current: "docs-commands-providers-schema"
description: |-
diff --git a/website/docs/commands/state/addressing.html.md b/website/docs/commands/state/addressing.html.md
index 0df951188..323b58839 100644
--- a/website/docs/commands/state/addressing.html.md
+++ b/website/docs/commands/state/addressing.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state resource addressing"
sidebar_current: "docs-commands-state-address"
description: |-
diff --git a/website/docs/commands/state/index.html.md b/website/docs/commands/state/index.html.md
index 4c2154caa..e3faf2460 100644
--- a/website/docs/commands/state/index.html.md
+++ b/website/docs/commands/state/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state"
sidebar_current: "docs-commands-state-index"
description: |-
diff --git a/website/docs/commands/state/list.html.md b/website/docs/commands/state/list.html.md
index dea39e2c1..7763f9b08 100644
--- a/website/docs/commands/state/list.html.md
+++ b/website/docs/commands/state/list.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state list"
sidebar_current: "docs-commands-state-sub-list"
description: |-
diff --git a/website/docs/commands/state/mv.html.md b/website/docs/commands/state/mv.html.md
index bb35b1399..41118ed0f 100644
--- a/website/docs/commands/state/mv.html.md
+++ b/website/docs/commands/state/mv.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state mv"
sidebar_current: "docs-commands-state-sub-mv"
description: |-
diff --git a/website/docs/commands/state/pull.html.md b/website/docs/commands/state/pull.html.md
index 394881b45..f6aa69b97 100644
--- a/website/docs/commands/state/pull.html.md
+++ b/website/docs/commands/state/pull.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state pull"
sidebar_current: "docs-commands-state-sub-pull"
description: |-
diff --git a/website/docs/commands/state/push.html.md b/website/docs/commands/state/push.html.md
index 13303ad2e..4ba3f47c2 100644
--- a/website/docs/commands/state/push.html.md
+++ b/website/docs/commands/state/push.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state push"
sidebar_current: "docs-commands-state-sub-push"
description: |-
diff --git a/website/docs/commands/state/replace-provider.html.md b/website/docs/commands/state/replace-provider.html.md
index 1219c12a2..c1b4d511f 100644
--- a/website/docs/commands/state/replace-provider.html.md
+++ b/website/docs/commands/state/replace-provider.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state replace-provider"
sidebar_current: "docs-commands-state-sub-replace-provider"
description: |-
diff --git a/website/docs/commands/state/rm.html.md b/website/docs/commands/state/rm.html.md
index cbdfc766e..f153320e6 100644
--- a/website/docs/commands/state/rm.html.md
+++ b/website/docs/commands/state/rm.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state rm"
sidebar_current: "docs-commands-state-sub-rm"
description: |-
diff --git a/website/docs/commands/state/show.html.md b/website/docs/commands/state/show.html.md
index 6cf8984a8..da95b3822 100644
--- a/website/docs/commands/state/show.html.md
+++ b/website/docs/commands/state/show.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-state"
+layout: "docs"
page_title: "Command: state show"
sidebar_current: "docs-commands-state-sub-show"
description: |-
diff --git a/website/docs/commands/workspace/delete.html.md b/website/docs/commands/workspace/delete.html.md
index ababb8d77..3c99cf857 100644
--- a/website/docs/commands/workspace/delete.html.md
+++ b/website/docs/commands/workspace/delete.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-workspace"
+layout: "docs"
page_title: "Command: workspace delete"
sidebar_current: "docs-commands-workspace-sub-delete"
description: |-
diff --git a/website/docs/commands/workspace/index.html.md b/website/docs/commands/workspace/index.html.md
index 6ec535d63..354d96e25 100644
--- a/website/docs/commands/workspace/index.html.md
+++ b/website/docs/commands/workspace/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-workspace"
+layout: "docs"
page_title: "Command: workspace"
sidebar_current: "docs-commands-workspace-index"
description: |-
diff --git a/website/docs/commands/workspace/list.html.md b/website/docs/commands/workspace/list.html.md
index a44cab8af..0b0f842a1 100644
--- a/website/docs/commands/workspace/list.html.md
+++ b/website/docs/commands/workspace/list.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-workspace"
+layout: "docs"
page_title: "Command: workspace list"
sidebar_current: "docs-commands-workspace-sub-list"
description: |-
diff --git a/website/docs/commands/workspace/new.html.md b/website/docs/commands/workspace/new.html.md
index d41473440..7b76b0cbc 100644
--- a/website/docs/commands/workspace/new.html.md
+++ b/website/docs/commands/workspace/new.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-workspace"
+layout: "docs"
page_title: "Command: workspace new"
sidebar_current: "docs-commands-workspace-sub-new"
description: |-
diff --git a/website/docs/commands/workspace/select.html.md b/website/docs/commands/workspace/select.html.md
index 197eb64d7..eaadd59b6 100644
--- a/website/docs/commands/workspace/select.html.md
+++ b/website/docs/commands/workspace/select.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-workspace"
+layout: "docs"
page_title: "Command: workspace select"
sidebar_current: "docs-commands-workspace-sub-select"
description: |-
diff --git a/website/docs/commands/workspace/show.html.md b/website/docs/commands/workspace/show.html.md
index 228bc13c0..7cd7d5b5d 100644
--- a/website/docs/commands/workspace/show.html.md
+++ b/website/docs/commands/workspace/show.html.md
@@ -1,5 +1,5 @@
---
-layout: "commands-workspace"
+layout: "docs"
page_title: "Command: workspace show"
sidebar_current: "docs-commands-workspace-sub-show"
description: |-
diff --git a/website/docs/configuration-0-11/data-sources.html.md b/website/docs/configuration-0-11/data-sources.html.md
index 7f5c7e680..908a24d4b 100644
--- a/website/docs/configuration-0-11/data-sources.html.md
+++ b/website/docs/configuration-0-11/data-sources.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Data Sources - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-data-sources"
description: |-
diff --git a/website/docs/configuration-0-11/environment-variables.html.md b/website/docs/configuration-0-11/environment-variables.html.md
index 083d95048..85a5468ec 100644
--- a/website/docs/configuration-0-11/environment-variables.html.md
+++ b/website/docs/configuration-0-11/environment-variables.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Environment Variables - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-environment-variables"
description: |-
diff --git a/website/docs/configuration-0-11/index.html.md b/website/docs/configuration-0-11/index.html.md
index eb4167aa9..f804ba11d 100644
--- a/website/docs/configuration-0-11/index.html.md
+++ b/website/docs/configuration-0-11/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "0.11 Configuration Language"
sidebar_current: "docs-conf-old"
description: |-
diff --git a/website/docs/configuration-0-11/interpolation.html.md b/website/docs/configuration-0-11/interpolation.html.md
index 738783625..8da16e154 100644
--- a/website/docs/configuration-0-11/interpolation.html.md
+++ b/website/docs/configuration-0-11/interpolation.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Interpolation Syntax - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-interpolation"
description: |-
diff --git a/website/docs/configuration-0-11/load.html.md b/website/docs/configuration-0-11/load.html.md
index 75ddcb191..b2831c471 100644
--- a/website/docs/configuration-0-11/load.html.md
+++ b/website/docs/configuration-0-11/load.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Load Order and Semantics - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-load"
description: |-
diff --git a/website/docs/configuration-0-11/locals.html.md b/website/docs/configuration-0-11/locals.html.md
index 74dc658a3..a72f6a79a 100644
--- a/website/docs/configuration-0-11/locals.html.md
+++ b/website/docs/configuration-0-11/locals.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Local Values - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-locals"
description: |-
diff --git a/website/docs/configuration-0-11/modules.html.md b/website/docs/configuration-0-11/modules.html.md
index 6ac2a0b33..abe8440d9 100644
--- a/website/docs/configuration-0-11/modules.html.md
+++ b/website/docs/configuration-0-11/modules.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Modules - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-modules"
description: |-
diff --git a/website/docs/configuration-0-11/outputs.html.md b/website/docs/configuration-0-11/outputs.html.md
index 7e43180ca..565f1b6f8 100644
--- a/website/docs/configuration-0-11/outputs.html.md
+++ b/website/docs/configuration-0-11/outputs.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Output Values - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-outputs"
description: |-
diff --git a/website/docs/configuration-0-11/override.html.md b/website/docs/configuration-0-11/override.html.md
index 6311443ff..7ae4036d1 100644
--- a/website/docs/configuration-0-11/override.html.md
+++ b/website/docs/configuration-0-11/override.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Override Files - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-override"
description: |-
diff --git a/website/docs/configuration-0-11/providers.html.md b/website/docs/configuration-0-11/providers.html.md
index d74aba634..fcff5142e 100644
--- a/website/docs/configuration-0-11/providers.html.md
+++ b/website/docs/configuration-0-11/providers.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Providers - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-providers"
description: |-
diff --git a/website/docs/configuration-0-11/resources.html.md b/website/docs/configuration-0-11/resources.html.md
index d7bbed97c..f6b3b56d4 100644
--- a/website/docs/configuration-0-11/resources.html.md
+++ b/website/docs/configuration-0-11/resources.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Resources - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-resources"
description: |-
diff --git a/website/docs/configuration-0-11/syntax.html.md b/website/docs/configuration-0-11/syntax.html.md
index d438e77a0..c40ee1713 100644
--- a/website/docs/configuration-0-11/syntax.html.md
+++ b/website/docs/configuration-0-11/syntax.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Syntax - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-syntax"
description: |-
diff --git a/website/docs/configuration-0-11/terraform-enterprise.html.md b/website/docs/configuration-0-11/terraform-enterprise.html.md
index 1b2636887..f42005b11 100644
--- a/website/docs/configuration-0-11/terraform-enterprise.html.md
+++ b/website/docs/configuration-0-11/terraform-enterprise.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Terraform Push - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-push"
description: |-
diff --git a/website/docs/configuration-0-11/terraform.html.md b/website/docs/configuration-0-11/terraform.html.md
index ff75cbced..42cc563d4 100644
--- a/website/docs/configuration-0-11/terraform.html.md
+++ b/website/docs/configuration-0-11/terraform.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Terraform Settings - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-terraform"
description: |-
diff --git a/website/docs/configuration-0-11/variables.html.md b/website/docs/configuration-0-11/variables.html.md
index 7201d6420..aa74c062a 100644
--- a/website/docs/configuration-0-11/variables.html.md
+++ b/website/docs/configuration-0-11/variables.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Input Variables - 0.11 Configuration Language"
sidebar_current: "docs-conf-old-variables"
description: |-
diff --git a/website/docs/configuration/attr-as-blocks.html.md b/website/docs/configuration/attr-as-blocks.html.md
index 5a2dd37a1..d9b95deac 100644
--- a/website/docs/configuration/attr-as-blocks.html.md
+++ b/website/docs/configuration/attr-as-blocks.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Attributes as Blocks - Configuration Language"
sidebar_current: "docs-config-attr-as-blocks"
description: |-
diff --git a/website/docs/configuration/backend.html.md b/website/docs/configuration/backend.html.md
index 35e6b0094..8d65e469a 100644
--- a/website/docs/configuration/backend.html.md
+++ b/website/docs/configuration/backend.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Backend Configuration - Configuration Language"
---
diff --git a/website/docs/configuration/blocks/backends/index.html.md b/website/docs/configuration/blocks/backends/index.html.md
new file mode 100644
index 000000000..cd66d185c
--- /dev/null
+++ b/website/docs/configuration/blocks/backends/index.html.md
@@ -0,0 +1,100 @@
+---
+layout: "language"
+page_title: "Backend Overview - Configuration Language"
+---
+
+# Backends
+
+Each Terraform configuration can specify a backend, which defines where
+and how operations are performed, where [state](/docs/state/index.html)
+snapshots are stored, etc.
+
+The rest of this page introduces the concept of backends; the other pages in
+this section document how to configure and use backends.
+
+- [Backend Configuration](/docs/configuration/backend.html) documents the form
+ of a `backend` block, which selects and configures a backend for a
+ Terraform configuration.
+- This section also includes a page for each of Terraform's built-in backends,
+ documenting its behavior and available settings. See the navigation sidebar
+ for a complete list.
+
+## Recommended Backends
+
+- If you are still learning how to use Terraform, we recommend using the default
+ `local` backend, which requires no configuration.
+- If you and your team are using Terraform to manage meaningful infrastructure,
+ we recommend using the `remote` backend with [Terraform Cloud](/docs/cloud/index.html)
+ or [Terraform Enterprise](/docs/enterprise/index.html).
+
+## Where Backends are Used
+
+Backend configuration is only used by [Terraform CLI](/docs/cli-index.html).
+Terraform Cloud and Terraform Enterprise always use their own state storage when
+performing Terraform runs, so they ignore any backend block in the
+configuration.
+
+But since it's common to
+[use Terraform CLI alongside Terraform Cloud](/docs/cloud/run/cli.html)
+(and since certain state operations, like [tainting](/docs/commands/taint.html),
+can only be performed on the CLI), we recommend that Terraform Cloud users
+include a backend block in their configurations and configure the `remote`
+backend to use the relevant Terraform Cloud workspace(s).
+
+## Where Backends Come From
+
+Terraform includes a built-in selection of backends; this selection has changed
+over time, but does not change very often.
+
+The built-in backends are the only backends. You cannot load additional backends
+as plugins.
+
+## What Backends Do
+
+There are two areas of Terraform's behavior that are determined by the backend:
+
+- Where state is stored.
+- Where operations are performed.
+
+### State
+
+Terraform uses persistent [state](/docs/state/index.html) data to keep track of
+the resources it manages. Since it needs the state in order to know which
+real-world infrastructure objects correspond to the resources in a
+configuration, everyone working with a given collection of infrastructure
+resources must be able to access the same state data.
+
+The `local` backend stores state as a local file on disk, but every other
+backend stores state in a remote service of some kind, which allows multiple
+people to access it. Accessing state in a remote service generally requires some
+kind of access credentials, since state date contains extremely sensitive
+information.
+
+Some backends act like plain "remote disks" for state files; others support
+_locking_ the state while operations are being performed, which helps prevent
+conflicts and inconsistencies.
+
+### Operations
+
+"Operations" refers to performing API requests against infrastructure services
+in order to create, read, update, or destroy resources. Not every `terraform`
+subcommand performs API operations; many of them only operate on state data.
+
+Only two backends actually perform operations: `local` and `remote`.
+
+The `local` backend performs API operations directly from the machine where the
+`terraform` command is run. Whenever you use a backend other than `local` or
+`remote`, Terraform uses the `local` backend for operations; it only uses the
+configured backend for state storage.
+
+The `remote` backend can perform API operations remotely, using Terraform Cloud
+or Terraform Enterprise. When running remote operations, the local `terraform`
+command displays the output of the remote actions as though they were being
+performed locally, but only the remote system requires cloud credentials or
+network access to the resources being managed.
+
+Remote operations are optional for the `remote` backend; the settings for the
+target Terraform Cloud workspace determine whether operations run remotely or
+locally. If local operations are configured, Terraform uses the `remote` backend
+for state and the `local` backend for operations, like with the other state
+backends.
diff --git a/website/docs/configuration/blocks/modules/index.html.md b/website/docs/configuration/blocks/modules/index.html.md
new file mode 100644
index 000000000..bdb1a317b
--- /dev/null
+++ b/website/docs/configuration/blocks/modules/index.html.md
@@ -0,0 +1,60 @@
+---
+layout: "language"
+page_title: "Modules Overview - Configuration Language"
+---
+
+# Modules
+
+> **Hands-on:** Try the [Reuse Configuration with Modules](https://learn.hashicorp.com/collections/terraform/modules?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.
+
+_Modules_ are containers for multiple resources that are used together. A module
+consists of a collection of `.tf` and/or `.tf.json` files kept together in a
+directory.
+
+Modules are the main way to package and reuse resource configurations with
+Terraform.
+
+## The Root Module
+
+Every Terraform configuration has at least one module, known as its
+_root module_, which consists of the resources defined in the `.tf` files in
+the main working directory.
+
+## Child Modules
+
+A Terraform module (usually the root module of a configuration) can _call_ other
+modules to include their resources into the configuration. A module that has
+been called by another module is often referred to as a _child module._
+
+Child modules can be called multiple times within the same configuration, and
+multiple configurations can use the same child module.
+
+## Published Modules
+
+In addition to modules from the local filesystem, Terraform can load modules
+from a public or private registry. This makes it possible to publish modules for
+others to use, and to use modules that others have published.
+
+The [Terraform Registry](https://registry.terraform.io/browse/modules) hosts a
+broad collection of publicly available Terraform modules for configuring many
+kinds of common infrastructure. These modules are free to use, and Terraform can
+download them automatically if you specify the appropriate source and version in
+a module call block.
+
+Also, members of your organization might produce modules specifically crafted
+for your own infrastructure needs. [Terraform Cloud](/docs/cloud/index.html) and
+[Terraform Enterprise](/docs/enterprise/index.html) both include a private
+module registry for sharing modules internally within your organization.
+
+## Using Modules
+
+- [Module Blocks](/docs/configuration/modules.html) documents the syntax for
+ calling a child module from a parent module, including meta-arguments like
+ `for_each`.
+- [Module Sources](/docs/modules/sources.html) documents what kinds of paths,
+ addresses, and URIs can be used in the `source` argument of a module block.
+
+## Developing Modules
+
+For information about developing reusable modules, see
+[Module Development](/docs/modules/index.html).
diff --git a/website/docs/configuration/blocks/providers/index.html.md b/website/docs/configuration/blocks/providers/index.html.md
new file mode 100644
index 000000000..a6790044a
--- /dev/null
+++ b/website/docs/configuration/blocks/providers/index.html.md
@@ -0,0 +1,120 @@
+---
+layout: "language"
+page_title: "Providers - Configuration Language"
+---
+
+# Providers
+
+Terraform relies on plugins called "providers" to interact with remote systems.
+
+Terraform configurations must declare which providers they require so that
+Terraform can install and use them. Additionally, some providers require
+configuration (like endpoint URLs or cloud regions) before they can be used.
+
+## What Providers Do
+
+Each provider adds a set of [resource types](/docs/configuration/resources.html)
+and/or [data sources](/docs/configuration/data-sources.html) that Terraform can
+manage.
+
+Every resource type is implemented by a provider; without providers, Terraform
+can't manage any kind of infrastructure.
+
+Most providers configure a specific infrastructure platform (either cloud or
+self-hosted). Providers can also offer local utilities for tasks like
+generating random numbers for unique resource names.
+
+## Where Providers Come From
+
+Providers are distributed separately from Terraform itself, and each provider
+has its own release cadence and version numbers.
+
+The [Terraform Registry](https://registry.terraform.io/browse/providers)
+is the main directory of publicly available Terraform providers, and hosts
+providers for most major infrastructure platforms.
+
+## How to Use Providers
+
+To use resources from a given provider, you need to include some information
+about it in your configuration. See the following pages for details:
+
+- [Provider Requirements](/docs/configuration/provider-requirements.html)
+ documents how to declare providers so Terraform can install them.
+
+- [Provider Configuration](/docs/configuration/providers.html)
+ documents how to configure settings for providers.
+
+- [Dependency Lock File](/docs/configuration/dependency-lock.html)
+ documents an additional HCL file that can be included with a configuration,
+ which tells Terraform to always use a specific set of provider versions.
+
+## Provider Installation
+
+- Terraform Cloud and Terraform Enterprise install providers as part of every run.
+
+- Terraform CLI finds and installs providers when
+ [initializing a working directory](/docs/cli/init/index.html). It can
+ automatically download providers from a Terraform registry, or load them from
+ a local mirror or cache. If you are using a persistent working directory, you
+ must reinitialize whenever you change a configuration's providers.
+
+ To save time and bandwidth, Terraform CLI supports an optional plugin
+ cache. You can enable the cache using the `plugin_cache_dir` setting in
+ [the CLI configuration file](/docs/commands/cli-config.html).
+
+To ensure Terraform always installs the same provider versions for a given
+configuration, you can use Terraform CLI to create a
+[dependency lock file](/docs/configuration/dependency-lock.html)
+and commit it to version control along with your configuration. If a lock file
+is present, Terraform Cloud, CLI, and Enterprise will all obey it when
+installing providers.
+
+## How to Find Providers
+
+To find providers for the infrastructure platforms you use, browse
+[the providers section of the Terraform Registry](https://registry.terraform.io/browse/providers).
+
+Some providers on the Registry are developed and published by HashiCorp, some
+are published by platform maintainers, and some are published by users and
+volunteers. The provider listings use the following badges to indicate who
+develops and maintains a given provider.
+
+
+
+
+Tier |
+Description |
+Namespace |
+
+
+ |
+Official providers are owned and maintained by HashiCorp |
+hashicorp |
+
+
+ |
+Verified providers are owned and maintained by third-party technology partners. Providers in this tier indicate HashiCorp has verified the authenticity of the Provider’s publisher, and that the partner is a member of the HashiCorp Technology Partner Program. |
+Third-party organization, e.g. mongodb/mongodbatlas |
+
+
+ |
+Community providers are published to the Terraform Registry by individual maintainers, groups of maintainers, or other members of the Terraform community. |
+ Maintainer’s individual or organization account, e.g. DeviaVir/gsuite |
+
+
+ |
+Archived Providers are Official or Verified Providers that are no longer maintained by HashiCorp or the community. This may occur if an API is deprecated or interest was low. |
+hashicorp or third-party |
+
+
+
+
+
+## How to Develop Providers
+
+Providers are written in Go, using the Terraform Plugin SDK. For more
+information on developing providers, see:
+
+- The [Extending Terraform](/docs/extend/index.html) documentation
+- The [Call APIs with Terraform Providers](https://learn.hashicorp.com/collections/terraform/providers?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ collection on HashiCorp Learn
diff --git a/website/docs/configuration/blocks/resources/index.html.md b/website/docs/configuration/blocks/resources/index.html.md
new file mode 100644
index 000000000..f29d327e0
--- /dev/null
+++ b/website/docs/configuration/blocks/resources/index.html.md
@@ -0,0 +1,21 @@
+---
+layout: "language"
+page_title: "Resources Overview - Configuration Language"
+---
+
+# Resources
+
+> **Hands-on:** Try the [Terraform: Get Started](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.
+
+_Resources_ are the most important element in the Terraform language.
+Each resource block describes one or more infrastructure objects, such
+as virtual networks, compute instances, or higher-level components such
+as DNS records.
+
+- [Resource Blocks](/docs/configuration/resources.html) documents how to declare
+ resources, including information about meta-arguments like `for_each`.
+- [Provisioners](/docs/configuration/blocks/resources/provisioners/index.html)
+ documents configuring post-creation actions for a resource using the
+ `provisioner` and `connection` blocks. Since provisioners are non-declarative
+ and potentially unpredictable, we strongly recommend that you treat them as a
+ last resort.
diff --git a/website/docs/configuration/blocks/resources/provisioners/index.html.md b/website/docs/configuration/blocks/resources/provisioners/index.html.md
new file mode 100644
index 000000000..c9fef64bb
--- /dev/null
+++ b/website/docs/configuration/blocks/resources/provisioners/index.html.md
@@ -0,0 +1,11 @@
+---
+layout: "language"
+page_title: "Provisioners Overview - Configuration Language"
+---
+
+# Provisioners
+
+Provisioners can be used to model specific actions on the local machine or on a
+remote machine in order to prepare servers or other infrastructure objects for
+service.
+
diff --git a/website/docs/configuration/blocks/values/index.html.md b/website/docs/configuration/blocks/values/index.html.md
new file mode 100644
index 000000000..fb800fb70
--- /dev/null
+++ b/website/docs/configuration/blocks/values/index.html.md
@@ -0,0 +1,18 @@
+---
+layout: "language"
+page_title: "Variables and Outputs"
+---
+
+# Variables and Outputs
+
+The Terraform language includes a few kinds of blocks for requesting or
+publishing named values.
+
+- [Input Variables](/docs/configuration/variables.html) serve as parameters for
+ a Terraform module, so users can customize behavior without editing the source.
+
+- [Output Values](/docs/configuration/outputs.html) are like return values for a
+ Terraform module.
+
+- [Local Values](/docs/configuration/locals.html) are a convenience feature for
+ assigning a short name to an expression.
diff --git a/website/docs/configuration/data-sources.html.md b/website/docs/configuration/data-sources.html.md
index 4fce3fd1c..ec5185666 100644
--- a/website/docs/configuration/data-sources.html.md
+++ b/website/docs/configuration/data-sources.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Data Sources - Configuration Language"
sidebar_current: "docs-config-data-sources"
description: |-
diff --git a/website/docs/configuration/dependency-lock.html.md b/website/docs/configuration/dependency-lock.html.md
index fc7a1413d..37c95068c 100644
--- a/website/docs/configuration/dependency-lock.html.md
+++ b/website/docs/configuration/dependency-lock.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Dependency Lock File (.terraform.lock.hcl) - Configuration Language"
---
diff --git a/website/docs/configuration/expressions.html.md b/website/docs/configuration/expressions.html.md
index 6b4db6111..d988c17a5 100644
--- a/website/docs/configuration/expressions.html.md
+++ b/website/docs/configuration/expressions.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Expressions - Configuration Language"
sidebar_current: "docs-config-expressions"
description: |-
diff --git a/website/docs/configuration/expressions/index.html.md b/website/docs/configuration/expressions/index.html.md
new file mode 100644
index 000000000..9bfb15e28
--- /dev/null
+++ b/website/docs/configuration/expressions/index.html.md
@@ -0,0 +1,25 @@
+---
+layout: "language"
+page_title: "Expressions - Configuration Language"
+---
+
+# Expressions
+
+_Expressions_ are used to refer to or compute values within a configuration.
+The simplest expressions are just literal values, like `"hello"` or `5`,
+but the Terraform language also allows more complex expressions such as
+references to data exported by resources, arithmetic, conditional evaluation,
+and a number of built-in functions.
+
+Expressions can be used in a number of places in the Terraform language,
+but some contexts limit which expression constructs are allowed,
+such as requiring a literal value of a particular type or forbidding
+[references to resource attributes](/docs/configuration/expressions/references.html#references-to-resource-attributes).
+Each language feature's documentation describes any restrictions it places on expressions.
+
+You can experiment with the behavior of Terraform's expressions from
+the Terraform expression console, by running
+[the `terraform console` command](/docs/commands/console.html).
+
+The other pages in this section describe the features of Terraform's
+expression syntax.
diff --git a/website/docs/configuration/files/index.html.md b/website/docs/configuration/files/index.html.md
new file mode 100644
index 000000000..93b664771
--- /dev/null
+++ b/website/docs/configuration/files/index.html.md
@@ -0,0 +1,57 @@
+---
+layout: "language"
+page_title: "Files and Directories - Configuration Language"
+---
+
+# Files and Directories
+
+## File Extension
+
+Code in the Terraform language is stored in plain text files with the `.tf` file
+extension. There is also
+[a JSON-based variant of the language](./syntax-json.html) that is named with
+the `.tf.json` file extension.
+
+Files containing Terraform code are often called _configuration files._
+
+## Text Encoding
+
+Configuration files must always use UTF-8 encoding, and by convention
+usually use Unix-style line endings (LF) rather than Windows-style
+line endings (CRLF), though both are accepted.
+
+## Directories and Modules
+
+A _module_ is a collection of `.tf` and/or `.tf.json` files kept together in a
+directory.
+
+A Terraform module only consists of the top-level configuration files in a
+directory; nested directories are treated as completely separate modules, and
+are not automatically included in the configuration.
+
+Terraform evaluates all of the configuration files in a module, effectively
+treating the entire module as a single document. Separating various blocks into
+different files is purely for the convenience of readers and maintainers, and
+has no effect on the module's behavior.
+
+A Terraform module can use [module calls](/docs/configuration/modules.html) to
+explicitly include other modules into the configuration. These child modules can
+come from local directories (nested in the parent module's directory, or
+anywhere else on disk), or from external sources like the
+[Terraform Registry](https://registry.terraform.io).
+
+## The Root Module
+
+Terraform always runs in the context of a single _root module._ A complete
+_Terraform configuration_ consists of a root module and the tree of child
+modules (which includes the modules called by the root module, any modules
+called by those modules, etc.).
+
+- In Terraform CLI, the root module is the working directory where Terraform is
+ invoked. (You can use command line options to specify a root module outside
+ the working directory, but in practice this is rare. )
+- In Terraform Cloud and Terraform Enterprise, the root module for a workspace
+ defaults to the top level of the configuration directory (supplied via version
+ control repository or direct upload), but the workspace settings can specify a
+ subdirectory to use instead.
+
diff --git a/website/docs/configuration/functions.html.md b/website/docs/configuration/functions.html.md
index 2b866e2fc..edfa0d44c 100644
--- a/website/docs/configuration/functions.html.md
+++ b/website/docs/configuration/functions.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "Functions - Configuration Language"
sidebar_current: "docs-config-functions"
description: |-
diff --git a/website/docs/configuration/functions/abs.html.md b/website/docs/configuration/functions/abs.html.md
index 012bd00b4..df76e7206 100644
--- a/website/docs/configuration/functions/abs.html.md
+++ b/website/docs/configuration/functions/abs.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "abs - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-abs"
description: |-
diff --git a/website/docs/configuration/functions/abspath.html.md b/website/docs/configuration/functions/abspath.html.md
index cf5bceba1..710b57204 100644
--- a/website/docs/configuration/functions/abspath.html.md
+++ b/website/docs/configuration/functions/abspath.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "abspath - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-abspath"
description: |-
diff --git a/website/docs/configuration/functions/alltrue.html.md b/website/docs/configuration/functions/alltrue.html.md
index 173685c1f..3d2ff9c97 100644
--- a/website/docs/configuration/functions/alltrue.html.md
+++ b/website/docs/configuration/functions/alltrue.html.md
@@ -1,5 +1,5 @@
---
-layout: functions
+layout: "language"
page_title: alltrue - Functions - Configuration Language
sidebar_current: docs-funcs-collection-alltrue
description: |-
diff --git a/website/docs/configuration/functions/anytrue.html.md b/website/docs/configuration/functions/anytrue.html.md
index 0a6005a71..b616f3664 100644
--- a/website/docs/configuration/functions/anytrue.html.md
+++ b/website/docs/configuration/functions/anytrue.html.md
@@ -1,5 +1,5 @@
---
-layout: functions
+layout: "language"
page_title: anytrue - Functions - Configuration Language
sidebar_current: docs-funcs-collection-anytrue
description: |-
diff --git a/website/docs/configuration/functions/base64decode.html.md b/website/docs/configuration/functions/base64decode.html.md
index f81ed9122..7a562aa5e 100644
--- a/website/docs/configuration/functions/base64decode.html.md
+++ b/website/docs/configuration/functions/base64decode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "base64decode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-base64decode"
description: |-
diff --git a/website/docs/configuration/functions/base64encode.html.md b/website/docs/configuration/functions/base64encode.html.md
index e3e6bc5e4..9874fcb9d 100644
--- a/website/docs/configuration/functions/base64encode.html.md
+++ b/website/docs/configuration/functions/base64encode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "base64encode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-base64encode"
description: |-
diff --git a/website/docs/configuration/functions/base64gzip.html.md b/website/docs/configuration/functions/base64gzip.html.md
index 5bd11434b..35abeb117 100644
--- a/website/docs/configuration/functions/base64gzip.html.md
+++ b/website/docs/configuration/functions/base64gzip.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "base64gzip - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-base64gzip"
description: |-
diff --git a/website/docs/configuration/functions/base64sha256.html.md b/website/docs/configuration/functions/base64sha256.html.md
index 381f410be..1fd204e9b 100644
--- a/website/docs/configuration/functions/base64sha256.html.md
+++ b/website/docs/configuration/functions/base64sha256.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "base64sha256 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-base64sha256"
description: |-
diff --git a/website/docs/configuration/functions/base64sha512.html.md b/website/docs/configuration/functions/base64sha512.html.md
index b910d78f3..35a6509f5 100644
--- a/website/docs/configuration/functions/base64sha512.html.md
+++ b/website/docs/configuration/functions/base64sha512.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "base64sha512 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-base64sha512"
description: |-
diff --git a/website/docs/configuration/functions/basename.html.md b/website/docs/configuration/functions/basename.html.md
index 8db5fa4bd..87702481c 100644
--- a/website/docs/configuration/functions/basename.html.md
+++ b/website/docs/configuration/functions/basename.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "basename - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-basename"
description: |-
diff --git a/website/docs/configuration/functions/bcrypt.html.md b/website/docs/configuration/functions/bcrypt.html.md
index 668523439..d8bdafbb9 100644
--- a/website/docs/configuration/functions/bcrypt.html.md
+++ b/website/docs/configuration/functions/bcrypt.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "bcrypt - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-bcrypt"
description: |-
diff --git a/website/docs/configuration/functions/can.html.md b/website/docs/configuration/functions/can.html.md
index 5cb3abb61..d8450f4b8 100644
--- a/website/docs/configuration/functions/can.html.md
+++ b/website/docs/configuration/functions/can.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "can - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-can"
description: |-
diff --git a/website/docs/configuration/functions/ceil.html.md b/website/docs/configuration/functions/ceil.html.md
index deb4dada6..a10ef4c9e 100644
--- a/website/docs/configuration/functions/ceil.html.md
+++ b/website/docs/configuration/functions/ceil.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "ceil - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-ceil"
description: |-
diff --git a/website/docs/configuration/functions/chomp.html.md b/website/docs/configuration/functions/chomp.html.md
index 1e8db54a8..ee290e4ec 100644
--- a/website/docs/configuration/functions/chomp.html.md
+++ b/website/docs/configuration/functions/chomp.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "chomp - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-chomp"
description: |-
diff --git a/website/docs/configuration/functions/chunklist.html.md b/website/docs/configuration/functions/chunklist.html.md
index 63df0bc66..9e796cc7c 100644
--- a/website/docs/configuration/functions/chunklist.html.md
+++ b/website/docs/configuration/functions/chunklist.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "chunklist - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-chunklist"
description: |-
diff --git a/website/docs/configuration/functions/cidrhost.html.md b/website/docs/configuration/functions/cidrhost.html.md
index a75793120..a8da2fce1 100644
--- a/website/docs/configuration/functions/cidrhost.html.md
+++ b/website/docs/configuration/functions/cidrhost.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "cidrhost - Functions - Configuration Language"
sidebar_current: "docs-funcs-ipnet-cidrhost"
description: |-
diff --git a/website/docs/configuration/functions/cidrnetmask.html.md b/website/docs/configuration/functions/cidrnetmask.html.md
index ce3fa8adc..fd3807606 100644
--- a/website/docs/configuration/functions/cidrnetmask.html.md
+++ b/website/docs/configuration/functions/cidrnetmask.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "cidrnetmask - Functions - Configuration Language"
sidebar_current: "docs-funcs-ipnet-cidrnetmask"
description: |-
diff --git a/website/docs/configuration/functions/cidrsubnet.html.md b/website/docs/configuration/functions/cidrsubnet.html.md
index 6988ce3f6..6b9bf6e7a 100644
--- a/website/docs/configuration/functions/cidrsubnet.html.md
+++ b/website/docs/configuration/functions/cidrsubnet.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "cidrsubnet - Functions - Configuration Language"
sidebar_current: "docs-funcs-ipnet-cidrsubnet"
description: |-
diff --git a/website/docs/configuration/functions/cidrsubnets.html.md b/website/docs/configuration/functions/cidrsubnets.html.md
index 7308cf5de..37f665446 100644
--- a/website/docs/configuration/functions/cidrsubnets.html.md
+++ b/website/docs/configuration/functions/cidrsubnets.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "cidrsubnets - Functions - Configuration Language"
sidebar_current: "docs-funcs-ipnet-cidrsubnets"
description: |-
diff --git a/website/docs/configuration/functions/coalesce.html.md b/website/docs/configuration/functions/coalesce.html.md
index e38a0971f..13c970f72 100644
--- a/website/docs/configuration/functions/coalesce.html.md
+++ b/website/docs/configuration/functions/coalesce.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "coalesce - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-coalesce-x"
description: |-
diff --git a/website/docs/configuration/functions/coalescelist.html.md b/website/docs/configuration/functions/coalescelist.html.md
index aa265aa7d..15d9f97c2 100644
--- a/website/docs/configuration/functions/coalescelist.html.md
+++ b/website/docs/configuration/functions/coalescelist.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "coalescelist - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-coalescelist"
description: |-
diff --git a/website/docs/configuration/functions/compact.html.md b/website/docs/configuration/functions/compact.html.md
index 9659efa54..45f804534 100644
--- a/website/docs/configuration/functions/compact.html.md
+++ b/website/docs/configuration/functions/compact.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "compact - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-compact"
description: |-
diff --git a/website/docs/configuration/functions/concat.html.md b/website/docs/configuration/functions/concat.html.md
index 032ec8c8b..5e616c3b2 100644
--- a/website/docs/configuration/functions/concat.html.md
+++ b/website/docs/configuration/functions/concat.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "concat - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-concat"
description: |-
diff --git a/website/docs/configuration/functions/contains.html.md b/website/docs/configuration/functions/contains.html.md
index ff21003f6..6fd5eed8a 100644
--- a/website/docs/configuration/functions/contains.html.md
+++ b/website/docs/configuration/functions/contains.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "contains - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-contains"
description: |-
diff --git a/website/docs/configuration/functions/csvdecode.html.md b/website/docs/configuration/functions/csvdecode.html.md
index 508737443..2f3623861 100644
--- a/website/docs/configuration/functions/csvdecode.html.md
+++ b/website/docs/configuration/functions/csvdecode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "csvdecode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-csvdecode"
description: |-
diff --git a/website/docs/configuration/functions/dirname.html.md b/website/docs/configuration/functions/dirname.html.md
index ddf07d91a..251f4a250 100644
--- a/website/docs/configuration/functions/dirname.html.md
+++ b/website/docs/configuration/functions/dirname.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "dirname - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-dirname"
description: |-
diff --git a/website/docs/configuration/functions/distinct.html.md b/website/docs/configuration/functions/distinct.html.md
index a28be11da..9e1635847 100644
--- a/website/docs/configuration/functions/distinct.html.md
+++ b/website/docs/configuration/functions/distinct.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "distinct - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-distinct"
description: |-
diff --git a/website/docs/configuration/functions/element.html.md b/website/docs/configuration/functions/element.html.md
index 274ff5439..ba9187e72 100644
--- a/website/docs/configuration/functions/element.html.md
+++ b/website/docs/configuration/functions/element.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "element - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-element"
description: |-
diff --git a/website/docs/configuration/functions/file.html.md b/website/docs/configuration/functions/file.html.md
index e34ada9f8..71fdeb831 100644
--- a/website/docs/configuration/functions/file.html.md
+++ b/website/docs/configuration/functions/file.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "file - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-file-x"
description: |-
diff --git a/website/docs/configuration/functions/filebase64.html.md b/website/docs/configuration/functions/filebase64.html.md
index 770840517..ce59e756f 100644
--- a/website/docs/configuration/functions/filebase64.html.md
+++ b/website/docs/configuration/functions/filebase64.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filebase64 - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-filebase64"
description: |-
diff --git a/website/docs/configuration/functions/filebase64sha256.html.md b/website/docs/configuration/functions/filebase64sha256.html.md
index f9e295940..f184c3237 100644
--- a/website/docs/configuration/functions/filebase64sha256.html.md
+++ b/website/docs/configuration/functions/filebase64sha256.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filebase64sha256 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-filebase64sha256"
description: |-
diff --git a/website/docs/configuration/functions/filebase64sha512.html.md b/website/docs/configuration/functions/filebase64sha512.html.md
index 77de9face..a0ce0b2aa 100644
--- a/website/docs/configuration/functions/filebase64sha512.html.md
+++ b/website/docs/configuration/functions/filebase64sha512.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filebase64sha512 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-filebase64sha512"
description: |-
diff --git a/website/docs/configuration/functions/fileexists.html.md b/website/docs/configuration/functions/fileexists.html.md
index 0e0760886..cd8dd764c 100644
--- a/website/docs/configuration/functions/fileexists.html.md
+++ b/website/docs/configuration/functions/fileexists.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "fileexists - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-file-exists"
description: |-
diff --git a/website/docs/configuration/functions/filemd5.html.md b/website/docs/configuration/functions/filemd5.html.md
index e9c41c77e..07d7c0d13 100644
--- a/website/docs/configuration/functions/filemd5.html.md
+++ b/website/docs/configuration/functions/filemd5.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filemd5 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-filemd5"
description: |-
diff --git a/website/docs/configuration/functions/fileset.html.md b/website/docs/configuration/functions/fileset.html.md
index c68234dee..46d167445 100644
--- a/website/docs/configuration/functions/fileset.html.md
+++ b/website/docs/configuration/functions/fileset.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "fileset - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-file-set"
description: |-
diff --git a/website/docs/configuration/functions/filesha1.html.md b/website/docs/configuration/functions/filesha1.html.md
index fbe9d6208..ef7a890de 100644
--- a/website/docs/configuration/functions/filesha1.html.md
+++ b/website/docs/configuration/functions/filesha1.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filesha1 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-filesha1"
description: |-
diff --git a/website/docs/configuration/functions/filesha256.html.md b/website/docs/configuration/functions/filesha256.html.md
index ac8b20556..02a06adb7 100644
--- a/website/docs/configuration/functions/filesha256.html.md
+++ b/website/docs/configuration/functions/filesha256.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filesha256 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-filesha256"
description: |-
diff --git a/website/docs/configuration/functions/filesha512.html.md b/website/docs/configuration/functions/filesha512.html.md
index 6bf401955..5021db4c0 100644
--- a/website/docs/configuration/functions/filesha512.html.md
+++ b/website/docs/configuration/functions/filesha512.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "filesha512 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-filesha512"
description: |-
diff --git a/website/docs/configuration/functions/flatten.html.md b/website/docs/configuration/functions/flatten.html.md
index 57211c415..80ba1166b 100644
--- a/website/docs/configuration/functions/flatten.html.md
+++ b/website/docs/configuration/functions/flatten.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "flatten - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-flatten"
description: |-
diff --git a/website/docs/configuration/functions/floor.html.md b/website/docs/configuration/functions/floor.html.md
index eb0ad9245..3d22ecdc5 100644
--- a/website/docs/configuration/functions/floor.html.md
+++ b/website/docs/configuration/functions/floor.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "floor - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-floor"
description: |-
diff --git a/website/docs/configuration/functions/format.html.md b/website/docs/configuration/functions/format.html.md
index 5d295d22e..d53977963 100644
--- a/website/docs/configuration/functions/format.html.md
+++ b/website/docs/configuration/functions/format.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "format - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-format-x"
description: |-
diff --git a/website/docs/configuration/functions/formatdate.html.md b/website/docs/configuration/functions/formatdate.html.md
index ee31f3917..65fd6893e 100644
--- a/website/docs/configuration/functions/formatdate.html.md
+++ b/website/docs/configuration/functions/formatdate.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "formatdate - Functions - Configuration Language"
sidebar_current: "docs-funcs-datetime-formatdate"
description: |-
diff --git a/website/docs/configuration/functions/formatlist.html.md b/website/docs/configuration/functions/formatlist.html.md
index 8beae17d2..a3d68792e 100644
--- a/website/docs/configuration/functions/formatlist.html.md
+++ b/website/docs/configuration/functions/formatlist.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "formatlist - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-formatlist"
description: |-
diff --git a/website/docs/configuration/functions/indent.html.md b/website/docs/configuration/functions/indent.html.md
index 54067213d..0c327ae78 100644
--- a/website/docs/configuration/functions/indent.html.md
+++ b/website/docs/configuration/functions/indent.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "indent - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-indent"
description: |-
diff --git a/website/docs/configuration/functions/index.html.md b/website/docs/configuration/functions/index.html.md
index 59575c91c..566da83b8 100644
--- a/website/docs/configuration/functions/index.html.md
+++ b/website/docs/configuration/functions/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "index - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-index"
description: |-
diff --git a/website/docs/configuration/functions/join.html.md b/website/docs/configuration/functions/join.html.md
index a2fc637f4..8c9be78ae 100644
--- a/website/docs/configuration/functions/join.html.md
+++ b/website/docs/configuration/functions/join.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "join - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-join"
description: |-
diff --git a/website/docs/configuration/functions/jsondecode.html.md b/website/docs/configuration/functions/jsondecode.html.md
index 6e569bb3d..c3e7ffe4e 100644
--- a/website/docs/configuration/functions/jsondecode.html.md
+++ b/website/docs/configuration/functions/jsondecode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "jsondecode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-jsondecode"
description: |-
diff --git a/website/docs/configuration/functions/jsonencode.html.md b/website/docs/configuration/functions/jsonencode.html.md
index 6f9376eab..2056f521a 100644
--- a/website/docs/configuration/functions/jsonencode.html.md
+++ b/website/docs/configuration/functions/jsonencode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "jsonencode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-jsonencode"
description: |-
diff --git a/website/docs/configuration/functions/keys.html.md b/website/docs/configuration/functions/keys.html.md
index 87097a1de..10d25b8cb 100644
--- a/website/docs/configuration/functions/keys.html.md
+++ b/website/docs/configuration/functions/keys.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "keys - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-keys"
description: |-
diff --git a/website/docs/configuration/functions/length.html.md b/website/docs/configuration/functions/length.html.md
index b4cde65cd..abe5dc845 100644
--- a/website/docs/configuration/functions/length.html.md
+++ b/website/docs/configuration/functions/length.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "length - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-length"
description: |-
diff --git a/website/docs/configuration/functions/list.html.md b/website/docs/configuration/functions/list.html.md
index cb6eabb9c..3cfafd69a 100644
--- a/website/docs/configuration/functions/list.html.md
+++ b/website/docs/configuration/functions/list.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "list - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-list"
description: |-
diff --git a/website/docs/configuration/functions/log.html.md b/website/docs/configuration/functions/log.html.md
index 86976e511..af4a0fb3f 100644
--- a/website/docs/configuration/functions/log.html.md
+++ b/website/docs/configuration/functions/log.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "log - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-log"
description: |-
diff --git a/website/docs/configuration/functions/lookup.html.md b/website/docs/configuration/functions/lookup.html.md
index 9d70baba9..194c43a01 100644
--- a/website/docs/configuration/functions/lookup.html.md
+++ b/website/docs/configuration/functions/lookup.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "lookup - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-lookup"
description: |-
diff --git a/website/docs/configuration/functions/lower.html.md b/website/docs/configuration/functions/lower.html.md
index 15dd95eb6..c06034b0f 100644
--- a/website/docs/configuration/functions/lower.html.md
+++ b/website/docs/configuration/functions/lower.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "lower - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-lower"
description: |-
diff --git a/website/docs/configuration/functions/map.html.md b/website/docs/configuration/functions/map.html.md
index 58c3e0909..20b2c905a 100644
--- a/website/docs/configuration/functions/map.html.md
+++ b/website/docs/configuration/functions/map.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "map - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-map"
description: |-
diff --git a/website/docs/configuration/functions/matchkeys.html.md b/website/docs/configuration/functions/matchkeys.html.md
index 552fb0428..139d1a04c 100644
--- a/website/docs/configuration/functions/matchkeys.html.md
+++ b/website/docs/configuration/functions/matchkeys.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "matchkeys - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-matchkeys"
description: |-
diff --git a/website/docs/configuration/functions/max.html.md b/website/docs/configuration/functions/max.html.md
index 42e89d32a..d833a22c2 100644
--- a/website/docs/configuration/functions/max.html.md
+++ b/website/docs/configuration/functions/max.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "max - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-max"
description: |-
diff --git a/website/docs/configuration/functions/md5.html.md b/website/docs/configuration/functions/md5.html.md
index ba3935d48..0945ed0ec 100644
--- a/website/docs/configuration/functions/md5.html.md
+++ b/website/docs/configuration/functions/md5.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "md5 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-md5"
description: |-
diff --git a/website/docs/configuration/functions/merge.html.md b/website/docs/configuration/functions/merge.html.md
index edcc0a18a..f67eebe99 100644
--- a/website/docs/configuration/functions/merge.html.md
+++ b/website/docs/configuration/functions/merge.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "merge - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-merge"
description: |-
diff --git a/website/docs/configuration/functions/min.html.md b/website/docs/configuration/functions/min.html.md
index 5c1411a75..c04b576c4 100644
--- a/website/docs/configuration/functions/min.html.md
+++ b/website/docs/configuration/functions/min.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "min - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-min"
description: |-
diff --git a/website/docs/configuration/functions/parseint.html.md b/website/docs/configuration/functions/parseint.html.md
index 44c7a9cfa..fe280aa1c 100644
--- a/website/docs/configuration/functions/parseint.html.md
+++ b/website/docs/configuration/functions/parseint.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "parseint - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-parseint"
description: |-
diff --git a/website/docs/configuration/functions/pathexpand.html.md b/website/docs/configuration/functions/pathexpand.html.md
index 48be103ad..173d951ed 100644
--- a/website/docs/configuration/functions/pathexpand.html.md
+++ b/website/docs/configuration/functions/pathexpand.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "pathexpand - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-pathexpand"
description: |-
diff --git a/website/docs/configuration/functions/pow.html.md b/website/docs/configuration/functions/pow.html.md
index 154e28404..c6b10934a 100644
--- a/website/docs/configuration/functions/pow.html.md
+++ b/website/docs/configuration/functions/pow.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "pow - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-pow"
description: |-
diff --git a/website/docs/configuration/functions/range.html.md b/website/docs/configuration/functions/range.html.md
index 21bf4a3b4..b3c2532ba 100644
--- a/website/docs/configuration/functions/range.html.md
+++ b/website/docs/configuration/functions/range.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "range - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-range"
description: |-
diff --git a/website/docs/configuration/functions/regex.html.md b/website/docs/configuration/functions/regex.html.md
index 875ac65b5..cd7e6e27b 100644
--- a/website/docs/configuration/functions/regex.html.md
+++ b/website/docs/configuration/functions/regex.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "regex - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-regex"
description: |-
diff --git a/website/docs/configuration/functions/regexall.html.md b/website/docs/configuration/functions/regexall.html.md
index fc8f495ca..8561375f2 100644
--- a/website/docs/configuration/functions/regexall.html.md
+++ b/website/docs/configuration/functions/regexall.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "regexall - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-regexall"
description: |-
diff --git a/website/docs/configuration/functions/replace.html.md b/website/docs/configuration/functions/replace.html.md
index ea2dd7119..3781f6188 100644
--- a/website/docs/configuration/functions/replace.html.md
+++ b/website/docs/configuration/functions/replace.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "replace - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-replace"
description: |-
diff --git a/website/docs/configuration/functions/reverse.html.md b/website/docs/configuration/functions/reverse.html.md
index d9febecad..6e7ba2686 100644
--- a/website/docs/configuration/functions/reverse.html.md
+++ b/website/docs/configuration/functions/reverse.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "reverse - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-reverse"
description: |-
diff --git a/website/docs/configuration/functions/rsadecrypt.html.md b/website/docs/configuration/functions/rsadecrypt.html.md
index 6b09ffa6b..9ab4f8751 100644
--- a/website/docs/configuration/functions/rsadecrypt.html.md
+++ b/website/docs/configuration/functions/rsadecrypt.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "rsadecrypt - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-rsadecrypt"
description: |-
diff --git a/website/docs/configuration/functions/setintersection.html.md b/website/docs/configuration/functions/setintersection.html.md
index 6444aeb8b..aea068e19 100644
--- a/website/docs/configuration/functions/setintersection.html.md
+++ b/website/docs/configuration/functions/setintersection.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "setintersection - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-setintersection"
description: |-
diff --git a/website/docs/configuration/functions/setproduct.html.md b/website/docs/configuration/functions/setproduct.html.md
index 6829ce8e7..73822c8a4 100644
--- a/website/docs/configuration/functions/setproduct.html.md
+++ b/website/docs/configuration/functions/setproduct.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "setproduct - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-setproduct"
description: |-
diff --git a/website/docs/configuration/functions/setsubtract.html.md b/website/docs/configuration/functions/setsubtract.html.md
index 0bf3b7acc..5fed7f4f6 100644
--- a/website/docs/configuration/functions/setsubtract.html.md
+++ b/website/docs/configuration/functions/setsubtract.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "setsubtract - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-setsubtract"
description: |-
diff --git a/website/docs/configuration/functions/setunion.html.md b/website/docs/configuration/functions/setunion.html.md
index 41103e588..9816f02a3 100644
--- a/website/docs/configuration/functions/setunion.html.md
+++ b/website/docs/configuration/functions/setunion.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "setunion - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-setunion"
description: |-
diff --git a/website/docs/configuration/functions/sha1.html.md b/website/docs/configuration/functions/sha1.html.md
index df44b43a1..b2588cd80 100644
--- a/website/docs/configuration/functions/sha1.html.md
+++ b/website/docs/configuration/functions/sha1.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "sha1 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-sha1"
description: |-
diff --git a/website/docs/configuration/functions/sha256.html.md b/website/docs/configuration/functions/sha256.html.md
index e044e7d51..f364a9dee 100644
--- a/website/docs/configuration/functions/sha256.html.md
+++ b/website/docs/configuration/functions/sha256.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "sha256 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-sha256"
description: |-
diff --git a/website/docs/configuration/functions/sha512.html.md b/website/docs/configuration/functions/sha512.html.md
index deb1ab3b4..026b1d35f 100644
--- a/website/docs/configuration/functions/sha512.html.md
+++ b/website/docs/configuration/functions/sha512.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "sha512 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-sha512"
description: |-
diff --git a/website/docs/configuration/functions/signum.html.md b/website/docs/configuration/functions/signum.html.md
index 93d625069..e778d71cf 100644
--- a/website/docs/configuration/functions/signum.html.md
+++ b/website/docs/configuration/functions/signum.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "signum - Functions - Configuration Language"
sidebar_current: "docs-funcs-numeric-signum"
description: |-
diff --git a/website/docs/configuration/functions/slice.html.md b/website/docs/configuration/functions/slice.html.md
index 44c88f2ce..31d2c4dec 100644
--- a/website/docs/configuration/functions/slice.html.md
+++ b/website/docs/configuration/functions/slice.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "slice - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-slice"
description: |-
diff --git a/website/docs/configuration/functions/sort.html.md b/website/docs/configuration/functions/sort.html.md
index 598c035e7..26626e085 100644
--- a/website/docs/configuration/functions/sort.html.md
+++ b/website/docs/configuration/functions/sort.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "sort - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-sort"
description: |-
diff --git a/website/docs/configuration/functions/split.html.md b/website/docs/configuration/functions/split.html.md
index 49b5ece5e..037b70247 100644
--- a/website/docs/configuration/functions/split.html.md
+++ b/website/docs/configuration/functions/split.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "split - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-split"
description: |-
diff --git a/website/docs/configuration/functions/strrev.html.md b/website/docs/configuration/functions/strrev.html.md
index 630a68263..e2361bf58 100644
--- a/website/docs/configuration/functions/strrev.html.md
+++ b/website/docs/configuration/functions/strrev.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "strrev - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-strrev"
description: |-
diff --git a/website/docs/configuration/functions/substr.html.md b/website/docs/configuration/functions/substr.html.md
index d9579d12a..7ce782500 100644
--- a/website/docs/configuration/functions/substr.html.md
+++ b/website/docs/configuration/functions/substr.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "substr - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-substr"
description: |-
diff --git a/website/docs/configuration/functions/sum.html.md b/website/docs/configuration/functions/sum.html.md
index 20958974d..bb0c20cc4 100644
--- a/website/docs/configuration/functions/sum.html.md
+++ b/website/docs/configuration/functions/sum.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "sum - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-sum"
description: |-
diff --git a/website/docs/configuration/functions/templatefile.html.md b/website/docs/configuration/functions/templatefile.html.md
index 64d7cf63c..1bc70350b 100644
--- a/website/docs/configuration/functions/templatefile.html.md
+++ b/website/docs/configuration/functions/templatefile.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "templatefile - Functions - Configuration Language"
sidebar_current: "docs-funcs-file-templatefile"
description: |-
diff --git a/website/docs/configuration/functions/textdecodebase64.html.md b/website/docs/configuration/functions/textdecodebase64.html.md
index 6d04b30c2..3214f98ed 100644
--- a/website/docs/configuration/functions/textdecodebase64.html.md
+++ b/website/docs/configuration/functions/textdecodebase64.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "textdecodebase64 - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-textdecodebase64"
description: |-
diff --git a/website/docs/configuration/functions/textencodebase64.html.md b/website/docs/configuration/functions/textencodebase64.html.md
index 02e436695..5f9023f78 100644
--- a/website/docs/configuration/functions/textencodebase64.html.md
+++ b/website/docs/configuration/functions/textencodebase64.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "textencodebase64 - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-textencodebase64"
description: |-
diff --git a/website/docs/configuration/functions/timeadd.html.md b/website/docs/configuration/functions/timeadd.html.md
index 926806c66..279724f09 100644
--- a/website/docs/configuration/functions/timeadd.html.md
+++ b/website/docs/configuration/functions/timeadd.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "timeadd - Functions - Configuration Language"
sidebar_current: "docs-funcs-datetime-timeadd"
description: |-
diff --git a/website/docs/configuration/functions/timestamp.html.md b/website/docs/configuration/functions/timestamp.html.md
index e3365406d..d4b75e713 100644
--- a/website/docs/configuration/functions/timestamp.html.md
+++ b/website/docs/configuration/functions/timestamp.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "timestamp - Functions - Configuration Language"
sidebar_current: "docs-funcs-datetime-timestamp"
description: |-
diff --git a/website/docs/configuration/functions/title.html.md b/website/docs/configuration/functions/title.html.md
index 7027d48f1..f13fa501d 100644
--- a/website/docs/configuration/functions/title.html.md
+++ b/website/docs/configuration/functions/title.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "title - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-title"
description: |-
diff --git a/website/docs/configuration/functions/tobool.html.md b/website/docs/configuration/functions/tobool.html.md
index cfb8c83c0..24b98e6f2 100644
--- a/website/docs/configuration/functions/tobool.html.md
+++ b/website/docs/configuration/functions/tobool.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "tobool - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-tobool"
description: |-
diff --git a/website/docs/configuration/functions/tolist.html.md b/website/docs/configuration/functions/tolist.html.md
index 3c114a761..291e5c3b4 100644
--- a/website/docs/configuration/functions/tolist.html.md
+++ b/website/docs/configuration/functions/tolist.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "tolist - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-tolist"
description: |-
diff --git a/website/docs/configuration/functions/tomap.html.md b/website/docs/configuration/functions/tomap.html.md
index 7adc81930..9a0362cf7 100644
--- a/website/docs/configuration/functions/tomap.html.md
+++ b/website/docs/configuration/functions/tomap.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "tomap - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-tomap"
description: |-
diff --git a/website/docs/configuration/functions/tonumber.html.md b/website/docs/configuration/functions/tonumber.html.md
index d4e6927e5..60763304e 100644
--- a/website/docs/configuration/functions/tonumber.html.md
+++ b/website/docs/configuration/functions/tonumber.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "tonumber - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-tonumber"
description: |-
diff --git a/website/docs/configuration/functions/toset.html.md b/website/docs/configuration/functions/toset.html.md
index 2a63f183d..9a48ee0da 100644
--- a/website/docs/configuration/functions/toset.html.md
+++ b/website/docs/configuration/functions/toset.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "toset - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-toset"
description: |-
diff --git a/website/docs/configuration/functions/tostring.html.md b/website/docs/configuration/functions/tostring.html.md
index 2cec00906..d0053e6f0 100644
--- a/website/docs/configuration/functions/tostring.html.md
+++ b/website/docs/configuration/functions/tostring.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "tostring - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-tostring"
description: |-
diff --git a/website/docs/configuration/functions/transpose.html.md b/website/docs/configuration/functions/transpose.html.md
index a95b49b2d..faf9ae964 100644
--- a/website/docs/configuration/functions/transpose.html.md
+++ b/website/docs/configuration/functions/transpose.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "transpose - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-transpose"
description: |-
diff --git a/website/docs/configuration/functions/trim.html.md b/website/docs/configuration/functions/trim.html.md
index f6402a83c..6c2379fa2 100644
--- a/website/docs/configuration/functions/trim.html.md
+++ b/website/docs/configuration/functions/trim.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "trim - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-trim"
description: |-
diff --git a/website/docs/configuration/functions/trimprefix.html.md b/website/docs/configuration/functions/trimprefix.html.md
index cc9e8a0e6..342e458df 100644
--- a/website/docs/configuration/functions/trimprefix.html.md
+++ b/website/docs/configuration/functions/trimprefix.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "trimprefix - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-trimprefix"
description: |-
diff --git a/website/docs/configuration/functions/trimspace.html.md b/website/docs/configuration/functions/trimspace.html.md
index a7f4ad38f..b6fdd7cde 100644
--- a/website/docs/configuration/functions/trimspace.html.md
+++ b/website/docs/configuration/functions/trimspace.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "trimspace - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-trimspace"
description: |-
diff --git a/website/docs/configuration/functions/trimsuffix.html.md b/website/docs/configuration/functions/trimsuffix.html.md
index aec898687..44f90a5d0 100644
--- a/website/docs/configuration/functions/trimsuffix.html.md
+++ b/website/docs/configuration/functions/trimsuffix.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "trimsuffix - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-trimsuffix"
description: |-
diff --git a/website/docs/configuration/functions/try.html.md b/website/docs/configuration/functions/try.html.md
index 57644bb5b..e2c25e5e9 100644
--- a/website/docs/configuration/functions/try.html.md
+++ b/website/docs/configuration/functions/try.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "try - Functions - Configuration Language"
sidebar_current: "docs-funcs-conversion-try"
description: |-
diff --git a/website/docs/configuration/functions/upper.html.md b/website/docs/configuration/functions/upper.html.md
index 286bd0c86..65b3c0433 100644
--- a/website/docs/configuration/functions/upper.html.md
+++ b/website/docs/configuration/functions/upper.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "upper - Functions - Configuration Language"
sidebar_current: "docs-funcs-string-upper"
description: |-
diff --git a/website/docs/configuration/functions/urlencode.html.md b/website/docs/configuration/functions/urlencode.html.md
index 1f6fda45e..779f6ff35 100644
--- a/website/docs/configuration/functions/urlencode.html.md
+++ b/website/docs/configuration/functions/urlencode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "urlencode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-urlencode"
description: |-
diff --git a/website/docs/configuration/functions/uuid.html.md b/website/docs/configuration/functions/uuid.html.md
index 439ec8232..0b481e036 100644
--- a/website/docs/configuration/functions/uuid.html.md
+++ b/website/docs/configuration/functions/uuid.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "uuid - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-uuid"
description: |-
diff --git a/website/docs/configuration/functions/uuidv5.html.md b/website/docs/configuration/functions/uuidv5.html.md
index d48831821..69043bfb5 100644
--- a/website/docs/configuration/functions/uuidv5.html.md
+++ b/website/docs/configuration/functions/uuidv5.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "uuidv5 - Functions - Configuration Language"
sidebar_current: "docs-funcs-crypto-uuidv5"
description: |-
diff --git a/website/docs/configuration/functions/values.html.md b/website/docs/configuration/functions/values.html.md
index a74aa0b03..4de7b5678 100644
--- a/website/docs/configuration/functions/values.html.md
+++ b/website/docs/configuration/functions/values.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "values - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-values"
description: |-
diff --git a/website/docs/configuration/functions/yamldecode.html.md b/website/docs/configuration/functions/yamldecode.html.md
index e276d8585..6e5c72745 100644
--- a/website/docs/configuration/functions/yamldecode.html.md
+++ b/website/docs/configuration/functions/yamldecode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "yamldecode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-yamldecode"
description: |-
diff --git a/website/docs/configuration/functions/yamlencode.html.md b/website/docs/configuration/functions/yamlencode.html.md
index c562f854b..fe5532e1b 100644
--- a/website/docs/configuration/functions/yamlencode.html.md
+++ b/website/docs/configuration/functions/yamlencode.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "yamlencode - Functions - Configuration Language"
sidebar_current: "docs-funcs-encoding-yamlencode"
description: |-
diff --git a/website/docs/configuration/functions/zipmap.html.md b/website/docs/configuration/functions/zipmap.html.md
index 61b203e92..66457cf0c 100644
--- a/website/docs/configuration/functions/zipmap.html.md
+++ b/website/docs/configuration/functions/zipmap.html.md
@@ -1,5 +1,5 @@
---
-layout: "functions"
+layout: "language"
page_title: "zipmap - Functions - Configuration Language"
sidebar_current: "docs-funcs-collection-zipmap"
description: |-
diff --git a/website/docs/configuration/index.html.md b/website/docs/configuration/index.html.md
index 7cae418d0..50d0148a5 100644
--- a/website/docs/configuration/index.html.md
+++ b/website/docs/configuration/index.html.md
@@ -1,41 +1,31 @@
---
-layout: "docs"
-page_title: "Configuration Language"
-sidebar_current: "docs-config-index"
-description: |-
- Terraform uses text files to describe infrastructure and to set variables.
- These text files are called Terraform _configurations_ and are
- written in the Terraform language.
+layout: "language"
+page_title: "Overview - Configuration Language"
---
-# Configuration Language
+# Terraform Language Documentation
--> **Note:** This page is about Terraform 0.12 and later. For Terraform 0.11 and
-earlier, see
-[0.11 Configuration Language](../configuration-0-11/index.html).
+This is the documentation for Terraform's configuration language. It is relevant
+to users of [Terraform CLI](/docs/cli-index.html),
+[Terraform Cloud](/docs/cloud/index.html), and
+[Terraform Enterprise](/docs/enterprise/index.html).
> **Hands-on:** Try the [Terraform: Get Started](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.
-Terraform uses its own configuration language, designed to allow concise
-descriptions of infrastructure. The Terraform language is declarative,
-describing an intended goal rather than the steps to reach that goal.
+_The Terraform language is Terraform's primary user interface._ In every edition
+of Terraform, a configuration written in the Terraform language is always at the
+heart of the workflow.
-## Resources and Modules
+## About the Terraform Language
-The main purpose of the Terraform language is declaring [resources](./resources.html).
-All other language features exist only to make the definition of resources
-more flexible and convenient.
+The main purpose of the Terraform language is declaring
+[resources](./resources.html), which represent infrastructure objects. All other
+language features exist only to make the definition of resources more flexible
+and convenient.
-A group of resources can be gathered into a [module](./modules.html),
-which creates a larger unit of configuration. A resource describes a single
-infrastructure object, while a module might describe a set of objects and the
-necessary relationships between them in order to create a higher-level system.
-
-A _Terraform configuration_ consists of a _root module_, where evaluation
-begins, along with a tree of child modules created when one module calls
-another.
-
-## Arguments, Blocks, and Expressions
+A _Terraform configuration_ is a complete document in the Terraform language
+that tells Terraform how to manage a given collection of infrastructure. A
+configuration can consist of multiple files and directories.
The syntax of the Terraform language consists of only a few basic elements:
@@ -60,66 +50,15 @@ resource "aws_vpc" "main" {
combining other values. They appear as values for arguments, or within other
expressions.
-For full details about Terraform's syntax, see:
+The Terraform language is declarative, describing an intended goal rather than
+the steps to reach that goal. The ordering of blocks and the files they are
+organized into are generally not significant; Terraform only considers implicit
+and explicit relationships between resources when determining an order of
+operations.
-- [Configuration Syntax](./syntax.html)
-- [Expressions](./expressions.html)
+### Example
-## Code Organization
-
-The Terraform language uses configuration files that are named with the `.tf`
-file extension. There is also [a JSON-based variant of the language](./syntax-json.html)
-that is named with the `.tf.json` file extension.
-
-Configuration files must always use UTF-8 encoding, and by convention are
-usually maintained with Unix-style line endings (LF) rather than Windows-style
-line endings (CRLF), though both are accepted.
-
-A _module_ is a collection of `.tf` or `.tf.json` files kept together in a
-directory. The root module is built from the configuration files in the
-current working directory when Terraform is run, and this module may reference
-child modules in other directories, which can in turn reference other modules,
-etc.
-
-The simplest Terraform configuration is a single root module containing only
-a single `.tf` file. A configuration can grow gradually as more resources
-are added, either by creating new configuration files within the root module
-or by organizing sets of resources into child modules.
-
-## Configuration Ordering
-
-Because Terraform's configuration language is declarative, the ordering of
-blocks is generally not significant. (The order of `provisioner` blocks within a
-resource is the only major feature where block order matters.)
-
-Terraform automatically processes resources in the correct order based on
-relationships defined between them in configuration, and so you can organize
-resources into source files in whatever way makes sense for your infrastructure.
-
-## Terraform CLI vs. Providers
-
-The Terraform command line interface (CLI) is a general engine for evaluating
-and applying Terraform configurations. It defines the Terraform language syntax
-and overall structure, and coordinates sequences of changes that must be made to
-make remote infrastructure match the given configuration.
-
-This general engine has no knowledge about specific types of infrastructure
-objects. Instead, Terraform uses plugins called
-[providers](./providers.html) that each define and manage a
-set of resource types. Most providers are associated with a particular cloud or
-on-premises infrastructure service, allowing Terraform to manage infrastructure
-objects within that service.
-
-Terraform doesn't have a concept of platform-independent resource types
-— resources are always tied to a provider, since the features of similar
-resources can vary greatly from provider to provider. But Terraform CLI's shared
-configuration engine ensures that the same language constructs and syntax are
-available across all services and allows resource types from different services
-to be combined as needed.
-
-## Example
-
-The following simple example describes a simple network topology for Amazon Web
+The following example describes a simple network topology for Amazon Web
Services, just to give a sense of the overall structure and syntax of the
Terraform language. Similar configurations can be created for other virtual
network services, using resource types defined by other providers, and a
@@ -177,6 +116,3 @@ resource "aws_subnet" "az" {
}
```
-For more information on the configuration elements shown here, use the
-site navigation to explore the Terraform language documentation sub-sections.
-To start, see [_Resource Configuration_](./resources.html).
diff --git a/website/docs/configuration/locals.html.md b/website/docs/configuration/locals.html.md
index 54502a288..b6b876a31 100644
--- a/website/docs/configuration/locals.html.md
+++ b/website/docs/configuration/locals.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Local Values - Configuration Language"
sidebar_current: "docs-config-locals"
description: |-
diff --git a/website/docs/configuration/modules.html.md b/website/docs/configuration/modules.html.md
index 88430218e..0270efeb1 100644
--- a/website/docs/configuration/modules.html.md
+++ b/website/docs/configuration/modules.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Modules - Configuration Language"
sidebar_current: "docs-config-modules"
description: |-
diff --git a/website/docs/configuration/outputs.html.md b/website/docs/configuration/outputs.html.md
index 01c89acfd..f4711b08d 100644
--- a/website/docs/configuration/outputs.html.md
+++ b/website/docs/configuration/outputs.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Output Values - Configuration Language"
sidebar_current: "docs-config-outputs"
description: |-
diff --git a/website/docs/configuration/override.html.md b/website/docs/configuration/override.html.md
index 10ab5467a..2dcea4b26 100644
--- a/website/docs/configuration/override.html.md
+++ b/website/docs/configuration/override.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Override Files - Configuration Language"
sidebar_current: "docs-config-override"
description: |-
diff --git a/website/docs/configuration/provider-requirements.html.md b/website/docs/configuration/provider-requirements.html.md
index 9763ccb77..ba613e86f 100644
--- a/website/docs/configuration/provider-requirements.html.md
+++ b/website/docs/configuration/provider-requirements.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provider Requirements - Configuration Language"
---
@@ -21,53 +21,6 @@ configuration (like endpoint URLs or cloud regions) before they can be used.
- The [Provider Configuration](./providers.html) page documents how to configure
settings for providers.
-## About Providers
-
-Providers are plugins. They are released on a separate rhythm from Terraform
-itself, and each provider has its own series of version numbers.
-
-Each provider plugin offers a set of
-[resource types](resources.html#resource-types-and-arguments), and defines for
-each resource type which arguments it accepts, which attributes it exports, and
-how changes to resources of that type are actually applied to remote APIs.
-
-Most providers configure a specific infrastructure platform (either cloud or
-self-hosted). Providers can also offer local utilities for tasks like
-generating random numbers for unique resource names.
-
-The [Terraform Registry](https://registry.terraform.io/browse/providers)
-is the main directory of publicly available Terraform providers, and hosts
-providers for most major infrastructure platforms. You can also write and
-distribute your own Terraform providers, for public or private use.
-
-> **Hands-on:** If you're interested in developing your own Terraform providers, try the [Call APIs with Terraform Providers](https://learn.hashicorp.com/collections/terraform/providers?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) collection on HashiCorp Learn.
-
-### Provider Installation
-
-Terraform finds and installs providers when
-[initializing a working directory](/docs/commands/init.html). It can
-automatically download providers from a Terraform registry, or load them from a
-local mirror or cache.
-
-When you add a new provider to a configuration, Terraform must install the
-provider in order to use it. If you are using a persistent working directory,
-you can run `terraform init` again to install new providers.
-
-Providers downloaded by `terraform init` are only installed for the current
-working directory; other working directories can have their own installed
-provider plugins. To help ensure that each working directory will use the same
-selected versions, `terraform init` records its version selections in
-your configuration's [dependency lock file](dependency-lock.html), named
-`.terraform.lock.hcl` and will always make those same selections unless
-you run `terraform init -upgrade` to update them.
-
-To save time and bandwidth, Terraform supports an optional plugin cache. You can
-enable the cache using the `plugin_cache_dir` setting in
-[the CLI configuration file](/docs/commands/cli-config.html).
-
-For more information about provider installation, see
-[the `terraform init` command](/docs/commands/init.html).
-
## Requiring Providers
Each Terraform module must declare which providers it requires, so that
diff --git a/website/docs/configuration/providers.html.md b/website/docs/configuration/providers.html.md
index 4a4771b45..87740a205 100644
--- a/website/docs/configuration/providers.html.md
+++ b/website/docs/configuration/providers.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provider Configuration - Configuration Language"
sidebar_current: "docs-config-providers"
description: |-
diff --git a/website/docs/configuration/resources.html.md b/website/docs/configuration/resources.html.md
index a09488845..7e6ac964f 100644
--- a/website/docs/configuration/resources.html.md
+++ b/website/docs/configuration/resources.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Resources - Configuration Language"
sidebar_current: "docs-config-resources"
description: |-
diff --git a/website/docs/configuration/style.html.md b/website/docs/configuration/style.html.md
index 2ca6e7326..170b35272 100644
--- a/website/docs/configuration/style.html.md
+++ b/website/docs/configuration/style.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Style Conventions - Configuration Language"
sidebar_current: "docs-config-style"
description: |-
diff --git a/website/docs/configuration/syntax-json.html.md b/website/docs/configuration/syntax-json.html.md
index d81911f22..962a62b72 100644
--- a/website/docs/configuration/syntax-json.html.md
+++ b/website/docs/configuration/syntax-json.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "JSON Configuration Syntax - Configuration Language"
sidebar_current: "docs-config-syntax-json"
description: |-
diff --git a/website/docs/configuration/syntax.html.md b/website/docs/configuration/syntax.html.md
index d0c7e9587..db9e7dcdb 100644
--- a/website/docs/configuration/syntax.html.md
+++ b/website/docs/configuration/syntax.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Syntax - Configuration Language"
sidebar_current: "docs-config-syntax"
description: |-
diff --git a/website/docs/configuration/syntax/index.html.md b/website/docs/configuration/syntax/index.html.md
new file mode 100644
index 000000000..80a599c66
--- /dev/null
+++ b/website/docs/configuration/syntax/index.html.md
@@ -0,0 +1,21 @@
+---
+layout: "language"
+page_title: "Syntax Overview - Configuration Language"
+---
+
+# Syntax
+
+The majority of the Terraform language documentation focuses on the practical
+uses of the language and the specific constructs it uses. The pages in this
+section offer a more abstract view of the Terraform language.
+
+- [Configuration Syntax](/docs/configuration/syntax.html) describes the native
+ grammar of the Terraform language.
+- [JSON Configuration Syntax](/docs/configuration/syntax-json.html) documents
+ how to represent Terraform language constructs in the pure JSON variant of the
+ Terraform language. Terraform's JSON syntax is unfriendly to humans, but can
+ be very useful when generating infrastructure as code with other systems that
+ don't have a readily available HCL library.
+- [Style Conventions](/docs/configuration/style.html) documents some commonly
+ accepted formatting guidelines for Terraform code. These conventions can be
+ enforced automatically with [`terraform fmt`](/docs/commands/fmt.html).
diff --git a/website/docs/configuration/terraform.html.md b/website/docs/configuration/terraform.html.md
index 4367710bd..75e532f33 100644
--- a/website/docs/configuration/terraform.html.md
+++ b/website/docs/configuration/terraform.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Terraform Settings - Configuration Language"
sidebar_current: "docs-config-terraform"
description: |-
diff --git a/website/docs/configuration/types.html.md b/website/docs/configuration/types.html.md
index 2c514b1ff..8cc42e8d3 100644
--- a/website/docs/configuration/types.html.md
+++ b/website/docs/configuration/types.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Type Constraints - Configuration Language"
sidebar_current: "docs-config-types"
description: |-
diff --git a/website/docs/configuration/variables.html.md b/website/docs/configuration/variables.html.md
index 7e7010348..e86eecad5 100644
--- a/website/docs/configuration/variables.html.md
+++ b/website/docs/configuration/variables.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Input Variables - Configuration Language"
sidebar_current: "docs-config-variables"
description: |-
diff --git a/website/docs/configuration/version-constraints.html.md b/website/docs/configuration/version-constraints.html.md
index 8957fad0e..543a542bb 100644
--- a/website/docs/configuration/version-constraints.html.md
+++ b/website/docs/configuration/version-constraints.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Version Constraints - Configuration Language"
---
diff --git a/website/docs/modules/composition.html.markdown b/website/docs/modules/composition.html.markdown
index 3a17deca4..1f64b8e49 100644
--- a/website/docs/modules/composition.html.markdown
+++ b/website/docs/modules/composition.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Module Composition"
sidebar_current: "docs-modules-composition"
description: |-
diff --git a/website/docs/modules/index.html.markdown b/website/docs/modules/index.html.markdown
index c677d1fb9..306d53369 100644
--- a/website/docs/modules/index.html.markdown
+++ b/website/docs/modules/index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Creating Modules"
sidebar_current: "docs-modules"
description: |-
diff --git a/website/docs/modules/publish.html.markdown b/website/docs/modules/publish.html.markdown
index 1768b09de..116b863d5 100644
--- a/website/docs/modules/publish.html.markdown
+++ b/website/docs/modules/publish.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Publishing Modules"
sidebar_current: "docs-modules-publish"
description: |-
diff --git a/website/docs/modules/sources.html.markdown b/website/docs/modules/sources.html.markdown
index afb6ecb83..c78c2458e 100644
--- a/website/docs/modules/sources.html.markdown
+++ b/website/docs/modules/sources.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Module Sources"
sidebar_current: "docs-modules-sources"
description: The source argument within a module block specifies the location of the source code of a child module.
diff --git a/website/docs/plugins/basics.html.md b/website/docs/plugins/basics.html.md
index 55103f201..20f7f8650 100644
--- a/website/docs/plugins/basics.html.md
+++ b/website/docs/plugins/basics.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "extend"
page_title: "Plugin Basics"
sidebar_current: "docs-plugins-basics"
description: |-
diff --git a/website/docs/plugins/index.html.md b/website/docs/plugins/index.html.md
index 7970e704c..97ceeff08 100644
--- a/website/docs/plugins/index.html.md
+++ b/website/docs/plugins/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "extend"
page_title: "Plugins"
sidebar_current: "docs-plugins"
description: |-
diff --git a/website/docs/plugins/provider.html.md b/website/docs/plugins/provider.html.md
index 12a478130..b19ef5441 100644
--- a/website/docs/plugins/provider.html.md
+++ b/website/docs/plugins/provider.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "extend"
page_title: "Provider Plugins"
sidebar_current: "docs-plugins-provider"
description: |-
diff --git a/website/docs/providers/index.html.markdown b/website/docs/providers/index.html.markdown
index 8ab5cf294..285496a9a 100644
--- a/website/docs/providers/index.html.markdown
+++ b/website/docs/providers/index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Providers"
sidebar_current: "docs-providers"
description: |-
diff --git a/website/docs/providers/terraform/d/remote_state.html.md b/website/docs/providers/terraform/d/remote_state.html.md
index 96cfdc4f6..fdb930f02 100644
--- a/website/docs/providers/terraform/d/remote_state.html.md
+++ b/website/docs/providers/terraform/d/remote_state.html.md
@@ -1,5 +1,5 @@
---
-layout: "terraform"
+layout: "language"
page_title: "Terraform: terraform_remote_state"
sidebar_current: "docs-terraform-datasource-remote-state"
description: |-
diff --git a/website/docs/providers/terraform/index.html.markdown b/website/docs/providers/terraform/index.html.markdown
index 73f47735e..e6da618db 100644
--- a/website/docs/providers/terraform/index.html.markdown
+++ b/website/docs/providers/terraform/index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "terraform"
+layout: "language"
page_title: "Provider: Terraform"
sidebar_current: "docs-terraform-index"
description: |-
diff --git a/website/docs/providers/type/cloud-index.html.markdown b/website/docs/providers/type/cloud-index.html.markdown
index 7e2416432..313d92851 100644
--- a/website/docs/providers/type/cloud-index.html.markdown
+++ b/website/docs/providers/type/cloud-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Cloud Providers"
sidebar_current: "docs-providers-cloud"
description: |-
diff --git a/website/docs/providers/type/community-index.html.markdown b/website/docs/providers/type/community-index.html.markdown
index 2c498ed27..5a3a39f12 100644
--- a/website/docs/providers/type/community-index.html.markdown
+++ b/website/docs/providers/type/community-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Community Providers"
sidebar_current: "docs-providers-community"
description: |-
diff --git a/website/docs/providers/type/database-index.html.markdown b/website/docs/providers/type/database-index.html.markdown
index 7a676c6d6..47af39299 100644
--- a/website/docs/providers/type/database-index.html.markdown
+++ b/website/docs/providers/type/database-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Database Providers"
sidebar_current: "docs-providers-database"
description: |-
diff --git a/website/docs/providers/type/infra-index.html.markdown b/website/docs/providers/type/infra-index.html.markdown
index 43989a3db..86d5a4498 100644
--- a/website/docs/providers/type/infra-index.html.markdown
+++ b/website/docs/providers/type/infra-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Infrastructure Software Providers"
sidebar_current: "docs-providers-infra"
description: |-
diff --git a/website/docs/providers/type/major-index.html.markdown b/website/docs/providers/type/major-index.html.markdown
index bde801276..5dc58d90e 100644
--- a/website/docs/providers/type/major-index.html.markdown
+++ b/website/docs/providers/type/major-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Major Cloud Providers"
sidebar_current: "docs-providers-major"
description: |-
diff --git a/website/docs/providers/type/misc-index.html.markdown b/website/docs/providers/type/misc-index.html.markdown
index 1efc87d59..fba3fbe88 100644
--- a/website/docs/providers/type/misc-index.html.markdown
+++ b/website/docs/providers/type/misc-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Misc Providers"
sidebar_current: "docs-providers-misc"
description: |-
diff --git a/website/docs/providers/type/monitor-index.html.markdown b/website/docs/providers/type/monitor-index.html.markdown
index d28efc769..8944765c2 100644
--- a/website/docs/providers/type/monitor-index.html.markdown
+++ b/website/docs/providers/type/monitor-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Monitor & Sys Management Providers"
sidebar_current: "docs-providers-monitor"
description: |-
diff --git a/website/docs/providers/type/network-index.html.markdown b/website/docs/providers/type/network-index.html.markdown
index d035eb840..3dcb00779 100644
--- a/website/docs/providers/type/network-index.html.markdown
+++ b/website/docs/providers/type/network-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Network Providers"
sidebar_current: "docs-providers-network"
description: |-
diff --git a/website/docs/providers/type/vcs-index.html.markdown b/website/docs/providers/type/vcs-index.html.markdown
index 6c1f77a8d..bea2b4e34 100644
--- a/website/docs/providers/type/vcs-index.html.markdown
+++ b/website/docs/providers/type/vcs-index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "VCS Providers"
sidebar_current: "docs-providers-vcs"
description: |-
diff --git a/website/docs/provisioners/chef.html.markdown b/website/docs/provisioners/chef.html.markdown
index 87371b65c..dc4b1bf0a 100644
--- a/website/docs/provisioners/chef.html.markdown
+++ b/website/docs/provisioners/chef.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: chef"
sidebar_current: "docs-provisioners-chef"
description: |-
diff --git a/website/docs/provisioners/connection.html.markdown b/website/docs/provisioners/connection.html.markdown
index f290a9829..ffa771ed7 100644
--- a/website/docs/provisioners/connection.html.markdown
+++ b/website/docs/provisioners/connection.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner Connection Settings"
sidebar_current: "docs-provisioners-connection"
description: |-
diff --git a/website/docs/provisioners/file.html.markdown b/website/docs/provisioners/file.html.markdown
index 5b3c80b0c..9ace6b847 100644
--- a/website/docs/provisioners/file.html.markdown
+++ b/website/docs/provisioners/file.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: file"
sidebar_current: "docs-provisioners-file"
description: |-
diff --git a/website/docs/provisioners/habitat.html.markdown b/website/docs/provisioners/habitat.html.markdown
index 4c223bb2e..ab824e46f 100644
--- a/website/docs/provisioners/habitat.html.markdown
+++ b/website/docs/provisioners/habitat.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: habitat"
sidebar_current: "docs-provisioners-habitat"
description: |-
diff --git a/website/docs/provisioners/index.html.markdown b/website/docs/provisioners/index.html.markdown
index d604b6f88..58e4513db 100644
--- a/website/docs/provisioners/index.html.markdown
+++ b/website/docs/provisioners/index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioners"
sidebar_current: "docs-provisioners"
description: |-
diff --git a/website/docs/provisioners/local-exec.html.markdown b/website/docs/provisioners/local-exec.html.markdown
index 2f8cf628f..40247d5c9 100644
--- a/website/docs/provisioners/local-exec.html.markdown
+++ b/website/docs/provisioners/local-exec.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: local-exec"
sidebar_current: "docs-provisioners-local"
description: |-
diff --git a/website/docs/provisioners/null_resource.html.markdown b/website/docs/provisioners/null_resource.html.markdown
index f7609ab66..61c221fb9 100644
--- a/website/docs/provisioners/null_resource.html.markdown
+++ b/website/docs/provisioners/null_resource.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioners Without a Resource"
sidebar_current: "docs-provisioners-null-resource"
description: |-
diff --git a/website/docs/provisioners/puppet.html.markdown b/website/docs/provisioners/puppet.html.markdown
index 70f754cf1..a4b08c76a 100644
--- a/website/docs/provisioners/puppet.html.markdown
+++ b/website/docs/provisioners/puppet.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: puppet"
sidebar_current: "docs-provisioners-puppet"
description: |-
diff --git a/website/docs/provisioners/remote-exec.html.markdown b/website/docs/provisioners/remote-exec.html.markdown
index 3085bb335..0d56343ce 100644
--- a/website/docs/provisioners/remote-exec.html.markdown
+++ b/website/docs/provisioners/remote-exec.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: remote-exec"
sidebar_current: "docs-provisioners-remote"
description: |-
diff --git a/website/docs/provisioners/salt-masterless.html.md b/website/docs/provisioners/salt-masterless.html.md
index f15d10e67..26810b91e 100644
--- a/website/docs/provisioners/salt-masterless.html.md
+++ b/website/docs/provisioners/salt-masterless.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "Provisioner: salt-masterless"
sidebar_current: "docs-provisioners-salt-masterless"
description: |-
diff --git a/website/docs/registry/index.html.md b/website/docs/registry/index.html.md
index 7e4a608df..ea12a1184 100644
--- a/website/docs/registry/index.html.md
+++ b/website/docs/registry/index.html.md
@@ -1,12 +1,12 @@
---
layout: "registry"
-page_title: "Terraform Registry"
+page_title: "Publishing Providers and Modules"
sidebar_current: "docs-registry-home"
description: |-
The Terraform Registry is a repository of providers and modules written by the Terraform community.
---
-# Terraform Registry
+# Publishing Providers and Modules on the Terraform Registry
The [Terraform Registry](https://registry.terraform.io) is an interactive resource for discovering a wide selection of integrations (providers) and configuration packages (modules) for use with Terraform. The Registry includes solutions developed by HashiCorp, third-party vendors, and our Terraform community. Our goal with the Registry is to provide plugins to manage any infrastructure API, pre-made modules to quickly configure common infrastructure components, and examples of how to write quality Terraform code.
diff --git a/website/docs/state/environments.html.md b/website/docs/state/environments.html.md
index dfc8f7618..1d340b8cb 100644
--- a/website/docs/state/environments.html.md
+++ b/website/docs/state/environments.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State: Environments"
sidebar_current: "docs-state-env"
description: |-
diff --git a/website/docs/state/import.html.md b/website/docs/state/import.html.md
index 166614b66..a71d68d5b 100644
--- a/website/docs/state/import.html.md
+++ b/website/docs/state/import.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State: Import Existing Resources"
sidebar_current: "docs-state-import"
description: |-
diff --git a/website/docs/state/index.html.md b/website/docs/state/index.html.md
index 49f82cb65..7e7d2a5e5 100644
--- a/website/docs/state/index.html.md
+++ b/website/docs/state/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State"
sidebar_current: "docs-state"
description: |-
diff --git a/website/docs/state/locking.html.md b/website/docs/state/locking.html.md
index 6a4b8648d..49ed9fd3b 100644
--- a/website/docs/state/locking.html.md
+++ b/website/docs/state/locking.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State: Locking"
sidebar_current: "docs-state-locking"
description: |-
diff --git a/website/docs/state/purpose.html.md b/website/docs/state/purpose.html.md
index fd0a5c911..4182e9a81 100644
--- a/website/docs/state/purpose.html.md
+++ b/website/docs/state/purpose.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State"
sidebar_current: "docs-state-purpose"
description: |-
diff --git a/website/docs/state/remote.html.md b/website/docs/state/remote.html.md
index a2328d994..4187542c8 100644
--- a/website/docs/state/remote.html.md
+++ b/website/docs/state/remote.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State: Remote Storage"
sidebar_current: "docs-state-remote"
description: |-
diff --git a/website/docs/state/sensitive-data.html.md b/website/docs/state/sensitive-data.html.md
index f5ccaa116..ac2061b6a 100644
--- a/website/docs/state/sensitive-data.html.md
+++ b/website/docs/state/sensitive-data.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State: Sensitive Data"
sidebar_current: "docs-state-sensitive-data"
description: |-
diff --git a/website/docs/state/workspaces.html.md b/website/docs/state/workspaces.html.md
index e2a51c4b8..08f26e9bc 100644
--- a/website/docs/state/workspaces.html.md
+++ b/website/docs/state/workspaces.html.md
@@ -1,5 +1,5 @@
---
-layout: "docs"
+layout: "language"
page_title: "State: Workspaces"
sidebar_current: "docs-state-workspaces"
description: |-
diff --git a/website/guides/core-workflow.html.md b/website/guides/core-workflow.html.md
index c7f50a6f8..f60ffb110 100644
--- a/website/guides/core-workflow.html.md
+++ b/website/guides/core-workflow.html.md
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "intro"
page_title: "The Core Terraform Workflow - Guides"
sidebar_current: "guides-core-workflow"
description: |-
diff --git a/website/guides/index.html.md b/website/guides/index.html.md
index 8eb707384..987d38531 100644
--- a/website/guides/index.html.md
+++ b/website/guides/index.html.md
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "intro"
page_title: "Guides"
sidebar_current: "guides-home"
description: |-
diff --git a/website/layouts/backend-types.erb b/website/layouts/backend-types.erb
deleted file mode 100644
index 14dacac61..000000000
--- a/website/layouts/backend-types.erb
+++ /dev/null
@@ -1,88 +0,0 @@
-<% wrap_layout :inner do %>
- <% content_for :sidebar do %>
-
-
-
-
- <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform CLI" }) %>
- <% end %>
-
- <%= yield %>
-<% end %>
diff --git a/website/layouts/commands-providers.erb b/website/layouts/commands-providers.erb
deleted file mode 100644
index a0587364a..000000000
--- a/website/layouts/commands-providers.erb
+++ /dev/null
@@ -1,35 +0,0 @@
-<% wrap_layout :inner do %>
- <% content_for :sidebar do %>
-
-
-
-
- <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform CLI" }) %>
-
- <% end %>
-
- <%= yield %>
-<% end %>
diff --git a/website/layouts/commands-state.erb b/website/layouts/commands-state.erb
deleted file mode 100644
index f5a98d329..000000000
--- a/website/layouts/commands-state.erb
+++ /dev/null
@@ -1,57 +0,0 @@
-<% wrap_layout :inner do %>
- <% content_for :sidebar do %>
-
-
-
-
- <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform CLI" }) %>
-
- <% end %>
-
- <%= yield %>
-<% end %>
diff --git a/website/layouts/commands-workspace.erb b/website/layouts/commands-workspace.erb
deleted file mode 100644
index 624026cbf..000000000
--- a/website/layouts/commands-workspace.erb
+++ /dev/null
@@ -1,45 +0,0 @@
-<% wrap_layout :inner do %>
- <% content_for :sidebar do %>
-
-
-
-
- <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform CLI" }) %>
-
- <% end %>
-
- <%= yield %>
-<% end %>
diff --git a/website/layouts/docs.erb b/website/layouts/docs.erb
index 8d6d32e75..48348e688 100644
--- a/website/layouts/docs.erb
+++ b/website/layouts/docs.erb
@@ -3,535 +3,550 @@
- - >
- Configuration Language
+
+
-
+ Overview
+
+
+ -
+ Basic CLI Features
+
+
+ -
+ Initializing Working Directories
-
- - >
- Commands (CLI)
+
-
+ Provisioning Infrastructure
- - >
- Import
+
-
+ Authenticating
+
+
+ -
+ Writing and Modifying Code
+
+
+
+ -
+ Inspecting Infrastructure
+
+
+
+ -
+ Importing Infrastructure
+
-
- - >
- State
-
-
-
- - >
- Providers
-
- - >
- Modules
+
-
+ Manipulating State
-
-
- - >
- Backends
-
-
-
- - >
- Plugins
-
-
-
- - >
- Internals
-
+
+
+ -
+ Managing Workspaces
+
+
+
+ -
+ Managing Plugins
+
+
+
+ -
+ CLI Configuration
+
+
+
+ -
+ Automating Terraform
+
+
+
+ -
+ Alphabetical List of Commands
+
+
+
+ -
+ Internals
+
diff --git a/website/layouts/functions.erb b/website/layouts/functions.erb
deleted file mode 100644
index 181040f53..000000000
--- a/website/layouts/functions.erb
+++ /dev/null
@@ -1,522 +0,0 @@
-<% wrap_layout :inner do %>
- <% content_for :sidebar do %>
-
-
- (Expand/collapse all)
-
-
-
- <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform CLI" }) %>
- <% end %>
-
- <%= yield %>
-<% end %>
diff --git a/website/layouts/guides.erb b/website/layouts/guides.erb
deleted file mode 100644
index a91b14ad5..000000000
--- a/website/layouts/guides.erb
+++ /dev/null
@@ -1,65 +0,0 @@
-<% wrap_layout :inner do %>
- <% content_for :sidebar do %>
-
-
-
-
- <%= partial("layouts/otherdocs", :locals => { :skip => "Guides and Whitepapers" }) %>
- <% end %>
-
- <%= yield %>
-<% end %>
diff --git a/website/layouts/intro.erb b/website/layouts/intro.erb
index 2cdfe0943..1f99c43aa 100644
--- a/website/layouts/intro.erb
+++ b/website/layouts/intro.erb
@@ -8,45 +8,65 @@
- - >
+
-
What is Terraform?
- - >
+
-
Use Cases
- - >
+
-
+ Getting Started
+
+
+ -
+ The Core Terraform Workflow
+
+
+ - Terraform Recommended Practices
+
+
+
+ -
Terraform vs. Other
- - >
+
-
Example Configurations
diff --git a/website/layouts/language.erb b/website/layouts/language.erb
new file mode 100644
index 000000000..196606454
--- /dev/null
+++ b/website/layouts/language.erb
@@ -0,0 +1,1014 @@
+<% wrap_layout :inner do %>
+ <% content_for :sidebar do %>
+
+
+
+
+ <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform Language" }) %>
+ <% end %>
+
+ <%= yield %>
+<% end %>
diff --git a/website/layouts/registry.erb b/website/layouts/registry.erb
index 4cbcbfa9a..431c682f2 100644
--- a/website/layouts/registry.erb
+++ b/website/layouts/registry.erb
@@ -1,6 +1,6 @@
<% wrap_layout :inner do %>
<% content_for :sidebar do %>
-
+
-
@@ -10,19 +10,23 @@
-
Providers
- <%= partial("layouts/otherdocs", :locals => { :skip => "Terraform Registry" }) %>
+ <%= partial("layouts/otherdocs", :locals => { :skip => "Publishing Providers and Modules" }) %>
<% end %>
<%= yield %>
diff --git a/website/upgrade-guides/0-10.html.markdown b/website/upgrade-guides/0-10.html.markdown
index 2a7363c1c..ba0295fe8 100644
--- a/website/upgrade-guides/0-10.html.markdown
+++ b/website/upgrade-guides/0-10.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform 0.10"
sidebar_current: "upgrade-guides-0-10"
description: |-
diff --git a/website/upgrade-guides/0-11.html.markdown b/website/upgrade-guides/0-11.html.markdown
index 2788168c4..4d7b0d26b 100644
--- a/website/upgrade-guides/0-11.html.markdown
+++ b/website/upgrade-guides/0-11.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform 0.11"
sidebar_current: "upgrade-guides-0-11"
description: |-
diff --git a/website/upgrade-guides/0-12.html.markdown b/website/upgrade-guides/0-12.html.markdown
index b4e9ca741..ff85ad148 100644
--- a/website/upgrade-guides/0-12.html.markdown
+++ b/website/upgrade-guides/0-12.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform 0.12"
sidebar_current: "upgrade-guides-0-12"
description: |-
diff --git a/website/upgrade-guides/0-13.html.markdown b/website/upgrade-guides/0-13.html.markdown
index 2d1bf63b1..fd3740f81 100644
--- a/website/upgrade-guides/0-13.html.markdown
+++ b/website/upgrade-guides/0-13.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform v0.13"
sidebar_current: "upgrade-guides-0-13"
description: |-
diff --git a/website/upgrade-guides/0-14.html.markdown b/website/upgrade-guides/0-14.html.markdown
index c779ac50e..61d0aaf44 100644
--- a/website/upgrade-guides/0-14.html.markdown
+++ b/website/upgrade-guides/0-14.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform v0.14"
sidebar_current: "upgrade-guides-0-14"
description: |-
diff --git a/website/upgrade-guides/0-7.html.markdown b/website/upgrade-guides/0-7.html.markdown
index ec73da405..a2c170373 100644
--- a/website/upgrade-guides/0-7.html.markdown
+++ b/website/upgrade-guides/0-7.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform 0.7"
sidebar_current: "upgrade-guides-0-7"
description: |-
diff --git a/website/upgrade-guides/0-8.html.markdown b/website/upgrade-guides/0-8.html.markdown
index 4801c6905..65150e6d0 100644
--- a/website/upgrade-guides/0-8.html.markdown
+++ b/website/upgrade-guides/0-8.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform 0.8"
sidebar_current: "upgrade-guides-0-8"
description: |-
diff --git a/website/upgrade-guides/0-9.html.markdown b/website/upgrade-guides/0-9.html.markdown
index 4f7e604a3..5212d3097 100644
--- a/website/upgrade-guides/0-9.html.markdown
+++ b/website/upgrade-guides/0-9.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrading to Terraform 0.9"
sidebar_current: "upgrade-guides-0-9"
description: |-
diff --git a/website/upgrade-guides/index.html.markdown b/website/upgrade-guides/index.html.markdown
index 2a2bb27ed..49b28253f 100644
--- a/website/upgrade-guides/index.html.markdown
+++ b/website/upgrade-guides/index.html.markdown
@@ -1,5 +1,5 @@
---
-layout: "guides"
+layout: "language"
page_title: "Upgrade Guides"
sidebar_current: "upgrade-guides"
description: |-