From 9c2ae84095096a99e9033e88c8ec67022c3ac4d3 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 8 Jan 2026 20:22:02 +0100 Subject: [PATCH] [tutorial v1.1_010] A variable with a list of possible values (config and doc) --- README.md | 84 +++++++++++++++++++++++++++-------- 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 +-- 9 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/README.md b/README.md index 623bca0..b79db12 100644 --- a/README.md +++ b/README.md @@ -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

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


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 ... ``` @@ -62,9 +70,9 @@ proxy_mode: No proxy # Configure Proxy Access to the Internet ```shell rougail -m firefox/ -o doc ``` -| 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 | *** @@ -75,9 +83,9 @@ rougail -m firefox/ -o doc --doc.contents changelog ``` #### 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**
[`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 | *** @@ -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): 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" *** -- [[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)) 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..cb7632b --- /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