diff --git a/001/README.md b/001/README.md
new file mode 100644
index 0000000..72ebf3c
--- /dev/null
+++ b/001/README.md
@@ -0,0 +1,5 @@
+# Description
+
+We create a first variable "proxy\_mode".
+
+This variable accept only a string has value.
diff --git a/001/dictionaries/proxy/00-proxy.yml b/001/dictionaries/proxy/00-proxy.yml
new file mode 100644
index 0000000..fefd8da
--- /dev/null
+++ b/001/dictionaries/proxy/00-proxy.yml
@@ -0,0 +1,3 @@
+---
+version: 1.1
+proxy_mode:
diff --git a/001/firefox.png b/001/firefox.png
new file mode 100644
index 0000000..2dea193
Binary files /dev/null and b/001/firefox.png differ
diff --git a/001/firefox.xcf b/001/firefox.xcf
new file mode 100644
index 0000000..d73e03e
Binary files /dev/null and b/001/firefox.xcf differ
diff --git a/002/README.md b/002/README.md
new file mode 100644
index 0000000..fa2016c
--- /dev/null
+++ b/002/README.md
@@ -0,0 +1,3 @@
+# Description
+
+We add a description for this variable.
diff --git a/002/dictionaries/proxy/00-proxy.yml b/002/dictionaries/proxy/00-proxy.yml
new file mode 100644
index 0000000..70ef6d9
--- /dev/null
+++ b/002/dictionaries/proxy/00-proxy.yml
@@ -0,0 +1,4 @@
+---
+version: 1.1
+proxy_mode:
+ description: Configure Proxy Access to the Internet
diff --git a/003/README.md b/003/README.md
new file mode 100644
index 0000000..5e35420
--- /dev/null
+++ b/003/README.md
@@ -0,0 +1,5 @@
+# Description
+
+This variable has "No proxy" has default value.
+
+If user don't touch de value of this variable, the value is "No proxy".
diff --git a/003/dictionaries/proxy/00-proxy.yml b/003/dictionaries/proxy/00-proxy.yml
new file mode 100644
index 0000000..7eb1f48
--- /dev/null
+++ b/003/dictionaries/proxy/00-proxy.yml
@@ -0,0 +1,5 @@
+---
+version: 1.1
+proxy_mode:
+ description: Configure Proxy Access to the Internet
+ default: No proxy
diff --git a/004/README.md b/004/README.md
new file mode 100644
index 0000000..bf9b0e9
--- /dev/null
+++ b/004/README.md
@@ -0,0 +1,3 @@
+# Description
+
+This variable accept, in fact, only a list of choices.
diff --git a/004/dictionaries/proxy/00-proxy.yml b/004/dictionaries/proxy/00-proxy.yml
new file mode 100644
index 0000000..02b1cf3
--- /dev/null
+++ b/004/dictionaries/proxy/00-proxy.yml
@@ -0,0 +1,12 @@
+---
+version: 1.1
+proxy_mode:
+ description: Configure Proxy Access to the Internet
+ type: choice
+ 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/005/README.md b/005/README.md
new file mode 100644
index 0000000..3e0d7ee
--- /dev/null
+++ b/005/README.md
@@ -0,0 +1,3 @@
+# Description
+
+The type is optional in choice type (if we have choices attributes, it's a choice option).
diff --git a/005/dictionaries/proxy/00-proxy.yml b/005/dictionaries/proxy/00-proxy.yml
new file mode 100644
index 0000000..5a5c4b6
--- /dev/null
+++ b/005/dictionaries/proxy/00-proxy.yml
@@ -0,0 +1,11 @@
+---
+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/010/README.md b/010/README.md
new file mode 100644
index 0000000..9a52c91
--- /dev/null
+++ b/010/README.md
@@ -0,0 +1,12 @@
+# Description
+
+The "manual" mode informations are write in a new files to separate things. But Rougail will concatenate variables and families.
+
+We create a family, which will contain variables.
+
+This family has:
+
+- a description
+- a type
+
+The type is mandatory. Without it, Rougail will create a variable.
diff --git a/010/dictionaries/proxy/10-manual.yml b/010/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..5aff2f3
--- /dev/null
+++ b/010/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,5 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ type: family
diff --git a/010/firefox.png b/010/firefox.png
new file mode 100644
index 0000000..279154a
Binary files /dev/null and b/010/firefox.png differ
diff --git a/010/firefox.xcf b/010/firefox.xcf
new file mode 100644
index 0000000..ee66b97
Binary files /dev/null and b/010/firefox.xcf differ
diff --git a/011/README.md b/011/README.md
new file mode 100644
index 0000000..b01fe50
--- /dev/null
+++ b/011/README.md
@@ -0,0 +1,3 @@
+# Description
+
+This family will be desactived if proxy\_mode is not "manual proxy configuration".
diff --git a/011/dictionaries/proxy/10-manual.yml b/011/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..3c376d4
--- /dev/null
+++ b/011/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,12 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ type: family
+ disabled:
+ type: jinja
+ jinja: |
+ {% if proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
diff --git a/012/README.md b/012/README.md
new file mode 100644
index 0000000..f8209bd
--- /dev/null
+++ b/012/README.md
@@ -0,0 +1,5 @@
+# Description
+
+We add a sub family.
+
+The "type" for family "manual" became unecessary because container an other family, so it's not a variable.
diff --git a/012/dictionaries/proxy/10-manual.yml b/012/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..f41e92c
--- /dev/null
+++ b/012/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,15 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy:
+ description: HTTP Proxy
+ type: family
diff --git a/013/README.md b/013/README.md
new file mode 100644
index 0000000..8d7feaa
--- /dev/null
+++ b/013/README.md
@@ -0,0 +1,5 @@
+# Description
+
+The sub family is now in "shorthand" mode. In this mode we can only define "description" attribute.
+
+Inside the sub family we add two variables (with domainname and port type).
diff --git a/013/dictionaries/proxy/10-manual.yml b/013/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..65be146
--- /dev/null
+++ b/013/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,20 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
diff --git a/014/README.md b/014/README.md
new file mode 100644
index 0000000..5e1a313
--- /dev/null
+++ b/014/README.md
@@ -0,0 +1,3 @@
+# Description
+
+Let's create a boolean variable.
diff --git a/014/dictionaries/proxy/10-manual.yml b/014/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..85bdce9
--- /dev/null
+++ b/014/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,25 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https:
+ description: Also use this proxy for HTTPS
+ type: boolean
+ default: true
diff --git a/015/README.md b/015/README.md
new file mode 100644
index 0000000..6075cdf
--- /dev/null
+++ b/015/README.md
@@ -0,0 +1,3 @@
+# Description
+
+The type is deduct with the default value type. This is only true for "string", "number", "float" or "boolean" variables.
diff --git a/015/dictionaries/proxy/10-manual.yml b/015/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..e4e7089
--- /dev/null
+++ b/015/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,24 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https:
+ description: Also use this proxy for HTTPS
+ default: true
diff --git a/016/README.md b/016/README.md
new file mode 100644
index 0000000..32205dc
--- /dev/null
+++ b/016/README.md
@@ -0,0 +1,10 @@
+# Description
+
+Transform it in "shorthand" mode.
+
+In this notation we can only define:
+
+- default value (so deduct the type)
+- description
+
+
diff --git a/016/dictionaries/proxy/10-manual.yml b/016/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..37ac8a6
--- /dev/null
+++ b/016/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,22 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https: true # Also use this proxy for HTTPS
diff --git a/017/README.md b/017/README.md
new file mode 100644
index 0000000..dd64088
--- /dev/null
+++ b/017/README.md
@@ -0,0 +1,5 @@
+# Description
+
+Add a sub family "ssl\_proxy" which will "hidden" if "use\_for\_https" is True.
+
+Hidden means that we cannot change value, but we can access to it in read only mode.
diff --git a/017/dictionaries/proxy/10-manual.yml b/017/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..9f10270
--- /dev/null
+++ b/017/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,29 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https: true # Also use this proxy for HTTPS
+
+ ssl_proxy:
+ description: HTTPS Proxy
+ type: family
+ hidden:
+ type: variable
+ variable: proxy.manual.use_for_https
diff --git a/018/README.md b/018/README.md
new file mode 100644
index 0000000..000a16a
--- /dev/null
+++ b/018/README.md
@@ -0,0 +1,3 @@
+# Description
+
+We add two variable with calculated default value (with Jinja type).
diff --git a/018/dictionaries/proxy/10-manual.yml b/018/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..df5010f
--- /dev/null
+++ b/018/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,49 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https: true # Also use this proxy for HTTPS
+
+ ssl_proxy:
+ description: HTTPS Proxy
+ type: family
+ hidden:
+ type: variable
+ variable: proxy.manual.use_for_https
+ address:
+ description: HTTPS address
+ type: domainname
+ default:
+ type: jinja
+ jinja: |
+ {% if __.use_for_https %}
+ {{ __.http_proxy.address }}
+ {% endif %}
+ description: |
+ copy HTTP address if HTTPS proxy is declared to be the same as HTTP
+ port:
+ description: HTTPS Port
+ type: port
+ default:
+ type: jinja
+ jinja: |
+ {{ __.http_proxy.port }}
+ description: |
+ copy HTTP port
diff --git a/019/README.md b/019/README.md
new file mode 100644
index 0000000..e2a3427
--- /dev/null
+++ b/019/README.md
@@ -0,0 +1,3 @@
+# Description
+
+Add a new sub family "socks\_proxy" in advanced mode.
diff --git a/019/dictionaries/proxy/10-manual.yml b/019/dictionaries/proxy/10-manual.yml
new file mode 100644
index 0000000..9299552
--- /dev/null
+++ b/019/dictionaries/proxy/10-manual.yml
@@ -0,0 +1,69 @@
+---
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https: true # Also use this proxy for HTTPS
+
+ "{{ suffix }}_proxy":
+ description: "{{ suffix }} Proxy"
+ type: dynamic
+ dynamic:
+ - HTTPS
+ - SOCKS
+ hidden:
+ type: jinja
+ jinja: |
+ {% if suffix == 'HTTPS' and _.use_for_https %}
+ HTTPS is same has HTTP
+ {% endif %}
+ params:
+ suffix:
+ type: suffix
+ description: |
+ if HTTPS is same has HTTP
+ address:
+ description: address
+ type: domainname
+ default:
+ type: variable
+ variable: __.http_proxy.address
+ port:
+ description: Port
+ type: port
+ default:
+ type: variable
+ variable: __.http_proxy.port
+ version:
+ description: SOCKS host version used by proxy
+ choices:
+ - v4
+ - v5
+ default: v5
+ disabled:
+ type: jinja
+ jinja: |
+ {% if suffix == 'HTTPS' %}
+ if HTTPS
+ {% endif %}
+ params:
+ suffix:
+ type: suffix
+ description: |
+ if not SOCKS
diff --git a/019/dictionaries/proxy/10-manual.yml.old b/019/dictionaries/proxy/10-manual.yml.old
new file mode 100644
index 0000000..ad64f2d
--- /dev/null
+++ b/019/dictionaries/proxy/10-manual.yml.old
@@ -0,0 +1,66 @@
+---
+version: 1.1
+proxy:
+ manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if proxy_mode is not "manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https: true # Also use this proxy for HTTPS
+
+ ssl_proxy:
+ description: HTTPS Proxy
+ type: family
+ hidden:
+ type: variable
+ variable: proxy.manual.use_for_https
+ address:
+ description: HTTPS address
+ type: domainname
+ default:
+ type: jinja
+ jinja: |
+ {% if __.use_for_https %}
+ {{ __.http_proxy.address }}
+ {% endif %}
+ description: |
+ copy HTTP address if HTTPS proxy is declared to be the same as HTTP
+ port:
+ description: HTTPS Port
+ type: port
+ default:
+ type: jinja
+ jinja: |
+ {{ __.http_proxy.port }}
+ description: |
+ copy HTTP port
+
+ socks_proxy:
+ description: SOCKS Proxy
+ mode: advanced
+ address:
+ description: SOCKS Address
+ type: domainname
+ port:
+ description: SOCKS Port
+ type: port
+ version:
+ description: SOCKS host version used by proxy
+ choices:
+ - v4
+ - v5
+ default: v5
diff --git a/020/README.md b/020/README.md
new file mode 100644
index 0000000..12f9e26
--- /dev/null
+++ b/020/README.md
@@ -0,0 +1,3 @@
+# Description
+
+Add a new "auto" variable.
diff --git a/020/dictionaries/proxy/20-auto.yml b/020/dictionaries/proxy/20-auto.yml
new file mode 100644
index 0000000..2aa3e50
--- /dev/null
+++ b/020/dictionaries/proxy/20-auto.yml
@@ -0,0 +1,12 @@
+---
+version: 1.1
+auto:
+ description: Automatic proxy configuration URL
+ type: web_address
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode != 'Automatic proxy configuration URL' %}
+ the proxy mode is not automatic
+ {% endif %}
+ description: if proxy_mode is not "automatic proxy configuration URL"
diff --git a/020/firefox.png b/020/firefox.png
new file mode 100644
index 0000000..20701e2
Binary files /dev/null and b/020/firefox.png differ
diff --git a/020/firefox.xcf b/020/firefox.xcf
new file mode 100644
index 0000000..89c7f4b
Binary files /dev/null and b/020/firefox.xcf differ
diff --git a/030/README.md b/030/README.md
new file mode 100644
index 0000000..02b83ed
--- /dev/null
+++ b/030/README.md
@@ -0,0 +1,4 @@
+# Description
+
+Add a new "no\_proxy" variable.
+
diff --git a/030/dictionaries/proxy/30-no_proxy.yml b/030/dictionaries/proxy/30-no_proxy.yml
new file mode 100644
index 0000000..cad08cf
--- /dev/null
+++ b/030/dictionaries/proxy/30-no_proxy.yml
@@ -0,0 +1,17 @@
+---
+version: 1.1
+no_proxy:
+ description: Address for which proxy will be desactivated
+ type: "domainname"
+ params:
+ allow_ip: true
+ allow_cidr_network: true
+ allow_without_dot: true
+ allow_startswith_dot: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
diff --git a/031/README.md b/031/README.md
new file mode 100644
index 0000000..8ddf328
--- /dev/null
+++ b/031/README.md
@@ -0,0 +1,3 @@
+# Description
+
+This variable accept multiple value.
diff --git a/031/dictionaries/proxy/30-no_proxy.yml b/031/dictionaries/proxy/30-no_proxy.yml
new file mode 100644
index 0000000..145a3ae
--- /dev/null
+++ b/031/dictionaries/proxy/30-no_proxy.yml
@@ -0,0 +1,18 @@
+---
+version: 1.1
+no_proxy:
+ description: Address for which proxy will be desactivated
+ type: "domainname"
+ multi: true
+ params:
+ allow_ip: true
+ allow_cidr_network: true
+ allow_without_dot: true
+ allow_startswith_dot: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
diff --git a/032/README.md b/032/README.md
new file mode 100644
index 0000000..794f1fc
--- /dev/null
+++ b/032/README.md
@@ -0,0 +1,3 @@
+# Description
+
+This variable is not mandatory.
diff --git a/032/dictionaries/proxy/30-no_proxy.yml b/032/dictionaries/proxy/30-no_proxy.yml
new file mode 100644
index 0000000..2055575
--- /dev/null
+++ b/032/dictionaries/proxy/30-no_proxy.yml
@@ -0,0 +1,19 @@
+---
+version: 1.1
+no_proxy:
+ description: Address for which proxy will be desactivated
+ type: "domainname"
+ multi: true
+ mandatory: false
+ params:
+ allow_ip: true
+ allow_cidr_network: true
+ allow_without_dot: true
+ allow_startswith_dot: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
diff --git a/033/README.md b/033/README.md
new file mode 100644
index 0000000..ab73680
--- /dev/null
+++ b/033/README.md
@@ -0,0 +1,3 @@
+# Description
+
+We can add example (only for documentation).
diff --git a/033/dictionaries/proxy/30-no_proxy.yml b/033/dictionaries/proxy/30-no_proxy.yml
new file mode 100644
index 0000000..8083d2b
--- /dev/null
+++ b/033/dictionaries/proxy/30-no_proxy.yml
@@ -0,0 +1,23 @@
+---
+version: 1.1
+no_proxy:
+ description: Address for which proxy will be desactivated
+ type: "domainname"
+ multi: true
+ mandatory: false
+ params:
+ allow_ip: true
+ allow_cidr_network: true
+ allow_without_dot: true
+ allow_startswith_dot: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
+ test:
+ - .mozilla.org
+ - .net.nz
+ - 192.168.1.0/24
diff --git a/034/README.md b/034/README.md
new file mode 100644
index 0000000..ae90c35
--- /dev/null
+++ b/034/README.md
@@ -0,0 +1,3 @@
+# Description
+
+We can add help informations for documentation.
diff --git a/034/dictionaries/proxy/30-no_proxy.yml b/034/dictionaries/proxy/30-no_proxy.yml
new file mode 100644
index 0000000..06f4cd9
--- /dev/null
+++ b/034/dictionaries/proxy/30-no_proxy.yml
@@ -0,0 +1,24 @@
+---
+version: 1.1
+no_proxy:
+ description: Address for which proxy will be desactivated
+ type: "domainname"
+ multi: true
+ mandatory: false
+ params:
+ allow_ip: true
+ allow_cidr_network: true
+ allow_without_dot: true
+ allow_startswith_dot: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
+ test:
+ - .mozilla.org
+ - .net.nz
+ - 192.168.1.0/24
+ help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied
diff --git a/040/dictionaries/proxy/40-prompt_authentication.yml b/040/dictionaries/proxy/40-prompt_authentication.yml
new file mode 100644
index 0000000..c10fa04
--- /dev/null
+++ b/040/dictionaries/proxy/40-prompt_authentication.yml
@@ -0,0 +1,12 @@
+---
+version: 1.1
+prompt_authentication:
+ description: Prompt for authentication if password is saved
+ default: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
diff --git a/040/firefox.png b/040/firefox.png
new file mode 100644
index 0000000..f222072
Binary files /dev/null and b/040/firefox.png differ
diff --git a/040/firefox.xcf b/040/firefox.xcf
new file mode 100644
index 0000000..5fe1189
Binary files /dev/null and b/040/firefox.xcf differ
diff --git a/050/dictionaries/proxy/50-proxy_dns_socks5.yml b/050/dictionaries/proxy/50-proxy_dns_socks5.yml
new file mode 100644
index 0000000..4080e53
--- /dev/null
+++ b/050/dictionaries/proxy/50-proxy_dns_socks5.yml
@@ -0,0 +1,19 @@
+---
+version: 1.1
+proxy_dns_socks5:
+ mode: advanced
+ description: Use proxy DNS when using SOCKS v5
+ default: false
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ the proxy mode is no proxy
+ {% elif socks_version is undefined or socks_version == 'v4' %}
+ socks version is v4
+ {% endif %}
+ params:
+ socks_version:
+ type: variable
+ variable: _.manual.socks_proxy.version
+ propertyerror: false
diff --git a/050/firefox.png b/050/firefox.png
new file mode 100644
index 0000000..18641c2
Binary files /dev/null and b/050/firefox.png differ
diff --git a/050/firefox.xcf b/050/firefox.xcf
new file mode 100644
index 0000000..b2cb9ea
Binary files /dev/null and b/050/firefox.xcf differ
diff --git a/060/dictionaries/proxy/60-dns_over_https.yml b/060/dictionaries/proxy/60-dns_over_https.yml
new file mode 100644
index 0000000..8ba3d43
--- /dev/null
+++ b/060/dictionaries/proxy/60-dns_over_https.yml
@@ -0,0 +1,5 @@
+---
+version: 1.1
+dns_over_https:
+ description: DNS over HTTPS
+ enable_dns_over_https: false # Enable DNS over HTTPS
diff --git a/060/firefox.png b/060/firefox.png
new file mode 100644
index 0000000..d368003
Binary files /dev/null and b/060/firefox.png differ
diff --git a/060/firefox.xcf b/060/firefox.xcf
new file mode 100644
index 0000000..c362607
Binary files /dev/null and b/060/firefox.xcf differ
diff --git a/061/dictionaries/proxy/60-dns_over_https.yml b/061/dictionaries/proxy/60-dns_over_https.yml
new file mode 100644
index 0000000..5bc799f
--- /dev/null
+++ b/061/dictionaries/proxy/60-dns_over_https.yml
@@ -0,0 +1,19 @@
+---
+version: 1.1
+proxy:
+ dns_over_https:
+ description: DNS over HTTPS
+ enable_dns_over_https: false # Enable DNS over HTTPS
+ provider:
+ description: Use Provider
+ choices:
+ - Cloudflare
+ - NextDNS
+ - Custom
+ default: Cloudflare
+ disabled:
+ type: jinja
+ jinja: |
+ {% if not _.enable_dns_over_https %}
+ Enable DNS over HTTPS is False
+ {% endif %}
diff --git a/062/dictionaries/proxy/60-dns_over_https.yml b/062/dictionaries/proxy/60-dns_over_https.yml
new file mode 100644
index 0000000..521f399
--- /dev/null
+++ b/062/dictionaries/proxy/60-dns_over_https.yml
@@ -0,0 +1,44 @@
+---
+version: 1.1
+dns_over_https:
+ description: DNS over HTTPS
+
+ enable_dns_over_https: false # Enable DNS over HTTPS
+
+ provider:
+ description: Use Provider
+ choices:
+ - Cloudflare
+ - NextDNS
+ - Custom
+ default: Cloudflare
+ disabled:
+ type: jinja
+ jinja: |
+ {% if not _.enable_dns_over_https %}
+ Enable DNS over HTTPS is False
+ {% endif %}
+ description: if enable_dns_over_https is not False
+
+ custom_dns_url:
+ description: Custom DNS URL
+ type: web_address
+ disabled:
+ type: jinja
+ jinja: |
+ {% if provider is not defined or provider != 'Custom' %}
+ provider is not custom
+ {% endif %}
+ params:
+ provider:
+ type: variable
+ variable: _.provider
+ propertyerror: false
+ description: if provider is Custom
+ validators:
+ - type: jinja
+ jinja: |
+ {% if _.custom_dns_url.startswith('http://') %}
+ only https is allowed
+ {% endif %}
+ description: custom_dns_url must starts with 'https://' only
diff --git a/100/README.md b/100/README.md
new file mode 100644
index 0000000..e07dafe
--- /dev/null
+++ b/100/README.md
@@ -0,0 +1,3 @@
+# Description
+
+
diff --git a/100/dictionaries/foxyproxy/00-foxyproxy.yml b/100/dictionaries/foxyproxy/00-foxyproxy.yml
new file mode 100644
index 0000000..4a13d5d
--- /dev/null
+++ b/100/dictionaries/foxyproxy/00-foxyproxy.yml
@@ -0,0 +1,121 @@
+---
+version: 1.1
+proxies:
+ description: Proxy configuration
+ _type: leadership
+
+ title:
+ description: Title or Description
+ multi: true
+
+ color:
+ description: Color
+
+ type:
+ description: Type
+ type: choice
+ choices:
+ - HTTP
+ - HTTPS/SSL
+ - SOCKS4
+ - SOCKS5
+ - PAC URL
+ - WPAD
+ - System (use system settings)
+ - Direct (no proxy)
+ default: Direct (no proxy)
+
+ address:
+ description: IP address, DNS name, server name
+ multi: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need address
+ {% endif %}
+ description: &needs_address |
+ if type not in:
+
+ - HTTP
+ - HTTPS/SSL
+ - SOCKS4
+ - SOCKS5
+
+ default:
+ type: jinja
+ jinja: |
+ {% if firefox_address is not undefined %}
+ {{ firefox_address }}
+ {% endif %}
+ params:
+ firefox_address:
+ type: variable
+ variable: proxy.manual.http_proxy.address
+ propertyerror: false
+ description: copy HTTP address if proxy is not "Manual"
+
+ port:
+ description: Port
+ type: port
+ default:
+ type: jinja
+ jinja: |
+ {% if firefox_port is not undefined %}
+ {{ firefox_port }}
+ {% endif %}
+ params:
+ firefox_port:
+ type: variable
+ variable: proxy.manual.http_proxy.port
+ propertyerror: false
+ description: copy HTTP port if proxy is not "Manual"
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need port
+ {% endif %}
+ description: *needs_address
+
+ username:
+ description: Username
+ type: unix_user
+ mandatory:
+ type: jinja
+ jinja: |
+ {% if _.password %}
+ username is mandatory
+ {% endif %}
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need username
+ {% endif %}
+ description: *needs_address
+
+ password:
+ description: Password
+ type: secret
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need password
+ {% endif %}
+ description: *needs_address
+
+ url:
+ type: web_address
+ disabled:
+ type: jinja
+ 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/101/dictionaries/foxyproxy/10-redefine.yml b/101/dictionaries/foxyproxy/10-redefine.yml
new file mode 100644
index 0000000..e048275
--- /dev/null
+++ b/101/dictionaries/foxyproxy/10-redefine.yml
@@ -0,0 +1,16 @@
+---
+version: 1.1
+proxies:
+ username:
+ redefine: true
+ mandatory: false
+
+ password:
+ redefine: true
+ hidden:
+ type: jinja
+ jinja: |
+ {% if not _.username %}
+ no username defined
+ {% endif %}
+ description: if username is not defined
diff --git a/README.md b/README.md
index 4bee18c..8d2c5bb 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,466 @@
-# rougail-tutorials_builder
+---
+gitea: none
+include_toc: true
+---
+# Tutorial description files
+## all/proxy/20-auto.yml
+
+```yaml
+version: 1.1
+auto:
+ description: Automatic proxy configuration URL
+ type: web_address
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode != 'Automatic proxy configuration URL' %}
+ the proxy mode is not automatic
+ {% endif %}
+ description: if proxy_mode is not "automatic proxy configuration URL"
+```
+## all/proxy/50-proxy_dns_socks5.yml
+
+```yaml
+version: 1.1
+proxy_dns_socks5:
+ mode: advanced
+ description: Use proxy DNS when using SOCKS v5
+ default: false
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ the proxy mode is no proxy
+ {% elif socks_version is undefined or socks_version == 'v4' %}
+ socks version is v4
+ {% endif %}
+ params:
+ socks_version:
+ type: variable
+ variable: _.manual.socks_proxy.version
+ propertyerror: false
+```
+## all/proxy/00-proxy.yml
+
+```yaml
+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
+```
+## all/proxy/40-prompt_authentication.yml
+
+```yaml
+version: 1.1
+prompt_authentication:
+ description: Prompt for authentication if password is saved
+ default: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
+```
+## all/proxy/60-dns_over_https.yml
+
+```yaml
+version: 1.1
+dns_over_https:
+ description: DNS over HTTPS
+
+ enable_dns_over_https: false # Enable DNS over HTTPS
+
+ provider:
+ description: Use Provider
+ choices:
+ - Cloudflare
+ - NextDNS
+ - Custom
+ default: Cloudflare
+ disabled:
+ type: jinja
+ jinja: |
+ {% if not _.enable_dns_over_https %}
+ Enable DNS over HTTPS is False
+ {% endif %}
+ description: if enable_dns_over_https is not False
+
+ custom_dns_url:
+ description: Custom DNS URL
+ type: web_address
+ disabled:
+ type: jinja
+ jinja: |
+ {% if provider is not defined or provider != 'Custom' %}
+ provider is not custom
+ {% endif %}
+ params:
+ provider:
+ type: variable
+ variable: _.provider
+ propertyerror: false
+ description: if provider is Custom
+ validators:
+ - type: jinja
+ jinja: |
+ {% if _.custom_dns_url.startswith('http://') %}
+ only https is allowed
+ {% endif %}
+ description: custom_dns_url must starts with 'https://' only
+```
+## all/proxy/10-manual.yml
+
+```yaml
+version: 1.1
+manual:
+ description: Manual proxy configuration
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode != 'Manual proxy configuration' %}
+ the proxy mode is not manual
+ {% endif %}
+ description: if the value of "proxy.proxy_mode" is not "Manual proxy configuration"
+
+ http_proxy: # HTTP Proxy
+ address:
+ description: HTTP address
+ type: domainname
+ port:
+ description: HTTP Port
+ type: port
+ default: '8080'
+
+ use_for_https: true # Also use this proxy for HTTPS
+
+ '{{ suffix }}_proxy':
+ description: '{{ suffix }} Proxy'
+ type: dynamic
+ dynamic:
+ - HTTPS
+ - SOCKS
+ hidden:
+ type: jinja
+ jinja: |
+ {% if suffix == 'HTTPS' and _.use_for_https %}
+ HTTPS is same has HTTP
+ {% endif %}
+ params:
+ suffix:
+ type: suffix
+ description: |
+ if HTTPS is same has HTTP
+ address:
+ description: address
+ type: domainname
+ default:
+ type: variable
+ variable: __.http_proxy.address
+ port:
+ description: Port
+ type: port
+ default:
+ type: variable
+ variable: __.http_proxy.port
+ version:
+ description: SOCKS host version used by proxy
+ choices:
+ - v4
+ - v5
+ default: v5
+ disabled:
+ type: jinja
+ jinja: |
+ {% if suffix == 'HTTPS' %}
+ if HTTPS
+ {% endif %}
+ params:
+ suffix:
+ type: suffix
+ description: |
+ if not SOCKS
+```
+## all/proxy/30-no_proxy.yml
+
+```yaml
+version: 1.1
+no_proxy:
+ description: Address for which proxy will be desactivated
+ type: domainname
+ multi: true
+ mandatory: false
+ params:
+ allow_ip: true
+ allow_cidr_network: true
+ allow_without_dot: true
+ allow_startswith_dot: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.proxy_mode == 'No proxy' %}
+ proxy mode is no proxy
+ {% endif %}
+ description: if proxy is "no proxy"
+ test:
+ - .mozilla.org
+ - .net.nz
+ - 192.168.1.0/24
+ help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied
+```
+## all/foxyproxy/10-redefine.yml
+
+```yaml
+version: 1.1
+proxies:
+ username:
+ redefine: true
+ mandatory: false
+
+ password:
+ redefine: true
+ hidden:
+ type: jinja
+ jinja: |
+ {% if not _.username %}
+ no username defined
+ {% endif %}
+ description: if username is not defined
+```
+## all/foxyproxy/00-foxyproxy.yml
+
+```yaml
+version: 1.1
+proxies:
+ description: Proxy configuration
+ _type: leadership
+
+ title:
+ description: Title or Description
+ multi: true
+
+ color:
+ description: Color
+
+ type:
+ description: Type
+ type: choice
+ choices:
+ - HTTP
+ - HTTPS/SSL
+ - SOCKS4
+ - SOCKS5
+ - PAC URL
+ - WPAD
+ - System (use system settings)
+ - Direct (no proxy)
+ default: Direct (no proxy)
+
+ address:
+ description: IP address, DNS name, server name
+ multi: true
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need address
+ {% endif %}
+ description: &needs_address |
+ if type not in:
+ - HTTP
+ - HTTPS/SSL
+ - SOCKS4
+ - SOCKS5
+
+ default:
+ type: jinja
+ jinja: |
+ {% if firefox_address is not undefined %}
+ {{ firefox_address }}
+ {% endif %}
+ params:
+ firefox_address:
+ type: variable
+ variable: proxy.manual.http_proxy.address
+ propertyerror: false
+ description: copy HTTP address if proxy is not "Manual"
+
+ port:
+ description: Port
+ type: port
+ default:
+ type: jinja
+ jinja: |
+ {% if firefox_port is not undefined %}
+ {{ firefox_port }}
+ {% endif %}
+ params:
+ firefox_port:
+ type: variable
+ variable: proxy.manual.http_proxy.port
+ propertyerror: false
+ description: copy HTTP port if proxy is not "Manual"
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need port
+ {% endif %}
+ description: *needs_address
+
+ username:
+ description: Username
+ type: unix_user
+ mandatory:
+ type: jinja
+ jinja: |
+ {% if _.password %}
+ username is mandatory
+ {% endif %}
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need username
+ {% endif %}
+ description: *needs_address
+
+ password:
+ description: Password
+ type: secret
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
+ proxy does not need password
+ {% endif %}
+ description: *needs_address
+
+ url:
+ description: URL
+ type: web_address
+ disabled:
+ type: jinja
+ jinja: |
+ {% if _.type not in ['PAC URL', 'WPAD'] %}
+ proxy does not need url
+ {% endif %}
+ description: |
+ if type is not in:
+ - PAC URL
+ - WPAD
+```
+# Generated documentation
+
+## Variables for "proxy"
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **proxy.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
+
+`basic` _`disabled`_
+
+**Disabled**: if the value of "proxy.proxy_mode" is not "Manual proxy configuration"
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **proxy.auto**
[`web_address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` _`disabled`_ | Automatic proxy configuration URL.
**Disabled**: if proxy_mode is not "automatic proxy configuration URL" |
+| **proxy.no_proxy**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` _`disabled`_ `unique` `multiple` | Address for which proxy will be desactivated.
Connections to localhost, 127.0.0.1/8 and ::1 are never proxied.
**Validators**:
- the domain name can starts by a dot
- the domain name can be only 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**: if proxy is "no proxy" |
+| **proxy.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**: if proxy is "no proxy" |
+### DNS over HTTPS
+
+`basic`
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **proxy.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 |
+| **proxy.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**: if enable_dns_over_https is not False |
+| **proxy.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**:
- custom_dns_url must starts with 'https://' only
**Disabled**: if provider is Custom |
+
+## Variables for "foxyproxy"
+
+### Proxy configuration
+
+`basic`
+
+
+Cette famille contient des listes de bloc de variables.
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **foxyproxy.proxies.title**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | Title or Description. |
+| **foxyproxy.proxies.color**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | Color. |
+| **foxyproxy.proxies.type**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Type.
**Choices**:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
- PAC URL
- WPAD
- System (use system settings)
- Direct (no proxy) |
+| **foxyproxy.proxies.address**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` _`disabled`_ `multiple` | IP address, DNS name, server name.
**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.
**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) `basic` `mandatory` _`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) `basic` `mandatory` _`disabled`_ | URL.
**Disabled**: if type is not in:
+- PAC URL
+- WPAD
+ |
+
+## Exemple avec les variables obligatoires non renseignées
+
+```yaml
+proxy:
+ auto: https://example.net
+ dns_over_https:
+ custom_dns_url: https://example.net
+```
+## Exemple avec tous les variables modifiables
+
+```yaml
+proxy:
+ proxy_mode: No proxy
+ auto: https://example.net
+ no_proxy:
+ - .mozilla.org
+ - .net.nz
+ - 192.168.1.0/24
+ prompt_authentication: true
+ dns_over_https:
+ enable_dns_over_https: false
+ provider: Cloudflare
+ custom_dns_url: https://example.net
+foxyproxy:
+ proxies:
+ - title: xxx
+ color: xxx
+ type: Direct (no proxy)
+ address:
+ - None
+ port: '8080'
+ username: xxx
+ password: xxx
+ url: https://example.net
+```
diff --git a/firefox.png b/firefox.png
new file mode 100644
index 0000000..050f837
Binary files /dev/null and b/firefox.png differ
diff --git a/foxyproxy.png b/foxyproxy.png
new file mode 100644
index 0000000..418dad0
Binary files /dev/null and b/foxyproxy.png differ
diff --git a/load.py b/load.py
new file mode 100755
index 0000000..9d27862
--- /dev/null
+++ b/load.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+
+from pathlib import Path
+from ruamel.yaml import YAML
+
+from rougail import Rougail, RougailConfig
+from rougaildoc import RougailDoc
+
+
+NUM="50"
+
+
+if __name__ == "__main__":
+ rougailconfig = RougailConfig.copy()
+# rougailconfig['dictionaries_dir'] = [f'{NUM}/dictionaries/rougail']
+ rougailconfig['variable_namespace'] = 'proxy'
+ rougailconfig['dictionaries_dir'] = ['all/proxy']
+ rougailconfig['extra_dictionaries'] = {'foxyproxy': ['all/foxyproxy']}
+ rougailconfig['tiramisu_cache'] = "cache.py"
+# rougail = Rougail(rougailconfig)
+# config = rougail.get_config()
+# print(config.value.get())
+ output = 'github'
+ inventory = RougailDoc(rougailconfig=rougailconfig,
+ output=output,
+ title_level=2,
+ )
+ doc = inventory.formater.header()
+ doc += inventory.formater.title('Tutorial description files', 1)
+ yaml = YAML()
+ for r in [[rougailconfig['dictionaries_dir']], rougailconfig['extra_dictionaries'].values()]:
+ for dirs in r:
+ for d in dirs:
+ for f in Path(d).iterdir():
+ if f.name.endswith('.yml') or f.name.endswith('.yaml'):
+ doc += inventory.formater.title(str(f), 2)
+ with f.open(encoding="utf8") as file_fh:
+ objects = yaml.load(file_fh)
+ doc += inventory.formater.yaml(objects)
+ doc += inventory.formater.title('Generated documentation', 1)
+ doc += inventory.gen_doc()
+ doc_file = Path('README.md')
+ with doc_file.open('w') as docfh:
+ docfh.write(doc)