From bf02550983db9ac6b28111f0e39b13ded7f4418b Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 10 Jun 2026 22:25:50 +0200 Subject: [PATCH] [tutorial v1.1_010] A variable with a list of possible values (config and doc) --- CHANGELOG.md | 6 +-- DOCUMENTATION.md | 6 +-- README.md | 72 +++++++++++++++++++++++++++++------ config/03/config.yml | 2 +- config/03/output_ro.html | 5 ++- config/04/cmd_invalid.txt | 1 + config/04/cmd_ro.txt | 1 + config/04/config.yml | 2 + config/04/output_invalid.html | 7 ++++ config/04/output_ro.html | 13 +++++++ tree.html | 6 +-- 11 files changed, 97 insertions(+), 24 deletions(-) create mode 100644 config/04/cmd_invalid.txt create mode 100644 config/04/cmd_ro.txt create mode 100644 config/04/config.yml create mode 100644 config/04/output_invalid.html create mode 100644 config/04/output_ro.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ca2b61..5aca03e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ # Modified variable -| Variable | Description | -|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| -| **proxy_mode**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.
**Default**: No proxy | +| Variable | Description | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **proxy_mode**
~~`string`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.
**Choices**:
• No proxy **← (default)**
• Auto-detect proxy settings for this network
• Use system proxy settings
• Manual proxy configuration
• Automatic proxy configuration URL | diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index 82cff40..98871a8 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -1,3 +1,3 @@ -| Variable | Description | -|------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| -| **proxy_mode**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.
**Default**: No proxy | +| Variable | Description | +|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **proxy_mode**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.
**Choices**:
• No proxy **← (default)**
• Auto-detect proxy settings for this network
• Use system proxy settings
• Manual proxy configuration
• Automatic proxy configuration URL | diff --git a/README.md b/README.md index ff780ec..b25fbfb 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ - [List of all the tutorial steps](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md) -- [[Previous 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_003~1..v1.1_003)) +- [[Previous 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_010~1..v1.1_010)) -# [tutorial v1.1_003] Set a default value +# [tutorial v1.1_010] A variable with a list of possible values -- [Read the tutorial "Set a default value" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#set-a-default-value) -- [View the changes in the files](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003) +- [Read the tutorial "A variable with a list of possible values" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/choice.html#a-variable-with-a-list-of-possible-values) +- [View the changes in the files](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010) ## Screenshot @@ -26,15 +26,15 @@ 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

-.
- └── firefox
-     └── 00-proxy.yml
+.
+ └── firefox
+     └── 00-proxy.yml


Contents of the firefox/00-proxy.yml file @@ -44,7 +44,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 ... ``` @@ -128,7 +136,7 @@ Variables: ```yml --- -proxy_mode: foo +proxy_mode: Manual proxy configuration ``` *** @@ -145,9 +153,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): foo ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: No proxy) +- :notebook: proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← 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: 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" + +> [!NOTE] +> +> **Caption:** +> - Variable +> - Default value + +Variables: +- :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy + +*** +#### 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: 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" *** -- [[Next 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)) +- [[Next 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)) diff --git a/config/03/config.yml b/config/03/config.yml index e3fa25d..74edb22 100644 --- a/config/03/config.yml +++ b/config/03/config.yml @@ -1,2 +1,2 @@ --- -proxy_mode: foo +proxy_mode: Manual proxy configuration diff --git a/config/03/output_ro.html b/config/03/output_ro.html index 5d88bf4..352ec43 100644 --- a/config/03/output_ro.html +++ b/config/03/output_ro.html @@ -3,6 +3,7 @@ │ (⏳ Original default value) │ ╰──────────────────────────────────────╯ Variables: -┗━━ 📓 proxy_mode (Configure Proxy Access to the Internet): foo ◀ loaded from - the YAML file "config/03/config.yml" (⏳ No proxy) +┗━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy + configuration ◀ loaded from the YAML file "config/03/config.yml" (⏳ No + proxy) diff --git a/config/04/cmd_invalid.txt b/config/04/cmd_invalid.txt new file mode 100644 index 0000000..f5faec8 --- /dev/null +++ b/config/04/cmd_invalid.txt @@ -0,0 +1 @@ +rougail -m firefox/ -u yaml -yf config/04/config.yml --cli.invalid_user_data_error \ No newline at end of file diff --git a/config/04/cmd_ro.txt b/config/04/cmd_ro.txt new file mode 100644 index 0000000..4d43eae --- /dev/null +++ b/config/04/cmd_ro.txt @@ -0,0 +1 @@ +rougail -m firefox/ -u yaml -yf config/04/config.yml \ No newline at end of file diff --git a/config/04/config.yml b/config/04/config.yml new file mode 100644 index 0000000..e3fa25d --- /dev/null +++ b/config/04/config.yml @@ -0,0 +1,2 @@ +--- +proxy_mode: foo diff --git a/config/04/output_invalid.html b/config/04/output_invalid.html new file mode 100644 index 0000000..4c586ee --- /dev/null +++ b/config/04/output_invalid.html @@ -0,0 +1,7 @@ +
🛑 Caution
+┗━━ proxy_mode (Configure Proxy Access to the Internet): 🛑 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"
+
diff --git a/config/04/output_ro.html b/config/04/output_ro.html new file mode 100644 index 0000000..bd4adcc --- /dev/null +++ b/config/04/output_ro.html @@ -0,0 +1,13 @@ +
🔔 Warning
+┗━━ proxy_mode (Configure Proxy Access to the Internet): 🔔 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"
+
+╭─────── Caption ────────╮
+│ Variable Default value │
+╰────────────────────────╯
+Variables:
+┗━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
+
diff --git a/tree.html b/tree.html index 0fcfeac..ef43048 100644 --- a/tree.html +++ b/tree.html @@ -1,5 +1,5 @@

-.
- └── firefox
-     └── 00-proxy.yml
+.
+ └── firefox
+     └── 00-proxy.yml


\ No newline at end of file