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