diff --git a/site/_docs/configuration.md b/site/_docs/configuration.md index 1c9b339f..af4ce145 100644 --- a/site/_docs/configuration.md +++ b/site/_docs/configuration.md @@ -201,6 +201,15 @@ class="flag">flags (specified on the command-line) that control them.

--drafts

+ + +

Environment

+

Use a specific environment value in the build.

+ + +

JEKYLL_ENV=production

+ +

Future

@@ -263,6 +272,7 @@ class="flag">flags (specified on the command-line) that control them. + ### Serve Command Options In addition to the options below, the `serve` sub-command can accept any of the options @@ -339,6 +349,34 @@ before your site is served.

+## Specifying a Jekyll environment at build time + +In the build (or serve) arguments, you can specify a Jekyll environment and value. The build will then apply this value in any conditional statements in your content. + +For example, suppose you set this conditional statement in your code: + +```liquid + {% raw %} + {% if jekyll.environment == "production" %} + {% include disqus.html %} + {% endif %} + {% endraw %} +``` + +When you build your Jekyll site, the content inside the `if` statement won't be run unless you also specify a `production` environment in the build command, like this: + +```bash +JEKYLL_ENV=production jekyll build +``` + +Specifying an environment value allows you to make certain content available only within specific environments. + +The default value for `JEKYLL_ENV` is `development`. Therefore if you omit `JEKYLL_ENV` from the build arguments, the default value will be `JEKYLL_ENV=development`. Any content inside `{% raw %}{% if jekyll.environment == "development" %}{% raw %}` tags will automatically appear in the build. + +Your environment values can be anything you want (not just `development` or `production`). Some elements you might want to hide in development environments include Disqus comment forms or Google Analytics. Conversely, you might want to expose an "Edit me in GitHub" button in a development environment but not include it in production environments. + +By specifying the option in the build command, you avoid having to change values in your configuration files when moving from one environment to another. + ## Front Matter defaults Using [YAML Front Matter](../frontmatter/) is one way that you can specify configuration in the pages and posts for your site. Setting things like a default layout, or customizing the title, or specifying a more precise date/time for the post can all be added to your page or post front matter.