diff --git a/README.md b/README.md
index 9b9a4d6f..357955cc 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,24 @@
-- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
-- [[tutorial v1.1_114] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_114/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_114~1..v1.1_114))
+# Description
-# [tutorial v1.1_120] xxx
+This tutorial shows to you an example of Rougail use on how to set a proxy in the Mozilla Firefox browser.
-[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_120~1..v1.1_120)
+More precisely, this tutorial aims at reproducing this [Mozilla Firefox](https://www.mozilla.org/firefox/new/) settings page:
-[Read the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#xxx)
+
+And the integration of part of the [Firefox FoxyProxy plugin](https://addons.mozilla.org/firefox/addon/foxyproxy-standard/).
-## Screenshot
+The idea is to have a namespace specific to FoxyProxy and to find in it part of the settings that we will have made in the main namespace.
+This is what the page looks like:
-
-
-
-## Clone and install
-
+
+# Installation
To test this tutorial, you need to download this repository and install Rougail:
-```shell
+```bash
git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
cd rougail-tutorials
python -m venv venv_rougail
@@ -28,174 +26,69 @@ python -m venv venv_rougail
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml
```
-Then switch to the tutorial page:
+# Summary
-```shell
-git switch --detach v1.1_120
-```
-
-## Structure
-
-
-
-
-.
- ├── firefox
- │ ├── 00-proxy.yml
- │ ├── 10-manual.yml
- │ ├── 20-manual.yml
- │ ├── 30-auto.yml
- │ ├── 40-no_proxy.yml
- │ ├── 50-prompt_authentication.yml
- │ ├── 55-proxy_dns_socks5.yml
- │ ├── 60-dns_over_https.yml
- │ └── empty.yml
- └── foxyproxy
- ├── 00-foxyproxy.yml
- └── 10-redefine.yml
-
-
-Contents of the foxyproxy/10-redefine.yml file
-
-```yml
-%YAML 1.2
----
-version: 1.1
-
-proxies:
-
- username:
- redefine: true
- mandatory: false
-
- password:
- redefine: true
- hidden:
- jinja: |-
- {% if not _.username %}
- no username defined
- {% endif %}
- description: if username is not defined
-...
-
-```
-### Let's generate the documentation
-
-```shell
-rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --modes_level basic standard advanced -o doc
-```
-#### Firefox
-
-> **🛈 Informations**
->
-> **Path**: firefox\
-> `basic`
-
-| Variable | Description |
-|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.proxy_mode**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Configure Proxy Access to the Internet.
**Choices**:
• No proxy **← (default)**
• Auto-detect proxy settings for this network
• Use system proxy settings
• Manual proxy configuration
• Automatic proxy configuration URL |
-
-##### Manual proxy configuration
-
-> **🛈 Informations**
->
-> **Path**: firefox.manual\
-> `basic` *`disabled`*\
-> **Disabled**: when the variable "[Configure Proxy Access to the Internet](#firefox.proxy_mode)" hasn't the value "Manual proxy configuration"
-
-###### HTTP Proxy
-
-> **🛈 Informations**
->
-> **Path**: firefox.manual.http_proxy\
-> `basic`
-
-| Variable | Description |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.manual.http_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | HTTP address.
**Validators**:
• type domainname
• the domain name can be an IP |
-| **firefox.manual.http_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | HTTP 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 |
-
-| Variable | Description |
-|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
-| **firefox.manual.use_for_https**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Also use this proxy for HTTPS.
**Default**: true |
-
-###### *HTTPS* Proxy or *SOCKS* Proxy
-
-> **🛈 Informations**
->
-> This family builds families dynamically.\
-> **Path**:
-> - firefox.manual.*https*_proxy
-> - firefox.manual.*socks*_proxy\
-> `standard` *`hidden`*\
-> **Hidden**: in HTTPS case if "[Also use this proxy for HTTPS](#firefox.manual.use_for_https)" is set to "true"\
-> **Identifiers**:
-> - HTTPS
-> - SOCKS
-
-| Variable | Description |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.manual.*https*_proxy.address**
**firefox.manual.*socks*_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | *HTTPS* or *SOCKS* address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[HTTP address](#firefox.manual.http_proxy.address)" |
-| **firefox.manual.*https*_proxy.port**
**firefox.manual.*socks*_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `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](#firefox.manual.http_proxy.port)" |
-| **firefox.manual.*https*_proxy.version**
**firefox.manual.*socks*_proxy.version**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | SOCKS host version used by proxy.
**Choices**:
• v4
• v5 **← (default)**
**Disabled**: when the identifier is "HTTPS" |
-
-| Variable | Description |
-|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.auto**
[`web address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | Automatic proxy configuration URL.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• type domainname
• the domain name can be a hostname
**Disabled**: when the variable "[Configure Proxy Access to the Internet](#firefox.proxy_mode)" hasn't the value "Automatic proxy configuration URL" |
-| **firefox.no_proxy**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` *`disabled`* `unique` | Address for which proxy will be desactivated.
Connections to localhost, 127.0.0.1/8 and ::1 are never proxied.
**Validators**:
• type domainname
• the domain name can starts by a dot
• the domain name can be a hostname
• the domain name can be an IP
• the domain name can be network in CIDR format
**Examples**:
• .mozilla.org
• .net.nz
• 192.168.1.0/24
**Disabled**: when the variable "[Configure Proxy Access to the Internet](#firefox.proxy_mode)" has the value "No proxy" |
-| **firefox.prompt_authentication**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Prompt for authentication if password is saved.
**Default**: true
**Disabled**: when the variable "[Configure Proxy Access to the Internet](#firefox.proxy_mode)" has the value "No proxy" |
-| **firefox.proxy_dns_socks5**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `advanced` `mandatory` *`disabled`* | Use proxy DNS when using SOCKS v5.
**Default**: false
**Disabled**: if "[Configure Proxy Access to the Internet](#firefox.proxy_mode)" is not "Manual proxy configuration"
or "[SOCKS host version used by proxy](#firefox.manual.:::identifier:::_proxy.version)" is "v4" |
-
-##### DNS over HTTPS
-
-> **🛈 Informations**
->
-> **Path**: firefox.dns_over_https\
-> `basic`
-
-| Variable | Description |
-|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.dns_over_https.enable_dns_over_https**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Enable DNS over HTTPS.
**Default**: false |
-| **firefox.dns_over_https.provider**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Use Provider.
**Choices**:
• Cloudflare **← (default)**
• NextDNS
• Custom
**Disabled**: when the variable "[Enable DNS over HTTPS](#firefox.dns_over_https.enable_dns_over_https)" has the value "false" |
-| **firefox.dns_over_https.custom_dns_url**
[`web address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | Custom DNS URL.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• type domainname
• the domain name can be a hostname
• must starts with 'https://' only
**Disabled**: if "[Use Provider](#firefox.dns_over_https.provider)" is not "Custom" |
-
-#### FoxyProxy
-
-> **🛈 Informations**
->
-> **Path**: foxyproxy\
-> `basic`
-
-##### Proxy configuration
-
-> **🛈 Informations**
->
-> This family contains lists of variable blocks.\
-> **Path**: foxyproxy.proxies\
-> `basic`
-
-| Variable | Description |
-|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **foxyproxy.proxies.title**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `unique` | Title or Description. |
-| **foxyproxy.proxies.type**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy Type.
**Choices**:
• HTTP
• HTTPS/SSL
• SOCKS4
• SOCKS5
• PAC URL
• WPAD
• System (use system settings)
• Direct (no proxy) **← (default)** |
-| **foxyproxy.proxies.color**
[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | Color.
**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"
**Default**: random color value |
-| **foxyproxy.proxies.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | IP address, DNS name, server name.
**Validators**:
• type domainname
• the domain name can be a hostname
• the domain name can be an IP
**Default**: copy HTTP address if proxy is not "Manual"
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
-| **foxyproxy.proxies.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | 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**: copy HTTP port if proxy is not "Manual"
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
-| **foxyproxy.proxies.username**
[`UNIX user`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* | Username.
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
-| **foxyproxy.proxies.password**
[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`hidden`* *`disabled`* | Password.
**Hidden**: if username is not defined
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
-| **foxyproxy.proxies.url**
[`web address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | URL.
**Validators**:
• well-known ports (1 to 1023) are allowed
• registred ports (1024 to 49151) are allowed
• type domainname
• the domain name can be a hostname
**Default**: copy HTTP address if proxy is "Auto"
**Disabled**: if type is not in:
- PAC URL
- WPAD |
-
-### Let's generate the changelog
-
-```shell
-rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --modes_level basic standard advanced -o doc --doc.contents changelog
-```
-#### Modified variables
-
-| Variable | Description |
-|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **foxyproxy.proxies.color**
[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | Color.
**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"
**Default**: random color value |
-| **foxyproxy.proxies.username**
~~`mandatory`~~ [`UNIX user`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* | Username.
**Mandatory**: ~~if a password is set~~
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
-| **foxyproxy.proxies.password**
[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`hidden`* *`disabled`* | Password.
**Hidden**: if username is not defined
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
+Each step is a separerate commit. You can navigate to history to discover different aspect to the Rougail format.
+- Getting started
+ - [[tutorial v1.1_000] Creating a structure file](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_000/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#creating-a-structure-file) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_000~1..v1.1_000))
+ - [[tutorial v1.1_001] Let’s add our first variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_001/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#let-s-add-our-first-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_001~1..v1.1_001))
+ - [[tutorial v1.1_002] Describe the variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_002/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#describe-the-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_002~1..v1.1_002))
+ - [[tutorial v1.1_003] Set a default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#set-a-default-value) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003))
+- A variable with a list of possible values
+ - [[tutorial v1.1_010] A variable with a list of possible values](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html#a-variable-with-a-list-of-possible-values) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010))
+- Group variables inside "families"
+ - [[tutorial v1.1_020] Creating a new family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_020/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/proxymode.html#creating-a-new-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_020~1..v1.1_020))
+ - [[tutorial v1.1_021] Or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_021/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/proxymode.html#or-a-sub-family) - [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) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/proxymode.html#putting-a-variable-inside-of-a-family-or-a-sub-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_022~1..v1.1_022))
+- Constrainte the value of a variable with it's type
+ - [[tutorial v1.1_030] A variable with type "domainname"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_030/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-variable-with-type-"domainname") - [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) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-variable-with-type's-parameters) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_031~1..v1.1_031))
+ - [[tutorial v1.1_032] A variable with type "port"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_032/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-variable-with-type-"port") - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_032~1..v1.1_032))
+ - [[tutorial v1.1_033] A variable with type "boolean"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_033/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-variable-with-type-"boolean") - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_033~1..v1.1_033))
+- Define access to variable or family
+ - Property disabled
+ - [[tutorial v1.1_040] A disabled family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_040/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-disabled-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_040~1..v1.1_040))
+ - [[tutorial v1.1_041] A conditional disabled family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_041/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-conditional-disabled-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_041~1..v1.1_041))
+ - Property hidden
+ - [[tutorial v1.1_042] Copy HTTP manual proxy to HTTPS manual proxy](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_042/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#copy-http-manual-proxy-to-https-manual-proxy) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_042~1..v1.1_042))
+ - [[tutorial v1.1_043] A conditional hidden family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_043/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-conditional-hidden-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_043~1..v1.1_043))
+- Calculated default value for a variable
+ - [[tutorial v1.1_050] A calculated default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_050/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/disabled.html#a-calculated-default-value) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_050~1..v1.1_050))
+- Dynamic family
+ - [[tutorial v1.1_060] Family: a dynamic family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_060/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/dynfam.html#family:-a-dynamic-family) - [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) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/dynfam.html#a-conditional-disabled-variable-with-dynamic-identifier) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_061~1..v1.1_061))
+- Playing with Jinja
+ - [[tutorial v1.1_070] A conditional hidden family with Jinja](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_070/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-conditional-hidden-family-with-jinja) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_070~1..v1.1_070))
+ - [[tutorial v1.1_071] Jinja with a description](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_071/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#jinja-with-a-description) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_071~1..v1.1_071))
+ - [[tutorial v1.1_072] Jinja with a parameter](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_072/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#jinja-with-a-parameter) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_072~1..v1.1_072))
+- Various variables
+ - [[tutorial v1.1_080] A conditional disabled variable with type web_address](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_080/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-conditional-disabled-variable-with-type-web_address) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_080~1..v1.1_080))
+ - [[tutorial v1.1_090] A conditional disabled variable with type domainname and parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_090/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-conditional-disabled-variable-with-type-domainname-and-parameters) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_090~1..v1.1_090))
+- Multiple variable
+ - [[tutorial v1.1_091] A variable with multiple value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_091/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-variable-with-multiple-value) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_091~1..v1.1_091))
+- Mandatory
+ - [[tutorial v1.1_092] A non mandatory variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_092/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-non-mandatory-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_092~1..v1.1_092))
+- Extras informations for a variable
+ - [[tutorial v1.1_093] Examples](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_093/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#examples) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_093~1..v1.1_093))
+ - [[tutorial v1.1_094] Help](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_094/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#help) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_094~1..v1.1_094))
+- Various variables
+ - [[tutorial v1.1_095] A conditional disabled boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_095/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-conditional-disabled-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_095~1..v1.1_095))
+ - [[tutorial v1.1_096] A boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_096/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_096~1..v1.1_096))
+ - [[tutorial v1.1_097] A Jinja conditional disabled boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_097/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-jinja-conditional-disabled-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_097~1..v1.1_097))
+- Mode
+ - [[tutorial v1.1_098] A variable in avanced mode](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_098/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-variable-in-avanced-mode) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_098~1..v1.1_098))
+- Various variables
+ - [[tutorial v1.1_100] A boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_100/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_100~1..v1.1_100))
+ - [[tutorial v1.1_101] A choice variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_101/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-choice-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_101~1..v1.1_101))
+ - [[tutorial v1.1_102] A web_address variable ](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_102/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-web_address-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_102~1..v1.1_102))
+- Validators
+ - [[tutorial v1.1_103] A variable with custom validation](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_103/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#a-variable-with-custom-validation) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_103~1..v1.1_103))
+- Namespace
+ - [[tutorial v1.1_110] Namespace](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_110/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#namespace) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_110~1..v1.1_110))
+ - [[tutorial v1.1_111] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_111/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#xxx) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_111~1..v1.1_111))
+ - [[tutorial v1.1_112] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_112/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#xxx) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_112~1..v1.1_112))
+ - [[tutorial v1.1_113] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_113/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#xxx) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_113~1..v1.1_113))
+ - [[tutorial v1.1_114] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_114/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#xxx) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_114~1..v1.1_114))
+ - [[tutorial v1.1_120] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_120/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/calculation.html#xxx) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_120~1..v1.1_120))
diff --git a/firefox.png b/firefox.png
index d368003e..050f837f 100644
Binary files a/firefox.png and b/firefox.png differ
diff --git a/firefox/00-proxy.yml b/firefox/00-proxy.yml
deleted file mode 100644
index 92b75f58..00000000
--- a/firefox/00-proxy.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-proxy_mode:
- description: Configure Proxy Access to the Internet
- choices:
- - No proxy
- - Auto-detect proxy settings for this network
- - Use system proxy settings
- - Manual proxy configuration
- - Automatic proxy configuration URL
- default: No proxy
-...
diff --git a/firefox/10-manual.yml b/firefox/10-manual.yml
deleted file mode 100644
index 047ff8a3..00000000
--- a/firefox/10-manual.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-manual:
- description: Manual proxy configuration
- disabled:
- variable: _.proxy_mode
- when_not: Manual proxy configuration
-
- http_proxy: # HTTP Proxy
-
- address:
- description: HTTP address
- type: domainname
- params:
- allow_ip: true
-
- port:
- description: HTTP Port
- type: port
- default: 8080
-...
diff --git a/firefox/20-manual.yml b/firefox/20-manual.yml
deleted file mode 100644
index eed0a578..00000000
--- a/firefox/20-manual.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-manual:
-
- use_for_https: true # Also use this proxy for HTTPS
-
- '{{ identifier }}_proxy':
- description: '{{ identifier }} Proxy'
- hidden:
- jinja: |-
- {% if my_identifier == 'HTTPS' and _.use_for_https %}
- HTTPS is same has HTTP
- {% endif %}
- description: in HTTPS case if "_.use_for_https" is set to "true"
- params:
- my_identifier:
- type: identifier
- dynamic:
- - HTTPS
- - SOCKS
-
- address:
- description: '{{ identifier }} address'
- default:
- variable: __.http_proxy.address
-
- port:
- description: '{{ identifier }} port'
- default:
- variable: __.http_proxy.port
-
- version:
- description: SOCKS host version used by proxy
- choices:
- - v4
- - v5
- default: v5
- disabled:
- type: identifier
- when: HTTPS
-...
diff --git a/firefox/30-auto.yml b/firefox/30-auto.yml
deleted file mode 100644
index 50961391..00000000
--- a/firefox/30-auto.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-auto:
- description: Automatic proxy configuration URL
- type: web_address
- disabled:
- variable: _.proxy_mode
- when_not: Automatic proxy configuration URL
-...
diff --git a/firefox/40-no_proxy.yml b/firefox/40-no_proxy.yml
deleted file mode 100644
index 55a57242..00000000
--- a/firefox/40-no_proxy.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-no_proxy:
- description: Address for which proxy will be desactivated
- help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied
- examples:
- - .mozilla.org
- - .net.nz
- - 192.168.1.0/24
- type: domainname
- params:
- allow_ip: true
- allow_cidr_network: true
- allow_without_dot: true
- allow_startswith_dot: true
- multi: true
- mandatory: false
- disabled:
- variable: _.proxy_mode
- when: No proxy
-...
diff --git a/firefox/50-prompt_authentication.yml b/firefox/50-prompt_authentication.yml
deleted file mode 100644
index 57a548e6..00000000
--- a/firefox/50-prompt_authentication.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-prompt_authentication:
- description: Prompt for authentication if password is saved
- default: true
- disabled:
- variable: _.proxy_mode
- when: No proxy
-...
diff --git a/firefox/55-proxy_dns_socks5.yml b/firefox/55-proxy_dns_socks5.yml
deleted file mode 100644
index 0f1a65f1..00000000
--- a/firefox/55-proxy_dns_socks5.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-proxy_dns_socks5:
- description: Use proxy DNS when using SOCKS v5
- mode: advanced
- default: false
- disabled:
- jinja: |-
- {% if _.manual.socks_proxy.version is propertyerror %}
- the proxy mode is not manual
- {% elif _.manual.socks_proxy.version == 'v4' %}
- socks version is v4
- {% endif %}
- description: |-
- if "firefox.proxy_mode" is not "Manual proxy configuration"
- or "firefox.manual.socks_proxy.version" is "v4"
-...
diff --git a/firefox/60-dns_over_https.yml b/firefox/60-dns_over_https.yml
deleted file mode 100644
index 55b37cc6..00000000
--- a/firefox/60-dns_over_https.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-dns_over_https: # DNS over HTTPS
-
- enable_dns_over_https: false # Enable DNS over HTTPS
-
- provider:
- description: Use Provider
- choices:
- - Cloudflare
- - NextDNS
- - Custom
- default: Cloudflare
- disabled:
- variable: _.enable_dns_over_https
- when: false
-
- custom_dns_url:
- description: Custom DNS URL
- type: web_address
- validators:
- - jinja: |-
- {% if _.custom_dns_url.startswith('http://') %}
- only https is allowed
- {% endif %}
- description: must starts with 'https://' only
- disabled:
- jinja: |-
- {% if _.provider is propertyerror or _.provider != 'Custom' %}
- provider is not custom
- {% endif %}
- description: if "_.provider" is not "Custom"
-...
diff --git a/firefox/empty.yml b/firefox/empty.yml
deleted file mode 100644
index 94a82bdc..00000000
--- a/firefox/empty.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-...
diff --git a/foxyproxy/00-foxyproxy.yml b/foxyproxy/00-foxyproxy.yml
deleted file mode 100644
index d8cfaaaf..00000000
--- a/foxyproxy/00-foxyproxy.yml
+++ /dev/null
@@ -1,139 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-proxies:
- description: Proxy configuration
- _type: leadership
-
- title:
- description: Title or Description
- mandatory: false
-
- type:
- description: Proxy Type
- choices:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
- - PAC URL
- - WPAD
- - System (use system settings)
- - Direct (no proxy)
- default: Direct (no proxy)
-
- color:
- description: Color
- regexp: ^#(?:[0-9a-f]{3}){1,2}$
- default:
- jinja: >-
- #
-
- {%- for i in range(6) -%}
- {{- '0123456789abcdef' | random -}}
- {%- endfor -%}
- description: random color value
- auto_save: true
-
- address:
- description: IP address, DNS name, server name
- type: domainname
- params:
- allow_ip: true
- allow_without_dot: true
- default:
- jinja: >-
- {% if firefox.manual.http_proxy.address is not propertyerror %}
- {{ firefox.manual.http_proxy.address }}
- {% endif %}
- description: copy HTTP address if proxy is not "Manual"
- disabled:
- jinja: |-
- {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
- disabled
- {% endif %}
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- port:
- description: Port
- type: port
- default:
- jinja: >-
- {% if firefox.manual.http_proxy.port is not propertyerror %}
- {{ firefox.manual.http_proxy.port }}
- {% endif %}
- description: copy HTTP port if proxy is not "Manual"
- disabled:
- jinja: |-
- {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
- disabled
- {% endif %}
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- username:
- description: Username
- type: unix_user
- mandatory:
- jinja: |-
- {% if _.password is not propertyerror and _.password %}
- username is mandatory
- {% endif %}
- description: if a password is set
- disabled:
- jinja: |-
- {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
- disabled
- {% endif %}
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- password:
- description: Password
- type: secret
- mandatory: false
- disabled:
- jinja: |-
- {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
- disabled
- {% endif %}
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- url:
- description: URL
- type: web_address
- default:
- jinja: >-
- {% if firefox.auto is not propertyerror %}
- {{ firefox.auto }}
- {% endif %}
- description: copy HTTP address if proxy is "Auto"
- disabled:
- jinja: |-
- {% if _.type not in ['PAC URL', 'WPAD'] %}
- proxy does not need url
- {% endif %}
- description: |-
- if type is not in:
- - PAC URL
- - WPAD
-...
diff --git a/foxyproxy/10-redefine.yml b/foxyproxy/10-redefine.yml
deleted file mode 100644
index aef4325b..00000000
--- a/foxyproxy/10-redefine.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-proxies:
-
- username:
- redefine: true
- mandatory: false
-
- password:
- redefine: true
- hidden:
- jinja: |-
- {% if not _.username %}
- no username defined
- {% endif %}
- description: if username is not defined
-...
diff --git a/install.txt b/install.txt
deleted file mode 100644
index 7f2478c9..00000000
--- a/install.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-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
diff --git a/tree.html b/tree.html
deleted file mode 100644
index 5ec213db..00000000
--- a/tree.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
- Directory Tree
-
-
-
- Directory Tree
- .
- ├── firefox
- │ ├── 00-proxy.yml
- │ ├── 10-manual.yml
- │ ├── 20-manual.yml
- │ ├── 30-auto.yml
- │ ├── 40-no_proxy.yml
- │ ├── 50-prompt_authentication.yml
- │ ├── 55-proxy_dns_socks5.yml
- │ ├── 60-dns_over_https.yml
- │ └── empty.yml
- └── foxyproxy
- ├── 00-foxyproxy.yml
- └── 10-redefine.yml
-
-
-3 directories, 11 files
-
-
-
-
- tree v2.2.1 © 1996 - 2024 by Steve Baker and Thomas Moore
- HTML output hacked and copyleft © 1998 by Francesc Rocher
- JSON output hacked and copyleft © 2014 by Florian Sesser
- Charsets / OS/2 support © 2001 by Kyosuke Tokoro
-
-
-