diff --git a/README.md b/README.md
index 8113645..d7c83bf 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_052] A hidden family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_052/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_052~1..v1.1_052))
+- [[tutorial v1.1_053] A conditional hidden family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_053/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_053~1..v1.1_053))
-# [tutorial v1.1_053] A conditional hidden family
+# [tutorial v1.1_060] Family: a dynamic family
-[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_053~1..v1.1_053)
+[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_060~1..v1.1_060)
-[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-conditional-hidden-family)
+[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/dynfam.html#family:-a-dynamic-family)
## 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_053
+git switch --detach v1.1_060
```
## Structure
@@ -39,11 +39,11 @@ git switch --detach v1.1_053
-.
- └── firefox
- ├── 00-proxy.yml
- ├── 10-manual.yml
- └── 20-manual.yml
+.
+ └── firefox
+ ├── 00-proxy.yml
+ ├── 10-manual.yml
+ └── 20-manual.yml
Contents of the firefox/20-manual.yml file
@@ -57,18 +57,21 @@ manual:
use_for_https: true # Also use this proxy for HTTPS
- https_proxy:
- description: HTTPS Proxy
+ '{{ identifier }}_proxy':
+ description: '{{ identifier }} Proxy'
hidden:
variable: _.use_for_https
+ dynamic:
+ - HTTPS
+ - SOCKS
address:
- description: HTTPS address
+ description: '{{ identifier }} address'
default:
variable: __.http_proxy.address
port:
- description: HTTPS Port
+ description: '{{ identifier }} port'
default:
variable: __.http_proxy.port
...
@@ -108,18 +111,24 @@ rougail -m firefox/ -o doc
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| **manual.use_for_https**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Also use this proxy for HTTPS.
**Default**: true |
-##### HTTPS Proxy
+##### *HTTPS* Proxy or *SOCKS* Proxy
> [!NOTE]
>
-> **Path**: manual.https_proxy\
+> This family builds families dynamically.\
+> **Path**:
+> - manual.*https*_proxy
+> - manual.*socks*_proxy\
> *`hidden`*\
-> **Hidden**: when the variable "[Also use this proxy for HTTPS](#manual.use_for_https)" has the value "true"
+> **Hidden**: when the variable "[Also use this proxy for HTTPS](#manual.use_for_https)" has the value "true"\
+> **Identifiers**:
+> - HTTPS
+> - SOCKS
-| Variable | Description |
-|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **manual.https_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTPS address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[HTTP address](#manual.http_proxy.address)" |
-| **manual.https_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTPS Port.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• private ports (greater than 49152) are allowed
**Default**: the value of the variable "[HTTP Port](#manual.http_proxy.port)" |
+| Variable | Description |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **manual.*https*_proxy.address**
**manual.*socks*_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *HTTPS* or *SOCKS* address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[HTTP address](#manual.http_proxy.address)" |
+| **manual.*https*_proxy.port**
**manual.*socks*_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *HTTPS* or *SOCKS* port.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• private ports (greater than 49152) are allowed
**Default**: the value of the variable "[HTTP Port](#manual.http_proxy.port)" |
***
@@ -130,12 +139,16 @@ rougail -m firefox/ -o doc --doc.contents changelog
```
#### New variables
-| Variable | Description |
-|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **manual.https_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTPS address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[HTTP address](#manual.http_proxy.address)" |
-| **manual.https_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTPS Port.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• private ports (greater than 49152) are allowed
**Default**: the value of the variable "[HTTP Port](#manual.http_proxy.port)" |
+| Variable | Description |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **manual.*https*_proxy.address**
**manual.*socks*_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *HTTPS* or *SOCKS* address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[HTTP address](#manual.http_proxy.address)" |
+| **manual.*https*_proxy.port**
**manual.*socks*_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *HTTPS* or *SOCKS* port.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• private ports (greater than 49152) are allowed
**Default**: the value of the variable "[HTTP Port](#manual.http_proxy.port)" |
+
+#### Deleted variables
+- manual.https_proxy.address
+- manual.https_proxy.port
***
## User datas
@@ -179,46 +192,12 @@ Variables:
- :notebook: use_for_https (Also use this proxy for HTTPS): false ← loaded from the YAML file "config/01/config.yml" (:hourglass_flowing_sand: true)
- :open_file_folder: https_proxy (HTTPS Proxy)
- :notebook: address (HTTPS address): https.proxy.net ← loaded from the YAML file "config/01/config.yml" (:hourglass_flowing_sand: http.proxy.net)
- - :notebook: port (HTTPS Port): 3128
-
-***
-### Example 2
-
-#### config/02/config.yml
-
-
-```yml
----
-proxy_mode: Manual proxy configuration
-manual:
- http_proxy:
- address: http.proxy.net
- port: 3128
- use_for_https: true
-```
-
-***
-#### Output
-
-```shell
-rougail -m firefox/ -u yaml -yf config/02/config.yml
-```
-> [!NOTE]
->
-> **Caption:**
-> - Variable
-> - Modified value
-> - (:hourglass_flowing_sand: Original default value)
-
-Variables:
-- :notebook: proxy_mode (Configure Proxy Access to the Internet): Manual proxy configuration ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: No proxy)
-- :open_file_folder: manual (Manual proxy configuration)
- - :open_file_folder: http_proxy (HTTP Proxy)
- - :notebook: address (HTTP address): http.proxy.net ← loaded from the YAML file "config/02/config.yml"
- - :notebook: port (HTTP Port): 3128 ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: 8080)
- - :notebook: use_for_https (Also use this proxy for HTTPS): true ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: true)
+ - :notebook: port (HTTPS port): 3128
+ - :open_file_folder: socks_proxy (SOCKS Proxy)
+ - :notebook: address (SOCKS address): http.proxy.net
+ - :notebook: port (SOCKS port): 3128
***
-- [[tutorial v1.1_060] Family: a dynamic family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_060/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_060~1..v1.1_060))
+- [[tutorial v1.1_061] A conditional disabled variable with dynamic identifier](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_061/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_061~1..v1.1_061))
diff --git a/config/01/output_ro.html b/config/01/output_ro.html
index 91925d4..c642a87 100644
--- a/config/01/output_ro.html
+++ b/config/01/output_ro.html
@@ -15,8 +15,11 @@ Variables:
┃ "config/01/config.yml" (⏳ 8080)
┣━━ 📓 use_for_https (Also use this proxy for HTTPS): false ◀ loaded from
┃ the YAML file "config/01/config.yml" (⏳ true)
- ┗━━ 📂 https_proxy (HTTPS Proxy)
- ┣━━ 📓 address (HTTPS address): https.proxy.net ◀ loaded from the YAML
- ┃ file "config/01/config.yml" (⏳ http.proxy.net)
- ┗━━ 📓 port (HTTPS Port): 3128
+ ┣━━ 📂 https_proxy (HTTPS Proxy)
+ ┃ ┣━━ 📓 address (HTTPS address): https.proxy.net ◀ loaded from the YAML
+ ┃ ┃ file "config/01/config.yml" (⏳ http.proxy.net)
+ ┃ ┗━━ 📓 port (HTTPS port): 3128
+ ┗━━ 📂 socks_proxy (SOCKS Proxy)
+ ┣━━ 📓 address (SOCKS address): http.proxy.net
+ ┗━━ 📓 port (SOCKS port): 3128
diff --git a/config/02/cmd_ro.txt b/config/02/cmd_ro.txt
deleted file mode 100644
index 772ebbe..0000000
--- a/config/02/cmd_ro.txt
+++ /dev/null
@@ -1 +0,0 @@
-rougail -m firefox/ -u yaml -yf config/02/config.yml
\ No newline at end of file
diff --git a/config/02/config.yml b/config/02/config.yml
deleted file mode 100644
index 7455217..0000000
--- a/config/02/config.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-proxy_mode: Manual proxy configuration
-manual:
- http_proxy:
- address: http.proxy.net
- port: 3128
- use_for_https: true
diff --git a/config/02/output_ro.html b/config/02/output_ro.html
deleted file mode 100644
index 965c388..0000000
--- a/config/02/output_ro.html
+++ /dev/null
@@ -1,17 +0,0 @@
-╭────────────── Caption ───────────────╮
-│ Variable Modified value │
-│ (⏳ Original default value) │
-╰──────────────────────────────────────╯
-Variables:
-┣━━ 📓 proxy_mode (Configure Proxy Access to the Internet): Manual proxy
-┃ configuration ◀ loaded from the YAML file "config/02/config.yml" (⏳ No
-┃ proxy)
-┗━━ 📂 manual (Manual proxy configuration)
- ┣━━ 📂 http_proxy (HTTP Proxy)
- ┃ ┣━━ 📓 address (HTTP address): http.proxy.net ◀ loaded from the YAML
- ┃ ┃ file "config/02/config.yml"
- ┃ ┗━━ 📓 port (HTTP Port): 3128 ◀ loaded from the YAML file
- ┃ "config/02/config.yml" (⏳ 8080)
- ┗━━ 📓 use_for_https (Also use this proxy for HTTPS): true ◀ loaded from the
- YAML file "config/02/config.yml" (⏳ true)
-
diff --git a/tree.html b/tree.html
index 2434d41..c7b8f25 100644
--- a/tree.html
+++ b/tree.html
@@ -1,7 +1,7 @@
-.
- └── firefox
- ├── 00-proxy.yml
- ├── 10-manual.yml
- └── 20-manual.yml
+.
+ └── firefox
+ ├── 00-proxy.yml
+ ├── 10-manual.yml
+ └── 20-manual.yml
\ No newline at end of file