94 lines
16 KiB
Markdown
94 lines
16 KiB
Markdown
# Description
|
||
|
||
This tutorial shows to you an example of Rougail use on how to set a proxy in the Mozilla Firefox browser.
|
||
|
||
More precisely, this tutorial aims at reproducing this [Mozilla Firefox](https://www.mozilla.org/firefox/new/) settings page:
|
||
|
||

|
||
|
||
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.
|
||
|
||
This is what the page looks like:
|
||
|
||

|
||
|
||
# Installation
|
||
|
||
To test this tutorial, you need to download this repository and install Rougail:
|
||
|
||
```bash
|
||
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
|
||
```
|
||
|
||
# Summary
|
||
|
||
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))
|
||
|