This commit is contained in:
gwen 2026-04-16 11:47:06 +02:00
parent c9d32dce9f
commit 00d17badf8
2 changed files with 59 additions and 11 deletions

View file

@ -19,12 +19,12 @@ Rougail
7 tutorial/tutorial.rst:546: WARNING: term not in glossary: 'leader'
8 tutorial/tutorial.rst:547: WARNING: term not in glossary: 'follower'
9 variable.rst:38: WARNING: label non défini: 'convention on variable names'
10 variable.rst:137: WARNING: term not in glossary: 'leading'
11 variable.rst:154: WARNING: term not in glossary: 'required'
12 variable.rst:156: WARNING: term not in glossary: 'leader'
13 variable.rst:156: WARNING: term not in glossary: 'follower'
14 variable.rst:186: WARNING: term not in glossary: 'multiple'
15 variable.rst:186: WARNING: term not in glossary: 'multiple'
10 variable.rst:137: WARNING: term not in glossary: 'leading'
11 variable.rst:154: WARNING: term not in glossary: 'required'
12 variable.rst:156: WARNING: term not in glossary: 'leader'
13 variable.rst:156: WARNING: term not in glossary: 'follower'
14 variable.rst:186: WARNING: term not in glossary: 'multiple'
15 variable.rst:186: WARNING: term not in glossary: 'multiple'
.. image:: images/logo.png

View file

@ -32,11 +32,11 @@ This feature is essential for having a truly adaptable tool.
.. note:: It is actually possible to add types,
but that involves adding predefined types to the :term:`tiramisu` underlying consistency library itself,
and thats a different matter altogether. There is a simpler way to achieve this: the Rougail type definition.
and thats a different matter altogether. There is a simpler way to achieve this with the Rougail type definition feature.
It is possible in Rougail to create custom types in a very simple way, it is much like defining families.
Now our folder structure will be expanded a bit:
Our folder structure will be expanded a bit:
.. raw:: html
:url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_080/tree.html
@ -120,15 +120,15 @@ It's perfectly natural in the rougail style.
Now in the `address` family it is not necessary to specify the `domainname` type nor the `allow_ip` parameter:
.. code-block:: yaml
:caption: We can omit this now due to the type definition
:caption: We can omit these settings now due to the type definition
description: HTTP address
type: domainname
params:
allow_ip: true
But if we use our new type we need to declare it to Rougail in order to make it available.
The Rougail CLI has a `--types` type declaration command line option for this purpose.
But in order to use our new type we need to declare it to Rougail otherwise the new type is not available.
The Rougail CLI has the `--types` type declaration command line option for this purpose.
Let's launch the rougail CLI with this command line parameter:
.. raw:: html
@ -145,6 +145,54 @@ We want the same behavior as usual.
The type definition adds nothing to the structural logic. It's just a very convenient way to save time when writing structure files.
.. FIXME Ici nous avons juste changé la valeur des deux variables
.. type-along:: kinematics of setting the `address` value
Let's take the time to explain how the value of the variable `manual.http_proxy.address` is determined using the type definition.
The :file:`10-manual.yml` defines the :file:`manual.https_proxy` family
which is defined with the help of the `proxy` type:
.. code-block:: yaml
http_proxy:
description: HTTP Proxy
type: proxy
In the :file:`types/proxy/00_type.yml` file we have the `proxy` type definition and its default value setting:
.. code-block:: yaml
default:
variable: __.http_proxy.address
This default value setting point to the `http_proxy.address` value in the :file:`firefox/10-manual.yml` structure file:
.. code-block:: yaml
address:
default: null
Which is `null` by default but in the :file:`config/01/config.yml` user data file we have the `http.proxy.net` value set:
.. code-block:: yaml
manual:
http_proxy:
address: http.proxy.net
In the CLI standard output we can see that the `http_proxy.address` variable value is
finally set by the user data file:
::
┗━━ 📂 manual (Manual proxy configuration)
┣━━ 📂 http_proxy (HTTP Proxy)
┃ ┣━━ 📓 address (Proxy address): http.proxy.net ◀ loaded from the YAML
┃ ┃ file "config/01/config.yml"
HTTPS and SOCKS Proxy
-----------------------