mirror of
https://github.com/mickael-menu/zk
synced 2024-11-15 12:12:56 +00:00
44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
# Extra user variables
|
|
|
|
`zk` is opened for template context extension which can be useful when [creating new notes](note-creation.md), for example:
|
|
|
|
* expanding custom metadata (author, subject, etc.)
|
|
* modifying a [template](template.md)'s output dynamically depending on the value of an extra variable
|
|
|
|
## Static extra variables
|
|
|
|
You can declare static extra variables in the [configuration file](config.md)'s `[extra]` section. Each [note group](config-group.md) can have its own `[extra]` section, which may override values from the root section.
|
|
|
|
```toml
|
|
[extra]
|
|
visibility = "public"
|
|
author = "Mickaël"
|
|
|
|
[group.journal.extra]
|
|
visibility = "private" # overrides
|
|
```
|
|
|
|
## Dynamic extra variables
|
|
|
|
Maybe more useful, you can provide additional extra variables dynamically to `zk new` from the command-line with `--extra`. Multiple variables can be separated by a comma `,`.
|
|
|
|
```sh
|
|
$ zk new --extra author=Thomas
|
|
$ zk new --extra show-header=1,author=Thomas
|
|
```
|
|
|
|
## Using extra variables in templates
|
|
|
|
After declaring extra variables, you can expand them inside the [template used when creating new notes](template-creation.md), using the usual [Handlebars syntax](template.md).
|
|
|
|
```markdown
|
|
# {{title}}
|
|
|
|
Written by {{extra.author}}.
|
|
|
|
{{#if extra.show-header}}
|
|
Behold, the mighty dynamic header!
|
|
{{/if}}
|
|
```
|
|
|