+ ...
+}
+```
+
+- **<name>** is the variable name to set.
+
+- **<value>** is the value of the variable.
+
+ The value will be type converted if possible; `true` and `false` will be converted to boolean types, and numeric values will be converted to integer or float accordingly. To avoid this conversion, you may wrap the output with [quotes](/docs/caddyfile/concepts#tokens-and-quotes) and they will stay strings.
+
+## Examples
+
+To set a single variable, the value being conditional based on the request path, then responding with the value:
+
+```caddy-d
+vars /foo* isFoo "yep"
+vars isFoo "nope"
+
+respond {vars.isFoo}
+```
+
+To set multiple variables, each converted to the appropriate scalar type:
+
+```caddy-d
+vars {
+ # boolean
+ abc true
+
+ # integer
+ def 1
+
+ # float
+ ghi 2.3
+
+ # string
+ jkl "example"
+}
+```
diff --git a/src/docs/markdown/command-line.md b/src/docs/markdown/command-line.md
index fb720ec..0d81bbd 100644
--- a/src/docs/markdown/command-line.md
+++ b/src/docs/markdown/command-line.md
@@ -179,7 +179,7 @@ This command disables the admin API, making it easier to run multiple instances
### `caddy fmt`
-caddy fmt [--overwrite] [<path>]
+caddy fmt [--overwrite] [--diff] [<path>]
Formats or prettifies a Caddyfile, then exits. The result is printed to stdout unless `--overwrite` is used.
@@ -187,6 +187,8 @@ Formats or prettifies a Caddyfile, then exits. The result is printed to stdout u
`--overwrite` causes the result to be written to the input file instead of being printed to the terminal. If the input is not a regular file, this flag has no effect.
+`--diff` causes the output to be compared against the input, and lines will be prefixed with `-` and `+` where they differ. Note that unchanges lines are prefixed with two spaces for alignment, and that this is not a valid patch format; it's just meant as a visual tool.
+
@@ -294,7 +296,7 @@ Runs Caddy and blocks indefinitely; i.e. "daemon" mode.
`--environ` prints out the environment before starting. This is the same as the `caddy environ` command, but does not exit after printing.
-`--envfile` loads environment variables from the specified file.
+`--envfile` loads environment variables from the specified file, in `KEY=VALUE` format. Comments starting with `#` are supported; keys may be prefixed with `export`; values may be double-quoted (double-quotes within can be escaped); multi-line values are supported.
`--resume` uses the last loaded configuration that was autosaved, overriding the `--config` flag (if present). Using this flag guarantees config durability through machine reboots or process restarts. It is most useful in [API](/docs/api)-centric deployments.