[tutorial v1.1_010] A variable with a list of possible values (config and doc)

This commit is contained in:
egarette@silique.fr 2026-01-08 20:22:02 +01:00
parent 82f53603c4
commit 9c2ae84095
9 changed files with 97 additions and 24 deletions

View file

@ -1,11 +1,11 @@
- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
- [[tutorial v1.1_002] Describe the variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_002/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_002~1..v1.1_002))
- [[tutorial v1.1_003] Set a default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003))
# [tutorial v1.1_003] Set a default value
# [tutorial v1.1_010] A variable with a list of possible values
[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003)
[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010)
[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#set-a-default-value)
[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#a-variable-with-a-list-of-possible-values)
## Screenshot
@ -31,7 +31,7 @@ pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-
Then switch to the tutorial page:
```shell
git switch --detach v1.1_003
git switch --detach v1.1_010
```
## Structure
@ -39,9 +39,9 @@ git switch --detach v1.1_003
<p>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/./">.</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/./firefox/">firefox</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./">.</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./firefox/">firefox</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
<br/><br/></p>
Contents of the firefox/00-proxy.yml file
@ -51,7 +51,15 @@ Contents of the firefox/00-proxy.yml file
---
version: 1.1
proxy_mode: No proxy # Configure Proxy Access to the Internet
proxy_mode:
description: Configure Proxy Access to the Internet
choices:
- No proxy
- Auto-detect proxy settings for this network
- Use system proxy settings
- Manual proxy configuration
- Automatic proxy configuration URL
default: No proxy
...
```
@ -63,8 +71,8 @@ proxy_mode: No proxy # Configure Proxy Access to the Internet
rougail -m firefox/ -o doc
```
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Default**: No proxy |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Choices**: <br/>&nbsp;No proxy **← (default)**<br/>&nbsp;Auto-detect proxy settings for this network<br/>&nbsp;Use system proxy settings<br/>&nbsp;Manual proxy configuration<br/>&nbsp;Automatic proxy configuration URL |
***
@ -76,8 +84,8 @@ rougail -m firefox/ -o doc --doc.contents changelog
#### Modified variable
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Default**: <ins>No proxy</ins> |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Choices**: <br/>&nbsp;No proxy **← (default)**<br/>&nbsp;<ins>Auto-detect proxy settings for this network</ins><br/>&nbsp;<ins>Use system proxy settings</ins><br/>&nbsp;<ins>Manual proxy configuration</ins><br/>&nbsp;<ins>Automatic proxy configuration URL</ins> |
***
@ -142,7 +150,7 @@ Variables:
```yml
---
proxy_mode: foo
proxy_mode: Manual proxy configuration
```
***
@ -159,9 +167,49 @@ rougail -m firefox/ -u yaml -yf config/03/config.yml
> - (:hourglass_flowing_sand: Original default value)
Variables:
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #006400">foo</span> ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: No proxy)
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #006400">Manual proxy configuration</span> ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: No proxy)
***
### Example 4
#### config/04/config.yml
```yml
---
proxy_mode: foo
```
***
#### Output
```shell
rougail -m firefox/ -u yaml -yf config/04/config.yml
```
> [!WARNING]
>
> - proxy_mode (Configure Proxy Access to the Internet): :bell: <span style="color: #EFBF04">the value "foo" is an invalid choice, only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy configuration", "No proxy" and "Use system proxy settings" are allowed, it will be ignored when loading from the YAML file "config/04/config.yml"</span>
> [!NOTE]
>
> **Caption:**
> - Variable
> - <span style="color: #B8860B">Default value</span>
Variables:
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #B8860B">No proxy</span>
***
#### Output when invalid user data is an error
```shell
rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_data_error
```
> [!CAUTION]
>
> - proxy_mode (Configure Proxy Access to the Internet): :stop_sign: <span style="color: #C23636">the value "foo" is an invalid choice, only "Auto-detect proxy settings for this network", "Automatic proxy configuration URL", "Manual proxy configuration", "No proxy" and "Use system proxy settings" are allowed, it has been loading from the YAML file "config/04/config.yml"</span>
***
- [[tutorial v1.1_010] A variable with a list of possible values](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010))
- [[tutorial v1.1_020] Creating a new family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_020/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_020~1..v1.1_020))

