This package is abandoned and no longer maintained. The author suggests using the bnomei/autoloader-for-kirby package instead.

Panel field that allows you to change language variables.

1.2.0 2019-09-02 06:54 UTC

This package is auto-updated.

Last update: 2022-08-23 05:48:58 UTC


Kirby field that allows you to manage langauge variables via the panel. To do that, it uses kirby-variables to put those variables in YAML files so they're easy to work with.

Variables editor

⚠ Deprecated

You gain very little by putting variables in separate files and managing them differently to other fields. It's much easier to just use text fields. For details, check the deprecated oblik/kirby-variables package.


With Composer:

composer require oblik/kirby-variables-field


In a blueprint, simply add a new field and set its type to variables:

    type: variables
    label: Variables

This will create an editor for all variables where you can add, remove, and sort them.

Note: This is a "fake" field and no actual value will be saved in the site/page txt file. All values are saved in the YAML files where the variables reside so it doesn't matter what field name you choose.



You can specify exactly which variable you want to be editable. For example, if you have this in bg.yml:

test: Тест
  hello: Здравей

...and this in your blueprint:

  type: variables
  variable: greetings.hello
  label: Hello

...you'll get the following result:

Single variable field

In the case above, if you want editors to be able to add new entries in the greetings group, you can simply change:

variable: greetings.hello


variable: greetings

This will show the variable editor instead.


When you haven't set a specific variable to edit and the editor is shown, you can configure it:

  type: variables
    sort: false
    mutate: false

This plugin uses the JSON editor Vue component provided by the kirby-json dependency. Read what blueprint options it has here.


This plugin also comes with a KirbyTag called var. It simply outputs a variable with a fallback default value. For example, in en.yml:

  test: Test

In your content:

This is the label (var: labels.test default: Default Value)


This is the label Test

This is useful because editors now can both set and use variables in the panel, which gives them the option to avoid repeating themselves in the content.