:orphan:

The variables
-----------------

Here is a :term:`structure file` example with only a variable **variable** named `proxy_mode`
A variable can be defined without other informations.

.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_010/firefox/00-proxy.yml
   :language: yaml
   :caption: A Rougail structure file with a variable named `proxy_mode`, with a description.
   :name: RougailStructureFirstVariable

..
    %YAML 1.2
    ---
    version: 1.1

    proxy_mode:
    ...

But it's better to describe this variable:

.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_011/firefox/00-proxy.yml
   :language: yaml
   :caption: A Rougail structure file with a variable named `proxy_mode`, with a description.
   :name: RougailStructureFirstVariableWithDescription

..
    %YAML 1.2
    ---
    version: 1.1

    proxy_mode:  # Configure Proxy Access to the Internet
    ...


The same with a default value:

.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_012/firefox/00-proxy.yml
   :language: yaml
   :caption: A Rougail structure file with a variable named `proxy_mode`, with a default value.
   :name: RougailStructureFirstVariableDefault

..
    %YAML 1.2
    ---
    version: 1.1
    
    proxy_mode: No proxy  # Configure Proxy Access to the Internet
    ...

variable

    A :term:`variable` is a declaration unit that represents a business domain metaphor,
    the most common example is that a variable that represents a configuration option
    in a application, but a variable represents something more that a configuration option.
    It provides a business domain specific representation unit.

Families of variables
--------------------------

family

    A :term:`family` is simply a container of variables and/ore some subfamilies.

Here how a YAML structure file with a family looks like:

.. code-block:: yaml
   :caption: A :file:`hello.yml` structure sample file

    ---
    version: '1.1'
    world:
      description: Hello world family container
      name:
        description: Somebody to say hello
        default: rougail

Here, we have a family named `world`.
This family contains a variable named `name`

