diff --git a/README.md b/README.md
index cd543bf1..4a7de58f 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
-- [[tutorial v1.1_021] Or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_021/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_022~1..v1.1_022))
+- [[tutorial v1.1_022] Putting a variable inside of a family or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_022/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_030~1..v1.1_030))
-# [tutorial v1.1_022] Putting a variable inside of a family or a sub family
+# [tutorial v1.1_030] A variable with type "domainname"
-[Read the tutorial "Putting a variable inside of a family or a sub family" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/family.html#putting-a-variable-inside-of-a-family-or-a-sub-family)
+[Read the tutorial "A variable with type "domainname"" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/types.html#a-variable-with-type-domainname)
## Screenshot
@@ -29,7 +29,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_022
+git switch --detach v1.1_030
```
## Structure
@@ -37,10 +37,10 @@ git switch --detach v1.1_022
-.
- └── firefox
- ├── 00-proxy.yml
- └── 10-manual.yml
+.
+ └── firefox
+ ├── 00-proxy.yml
+ └── 10-manual.yml
Contents of the firefox/10-manual.yml file
@@ -54,7 +54,9 @@ manual: # Manual proxy configuration
http_proxy: # HTTP Proxy
- address: # HTTP address
+ address:
+ description: HTTP address
+ type: domainname
...
```
@@ -81,9 +83,9 @@ rougail -m firefox/ -o doc
>
> **Path**: manual.http_proxy
-| Variable | Description |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
-| **manual.http_proxy.address**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address. |
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
+| **manual.http_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address.
**Validator**: type domainname |
***
@@ -92,11 +94,11 @@ rougail -m firefox/ -o doc
```shell
rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml
```
-#### New variable
+#### Modified variable
-| Variable | Description |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
-| **manual.http_proxy.address**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address. |
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------|
+| **manual.http_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address.
**Validator**: type domainname |
***
@@ -109,6 +111,9 @@ rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_jso
```yml
---
+manual:
+ http_proxy:
+ address: example.net
```
***
@@ -117,11 +122,18 @@ rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_jso
```shell
rougail -m firefox/ -u yaml -yf config/01/config.yml
```
-> [!CAUTION]
->
-> - manual (Manual proxy configuration)
-> - http_proxy (HTTP Proxy)
-> - address (HTTP address): :stop_sign: mandatory variable but has no value
+> [!NOTE]
+>
+> **Caption:**
+> - Variable
+> - Default value
+> - Modified value
+
+Variables:
+- :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy
+- :open_file_folder: manual (Manual proxy configuration)
+ - :open_file_folder: http_proxy (HTTP Proxy)
+ - :notebook: address (HTTP address): example.net ← loaded from the YAML file "config/01/config.yml"
***
### Example 2
@@ -133,7 +145,7 @@ rougail -m firefox/ -u yaml -yf config/01/config.yml
---
manual:
http_proxy:
- address: example.net
+ address: 192.168.0.1
```
***
@@ -142,18 +154,27 @@ manual:
```shell
rougail -m firefox/ -u yaml -yf config/02/config.yml
```
-> [!NOTE]
->
-> **Caption:**
-> - Variable
-> - Default value
-> - Modified value
+> [!CAUTION]
+>
+> - manual (Manual proxy configuration)
+> - http_proxy (HTTP Proxy)
+> - address (HTTP address)
+> - :bell: the value "192.168.0.1" is an invalid domain name, must not be an IP, it will be ignored when loading from the YAML file "config/02/config.yml"
+> - :stop_sign: mandatory variable but has no value
-Variables:
-- :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy
-- :open_file_folder: manual (Manual proxy configuration)
- - :open_file_folder: http_proxy (HTTP Proxy)
- - :notebook: address (HTTP address): example.net ← loaded from the YAML file "config/02/config.yml"
+***
+#### Output when invalid user data is an error
+
+```shell
+rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_data_error
+```
+> [!CAUTION]
+>
+> - manual (Manual proxy configuration)
+> - http_proxy (HTTP Proxy)
+> - address (HTTP address)
+> - :stop_sign: the value "192.168.0.1" is an invalid domain name, must not be an IP, it has been loading from the YAML file "config/02/config.yml"
+> - :stop_sign: mandatory variable but has no value
***
### Example 3
@@ -165,8 +186,7 @@ Variables:
---
manual:
http_proxy:
- address: example.net
- port: 3128
+ address: not a valid domain name.com
```
***
@@ -175,25 +195,29 @@ manual:
```shell
rougail -m firefox/ -u yaml -yf config/03/config.yml
```
-> [!WARNING]
+> [!CAUTION]
>
> - manual (Manual proxy configuration)
-> - http_proxy (HTTP Proxy): :bell: variable or family "port" does not exist so cannot load "manual.http_proxy.port", it will be ignored when loading from the YAML file "config/03/config.yml"
+> - http_proxy (HTTP Proxy)
+> - address (HTTP address)
+> - :bell: the value "not a valid domain name.com" is an invalid domain name, must start with lowercase characters followed by lowercase characters, number, "-" and "." characters are allowed, it will be ignored when loading from the YAML file "config/03/config.yml"
+> - :stop_sign: mandatory variable but has no value
-> [!NOTE]
->
-> **Caption:**
-> - Variable
-> - Default value
-> - Modified value
+***
+#### Output when invalid user data is an error
-Variables:
-- :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy
-- :open_file_folder: manual (Manual proxy configuration)
- - :open_file_folder: http_proxy (HTTP Proxy)
- - :notebook: address (HTTP address): example.net ← loaded from the YAML file "config/03/config.yml"
+```shell
+rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_data_error
+```
+> [!CAUTION]
+>
+> - manual (Manual proxy configuration)
+> - http_proxy (HTTP Proxy)
+> - address (HTTP address)
+> - :stop_sign: the value "not a valid domain name.com" is an invalid domain name, must start with lowercase characters followed by lowercase characters, number, "-" and "." characters are allowed, it has been loading from the YAML file "config/03/config.yml"
+> - :stop_sign: mandatory variable but has no value
***
-- [[tutorial v1.1_030] A variable with type "domainname"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_030/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_030~1..v1.1_030))
+- [[tutorial v1.1_031] A variable with type’s parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_031/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_031~1..v1.1_031))
diff --git a/config/01/config.yml b/config/01/config.yml
index ed97d539..22422a2f 100644
--- a/config/01/config.yml
+++ b/config/01/config.yml
@@ -1 +1,4 @@
---
+manual:
+ http_proxy:
+ address: example.net
diff --git a/config/01/output_ro.html b/config/01/output_ro.html
index cafcfd3d..29d25e5c 100644
--- a/config/01/output_ro.html
+++ b/config/01/output_ro.html
@@ -1,5 +1,11 @@
-🛑 Caution
-┗━━ manual (Manual proxy configuration)
- ┗━━ http_proxy (HTTP Proxy)
- ┗━━ address (HTTP address): 🛑 mandatory variable but has no value
+╭──────── Caption ────────╮
+│ Variable Default value │
+│ Modified value │
+╰─────────────────────────╯
+Variables:
+┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
+┗━━ 📂 manual (Manual proxy configuration)
+ ┗━━ 📂 http_proxy (HTTP Proxy)
+ ┗━━ 📓 address (HTTP address): example.net ◀ loaded from the YAML file
+ "config/01/config.yml"
diff --git a/config/02/cmd_invalid.txt b/config/02/cmd_invalid.txt
new file mode 100644
index 00000000..85f59c74
--- /dev/null
+++ b/config/02/cmd_invalid.txt
@@ -0,0 +1 @@
+rougail -m firefox/ -u yaml -yf config/02/config.yml --cli.invalid_user_data_error
\ No newline at end of file
diff --git a/config/02/config.yml b/config/02/config.yml
index 22422a2f..cbc99036 100644
--- a/config/02/config.yml
+++ b/config/02/config.yml
@@ -1,4 +1,4 @@
---
manual:
http_proxy:
- address: example.net
+ address: 192.168.0.1
diff --git a/config/02/output_invalid.html b/config/02/output_invalid.html
new file mode 100644
index 00000000..e998e31d
--- /dev/null
+++ b/config/02/output_invalid.html
@@ -0,0 +1,9 @@
+🛑 Caution
+┗━━ manual (Manual proxy configuration)
+ ┗━━ http_proxy (HTTP Proxy)
+ ┗━━ address (HTTP address)
+ ┣━━ 🛑 the value "192.168.0.1" is an invalid domain name, must not
+ ┃ be an IP, it has been loading from the YAML file
+ ┃ "config/02/config.yml"
+ ┗━━ 🛑 mandatory variable but has no value
+
diff --git a/config/02/output_ro.html b/config/02/output_ro.html
index f22f0f29..62370be7 100644
--- a/config/02/output_ro.html
+++ b/config/02/output_ro.html
@@ -1,11 +1,9 @@
-╭──────── Caption ────────╮
-│ Variable Default value │
-│ Modified value │
-╰─────────────────────────╯
-Variables:
-┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
-┗━━ 📂 manual (Manual proxy configuration)
- ┗━━ 📂 http_proxy (HTTP Proxy)
- ┗━━ 📓 address (HTTP address): example.net ◀ loaded from the YAML file
- "config/02/config.yml"
+🛑 Caution
+┗━━ manual (Manual proxy configuration)
+ ┗━━ http_proxy (HTTP Proxy)
+ ┗━━ address (HTTP address)
+ ┣━━ 🔔 the value "192.168.0.1" is an invalid domain name, must not
+ ┃ be an IP, it will be ignored when loading from the YAML file
+ ┃ "config/02/config.yml"
+ ┗━━ 🛑 mandatory variable but has no value
diff --git a/config/03/cmd_invalid.txt b/config/03/cmd_invalid.txt
new file mode 100644
index 00000000..3fe251f2
--- /dev/null
+++ b/config/03/cmd_invalid.txt
@@ -0,0 +1 @@
+rougail -m firefox/ -u yaml -yf config/03/config.yml --cli.invalid_user_data_error
\ No newline at end of file
diff --git a/config/03/config.yml b/config/03/config.yml
index da3353ac..39895d11 100644
--- a/config/03/config.yml
+++ b/config/03/config.yml
@@ -1,5 +1,4 @@
---
manual:
http_proxy:
- address: example.net
- port: 3128
+ address: not a valid domain name.com
diff --git a/config/03/output_invalid.html b/config/03/output_invalid.html
new file mode 100644
index 00000000..b0b8e3bb
--- /dev/null
+++ b/config/03/output_invalid.html
@@ -0,0 +1,10 @@
+🛑 Caution
+┗━━ manual (Manual proxy configuration)
+ ┗━━ http_proxy (HTTP Proxy)
+ ┗━━ address (HTTP address)
+ ┣━━ 🛑 the value "not a valid domain name.com" is an invalid domain
+ ┃ name, must start with lowercase characters followed by lowercase
+ ┃ characters, number, "-" and "." characters are allowed, it has
+ ┃ been loading from the YAML file "config/03/config.yml"
+ ┗━━ 🛑 mandatory variable but has no value
+
diff --git a/config/03/output_ro.html b/config/03/output_ro.html
index 8edc1c31..10189d01 100644
--- a/config/03/output_ro.html
+++ b/config/03/output_ro.html
@@ -1,17 +1,11 @@
-🔔 Warning
-┗━━ manual (Manual proxy configuration)
- ┗━━ http_proxy (HTTP Proxy): 🔔 variable or family "port" does not exist so
- cannot load "manual.http_proxy.port", it will be ignored when loading
- from the YAML file "config/03/config.yml"
-
-╭──────── Caption ────────╮
-│ Variable Default value │
-│ Modified value │
-╰─────────────────────────╯
-Variables:
-┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
-┗━━ 📂 manual (Manual proxy configuration)
- ┗━━ 📂 http_proxy (HTTP Proxy)
- ┗━━ 📓 address (HTTP address): example.net ◀ loaded from the YAML file
- "config/03/config.yml"
+🛑 Caution
+┗━━ manual (Manual proxy configuration)
+ ┗━━ http_proxy (HTTP Proxy)
+ ┗━━ address (HTTP address)
+ ┣━━ 🔔 the value "not a valid domain name.com" is an invalid domain
+ ┃ name, must start with lowercase characters followed by lowercase
+ ┃ characters, number, "-" and "." characters are allowed, it will
+ ┃ be ignored when loading from the YAML file
+ ┃ "config/03/config.yml"
+ ┗━━ 🛑 mandatory variable but has no value
diff --git a/tree.html b/tree.html
index 35f3a78e..bbe62faa 100644
--- a/tree.html
+++ b/tree.html
@@ -1,6 +1,6 @@
-.
- └── firefox
- ├── 00-proxy.yml
- └── 10-manual.yml
+.
+ └── firefox
+ ├── 00-proxy.yml
+ └── 10-manual.yml
\ No newline at end of file