diff --git a/README.md b/README.md
index cb094ff..aa69785 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_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_021~1..v1.1_021))
+- [[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_022~1..v1.1_022))
-# [tutorial v1.1_022] Putting a variable inside of a family or a sub family
+# [tutorial v1.1_030] A variable with type "domainname"
-[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_022~1..v1.1_022)
+[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_030~1..v1.1_030)
-[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/proxymode.html#putting-a-variable-inside-of-a-family-or-a-sub-family)
+[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-variable-with-type-"domainname")
## 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_022
+git switch --detach v1.1_030
```
## Structure
@@ -39,10 +39,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
@@ -56,7 +56,9 @@ manual: # Manual proxy configuration
http_proxy: # HTTP Proxy
- address: # HTTP address
+ address:
+ description: HTTP address
+ type: domainname
...
```
@@ -81,20 +83,20 @@ 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 |
### Let's generate the changelog
```shell
rougail -m firefox/ -o doc --doc.contents changelog
```
-#### 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 |
## User datas
@@ -106,17 +108,27 @@ rougail -m firefox/ -o doc --doc.contents changelog
```yml
---
+manual:
+ http_proxy:
+ address: example.net
```
#### Output
```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
#### config/02/config.yml
@@ -126,25 +138,30 @@ rougail -m firefox/ -u yaml -yf config/01/config.yml
---
manual:
http_proxy:
- address: example.net
+ address: 192.168.0.1
```
#### Output
```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)
+> - [#EFBF04]: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"[/#EFBF04]
+> - [#C23636]:stop_sign: mandatory variable but has no value[/#C23636]
+#### Output when invalid user datas 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/02/config.yml"
+```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"
### Example 3
#### config/03/config.yml
@@ -154,30 +171,30 @@ Variables:
---
manual:
http_proxy:
- address: example.net
- port: 3128
+ address: not a valid domain name.com
```
#### Output
```shell
rougail -m firefox/ -u yaml -yf config/03/config.yml
```
-> [!WARNING]
+> [!CAUTION]
>
-> - variable or family "manual.http_proxy.port" does not exist, it will be ignored when loading from the YAML file "config/03/config.yml"
+> - manual (Manual proxy configuration)
+> - http_proxy (HTTP Proxy)
+> - address (HTTP address)
+> - [#EFBF04]: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"[/#EFBF04]
+> - [#C23636]:stop_sign: mandatory variable but has no value[/#C23636]
+#### Output when invalid user datas is an error
-> [!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/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"
-- [[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 ed97d53..22422a2 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 cafcfd3..29d25e5 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 0000000..85f59c7
--- /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 22422a2..cbc9903 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 0000000..a675650
--- /dev/null
+++ b/config/02/output_invalid.html
@@ -0,0 +1,7 @@
+🛑 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"
+
diff --git a/config/02/output_ro.html b/config/02/output_ro.html
index f22f0f2..62370be 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 0000000..3fe251f
--- /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 da3353a..39895d1 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 0000000..1577759
--- /dev/null
+++ b/config/03/output_invalid.html
@@ -0,0 +1,9 @@
+🛑 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"
+
diff --git a/config/03/output_ro.html b/config/03/output_ro.html
index 4b02f87..10189d0 100644
--- a/config/03/output_ro.html
+++ b/config/03/output_ro.html
@@ -1,15 +1,11 @@
-🔔 Warning
-┗━━ variable or family "manual.http_proxy.port" does not exist, 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 35f3a78..bbe62fa 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