diff --git a/README.md b/README.md
index 9f3b3e4b..fa1004cf 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,24 @@
-- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
-- [[tutorial v1.1_210] Username is mandatory if a password is set](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_210/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_211~1..v1.1_211))
+# Description
-# [tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined
+This tutorial shows to you an example of Rougail use on how to set a proxy in the Mozilla Firefox browser.
-[Read the tutorial "redefines the behavior to password mandatory if the user is defined" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#redefines-the-behavior-to-password-mandatory-if-the-user-is-defined)
+More precisely, this tutorial aims at reproducing this [Mozilla Firefox](https://www.mozilla.org/firefox/new/) settings page:
+
-## Screenshot
+And the integration of part of the [Firefox FoxyProxy plugin](https://addons.mozilla.org/firefox/addon/foxyproxy-standard/).
+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.
-
-
-
-## Clone and install
+This is what the page looks like:
+
+# 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
@@ -26,349 +26,81 @@ 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
+
+Each step is a separerate commit. You can navigate to history to discover different aspect to the Rougail format.
+
+- Getting started ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/preliminary.html))
+ - [[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 possible values ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/choice.html))
+ - [[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/choice.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 ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/family.html))
+ - [[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/family.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/family.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/family.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))
+- Some suitable types ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/types.html))
+ - [[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/types.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/types.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/types.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/types.html#a-variable-with-type-boolean) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_033~1..v1.1_033))
+- Calculated default value for a variable ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html))
+ - [[tutorial v1.1_040] HTTPS family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_040/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html#https-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_040~1..v1.1_040))
+ - [[tutorial v1.1_041] A default value calculated from another variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_041/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html#a-default-value-calculated-from-another-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_041~1..v1.1_041))
+- Define access to variable or family ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html))
+ - [[tutorial v1.1_050] A disabled family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_050/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html#a-disabled-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_050~1..v1.1_050))
+ - [[tutorial v1.1_051] A conditional disabled family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_051/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html#a-conditional-disabled-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_051~1..v1.1_051))
+ - [[tutorial v1.1_052] A hidden family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_052/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html#a-hidden-family) - [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) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/properties.html#a-conditional-hidden-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_053~1..v1.1_053))
+- A dynamically built family ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/dynfam.html))
+ - [[tutorial v1.1_060] A dynamically built 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#a-dynamically-built-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 ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[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/jinja.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/jinja.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/jinja.html#jinja-with-a-parameter) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_072~1..v1.1_072))
+ - [[tutorial v1.1_073] Jinja could returns a boolean](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_073/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#jinja-could-returns-a-boolean) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_073~1..v1.1_073))
+- Custom type ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_080] HTTP Proxy with "proxy" type](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_080/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#http-proxy-with-proxy-type) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_080~1..v1.1_080))
+ - [[tutorial v1.1_081] HTTPS and SOCKS Proxy](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_081/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#https-and-socks-proxy) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_081~1..v1.1_081))
+- A web_address variable ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_090] A conditional disabled variable with type web_address](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_090/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-conditional-disabled-variable-with-type-web_address) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_090~1..v1.1_090))
+- A full documented variable with multiple values and not mandatory ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_100] A conditional disabled variable with type domainname and parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_100/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-conditional-disabled-variable-with-type-domainname-and-parameters) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_100~1..v1.1_100))
+ - [[tutorial v1.1_101] A variable with multiple value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_101/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-variable-with-multiple-value) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_101~1..v1.1_101))
+ - [[tutorial v1.1_102] A non mandatory variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_102/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-non-mandatory-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_102~1..v1.1_102))
+ - [[tutorial v1.1_103] Examples](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_103/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#examples) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_103~1..v1.1_103))
+ - [[tutorial v1.1_104] Help](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_104/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#help) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_104~1..v1.1_104))
+- Practice ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_110] A conditional disabled boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_110/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-conditional-disabled-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_110~1..v1.1_110))
+ - [[tutorial v1.1_111] A boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_111/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_111~1..v1.1_111))
+ - [[tutorial v1.1_112] A Jinja conditional disabled boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_112/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-jinja-conditional-disabled-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_112~1..v1.1_112))
+- The Jinja propertyerror filter ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_120] Disabled a variable when an other variable are disabled](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_120/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#disabled-a-variable-when-an-other-variable-are-disabled) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_120~1..v1.1_120))
+- Mode ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_130] A variable in avanced mode](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_130/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-variable-in-avanced-mode) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_130~1..v1.1_130))
+- Practice ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_140] A boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_140/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-boolean-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_140~1..v1.1_140))
+ - [[tutorial v1.1_141] A choice variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_141/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-choice-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_141~1..v1.1_141))
+ - [[tutorial v1.1_142] A web_address variable ](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_142/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-web_address-variable) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_142~1..v1.1_142))
+- Validators ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_150] A variable with custom validation](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_150/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-variable-with-custom-validation) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_150~1..v1.1_150))
+- Namespace ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_160] Namespace](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_160/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#namespace) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_160~1..v1.1_160))
+ - [[tutorial v1.1_161] New "FoxyProxy" namespace](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_161/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#new-foxyproxy-namespace) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_161~1..v1.1_161))
+- A leadership family ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_170] A leadership family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_170/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-leadership-family) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_170~1..v1.1_170))
+- Regexp type with calculation ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_180] Regexp type](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_180/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#regexp-type) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_180~1..v1.1_180))
+ - [[tutorial v1.1_181] Calculate a random color](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_181/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#calculate-a-random-color) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_181~1..v1.1_181))
+ - [[tutorial v1.1_182] Auto save value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_182/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#auto-save-value) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_182~1..v1.1_182))
+- A variable name with a known variable's attribute ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_190] A variable name that conflict with a known the variable's attribute "type"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#a-variable-name-that-conflict-with-a-known-the-variable's-attribute-type) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_190~1..v1.1_190))
+- Variable calculation with propertyerror ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_200] Variable calculation with propertyerror](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#variable-calculation-with-propertyerror) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_200~1..v1.1_200))
+- Redefine variable ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html))
+ - [[tutorial v1.1_210] Username is mandatory if a password is set](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_210/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#username-is-mandatory-if-a-password-is-set) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_210~1..v1.1_210))
+ - [[tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_211/README.md) ([doc](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#redefines-the-behavior-to-password-mandatory-if-the-user-is-defined) - [diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_211~1..v1.1_211))
-```shell
-git switch --detach v1.1_211
-```
-
-## 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
- ├── foxyproxy
- │ ├── 00-foxyproxy.yml
- │ └── 10-redefine.yml
- └── types
- └── proxy
- └── 00_type.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: |-
- {{ not _.username }}
- return_type: boolean
- description: if username is empty
-...
-
-```
-
-***
-### Let's generate the documentation
-
-```shell
-rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc
-```
-#### Firefox
-
-> [!NOTE]
->
-> This family is a namespace.\
-> **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
-
-> [!NOTE]
->
-> **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
-
-> [!NOTE]
->
-> **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` | Proxy 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` | Proxy 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
-
-> [!NOTE]
->
-> **Path**: firefox.manual.https_proxy\
-> `standard` *`hidden`*\
-> **Hidden**: when the variable "[Also use this proxy for HTTPS](#firefox.manual.use_for_https)" has the value "true"
-
-| Variable | Description |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.manual.https_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[Proxy address](#firefox.manual.http_proxy.address)" |
-| **firefox.manual.https_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy 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 "[Proxy port](#firefox.manual.http_proxy.port)" |
-
-###### SOCKS Proxy
-
-> [!NOTE]
->
-> **Path**: firefox.manual.socks_proxy\
-> `standard`
-
-| Variable | Description |
-|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **firefox.manual.socks_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy address.
**Validators**:
• type domainname
• the domain name can be an IP
**Default**: the value of the variable "[Proxy address](#firefox.manual.http_proxy.address)" |
-| **firefox.manual.socks_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy 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 "[Proxy port](#firefox.manual.http_proxy.port)" |
-| **firefox.manual.socks_proxy.version**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | SOCKS host version used by proxy.
**Choices**:
• v4
• v5 **← (default)** |
-
-| 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.socks_proxy.version)" is "v4" |
-
-##### DNS over HTTPS
-
-> [!NOTE]
->
-> **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
-
-> [!NOTE]
->
-> This family is a namespace.\
-> **Path**: foxyproxy\
-> `basic`
-
-##### Proxy configuration
-
-> [!NOTE]
->
-> 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 empty
**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/ --types types/proxy --modes_level basic standard advanced -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml
-```
-#### 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 empty
**Disabled**: if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5 |
-
-
-***
-## User datas
-
-### Example 1
-
-#### config/01/config.yml
-
-
-```yml
----
-```
-
-***
-#### Output
-
-```shell
-rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml
-```
-> [!NOTE]
->
-> **Caption:**
-> - Variable
-> - Default value
-
-Variables:
-- :open_file_folder: firefox (Firefox)
- - :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy
- - :open_file_folder: dns_over_https (DNS over HTTPS)
- - :notebook: enable_dns_over_https (Enable DNS over HTTPS): false
-- :open_file_folder: foxyproxy (FoxyProxy)
- - :open_file_folder: proxies (Proxy configuration): []
-
-***
-### Example 2
-
-#### config/02/config.yml
-
-
-```yml
----
-foxyproxy:
- proxies:
- - title: My company
- type: HTTP
- color: '#66cc66'
- address: proxy.company.net
- port: 8080
- username: one_user
- password: P4ssW0rD
- - title: An other company
- type: HTTP
- address: proxy.company.net
- port: 8080
-```
-
-***
-#### Output
-
-```shell
-rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/02/config.yml
-```
-> [!NOTE]
->
-> **Caption:**
-> - Variable
-> - Unmodifiable variable
-> - Default value
-> - Modified value
-> - (:hourglass_flowing_sand: Original default value)
-
-Variables:
-- :open_file_folder: firefox (Firefox)
- - :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy
- - :open_file_folder: dns_over_https (DNS over HTTPS)
- - :notebook: enable_dns_over_https (Enable DNS over HTTPS): false
-- :open_file_folder: foxyproxy (FoxyProxy)
- - :open_file_folder: proxies (Proxy configuration)
- - :open_file_folder: title (Title or Description)
- - :notebook: title (Title or Description): My company ← loaded from the YAML file "config/02/config.yml"
- - :notebook: type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: Direct (no proxy))
- - :notebook: color (Color): #66cc66 ← loaded from the YAML file "config/02/config.yml"
- - :notebook: address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
- - :notebook: port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
- - :notebook: username (Username): one_user ← loaded from the YAML file "config/02/config.yml"
- - :notebook: password (Password): ********** ← loaded from the YAML file "config/02/config.yml"
- - :open_file_folder: title (Title or Description)
- - :notebook: title (Title or Description): An other company ← loaded from the YAML file "config/02/config.yml"
- - :notebook: type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" (:hourglass_flowing_sand: Direct (no proxy))
- - :notebook: color (Color): #d5ce53
- - :notebook: address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
- - :notebook: port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
- - :notebook: username (Username): null
- - :notebook: password (Password): null
-
-***
-### Example 3
-
-#### config/03/config.yml
-
-
-```yml
----
-foxyproxy:
- proxies:
- - title: My company
- type: HTTP
- color: '#66cc66'
- address: proxy.company.net
- port: 8080
- password: P4ssW0rD
- - title: An other company
- type: HTTP
- address: proxy.company.net
- port: 8080
-```
-
-***
-#### Output
-
-```shell
-rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/03/config.yml
-```
-> [!WARNING]
->
-> - foxyproxy (FoxyProxy)
-> - proxies (Proxy configuration)
-> - password (Password): :bell: variable "password" (Password) at index "0" is hidden, it will be ignored when loading from the YAML file "config/03/config.yml"
-
-> [!NOTE]
->
-> **Caption:**
-> - Variable
-> - Unmodifiable variable
-> - Default value
-> - Modified value
-> - (:hourglass_flowing_sand: Original default value)
-
-Variables:
-- :open_file_folder: firefox (Firefox)
- - :notebook: proxy_mode (Configure Proxy Access to the Internet): No proxy
- - :open_file_folder: dns_over_https (DNS over HTTPS)
- - :notebook: enable_dns_over_https (Enable DNS over HTTPS): false
-- :open_file_folder: foxyproxy (FoxyProxy)
- - :open_file_folder: proxies (Proxy configuration)
- - :open_file_folder: title (Title or Description)
- - :notebook: title (Title or Description): My company ← loaded from the YAML file "config/03/config.yml"
- - :notebook: type (Proxy Type): HTTP ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: Direct (no proxy))
- - :notebook: color (Color): #66cc66 ← loaded from the YAML file "config/03/config.yml"
- - :notebook: address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/03/config.yml"
- - :notebook: port (Port): 8080 ← loaded from the YAML file "config/03/config.yml"
- - :notebook: username (Username): null
- - :notebook: password (Password): null
- - :open_file_folder: title (Title or Description)
- - :notebook: title (Title or Description): An other company ← loaded from the YAML file "config/03/config.yml"
- - :notebook: type (Proxy Type): HTTP ← loaded from the YAML file "config/03/config.yml" (:hourglass_flowing_sand: Direct (no proxy))
- - :notebook: color (Color): #4fef30
- - :notebook: address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/03/config.yml"
- - :notebook: port (Port): 8080 ← loaded from the YAML file "config/03/config.yml"
- - :notebook: username (Username): null
- - :notebook: password (Password): null
-
-***
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 40a493dc..00000000
--- a/firefox/10-manual.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-manual:
- description: Manual proxy configuration
- disabled:
- variable: _.proxy_mode
- when_not: Manual proxy configuration
-
- http_proxy:
- description: HTTP Proxy
- type: proxy
-
- address:
- default: null
-
- port:
- default: 8080
-...
diff --git a/firefox/20-manual.yml b/firefox/20-manual.yml
deleted file mode 100644
index 11f30aca..00000000
--- a/firefox/20-manual.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-manual:
-
- use_for_https: true # Also use this proxy for HTTPS
-
- https_proxy:
- description: HTTPS Proxy
- type: proxy
- hidden:
- variable: _.use_for_https
-
- socks_proxy:
- description: SOCKS Proxy
- type: proxy
-
- version:
- description: SOCKS host version used by proxy
- choices:
- - v4
- - v5
- default: v5
-...
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 02d28232..00000000
--- a/firefox/55-proxy_dns_socks5.yml
+++ /dev/null
@@ -1,16 +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: |-
- {{ _.manual.socks_proxy.version is propertyerror or _.manual.socks_proxy.version == 'v4' }}
- return_type: boolean
- description: |-
- if "_.proxy_mode" is not "Manual proxy configuration"
- or "_.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 bc033240..00000000
--- a/firefox/60-dns_over_https.yml
+++ /dev/null
@@ -1,33 +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: |-
- {{ _.custom_dns_url.startswith("http://") }}
- return_type: boolean
- description: must starts with 'https://' only
- disabled:
- jinja: |-
- {{ _.provider is propertyerror or _.provider != 'Custom' }}
- return_type: boolean
- description: if "_.provider" is not "Custom"
-...
diff --git a/foxyproxy/00-foxyproxy.yml b/foxyproxy/00-foxyproxy.yml
deleted file mode 100644
index 14f63f37..00000000
--- a/foxyproxy/00-foxyproxy.yml
+++ /dev/null
@@ -1,127 +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:
- description: copy HTTP address if proxy is not "Manual"
- variable: firefox.manual.http_proxy.address
- propertyerror: false
- disabled:
- jinja: |-
- {{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
- return_type: boolean
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- port:
- description: Port
- type: port
- default:
- description: copy HTTP port if proxy is not "Manual"
- variable: firefox.manual.http_proxy.port
- propertyerror: false
- disabled:
- jinja: |-
- {{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
- return_type: boolean
- 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 %}
- true
- {% else %}
- false
- {% endif %}
- return_type: boolean
- description: if a password is set
- disabled:
- jinja: |-
- {{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
- return_type: boolean
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- password:
- description: Password
- type: secret
- mandatory: false
- disabled:
- jinja: |-
- {{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
- return_type: boolean
- description: |-
- if type not in:
- - HTTP
- - HTTPS/SSL
- - SOCKS4
- - SOCKS5
-
- url:
- description: URL
- type: web_address
- default:
- description: copy HTTP address if proxy is "Auto"
- variable: firefox.auto
- propertyerror: false
- disabled:
- jinja: |-
- {{ _.type not in ['PAC URL', 'WPAD'] }}
- return_type: boolean
- 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 bc50e801..00000000
--- a/foxyproxy/10-redefine.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-%YAML 1.2
----
-version: 1.1
-
-proxies:
-
- username:
- redefine: true
- mandatory: false
-
- password:
- redefine: true
- hidden:
- jinja: |-
- {{ not _.username }}
- return_type: boolean
- description: if username is empty
-...
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 2f98f608..00000000
--- a/tree.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-.
- ├── 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
- ├── foxyproxy
- │ ├── 00-foxyproxy.yml
- │ └── 10-redefine.yml
- └── types
- └── proxy
- └── 00_type.yml
-
\ No newline at end of file