From 825a8382914b143bf8393313a6390cfc0af9076c Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sat, 22 Nov 2025 14:13:44 +0100 Subject: [PATCH] [tutorial v1.1_060)] Family: a dynamic family (config and doc) --- README.md | 96 ++++++++++++++-------------------------- config/01/cmd_ro.txt | 1 - config/01/config.yml | 9 ---- config/01/output_ro.html | 18 -------- tree.html | 10 ++--- 5 files changed, 38 insertions(+), 96 deletions(-) delete mode 100644 config/01/cmd_ro.txt delete mode 100644 config/01/config.yml delete mode 100644 config/01/output_ro.html diff --git a/README.md b/README.md index c597d524..243b30ee 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_043] A conditional hidden family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_043/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_043~1..v1.1_043)) +- [[tutorial v1.1_050] A calculated default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_050/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_050~1..v1.1_050)) -# [tutorial v1.1_050)] A calculated default value +# [tutorial v1.1_060)] Family: a dynamic family -[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_050~1..v1.1_050) +[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-calculated-default-value) +[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_050 +git switch --detach v1.1_060 ``` ## Structure @@ -39,11 +39,11 @@ git switch --detach v1.1_050

-.
- └── 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 ... @@ -106,73 +109,40 @@ 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 -**manual.https_proxy** +This family builds families dynamically + +**manual.*https*_proxy**
**manual.*socks*_proxy** *`hidden`* **Hidden**: when the variable "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.
**Validator**: the domain name can be an IP
**Default**: the value of the variable "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 "manual.http_proxy.port" | +| **manual.*https*_proxy.address**
**manual.*socks*_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *HTTPS* or *SOCKS* address.
**Validator**: the domain name can be an IP
**Default**: the value of the variable "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 "manual.http_proxy.port" | ### Let's generate the changelog ```shell rougail -m firefox/ -o doc --doc.contents changelog ``` -#### Modified variables +#### New variables | Variable                                                                                            | Description                                                                                         | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **manual.https_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTPS address.
**Validator**: the domain name can be an IP
**Default**: the value of the variable "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**: ~~8080~~
the value of the variable "manual.http_proxy.port" | +| **manual.*https*_proxy.address**
**manual.*socks*_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *HTTPS* or *SOCKS* address.
**Validator**: the domain name can be an IP
**Default**: the value of the variable "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 "manual.http_proxy.port" | + +#### Deleted variables -## User datas - -### Example 1 - -#### config/01/config.yml +- manual.https_proxy.address +- manual.https_proxy.port -```yml ---- -proxy_mode: Manual proxy configuration -manual: - http_proxy: - address: http.proxy.net - port: 3128 - use_for_https: false - https_proxy: - address: https.proxy.net -``` -#### Output - -```shell -rougail -m firefox/ -u yaml -yf config/01/config.yml -``` -
🔔 WARNINGS
-┗━━ the value "3128" is an invalid port for "manual.http_proxy.port" (HTTP Port), which is not a string, it will be ignored when loading from the YAML file "config/01/config.yml"
-╭────────────── Caption ───────────────╮
-│ Variable Default value               │
-│          Modified value              │
-│          (⏳ Original default value) │
-╰──────────────────────────────────────╯
-Variables:
-┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No proxy)
-┗━━ 📂 Manual proxy configuration
-    ┣━━ 📂 HTTP Proxy
-    ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/01/config.yml"
-    ┗━━ 📓 HTTP Port: 8080
-    ┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file "config/01/config.yml" (⏳ true)
-    ┗━━ 📂 HTTPS Proxy
-        ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net)
-        ┗━━ 📓 HTTPS Port: 8080
-
- - -- [[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/cmd_ro.txt b/config/01/cmd_ro.txt deleted file mode 100644 index d46f9445..00000000 --- a/config/01/cmd_ro.txt +++ /dev/null @@ -1 +0,0 @@ -rougail -m firefox/ -u yaml -yf config/01/config.yml \ No newline at end of file diff --git a/config/01/config.yml b/config/01/config.yml deleted file mode 100644 index 84547faa..00000000 --- a/config/01/config.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -proxy_mode: Manual proxy configuration -manual: - http_proxy: - address: http.proxy.net - port: 3128 - use_for_https: false - https_proxy: - address: https.proxy.net diff --git a/config/01/output_ro.html b/config/01/output_ro.html deleted file mode 100644 index 50d8f3fb..00000000 --- a/config/01/output_ro.html +++ /dev/null @@ -1,18 +0,0 @@ -
🔔 WARNINGS
-┗━━ the value "3128" is an invalid port for "manual.http_proxy.port" (HTTP Port), which is not a string, it will be ignored when loading from the YAML file "config/01/config.yml"
-╭────────────── Caption ───────────────╮
-│ Variable Default value               │
-│          Modified value              │
-│          (⏳ Original default value) │
-╰──────────────────────────────────────╯
-Variables:
-┣━━ 📓 Configure Proxy Access to the Internet: Manual proxy configuration ◀ loaded from the YAML file "config/01/config.yml" (⏳ No proxy)
-┗━━ 📂 Manual proxy configuration
-    ┣━━ 📂 HTTP Proxy
-    ┣━━ 📓 HTTP address: http.proxy.net ◀ loaded from the YAML file "config/01/config.yml"
-    ┗━━ 📓 HTTP Port: 8080
-    ┣━━ 📓 Also use this proxy for HTTPS: false ◀ loaded from the YAML file "config/01/config.yml" (⏳ true)
-    ┗━━ 📂 HTTPS Proxy
-        ┣━━ 📓 HTTPS address: https.proxy.net ◀ loaded from the YAML file "config/01/config.yml" (⏳ http.proxy.net)
-        ┗━━ 📓 HTTPS Port: 8080
-
diff --git a/tree.html b/tree.html index 2ee7c272..b63efbc0 100644 --- a/tree.html +++ b/tree.html @@ -25,11 +25,11 @@

Directory Tree

- .
- └── firefox
-     ├── 00-proxy.yml
-     ├── 10-manual.yml
-     └── 20-manual.yml
+ .
+ └── firefox
+     ├── 00-proxy.yml
+     ├── 10-manual.yml
+     └── 20-manual.yml


2 directories, 3 files