No description
Find a file
2026-04-17 12:26:46 +02:00
config/01 [tutorial v1.1_041] A default value calculated from another variable (config and doc) 2026-04-17 12:26:46 +02:00
firefox [tutorial v1.1_041] A default value calculated from another variable 2026-04-17 12:26:46 +02:00
firefox.png [tutorial v1.1_033] A variable with type "boolean" (config and doc) 2026-04-17 12:26:42 +02:00
foxyproxy.png [init] Discover Rougail 2026-04-17 12:26:16 +02:00
install.txt [init] Discover Rougail 2026-04-17 12:26:16 +02:00
README.md [tutorial v1.1_041] A default value calculated from another variable (config and doc) 2026-04-17 12:26:46 +02:00
tree.html [tutorial v1.1_041] A default value calculated from another variable (config and doc) 2026-04-17 12:26:46 +02:00

[tutorial v1.1_041] A default value calculated from another variable

Read the tutorial "A default value calculated from another variable" in the documentation

Screenshot

Firefox Proxy setting

Clone and install

To test this tutorial, you need to download this repository and install Rougail:

git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
cd rougail-tutorials
python -m venv venv_rougail
. venv_rougail/bin/activate
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml

Then switch to the tutorial page:

git switch --detach v1.1_041

Structure

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


Contents of the firefox/20-manual.yml file

%YAML 1.2
---
version: 1.1

manual:

  use_for_https: true  # Also use this proxy for HTTPS

  https_proxy:  # HTTPS Proxy

    address:
      description: HTTPS address
      default:
        variable: __.http_proxy.address

    port:
      description: HTTPS Port
      default:
        variable: __.http_proxy.port
...


Let's generate the documentation```shell

rougail -m firefox/ -o doc

| Variable                                                                                                                                                   | Description                                                                                                                                                                                                                                                                  |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="proxy_mode" name="proxy_mode">proxy_mode</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Configure Proxy Access to the Internet.<br/>**Choices**: <br/>•&nbsp;No proxy **← (default)**<br/>•&nbsp;Auto-detect proxy settings for this network<br/>•&nbsp;Use system proxy settings<br/>•&nbsp;Manual proxy configuration<br/>•&nbsp;Automatic proxy configuration URL |

#### Manual proxy configuration

> [!NOTE]
> 
> **Path**: manual

##### HTTP Proxy

> [!NOTE]
> 
> **Path**: manual.http_proxy

| Variable                                                                                                                                                                                                    | Description                                                                                                                                                                                                                |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="manual.http_proxy.address" name="manual.http_proxy.address">manual.http_proxy.address</a>**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTP address.<br/>**Validators**: <br/>•&nbsp;type domainname<br/>•&nbsp;the domain name can be an IP                                                                                                                      |
| **<a id="manual.http_proxy.port" name="manual.http_proxy.port">manual.http_proxy.port</a>**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory`                | HTTP Port.<br/>**Validators**: <br/>•&nbsp;well-known ports (1 to 1023) are allowed<br/>•&nbsp;registred ports (1024 to 49151) are allowed<br/>•&nbsp;private ports (greater than 49152) are allowed<br/>**Default**: 8080 |

| Variable                                                                                                                                                                                  | Description                                          |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| **<a id="manual.use_for_https" name="manual.use_for_https">manual.use_for_https</a>**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | Also use this proxy for HTTPS.<br/>**Default**: true |

##### HTTPS Proxy

> [!NOTE]
> 
> **Path**: manual.https_proxy

| Variable                                                                                                                                                                                                       | Description                                                                                                                                                                                                                                                                              |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="manual.https_proxy.address" name="manual.https_proxy.address">manual.https_proxy.address</a>**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | HTTPS address.<br/>**Validators**: <br/>•&nbsp;type domainname<br/>•&nbsp;the domain name can be an IP<br/>**Default**: the value of the variable "[HTTP address](#manual.http_proxy.address)".                                                                                          |
| **<a id="manual.https_proxy.port" name="manual.https_proxy.port">manual.https_proxy.port</a>**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory`                | HTTPS Port.<br/>**Validators**: <br/>•&nbsp;well-known ports (1 to 1023) are allowed<br/>•&nbsp;registred ports (1024 to 49151) are allowed<br/>•&nbsp;private ports (greater than 49152) are allowed<br/>**Default**: the value of the variable "[HTTP Port](#manual.http_proxy.port)". |
***
### Let's generate the changelog```shell
rougail -m firefox/ -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml

Modified variables

Variable Description
manual.https_proxy.address
domainname mandatory
HTTPS address.
Validators:
• type domainname
• the domain name can be an IP
Default: the value of the variable "HTTP address".
manual.https_proxy.port
port 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 "HTTP Port".

User datas### Example 1#### config/01/config.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

> [!NOTE]
>
> **Caption:**
> - Variable
> - <span style="color: #B8860B">Default value</span>
> - <span style="color: #006400">Modified value</span>
> - (:hourglass_flowing_sand: Original default value)

Variables:
- :notebook: proxy_mode (Configure Proxy Access to the Internet): <span style="color: #006400">Manual proxy configuration</span> ← loaded from the YAML file "config/01/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): <span style="color: #006400">http.proxy.net</span> ← loaded from the YAML file "config/01/config.yml"
    - :notebook: port (HTTP Port): <span style="color: #006400">3128</span> ← loaded from the YAML file "config/01/config.yml" (:hourglass_flowing_sand: 8080)
  - :notebook: use_for_https (Also use this proxy for HTTPS): <span style="color: #006400">false</span> ← loaded from the YAML file "config/01/config.yml" (:hourglass_flowing_sand: true)
  - :open_file_folder: https_proxy (HTTPS Proxy)
    - :notebook: address (HTTPS address): <span style="color: #006400">https.proxy.net</span> ← loaded from the YAML file "config/01/config.yml" (:hourglass_flowing_sand: http.proxy.net)
    - :notebook: port (HTTPS Port): <span style="color: #B8860B">3128</span>

***


- [[tutorial v1.1_050] A disabled family](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))