View file

@ -1,2 +1,2 @@
---
proxy_mode: foo
proxy_mode: Manual proxy configuration

View file

@ -3,6 +3,7 @@
│ (⏳ Original default value) │
╰──────────────────────────────────────╯
Variables:
<span style="color: #5c5cff">┗━━ </span>📓 proxy_mode (Configure Proxy Access to the Internet): <span style="color: #00aa00">foo</span> ◀ loaded from
<span style="color: #5c5cff"> </span>the YAML file "config/03/config.yml" (⏳ No proxy)
<span style="color: #5c5cff">┗━━ </span>📓 proxy_mode (Configure Proxy Access to the Internet): <span style="color: #00aa00">Manual proxy </span>
<span style="color: #5c5cff"> </span><span style="color: #00aa00">configuration</span> ◀ loaded from the YAML file "config/03/config.yml" (⏳ No
<span style="color: #5c5cff"> </span>proxy)
</pre>

View file

@ -0,0 +1 @@
rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_data_error

1
config/04/cmd_ro.txt Normal file
View file

@ -0,0 +1 @@
rougail -m firefox/ -u yaml -yf config/04/config.yml

2
config/04/config.yml Normal file
View file

@ -0,0 +1,2 @@
---
proxy_mode: foo

View file

@ -0,0 +1,7 @@
<pre><span style="font-weight: bold; color: #ff0000">🛑 Caution</span>
<span style="color: #ff0000">┗━━ </span>proxy_mode (Configure Proxy Access to the Internet): <span style="color: #ff0000">🛑 the value "foo" is </span>
<span style="color: #ff0000"> </span><span style="color: #ff0000">an invalid choice, only "Auto-detect proxy settings for this network", </span>
<span style="color: #ff0000"> </span><span style="color: #ff0000">"Automatic proxy configuration URL", "Manual proxy configuration", "No </span>
<span style="color: #ff0000"> </span><span style="color: #ff0000">proxy" and "Use system proxy settings" are allowed, it has been loading from</span>
<span style="color: #ff0000"> </span><span style="color: #ff0000">the YAML file "config/04/config.yml"</span>
</pre>

13
config/04/output_ro.html Normal file
View file

@ -0,0 +1,13 @@
<pre><span style="font-weight: bold; color: #ffff00">🔔 Warning</span>
<span style="color: #ffff00">┗━━ </span>proxy_mode (Configure Proxy Access to the Internet): <span style="color: #ffff00">🔔 the value "foo" is </span>
<span style="color: #ffff00"> </span><span style="color: #ffff00">an invalid choice, only "Auto-detect proxy settings for this network", </span>
<span style="color: #ffff00"> </span><span style="color: #ffff00">"Automatic proxy configuration URL", "Manual proxy configuration", "No </span>
<span style="color: #ffff00"> </span><span style="color: #ffff00">proxy" and "Use system proxy settings" are allowed, it will be ignored when </span>
<span style="color: #ffff00"> </span><span style="color: #ffff00">loading from the YAML file "config/04/config.yml"</span>
╭─────── Caption ────────╮
│ Variable <span style="color: #ffd700">Default value</span>
╰────────────────────────╯
Variables:
<span style="color: #5c5cff">┗━━ </span>📓 proxy_mode (Configure Proxy Access to the Internet): <span style="color: #ffd700">No proxy</span>
</pre>

View file

@ -1,5 +1,5 @@
<p>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/./">.</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/./firefox/">firefox</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./">.</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./firefox/">firefox</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
<br/><br/></p>