diff --git a/tests/force_optional.adoc b/tests/force_optional.adoc
index fbd13ea31..4c248dd51 100644
--- a/tests/force_optional.adoc
+++ b/tests/force_optional.adoc
@@ -17,12 +17,12 @@
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `mandatory` | My var6. +
**Choices**:
-*
+*
| **var7** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `mandatory` | My var7. +
**Choices**:
-*
+*
| **var8** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[choice]` `mandatory` | My var8. +
**Choices**: values of "a.unknown.variable".
diff --git a/tests/results/test/60_0family_dynamic_variable.adoc b/tests/results/test/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..4e555feae
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_variable.adoc
@@ -0,0 +1,33 @@
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `multiple` `standard` `mandatory` `unique` | A suffix variable. +
+**Default**:
+
+* val1
+* val2
+|====
+
+== A dynamic family
+
+====
+**๐ Informations**
+
+This family builds families dynamically. +
+**Path**:
+
+* dyn__val1__
+* dyn__val2__ +
+`basic` +
+**Identifiers**: the value of the variable "A suffix variable" (var).
+
+====
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **dyn__val1__.variable** +
+**dyn__val2__.variable** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A dynamic variable.
+|====
\ No newline at end of file
diff --git a/tests/results/test/60_0family_dynamic_variable.gitlab.md b/tests/results/test/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..cbfd30d8a
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,22 @@
+| Variable | Description |
+|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+
+A dynamic family
+
+> [!note] ๐ Informations
+> This family builds families dynamically.
+>
+> **Path**:
+> - dyn*val1*
+> - dyn*val2*
+>
+> `basic`
+>
+> **Identifiers**: the value of the variable "[A suffix variable](#var)".
+
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **dyn*val1*.variable**
**dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test/60_0family_dynamic_variable.html b/tests/results/test/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..8efbcc645
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_variable.html
@@ -0,0 +1,23 @@
+
+
+| Variable | Description |
+
+
+var string multiple standard mandatory unique | A suffix variable. Default: |
+
+
+
+A dynamic family
+
+This family builds families dynamically.
Path:
basic
Identifiers: the value of the variable "A suffix variable" (var).
+
+
+
+| Variable | Description |
+
+
+dynval1.variable dynval2.variable string basic mandatory | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test/60_0family_dynamic_variable.json b/tests/results/test/60_0family_dynamic_variable.json
new file mode 100644
index 000000000..3f94576cd
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_variable.json
@@ -0,0 +1,91 @@
+{
+ "var": {
+ "path": "var",
+ "name": "var",
+ "description": "A suffix variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "unique",
+ "ori_name": "unique",
+ "access_control": false
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": [
+ "val1",
+ "val2"
+ ]
+ },
+ "variable_type": "string",
+ "multiple": true
+ },
+ "dyn{{ identifier }}": {
+ "type": "dynamic",
+ "informations": {
+ "path": "dyn{{ identifier }}",
+ "name": "dyn{{ identifier }}",
+ "description": "A dynamic family",
+ "properties": [],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "help": [
+ "This family builds families dynamically"
+ ],
+ "identifier": [
+ {
+ "message": "the value of the variable {0}.",
+ "path": {
+ "path": "var",
+ "type": "variable"
+ },
+ "description": "A suffix variable"
+ }
+ ]
+ },
+ "children": {
+ "variable": {
+ "path": "dyn{{ identifier }}.variable",
+ "name": "variable",
+ "description": "A dynamic variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ }
+ ],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "type": "variable",
+ "variable_type": "string"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/results/test/60_0family_dynamic_variable.md b/tests/results/test/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..08b15eda5
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_variable.md
@@ -0,0 +1,19 @@
+| Variable | Description |
+|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+
+# A dynamic family
+
+> [!NOTE]
+>
+> This family builds families dynamically.\
+> **Path**: \
+> - dyn*val1*\
+
+> - dyn*val2*\
+> `basic`\
+> **Identifiers**: the value of the variable "[A suffix variable](#var)".
+
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **dyn*val1*.variable**
**dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test/60_0family_dynamic_variable.sh b/tests/results/test/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..98d76d1fa
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_variable.sh
@@ -0,0 +1,28 @@
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mvar[0m โ A suffix variable. โ
+โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ [1mDefault[0m: โ
+โ [1;7mmandatory [0m [1;7m unique [0m โ โข val1 โ
+โ โ โข val2 โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
+[1;4;96mA dynamic family[0m
+
+[34mโ [0m[1;34m๐ Informations[0m
+[34mโ [0m
+[34mโ [0mThis family builds families dynamically.
+[34mโ [0m[1mPath[0m:
+[34mโ [0m โข dyn[3mval1[0m
+[34mโ [0m โข dyn[3mval2[0m
+[34mโ [0m[1;7m basic [0m
+[34mโ [0m[1mIdentifiers[0m: the value of the variable [32m"A suffix variable"[0m [1m([0mvar[1m)[0m.
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mdyn[0m[1;3mval1[0m[1m.variable[0m โ A dynamic variable. โ
+โ [1mdyn[0m[1;3mval2[0m[1m.variable[0m โ โ
+โ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m โ โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results/test/warnings_60_0family_dynamic_variable b/tests/results/test/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_examples/60_0family_dynamic_variable.adoc b/tests/results/test_examples/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..52bffcce9
--- /dev/null
+++ b/tests/results/test_examples/60_0family_dynamic_variable.adoc
@@ -0,0 +1,25 @@
+== Example with mandatory variables not filled in
+
+[,yaml]
+----
+---
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+----
+
+
+== Example with all variables modifiable
+
+[,yaml]
+----
+---
+var:
+ - val1
+ - val2
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+----
diff --git a/tests/results/test_examples/60_0family_dynamic_variable.gitlab.md b/tests/results/test_examples/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..6f9f9eaf5
--- /dev/null
+++ b/tests/results/test_examples/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,26 @@
+Example with mandatory variables not filled in
+
+```yaml
+---
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+```
+
+
+
+Example with all variables modifiable
+
+```yaml
+---
+var:
+ - val1
+ - val2
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+```
+
+
\ No newline at end of file
diff --git a/tests/results/test_examples/60_0family_dynamic_variable.html b/tests/results/test_examples/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..7f49476e3
--- /dev/null
+++ b/tests/results/test_examples/60_0family_dynamic_variable.html
@@ -0,0 +1,18 @@
+Example with mandatory variables not filled in
+
+---
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+
+Example with all variables modifiable
+
+---
+var:
+ - val1
+ - val2
+dynval1:
+ variable: example
+dynval2:
+ variable: example
\ No newline at end of file
diff --git a/tests/results/test_examples/60_0family_dynamic_variable.md b/tests/results/test_examples/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..c3e17af8e
--- /dev/null
+++ b/tests/results/test_examples/60_0family_dynamic_variable.md
@@ -0,0 +1,22 @@
+# Example with mandatory variables not filled in
+
+```yaml
+---
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+```
+
+# Example with all variables modifiable
+
+```yaml
+---
+var:
+ - val1
+ - val2
+dynval1:
+ variable: example
+dynval2:
+ variable: example
+```
\ No newline at end of file
diff --git a/tests/results/test_examples/60_0family_dynamic_variable.sh b/tests/results/test_examples/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..e0fc42113
--- /dev/null
+++ b/tests/results/test_examples/60_0family_dynamic_variable.sh
@@ -0,0 +1,19 @@
+[1;4;96mExample with mandatory variables not filled in[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+
+[1;4;96mExample with all variables modifiable[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mvar[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval1 [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval2 [0m
+[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+
diff --git a/tests/results/test_examples/warnings_60_0family_dynamic_variable b/tests/results/test_examples/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_examples/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_examples_comment/60_0family_dynamic_variable.adoc b/tests/results/test_examples_comment/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..07ef7bc81
--- /dev/null
+++ b/tests/results/test_examples_comment/60_0family_dynamic_variable.adoc
@@ -0,0 +1,25 @@
+== Example with mandatory variables not filled in
+
+[,yaml]
+----
+---
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+----
+
+
+== Example with all variables modifiable
+
+[,yaml]
+----
+---
+var: # A suffix variable
+ - val1
+ - val2
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+----
diff --git a/tests/results/test_examples_comment/60_0family_dynamic_variable.gitlab.md b/tests/results/test_examples_comment/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..9152298dc
--- /dev/null
+++ b/tests/results/test_examples_comment/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,26 @@
+Example with mandatory variables not filled in
+
+```yaml
+---
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
+
+
+
+Example with all variables modifiable
+
+```yaml
+---
+var: # A suffix variable
+ - val1
+ - val2
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
+
+
\ No newline at end of file
diff --git a/tests/results/test_examples_comment/60_0family_dynamic_variable.html b/tests/results/test_examples_comment/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..e55bbbbe3
--- /dev/null
+++ b/tests/results/test_examples_comment/60_0family_dynamic_variable.html
@@ -0,0 +1,18 @@
+Example with mandatory variables not filled in
+
+---
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+
+Example with all variables modifiable
+
+---
+var: # A suffix variable
+ - val1
+ - val2
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
\ No newline at end of file
diff --git a/tests/results/test_examples_comment/60_0family_dynamic_variable.md b/tests/results/test_examples_comment/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..8758a1fdb
--- /dev/null
+++ b/tests/results/test_examples_comment/60_0family_dynamic_variable.md
@@ -0,0 +1,22 @@
+# Example with mandatory variables not filled in
+
+```yaml
+---
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
+
+# Example with all variables modifiable
+
+```yaml
+---
+var: # A suffix variable
+ - val1
+ - val2
+dynval1: # A dynamic family
+ variable: example # A dynamic variable
+dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
\ No newline at end of file
diff --git a/tests/results/test_examples_comment/60_0family_dynamic_variable.sh b/tests/results/test_examples_comment/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..b78ee3ceb
--- /dev/null
+++ b/tests/results/test_examples_comment/60_0family_dynamic_variable.sh
@@ -0,0 +1,19 @@
+[1;4;96mExample with mandatory variables not filled in[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+
+[1;4;96mExample with all variables modifiable[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mvar[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A suffix variable[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval1 [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval2 [0m
+[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+
diff --git a/tests/results/test_examples_comment/warnings_60_0family_dynamic_variable b/tests/results/test_examples_comment/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_examples_comment/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_variable.adoc b/tests/results/test_namespace/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..44d88b617
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_variable.adoc
@@ -0,0 +1,44 @@
+== Rougail
+
+====
+**๐ Informations**
+
+This family is a namespace. +
+**Path**: rougail +
+`basic`
+
+====
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **rougail.var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `multiple` `standard` `mandatory` `unique` | A suffix variable. +
+**Default**:
+
+* val1
+* val2
+|====
+
+=== A dynamic family
+
+====
+**๐ Informations**
+
+This family builds families dynamically. +
+**Path**:
+
+* rougail.dyn__val1__
+* rougail.dyn__val2__ +
+`basic` +
+**Identifiers**: the value of the variable "A suffix variable" (rougail.var).
+
+====
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **rougail.dyn__val1__.variable** +
+**rougail.dyn__val2__.variable** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A dynamic variable.
+|====
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_variable.gitlab.md b/tests/results/test_namespace/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..1173f43ed
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,33 @@
+Rougail
+
+> [!note] ๐ Informations
+> This family is a namespace.
+>
+> **Path**: rougail
+>
+> `basic`
+
+| Variable | Description |
+|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **rougail.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+
+A dynamic family
+
+> [!note] ๐ Informations
+> This family builds families dynamically.
+>
+> **Path**:
+> - rougail.dyn*val1*
+> - rougail.dyn*val2*
+>
+> `basic`
+>
+> **Identifiers**: the value of the variable "[A suffix variable](#rougail.var)".
+
+| Variable | Description |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **rougail.dyn*val1*.variable**
**rougail.dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
+
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_variable.html b/tests/results/test_namespace/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..75f983517
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_variable.html
@@ -0,0 +1,27 @@
+Rougail
+
+This family is a namespace.
Path: rougail
basic
+
+
+
+| Variable | Description |
+
+
+rougail.var string multiple standard mandatory unique | A suffix variable. Default: |
+
+
+
+A dynamic family
+
+This family builds families dynamically.
Path: - rougail.dynval1
+- rougail.dynval2
basic
Identifiers: the value of the variable "A suffix variable" (rougail.var).
+
+
+
+| Variable | Description |
+
+
+rougail.dynval1.variable rougail.dynval2.variable string basic mandatory | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_variable.json b/tests/results/test_namespace/60_0family_dynamic_variable.json
new file mode 100644
index 000000000..3b4e2b3bd
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_variable.json
@@ -0,0 +1,106 @@
+{
+ "rougail": {
+ "type": "namespace",
+ "informations": {
+ "path": "rougail",
+ "name": "rougail",
+ "description": "Rougail",
+ "properties": [],
+ "mode": "basic",
+ "help": [
+ "This family is a namespace"
+ ]
+ },
+ "children": {
+ "var": {
+ "path": "rougail.var",
+ "name": "var",
+ "description": "A suffix variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "unique",
+ "ori_name": "unique",
+ "access_control": false
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": [
+ "val1",
+ "val2"
+ ]
+ },
+ "variable_type": "string",
+ "multiple": true
+ },
+ "dyn{{ identifier }}": {
+ "type": "dynamic",
+ "informations": {
+ "path": "rougail.dyn{{ identifier }}",
+ "name": "dyn{{ identifier }}",
+ "description": "A dynamic family",
+ "properties": [],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "help": [
+ "This family builds families dynamically"
+ ],
+ "identifier": [
+ {
+ "message": "the value of the variable {0}.",
+ "path": {
+ "path": "rougail.var",
+ "type": "variable"
+ },
+ "description": "A suffix variable"
+ }
+ ]
+ },
+ "children": {
+ "variable": {
+ "path": "rougail.dyn{{ identifier }}.variable",
+ "name": "variable",
+ "description": "A dynamic variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ }
+ ],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "type": "variable",
+ "variable_type": "string"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_variable.md b/tests/results/test_namespace/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..350290cda
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_variable.md
@@ -0,0 +1,27 @@
+# Rougail
+
+> [!NOTE]
+>
+> This family is a namespace.\
+> **Path**: rougail\
+> `basic`
+
+| Variable | Description |
+|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **rougail.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+
+## A dynamic family
+
+> [!NOTE]
+>
+> This family builds families dynamically.\
+> **Path**: \
+> - rougail.dyn*val1*\
+
+> - rougail.dyn*val2*\
+> `basic`\
+> **Identifiers**: the value of the variable "[A suffix variable](#rougail.var)".
+
+| Variable | Description |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **rougail.dyn*val1*.variable**
**rougail.dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_variable.sh b/tests/results/test_namespace/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..12620db10
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_variable.sh
@@ -0,0 +1,36 @@
+[1;4;96mRougail[0m
+
+[34mโ [0m[1;34m๐ Informations[0m
+[34mโ [0m
+[34mโ [0mThis family is a namespace.
+[34mโ [0m[1mPath[0m: rougail
+[34mโ [0m[1;7m basic [0m
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mrougail.var[0m โ A suffix variable. โ
+โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ [1mDefault[0m: โ
+โ [1;7mmandatory [0m [1;7m unique [0m โ โข val1 โ
+โ โ โข val2 โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
+ [1;4;92mA dynamic family[0m
+
+[34mโ [0m[1;34m๐ Informations[0m
+[34mโ [0m
+[34mโ [0mThis family builds families dynamically.
+[34mโ [0m[1mPath[0m:
+[34mโ [0m โข rougail.dyn[3mval1[0m
+[34mโ [0m โข rougail.dyn[3mval2[0m
+[34mโ [0m[1;7m basic [0m
+[34mโ [0m[1mIdentifiers[0m: the value of the variable [32m"A suffix variable"[0m [1m([0mrougail.var[1m)[0m.
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mrougail.dyn[0m[1;3mval1[0m[1m.variable[0m โ A dynamic variable. โ
+โ [1mrougail.dyn[0m[1;3mval2[0m[1m.variable[0m โ โ
+โ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m โ โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results/test_namespace/warnings_60_0family_dynamic_variable b/tests/results/test_namespace/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples/60_0family_dynamic_variable.adoc b/tests/results/test_namespace_examples/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..80002de76
--- /dev/null
+++ b/tests/results/test_namespace_examples/60_0family_dynamic_variable.adoc
@@ -0,0 +1,27 @@
+== Example with mandatory variables not filled in
+
+[,yaml]
+----
+---
+rougail:
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+----
+
+
+== Example with all variables modifiable
+
+[,yaml]
+----
+---
+rougail:
+ var:
+ - val1
+ - val2
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+----
diff --git a/tests/results/test_namespace_examples/60_0family_dynamic_variable.gitlab.md b/tests/results/test_namespace_examples/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..6b3c12084
--- /dev/null
+++ b/tests/results/test_namespace_examples/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,28 @@
+Example with mandatory variables not filled in
+
+```yaml
+---
+rougail:
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+```
+
+
+
+Example with all variables modifiable
+
+```yaml
+---
+rougail:
+ var:
+ - val1
+ - val2
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+```
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples/60_0family_dynamic_variable.html b/tests/results/test_namespace_examples/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..d3c6a3924
--- /dev/null
+++ b/tests/results/test_namespace_examples/60_0family_dynamic_variable.html
@@ -0,0 +1,20 @@
+Example with mandatory variables not filled in
+
+---
+rougail:
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+
+Example with all variables modifiable
+
+---
+rougail:
+ var:
+ - val1
+ - val2
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples/60_0family_dynamic_variable.md b/tests/results/test_namespace_examples/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..6c5eef72a
--- /dev/null
+++ b/tests/results/test_namespace_examples/60_0family_dynamic_variable.md
@@ -0,0 +1,24 @@
+# Example with mandatory variables not filled in
+
+```yaml
+---
+rougail:
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+```
+
+# Example with all variables modifiable
+
+```yaml
+---
+rougail:
+ var:
+ - val1
+ - val2
+ dynval1:
+ variable: example
+ dynval2:
+ variable: example
+```
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples/60_0family_dynamic_variable.sh b/tests/results/test_namespace_examples/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..d0327b623
--- /dev/null
+++ b/tests/results/test_namespace_examples/60_0family_dynamic_variable.sh
@@ -0,0 +1,21 @@
+[1;4;96mExample with mandatory variables not filled in[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mrougail[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+
+[1;4;96mExample with all variables modifiable[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mrougail[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvar[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval1 [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval2 [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample [0m
+
diff --git a/tests/results/test_namespace_examples/warnings_60_0family_dynamic_variable b/tests/results/test_namespace_examples/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace_examples/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.adoc b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..c6acb6565
--- /dev/null
+++ b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.adoc
@@ -0,0 +1,27 @@
+== Example with mandatory variables not filled in
+
+[,yaml]
+----
+---
+rougail: # Rougail
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+----
+
+
+== Example with all variables modifiable
+
+[,yaml]
+----
+---
+rougail: # Rougail
+ var: # A suffix variable
+ - val1
+ - val2
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+----
diff --git a/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.gitlab.md b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..c5a2e3c33
--- /dev/null
+++ b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,28 @@
+Example with mandatory variables not filled in
+
+```yaml
+---
+rougail: # Rougail
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
+
+
+
+Example with all variables modifiable
+
+```yaml
+---
+rougail: # Rougail
+ var: # A suffix variable
+ - val1
+ - val2
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.html b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..af4e64763
--- /dev/null
+++ b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.html
@@ -0,0 +1,20 @@
+Example with mandatory variables not filled in
+
+---
+rougail: # Rougail
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+
+Example with all variables modifiable
+
+---
+rougail: # Rougail
+ var: # A suffix variable
+ - val1
+ - val2
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.md b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..ddfc9c0e1
--- /dev/null
+++ b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.md
@@ -0,0 +1,24 @@
+# Example with mandatory variables not filled in
+
+```yaml
+---
+rougail: # Rougail
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
+
+# Example with all variables modifiable
+
+```yaml
+---
+rougail: # Rougail
+ var: # A suffix variable
+ - val1
+ - val2
+ dynval1: # A dynamic family
+ variable: example # A dynamic variable
+ dynval2: # A dynamic family
+ variable: example # A dynamic variable
+```
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.sh b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..1fb7ed843
--- /dev/null
+++ b/tests/results/test_namespace_examples_comment/60_0family_dynamic_variable.sh
@@ -0,0 +1,21 @@
+[1;4;96mExample with mandatory variables not filled in[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mrougail[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# Rougail[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+
+[1;4;96mExample with all variables modifiable[0m
+
+[38;2;248;248;242;48;2;39;40;34m---[0m[48;2;39;40;34m [0m
+[38;2;255;70;137;48;2;39;40;34mrougail[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# Rougail[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvar[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A suffix variable[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval1 [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34m-[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mval2 [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval1[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mdynval2[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic family[0m[48;2;39;40;34m [0m
+[38;2;248;248;242;48;2;39;40;34m [0m[38;2;255;70;137;48;2;39;40;34mvariable[0m[38;2;248;248;242;48;2;39;40;34m:[0m[38;2;248;248;242;48;2;39;40;34m [0m[48;2;39;40;34mexample[0m[38;2;248;248;242;48;2;39;40;34m [0m[38;2;149;144;119;48;2;39;40;34m# A dynamic variable[0m[48;2;39;40;34m [0m
+
diff --git a/tests/results/test_namespace_examples_comment/warnings_60_0family_dynamic_variable b/tests/results/test_namespace_examples_comment/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace_examples_comment/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.adoc b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..8ccd54f70
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.adoc
@@ -0,0 +1,13 @@
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **rougail.var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `multiple` `standard` `mandatory` `unique` | A suffix variable. +
+**Default**:
+
+* val1
+* val2
+| **rougail.dyn__val1__.variable** +
+**rougail.dyn__val2__.variable** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A dynamic variable.
+|====
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.adoc b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.adoc
new file mode 100644
index 000000000..2d3b39457
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.adoc
@@ -0,0 +1,15 @@
+== New variables
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **rougail.var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `multiple` `standard` `mandatory` `unique` | A suffix variable. +
+**Default**:
+
+* val1
+* val2
+| **rougail.dyn__val1__.variable** +
+**rougail.dyn__val2__.variable** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A dynamic variable.
+|====
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.gitlab.md b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.gitlab.md
new file mode 100644
index 000000000..d7e4d3514
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.gitlab.md
@@ -0,0 +1,8 @@
+New variables
+
+| Variable | Description |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **rougail.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **rougail.dyn*val1*.variable**
**rougail.dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.html b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.html
new file mode 100644
index 000000000..be373008d
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.html
@@ -0,0 +1,12 @@
+New variables
+
+
+
+| Variable | Description |
+
+
+rougail.var string multiple standard mandatory unique | A suffix variable. Default: |
+rougail.dynval1.variable rougail.dynval2.variable string basic mandatory | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.md b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.md
new file mode 100644
index 000000000..3a1674383
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.md
@@ -0,0 +1,6 @@
+# New variables
+
+| Variable | Description |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **rougail.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **rougail.dyn*val1*.variable**
**rougail.dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.sh b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.sh
new file mode 100644
index 000000000..34f03d974
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.changelog.sh
@@ -0,0 +1,15 @@
+[1;4;96mNew variables[0m
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mrougail.var[0m โ A suffix variable. โ
+โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ [1mDefault[0m: โ
+โ [1;7mmandatory [0m [1;7m unique [0m โ โข val1 โ
+โ โ โข val2 โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mrougail.dyn[0m[1;3mval1[0m[1m.variable[0m โ A dynamic variable. โ
+โ [1mrougail.dyn[0m[1;3mval2[0m[1m.variable[0m โ โ
+โ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m โ โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.gitlab.md b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..9c5166b42
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,4 @@
+| Variable | Description |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **rougail.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **rougail.dyn*val1*.variable**
**rougail.dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.html b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..7d263d755
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.html
@@ -0,0 +1,10 @@
+
+
+| Variable | Description |
+
+
+rougail.var string multiple standard mandatory unique | A suffix variable. Default: |
+rougail.dynval1.variable rougail.dynval2.variable string basic mandatory | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.json b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.json
new file mode 100644
index 000000000..3b4e2b3bd
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.json
@@ -0,0 +1,106 @@
+{
+ "rougail": {
+ "type": "namespace",
+ "informations": {
+ "path": "rougail",
+ "name": "rougail",
+ "description": "Rougail",
+ "properties": [],
+ "mode": "basic",
+ "help": [
+ "This family is a namespace"
+ ]
+ },
+ "children": {
+ "var": {
+ "path": "rougail.var",
+ "name": "var",
+ "description": "A suffix variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "unique",
+ "ori_name": "unique",
+ "access_control": false
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": [
+ "val1",
+ "val2"
+ ]
+ },
+ "variable_type": "string",
+ "multiple": true
+ },
+ "dyn{{ identifier }}": {
+ "type": "dynamic",
+ "informations": {
+ "path": "rougail.dyn{{ identifier }}",
+ "name": "dyn{{ identifier }}",
+ "description": "A dynamic family",
+ "properties": [],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "help": [
+ "This family builds families dynamically"
+ ],
+ "identifier": [
+ {
+ "message": "the value of the variable {0}.",
+ "path": {
+ "path": "rougail.var",
+ "type": "variable"
+ },
+ "description": "A suffix variable"
+ }
+ ]
+ },
+ "children": {
+ "variable": {
+ "path": "rougail.dyn{{ identifier }}.variable",
+ "name": "variable",
+ "description": "A dynamic variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ }
+ ],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "type": "variable",
+ "variable_type": "string"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.md b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..9c5166b42
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.md
@@ -0,0 +1,4 @@
+| Variable | Description |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **rougail.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **rougail.dyn*val1*.variable**
**rougail.dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_variable.sh b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..0ee8b068b
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_variable.sh
@@ -0,0 +1,13 @@
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mrougail.var[0m โ A suffix variable. โ
+โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ [1mDefault[0m: โ
+โ [1;7mmandatory [0m [1;7m unique [0m โ โข val1 โ
+โ โ โข val2 โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mrougail.dyn[0m[1;3mval1[0m[1m.variable[0m โ A dynamic variable. โ
+โ [1mrougail.dyn[0m[1;3mval2[0m[1m.variable[0m โ โ
+โ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m โ โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results/test_namespace_without_family/warnings_60_0family_dynamic_variable b/tests/results/test_namespace_without_family/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace_without_family/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.adoc b/tests/results/test_without_family/60_0family_dynamic_variable.adoc
new file mode 100644
index 000000000..47aabbd06
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.adoc
@@ -0,0 +1,13 @@
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `multiple` `standard` `mandatory` `unique` | A suffix variable. +
+**Default**:
+
+* val1
+* val2
+| **dyn__val1__.variable** +
+**dyn__val2__.variable** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A dynamic variable.
+|====
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.changelog.adoc b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.adoc
new file mode 100644
index 000000000..e344e4012
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.adoc
@@ -0,0 +1,15 @@
+== New variables
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+| **var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `multiple` `standard` `mandatory` `unique` | A suffix variable. +
+**Default**:
+
+* val1
+* val2
+| **dyn__val1__.variable** +
+**dyn__val2__.variable** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A dynamic variable.
+|====
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.changelog.gitlab.md b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.gitlab.md
new file mode 100644
index 000000000..7694a6ae9
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.gitlab.md
@@ -0,0 +1,8 @@
+New variables
+
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **dyn*val1*.variable**
**dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.changelog.html b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.html
new file mode 100644
index 000000000..3f6bb64bf
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.html
@@ -0,0 +1,12 @@
+New variables
+
+
+
+| Variable | Description |
+
+
+var string multiple standard mandatory unique | A suffix variable. Default: |
+dynval1.variable dynval2.variable string basic mandatory | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.changelog.md b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.md
new file mode 100644
index 000000000..257e44c5a
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.md
@@ -0,0 +1,6 @@
+# New variables
+
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **dyn*val1*.variable**
**dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.changelog.sh b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.sh
new file mode 100644
index 000000000..24df8aa71
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.changelog.sh
@@ -0,0 +1,15 @@
+[1;4;96mNew variables[0m
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mvar[0m โ A suffix variable. โ
+โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ [1mDefault[0m: โ
+โ [1;7mmandatory [0m [1;7m unique [0m โ โข val1 โ
+โ โ โข val2 โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mdyn[0m[1;3mval1[0m[1m.variable[0m โ A dynamic variable. โ
+โ [1mdyn[0m[1;3mval2[0m[1m.variable[0m โ โ
+โ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m โ โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.gitlab.md b/tests/results/test_without_family/60_0family_dynamic_variable.gitlab.md
new file mode 100644
index 000000000..95b41c365
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.gitlab.md
@@ -0,0 +1,4 @@
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **dyn*val1*.variable**
**dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.html b/tests/results/test_without_family/60_0family_dynamic_variable.html
new file mode 100644
index 000000000..5f0d2c3ea
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.html
@@ -0,0 +1,10 @@
+
+
+| Variable | Description |
+
+
+var string multiple standard mandatory unique | A suffix variable. Default: |
+dynval1.variable dynval2.variable string basic mandatory | A dynamic variable. |
+
+
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.json b/tests/results/test_without_family/60_0family_dynamic_variable.json
new file mode 100644
index 000000000..3f94576cd
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.json
@@ -0,0 +1,91 @@
+{
+ "var": {
+ "path": "var",
+ "name": "var",
+ "description": "A suffix variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "unique",
+ "ori_name": "unique",
+ "access_control": false
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": [
+ "val1",
+ "val2"
+ ]
+ },
+ "variable_type": "string",
+ "multiple": true
+ },
+ "dyn{{ identifier }}": {
+ "type": "dynamic",
+ "informations": {
+ "path": "dyn{{ identifier }}",
+ "name": "dyn{{ identifier }}",
+ "description": "A dynamic family",
+ "properties": [],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "help": [
+ "This family builds families dynamically"
+ ],
+ "identifier": [
+ {
+ "message": "the value of the variable {0}.",
+ "path": {
+ "path": "var",
+ "type": "variable"
+ },
+ "description": "A suffix variable"
+ }
+ ]
+ },
+ "children": {
+ "variable": {
+ "path": "dyn{{ identifier }}.variable",
+ "name": "variable",
+ "description": "A dynamic variable.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ }
+ ],
+ "mode": "basic",
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "identifier_type": "many",
+ "type": "variable",
+ "variable_type": "string"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.md b/tests/results/test_without_family/60_0family_dynamic_variable.md
new file mode 100644
index 000000000..95b41c365
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.md
@@ -0,0 +1,4 @@
+| Variable | Description |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| **var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | A suffix variable.
**Default**:
โข val1
โข val2 |
+| **dyn*val1*.variable**
**dyn*val2*.variable**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
\ No newline at end of file
diff --git a/tests/results/test_without_family/60_0family_dynamic_variable.sh b/tests/results/test_without_family/60_0family_dynamic_variable.sh
new file mode 100644
index 000000000..2638a92ec
--- /dev/null
+++ b/tests/results/test_without_family/60_0family_dynamic_variable.sh
@@ -0,0 +1,13 @@
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mvar[0m โ A suffix variable. โ
+โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ [1mDefault[0m: โ
+โ [1;7mmandatory [0m [1;7m unique [0m โ โข val1 โ
+โ โ โข val2 โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mdyn[0m[1;3mval1[0m[1m.variable[0m โ A dynamic variable. โ
+โ [1mdyn[0m[1;3mval2[0m[1m.variable[0m โ โ
+โ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m โ โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results/test_without_family/warnings_60_0family_dynamic_variable b/tests/results/test_without_family/warnings_60_0family_dynamic_variable
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_without_family/warnings_60_0family_dynamic_variable
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results_tutorial/140/doc.json b/tests/results_tutorial/140/doc.json
index 63028886a..ca70cc943 100644
--- a/tests/results_tutorial/140/doc.json
+++ b/tests/results_tutorial/140/doc.json
@@ -481,12 +481,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/140/doc.sh b/tests/results_tutorial/140/doc.sh
index 638a872a2..b1d584729 100644
--- a/tests/results_tutorial/140/doc.sh
+++ b/tests/results_tutorial/140/doc.sh
@@ -175,11 +175,9 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/140/doc_changelog.sh b/tests/results_tutorial/140/doc_changelog.sh
index e69de29bb..f1ebdfeff 100644
--- a/tests/results_tutorial/140/doc_changelog.sh
+++ b/tests/results_tutorial/140/doc_changelog.sh
@@ -0,0 +1,18 @@
+[1;4;96mModified variable[0m
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
+โ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: [9mif "Configure Proxy Access[0m โ
+โ โ [9mto the Internet" (proxy_mode) is not[0m โ
+โ โ [9m"Manual proxy configuration"[0m โ
+โ โ [9mor "SOCKS host version used by [0m โ
+โ โ [9mproxy" (manual.socks_proxy.version) [0m โ
+โ โ [9mis "v4".[0m โ
+โ โ [4mif "SOCKS host version used by [0m โ
+โ โ [4mproxy" (manual.socks_proxy.version) [0m โ
+โ โ [4mis accessible and equals "v4".[0m โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results_tutorial/150/doc.json b/tests/results_tutorial/150/doc.json
index 90d123139..10dca0a01 100644
--- a/tests/results_tutorial/150/doc.json
+++ b/tests/results_tutorial/150/doc.json
@@ -481,12 +481,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/150/doc.sh b/tests/results_tutorial/150/doc.sh
index 5958a0f4d..0265008db 100644
--- a/tests/results_tutorial/150/doc.sh
+++ b/tests/results_tutorial/150/doc.sh
@@ -175,11 +175,9 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/150/doc_changelog.sh b/tests/results_tutorial/150/doc_changelog.sh
index ce67879f3..671eab182 100644
--- a/tests/results_tutorial/150/doc_changelog.sh
+++ b/tests/results_tutorial/150/doc_changelog.sh
@@ -5,11 +5,9 @@
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m [0m[1;7;9mstandard[0m[1;7m [0m [1;7m [0m[1;4;7madvanced[0m[1;7m [0m [1;7m boolean [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;7madvanced [0m [1;7m mandatory [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;7madvanced [0m [1;7m mandatory [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/160/doc.json b/tests/results_tutorial/160/doc.json
index 9ddc5bb61..d80e7ff6f 100644
--- a/tests/results_tutorial/160/doc.json
+++ b/tests/results_tutorial/160/doc.json
@@ -481,12 +481,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/160/doc.sh b/tests/results_tutorial/160/doc.sh
index bb09da909..e62681e7f 100644
--- a/tests/results_tutorial/160/doc.sh
+++ b/tests/results_tutorial/160/doc.sh
@@ -175,12 +175,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;96mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/161/doc.json b/tests/results_tutorial/161/doc.json
index 2ac054b28..c2f83e26b 100644
--- a/tests/results_tutorial/161/doc.json
+++ b/tests/results_tutorial/161/doc.json
@@ -481,12 +481,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/161/doc.sh b/tests/results_tutorial/161/doc.sh
index 5723060cc..c2ef21e19 100644
--- a/tests/results_tutorial/161/doc.sh
+++ b/tests/results_tutorial/161/doc.sh
@@ -175,12 +175,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;96mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/162/doc.json b/tests/results_tutorial/162/doc.json
index 47a13b5fb..d2a22c652 100644
--- a/tests/results_tutorial/162/doc.json
+++ b/tests/results_tutorial/162/doc.json
@@ -481,12 +481,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/162/doc.sh b/tests/results_tutorial/162/doc.sh
index 74898ce75..7b54feac9 100644
--- a/tests/results_tutorial/162/doc.sh
+++ b/tests/results_tutorial/162/doc.sh
@@ -175,12 +175,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;96mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/170/doc.json b/tests/results_tutorial/170/doc.json
index f407ce84f..e616ea953 100644
--- a/tests/results_tutorial/170/doc.json
+++ b/tests/results_tutorial/170/doc.json
@@ -481,12 +481,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/170/doc.sh b/tests/results_tutorial/170/doc.sh
index 534d54bf1..aa7f5c33f 100644
--- a/tests/results_tutorial/170/doc.sh
+++ b/tests/results_tutorial/170/doc.sh
@@ -175,12 +175,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mproxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" (proxy_mode) is not โ
-โ โ "Manual proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" (manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
+โ โ (manual.socks_proxy.version) is โ
+โ โ accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;96mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/180/doc.json b/tests/results_tutorial/180/doc.json
index e582fc495..358ee6156 100644
--- a/tests/results_tutorial/180/doc.json
+++ b/tests/results_tutorial/180/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/180/doc.sh b/tests/results_tutorial/180/doc.sh
index fd5b99863..2315f6324 100644
--- a/tests/results_tutorial/180/doc.sh
+++ b/tests/results_tutorial/180/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/180/doc_changelog.sh b/tests/results_tutorial/180/doc_changelog.sh
index f6dadab88..0fa2febee 100644
--- a/tests/results_tutorial/180/doc_changelog.sh
+++ b/tests/results_tutorial/180/doc_changelog.sh
@@ -125,14 +125,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.dns_over_https.enable_dns_ovโฆ[0m โ Enable DNS over HTTPS. โ
โ [1;7m boolean [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mDefault[0m: false โ
diff --git a/tests/results_tutorial/181/doc.json b/tests/results_tutorial/181/doc.json
index e582fc495..358ee6156 100644
--- a/tests/results_tutorial/181/doc.json
+++ b/tests/results_tutorial/181/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/181/doc.sh b/tests/results_tutorial/181/doc.sh
index fd5b99863..2315f6324 100644
--- a/tests/results_tutorial/181/doc.sh
+++ b/tests/results_tutorial/181/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/190/doc.json b/tests/results_tutorial/190/doc.json
index 0b0279d50..f4b43cbb5 100644
--- a/tests/results_tutorial/190/doc.json
+++ b/tests/results_tutorial/190/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/190/doc.sh b/tests/results_tutorial/190/doc.sh
index 0ebf23d1e..fd8b052e4 100644
--- a/tests/results_tutorial/190/doc.sh
+++ b/tests/results_tutorial/190/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/200/doc.json b/tests/results_tutorial/200/doc.json
index 0d1bde103..3e2dca810 100644
--- a/tests/results_tutorial/200/doc.json
+++ b/tests/results_tutorial/200/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/200/doc.sh b/tests/results_tutorial/200/doc.sh
index fb59fdd66..f8a81ab0e 100644
--- a/tests/results_tutorial/200/doc.sh
+++ b/tests/results_tutorial/200/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/201/doc.json b/tests/results_tutorial/201/doc.json
index 713102c4d..bcd5ad7d9 100644
--- a/tests/results_tutorial/201/doc.json
+++ b/tests/results_tutorial/201/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
diff --git a/tests/results_tutorial/201/doc.sh b/tests/results_tutorial/201/doc.sh
index 5c9c3fb42..d17cec09a 100644
--- a/tests/results_tutorial/201/doc.sh
+++ b/tests/results_tutorial/201/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/202/doc_changelog.sh b/tests/results_tutorial/202/doc_changelog.sh
deleted file mode 100644
index 6ca22210d..000000000
--- a/tests/results_tutorial/202/doc_changelog.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-[1;4;96mModified variable[0m
-
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
-โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
-โ [1mfoxyproxy.proxies.color[0m โ Color. โ
-โ [1;7m [0m[1;7;9mstandard[0m[1;7m [0m [1;7m [0m[1;4;7mbasic[0m[1;7m [0m [1;7m regexp [0m [1;7m basic [0m [1;7m [0m โ [1mValidator[0m: text based with regular โ
-โ [1;7mmandatory [0m [1;7m [0m[1;4;7mauto modified[0m[1;7m [0m โ expressions โ
-โ โ "^#(?:[0-9a-f]{3}){1,2}$" โ
-โ โ [1mDefault[0m: random color value. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-
diff --git a/tests/results_tutorial/210/doc.json b/tests/results_tutorial/210/doc.json
index 42222e6c8..1d47994f2 100644
--- a/tests/results_tutorial/210/doc.json
+++ b/tests/results_tutorial/210/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
@@ -680,39 +676,6 @@
"variable_type": "string",
"multiple": true
},
- "type": {
- "path": "foxyproxy.proxies.type",
- "name": "type",
- "description": "Proxy Type.",
- "properties": [
- {
- "type": "property",
- "name": "mandatory",
- "ori_name": "mandatory",
- "access_control": false
- }
- ],
- "mode": "standard",
- "type": "variable",
- "default": {
- "name": "Default",
- "values": "Direct (no proxy)"
- },
- "variable_type": "choice",
- "choices": {
- "name": "Choices",
- "values": [
- "HTTP",
- "HTTPS/SSL",
- "SOCKS4",
- "SOCKS5",
- "PAC URL",
- "WPAD",
- "System (use system settings)",
- "Direct (no proxy)"
- ]
- }
- },
"color": {
"path": "foxyproxy.proxies.color",
"name": "color",
diff --git a/tests/results_tutorial/210/doc.sh b/tests/results_tutorial/210/doc.sh
index 87f73bcdb..d765a6a23 100644
--- a/tests/results_tutorial/210/doc.sh
+++ b/tests/results_tutorial/210/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
@@ -253,17 +249,6 @@
โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ โ
โ [1;7munique [0m โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.type[0m โ Proxy Type. โ
-โ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mChoices[0m: โ
-โ โ โข HTTP โ
-โ โ โข HTTPS/SSL โ
-โ โ โข SOCKS4 โ
-โ โ โข SOCKS5 โ
-โ โ โข PAC URL โ
-โ โ โข WPAD โ
-โ โ โข System (use system settings) โ
-โ โ โข Direct (no proxy) [1mโ (default)[0m โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfoxyproxy.proxies.color[0m โ Color. โ
โ [1;7m regexp [0m [1;7m basic [0m [1;7m mandatory [0m [1;7m auto [0m โ [1mValidator[0m: text based with regular โ
โ [1;7mmodified [0m โ expressions โ
diff --git a/tests/results_tutorial/210/doc_changelog.sh b/tests/results_tutorial/210/doc_changelog.sh
index 7662b21fa..6ca22210d 100644
--- a/tests/results_tutorial/210/doc_changelog.sh
+++ b/tests/results_tutorial/210/doc_changelog.sh
@@ -1,17 +1,12 @@
-[1;4;96mNew variable[0m
+[1;4;96mModified variable[0m
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
-โ [1mfoxyproxy.proxies.type[0m โ Proxy Type. โ
-โ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mChoices[0m: โ
-โ โ โข HTTP โ
-โ โ โข HTTPS/SSL โ
-โ โ โข SOCKS4 โ
-โ โ โข SOCKS5 โ
-โ โ โข PAC URL โ
-โ โ โข WPAD โ
-โ โ โข System (use system settings) โ
-โ โ โข Direct (no proxy) [1mโ (default)[0m โ
+โ [1mfoxyproxy.proxies.color[0m โ Color. โ
+โ [1;7m [0m[1;7;9mstandard[0m[1;7m [0m [1;7m [0m[1;4;7mbasic[0m[1;7m [0m [1;7m regexp [0m [1;7m basic [0m [1;7m [0m โ [1mValidator[0m: text based with regular โ
+โ [1;7mmandatory [0m [1;7m [0m[1;4;7mauto modified[0m[1;7m [0m โ expressions โ
+โ โ "^#(?:[0-9a-f]{3}){1,2}$" โ
+โ โ [1mDefault[0m: random color value. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/220/doc.json b/tests/results_tutorial/220/doc.json
index 951aae8f2..7af429484 100644
--- a/tests/results_tutorial/220/doc.json
+++ b/tests/results_tutorial/220/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
@@ -745,139 +741,6 @@
"name": "Validator",
"values": "text based with regular expressions \"^#(?:[0-9a-f]{3}){1,2}$\""
}
- },
- "address": {
- "path": "foxyproxy.proxies.address",
- "name": "address",
- "description": "IP address, DNS name, server name.",
- "properties": [
- {
- "type": "property",
- "name": "mandatory",
- "ori_name": "mandatory",
- "access_control": false
- },
- {
- "type": "property",
- "name": "disabled",
- "ori_name": "disabled",
- "access_control": true,
- "annotation": {
- "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
- "type": "jinja"
- }
- }
- ],
- "mode": "standard",
- "type": "variable",
- "default": {
- "name": "Default",
- "values": {
- "description": "copy HTTP address if proxy is not \"Manual\".",
- "type": "variable",
- "ori_path": "firefox.manual.http_proxy.address",
- "optional": false,
- "propertyerror": false
- }
- },
- "variable_type": "domainname",
- "validators": {
- "name": "Validators",
- "values": [
- "type domainname",
- "the domain name can be a hostname",
- "the domain name can be an IP"
- ]
- }
- },
- "port": {
- "path": "foxyproxy.proxies.port",
- "name": "port",
- "description": "Port.",
- "properties": [
- {
- "type": "property",
- "name": "mandatory",
- "ori_name": "mandatory",
- "access_control": false
- },
- {
- "type": "property",
- "name": "disabled",
- "ori_name": "disabled",
- "access_control": true,
- "annotation": {
- "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
- "type": "jinja"
- }
- }
- ],
- "mode": "standard",
- "type": "variable",
- "default": {
- "name": "Default",
- "values": {
- "description": "copy HTTP port if proxy is not \"Manual\".",
- "type": "variable",
- "ori_path": "firefox.manual.http_proxy.port",
- "optional": false,
- "propertyerror": false
- }
- },
- "variable_type": "port",
- "validators": {
- "name": "Validators",
- "values": [
- "well-known ports (1 to 1023) are allowed",
- "registred ports (1024 to 49151) are allowed",
- "private ports (greater than 49152) are allowed"
- ]
- }
- },
- "url": {
- "path": "foxyproxy.proxies.url",
- "name": "url",
- "description": "URL.",
- "properties": [
- {
- "type": "property",
- "name": "mandatory",
- "ori_name": "mandatory",
- "access_control": false
- },
- {
- "type": "property",
- "name": "disabled",
- "ori_name": "disabled",
- "access_control": true,
- "annotation": {
- "description": "if type is not in:\n- PAC URL\n- WPAD.",
- "type": "jinja"
- }
- }
- ],
- "mode": "standard",
- "type": "variable",
- "default": {
- "name": "Default",
- "values": {
- "description": "copy HTTP address if proxy is \"Auto\".",
- "type": "variable",
- "ori_path": "firefox.auto",
- "optional": false,
- "propertyerror": false
- }
- },
- "variable_type": "web address",
- "validators": {
- "name": "Validators",
- "values": [
- "well-known ports (1 to 1023) are allowed",
- "registred ports (1024 to 49151) are allowed",
- "type domainname",
- "the domain name can be a hostname"
- ]
- }
}
}
}
diff --git a/tests/results_tutorial/220/doc.sh b/tests/results_tutorial/220/doc.sh
index ab17ac83a..c10c658a4 100644
--- a/tests/results_tutorial/220/doc.sh
+++ b/tests/results_tutorial/220/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
@@ -269,48 +265,5 @@
โ [1;7mmodified [0m โ expressions โ
โ โ "^#(?:[0-9a-f]{3}){1,2}$" โ
โ โ [1mDefault[0m: random color value. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.address[0m โ IP address, DNS name, server name. โ
-โ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ โข type domainname โ
-โ โ โข the domain name can be a hostname โ
-โ โ โข the domain name can be an IP โ
-โ โ [1mDefault[0m: copy HTTP address if proxy โ
-โ โ is not "Manual". โ
-โ โ [1mDisabled[0m: if type not in: โ
-โ โ - HTTP โ
-โ โ - HTTPS/SSL โ
-โ โ - SOCKS4 โ
-โ โ - SOCKS5. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.port[0m โ Port. โ
-โ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
-โ โ allowed โ
-โ โ โข registred ports (1024 to 49151) โ
-โ โ are allowed โ
-โ โ โข private ports (greater than 49152) โ
-โ โ are allowed โ
-โ โ [1mDefault[0m: copy HTTP port if proxy is โ
-โ โ not "Manual". โ
-โ โ [1mDisabled[0m: if type not in: โ
-โ โ - HTTP โ
-โ โ - HTTPS/SSL โ
-โ โ - SOCKS4 โ
-โ โ - SOCKS5. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.url[0m โ URL. โ
-โ [1;7m web address [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mValidators[0m: โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
-โ โ allowed โ
-โ โ โข registred ports (1024 to 49151) โ
-โ โ are allowed โ
-โ โ โข type domainname โ
-โ โ โข the domain name can be a hostname โ
-โ โ [1mDefault[0m: copy HTTP address if proxy โ
-โ โ is "Auto". โ
-โ โ [1mDisabled[0m: if type is not in: โ
-โ โ - PAC URL โ
-โ โ - WPAD. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/220/doc_changelog.sh b/tests/results_tutorial/220/doc_changelog.sh
index 12191d472..7662b21fa 100644
--- a/tests/results_tutorial/220/doc_changelog.sh
+++ b/tests/results_tutorial/220/doc_changelog.sh
@@ -1,49 +1,17 @@
-[1;4;96mNew variables[0m
+[1;4;96mNew variable[0m
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
-โ [1mfoxyproxy.proxies.address[0m โ IP address, DNS name, server name. โ
-โ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ โข type domainname โ
-โ โ โข the domain name can be a hostname โ
-โ โ โข the domain name can be an IP โ
-โ โ [1mDefault[0m: copy HTTP address if proxy โ
-โ โ is not "Manual". โ
-โ โ [1mDisabled[0m: if type not in: โ
-โ โ - HTTP โ
-โ โ - HTTPS/SSL โ
-โ โ - SOCKS4 โ
-โ โ - SOCKS5. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.port[0m โ Port. โ
-โ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
-โ โ allowed โ
-โ โ โข registred ports (1024 to 49151) โ
-โ โ are allowed โ
-โ โ โข private ports (greater than 49152) โ
-โ โ are allowed โ
-โ โ [1mDefault[0m: copy HTTP port if proxy is โ
-โ โ not "Manual". โ
-โ โ [1mDisabled[0m: if type not in: โ
-โ โ - HTTP โ
-โ โ - HTTPS/SSL โ
-โ โ - SOCKS4 โ
-โ โ - SOCKS5. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.url[0m โ URL. โ
-โ [1;7m web address [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mValidators[0m: โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
-โ โ allowed โ
-โ โ โข registred ports (1024 to 49151) โ
-โ โ are allowed โ
-โ โ โข type domainname โ
-โ โ โข the domain name can be a hostname โ
-โ โ [1mDefault[0m: copy HTTP address if proxy โ
-โ โ is "Auto". โ
-โ โ [1mDisabled[0m: if type is not in: โ
-โ โ - PAC URL โ
-โ โ - WPAD. โ
+โ [1mfoxyproxy.proxies.type[0m โ Proxy Type. โ
+โ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mChoices[0m: โ
+โ โ โข HTTP โ
+โ โ โข HTTPS/SSL โ
+โ โ โข SOCKS4 โ
+โ โ โข SOCKS5 โ
+โ โ โข PAC URL โ
+โ โ โข WPAD โ
+โ โ โข System (use system settings) โ
+โ โ โข Direct (no proxy) [1mโ (default)[0m โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/230/doc.json b/tests/results_tutorial/230/doc.json
index b39ccf21a..14f623d4a 100644
--- a/tests/results_tutorial/230/doc.json
+++ b/tests/results_tutorial/230/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
@@ -834,56 +830,6 @@
]
}
},
- "username": {
- "path": "foxyproxy.proxies.username",
- "name": "username",
- "description": "Username.",
- "properties": [
- {
- "type": "property",
- "name": "mandatory",
- "ori_name": "mandatory",
- "access_control": false,
- "annotation": {
- "description": "if a password is set.",
- "type": "jinja"
- }
- },
- {
- "type": "property",
- "name": "disabled",
- "ori_name": "disabled",
- "access_control": true,
- "annotation": {
- "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
- "type": "jinja"
- }
- }
- ],
- "mode": "standard",
- "type": "variable",
- "variable_type": "UNIX user"
- },
- "password": {
- "path": "foxyproxy.proxies.password",
- "name": "password",
- "description": "Password.",
- "properties": [
- {
- "type": "property",
- "name": "disabled",
- "ori_name": "disabled",
- "access_control": true,
- "annotation": {
- "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
- "type": "jinja"
- }
- }
- ],
- "mode": "standard",
- "type": "variable",
- "variable_type": "secret"
- },
"url": {
"path": "foxyproxy.proxies.url",
"name": "url",
diff --git a/tests/results_tutorial/230/doc.sh b/tests/results_tutorial/230/doc.sh
index 1462f00b4..683f7dfb1 100644
--- a/tests/results_tutorial/230/doc.sh
+++ b/tests/results_tutorial/230/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
@@ -299,21 +295,6 @@
โ โ - SOCKS4 โ
โ โ - SOCKS5. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.username[0m โ Username. โ
-โ [1;7m UNIX user [0m [1;7m standard [0m [1;7m [0m[1;3;7mmandatory[0m[1;7m [0m [1;7m [0m โ [1mMandatory[0m: if a password is set. โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
-โ โ - HTTP โ
-โ โ - HTTPS/SSL โ
-โ โ - SOCKS4 โ
-โ โ - SOCKS5. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.password[0m โ Password. โ
-โ [1;7m secret [0m [1;7m standard [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
-โ โ - HTTP โ
-โ โ - HTTPS/SSL โ
-โ โ - SOCKS4 โ
-โ โ - SOCKS5. โ
-โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfoxyproxy.proxies.url[0m โ URL. โ
โ [1;7m web address [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mValidators[0m: โ
โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
diff --git a/tests/results_tutorial/230/doc_changelog.sh b/tests/results_tutorial/230/doc_changelog.sh
index 84bac03f6..12191d472 100644
--- a/tests/results_tutorial/230/doc_changelog.sh
+++ b/tests/results_tutorial/230/doc_changelog.sh
@@ -3,19 +3,47 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
-โ [1mfoxyproxy.proxies.username[0m โ Username. โ
-โ [1;7m UNIX user [0m [1;7m standard [0m [1;7m [0m[1;3;7mmandatory[0m[1;7m [0m [1;7m [0m โ [1mMandatory[0m: if a password is set. โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
+โ [1mfoxyproxy.proxies.address[0m โ IP address, DNS name, server name. โ
+โ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ โข type domainname โ
+โ โ โข the domain name can be a hostname โ
+โ โ โข the domain name can be an IP โ
+โ โ [1mDefault[0m: copy HTTP address if proxy โ
+โ โ is not "Manual". โ
+โ โ [1mDisabled[0m: if type not in: โ
โ โ - HTTP โ
โ โ - HTTPS/SSL โ
โ โ - SOCKS4 โ
โ โ - SOCKS5. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
-โ [1mfoxyproxy.proxies.password[0m โ Password. โ
-โ [1;7m secret [0m [1;7m standard [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
+โ [1mfoxyproxy.proxies.port[0m โ Port. โ
+โ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
+โ โ allowed โ
+โ โ โข registred ports (1024 to 49151) โ
+โ โ are allowed โ
+โ โ โข private ports (greater than 49152) โ
+โ โ are allowed โ
+โ โ [1mDefault[0m: copy HTTP port if proxy is โ
+โ โ not "Manual". โ
+โ โ [1mDisabled[0m: if type not in: โ
โ โ - HTTP โ
โ โ - HTTPS/SSL โ
โ โ - SOCKS4 โ
โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.url[0m โ URL. โ
+โ [1;7m web address [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mValidators[0m: โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
+โ โ allowed โ
+โ โ โข registred ports (1024 to 49151) โ
+โ โ are allowed โ
+โ โ โข type domainname โ
+โ โ โข the domain name can be a hostname โ
+โ โ [1mDefault[0m: copy HTTP address if proxy โ
+โ โ is "Auto". โ
+โ โ [1mDisabled[0m: if type is not in: โ
+โ โ - PAC URL โ
+โ โ - WPAD. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/202/doc.json b/tests/results_tutorial/240/doc.json
similarity index 75%
rename from tests/results_tutorial/202/doc.json
rename to tests/results_tutorial/240/doc.json
index d4c5d84d8..9c0304c98 100644
--- a/tests/results_tutorial/202/doc.json
+++ b/tests/results_tutorial/240/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
@@ -680,6 +676,39 @@
"variable_type": "string",
"multiple": true
},
+ "type": {
+ "path": "foxyproxy.proxies.type",
+ "name": "type",
+ "description": "Proxy Type.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": "Direct (no proxy)"
+ },
+ "variable_type": "choice",
+ "choices": {
+ "name": "Choices",
+ "values": [
+ "HTTP",
+ "HTTPS/SSL",
+ "SOCKS4",
+ "SOCKS5",
+ "PAC URL",
+ "WPAD",
+ "System (use system settings)",
+ "Direct (no proxy)"
+ ]
+ }
+ },
"color": {
"path": "foxyproxy.proxies.color",
"name": "color",
@@ -712,6 +741,192 @@
"name": "Validator",
"values": "text based with regular expressions \"^#(?:[0-9a-f]{3}){1,2}$\""
}
+ },
+ "address": {
+ "path": "foxyproxy.proxies.address",
+ "name": "address",
+ "description": "IP address, DNS name, server name.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "disabled",
+ "ori_name": "disabled",
+ "access_control": true,
+ "annotation": {
+ "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
+ "type": "jinja"
+ }
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": {
+ "description": "copy HTTP address if proxy is not \"Manual\".",
+ "type": "variable",
+ "ori_path": "firefox.manual.http_proxy.address",
+ "optional": false,
+ "propertyerror": false
+ }
+ },
+ "variable_type": "domainname",
+ "validators": {
+ "name": "Validators",
+ "values": [
+ "type domainname",
+ "the domain name can be a hostname",
+ "the domain name can be an IP"
+ ]
+ }
+ },
+ "port": {
+ "path": "foxyproxy.proxies.port",
+ "name": "port",
+ "description": "Port.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "disabled",
+ "ori_name": "disabled",
+ "access_control": true,
+ "annotation": {
+ "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
+ "type": "jinja"
+ }
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": {
+ "description": "copy HTTP port if proxy is not \"Manual\".",
+ "type": "variable",
+ "ori_path": "firefox.manual.http_proxy.port",
+ "optional": false,
+ "propertyerror": false
+ }
+ },
+ "variable_type": "port",
+ "validators": {
+ "name": "Validators",
+ "values": [
+ "well-known ports (1 to 1023) are allowed",
+ "registred ports (1024 to 49151) are allowed",
+ "private ports (greater than 49152) are allowed"
+ ]
+ }
+ },
+ "username": {
+ "path": "foxyproxy.proxies.username",
+ "name": "username",
+ "description": "Username.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false,
+ "annotation": {
+ "message": "when the variable {0} hasn't the value \"null\".",
+ "path": {
+ "path": "foxyproxy.proxies.password"
+ },
+ "description": "Password"
+ }
+ },
+ {
+ "type": "property",
+ "name": "disabled",
+ "ori_name": "disabled",
+ "access_control": true,
+ "annotation": {
+ "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
+ "type": "jinja"
+ }
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "variable_type": "UNIX user"
+ },
+ "password": {
+ "path": "foxyproxy.proxies.password",
+ "name": "password",
+ "description": "Password.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "disabled",
+ "ori_name": "disabled",
+ "access_control": true,
+ "annotation": {
+ "description": "if type not in:\n- HTTP\n- HTTPS/SSL\n- SOCKS4\n- SOCKS5.",
+ "type": "jinja"
+ }
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "variable_type": "secret"
+ },
+ "url": {
+ "path": "foxyproxy.proxies.url",
+ "name": "url",
+ "description": "URL.",
+ "properties": [
+ {
+ "type": "property",
+ "name": "mandatory",
+ "ori_name": "mandatory",
+ "access_control": false
+ },
+ {
+ "type": "property",
+ "name": "disabled",
+ "ori_name": "disabled",
+ "access_control": true,
+ "annotation": {
+ "description": "if type is not in:\n- PAC URL\n- WPAD.",
+ "type": "jinja"
+ }
+ }
+ ],
+ "mode": "standard",
+ "type": "variable",
+ "default": {
+ "name": "Default",
+ "values": {
+ "description": "copy HTTP address if proxy is \"Auto\".",
+ "type": "variable",
+ "ori_path": "firefox.auto",
+ "optional": false,
+ "propertyerror": false
+ }
+ },
+ "variable_type": "web address",
+ "validators": {
+ "name": "Validators",
+ "values": [
+ "well-known ports (1 to 1023) are allowed",
+ "registred ports (1024 to 49151) are allowed",
+ "type domainname",
+ "the domain name can be a hostname"
+ ]
+ }
}
}
}
diff --git a/tests/results_tutorial/202/doc.sh b/tests/results_tutorial/240/doc.sh
similarity index 77%
rename from tests/results_tutorial/202/doc.sh
rename to tests/results_tutorial/240/doc.sh
index e468adc1f..cad9b9b69 100644
--- a/tests/results_tutorial/202/doc.sh
+++ b/tests/results_tutorial/240/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
@@ -253,10 +249,82 @@
โ [1;7m string [0m [1;7m multiple [0m [1;7m standard [0m [1;7m [0m โ โ
โ [1;7munique [0m โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.type[0m โ Proxy Type. โ
+โ [1;7m choice [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mChoices[0m: โ
+โ โ โข HTTP โ
+โ โ โข HTTPS/SSL โ
+โ โ โข SOCKS4 โ
+โ โ โข SOCKS5 โ
+โ โ โข PAC URL โ
+โ โ โข WPAD โ
+โ โ โข System (use system settings) โ
+โ โ โข Direct (no proxy) [1mโ (default)[0m โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfoxyproxy.proxies.color[0m โ Color. โ
โ [1;7m regexp [0m [1;7m basic [0m [1;7m mandatory [0m [1;7m auto [0m โ [1mValidator[0m: text based with regular โ
โ [1;7mmodified [0m โ expressions โ
โ โ "^#(?:[0-9a-f]{3}){1,2}$" โ
โ โ [1mDefault[0m: random color value. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.address[0m โ IP address, DNS name, server name. โ
+โ [1;7m domainname [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ โข type domainname โ
+โ โ โข the domain name can be a hostname โ
+โ โ โข the domain name can be an IP โ
+โ โ [1mDefault[0m: copy HTTP address if proxy โ
+โ โ is not "Manual". โ
+โ โ [1mDisabled[0m: if type not in: โ
+โ โ - HTTP โ
+โ โ - HTTPS/SSL โ
+โ โ - SOCKS4 โ
+โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.port[0m โ Port. โ
+โ [1;7m port [0m [1;7m standard [0m [1;7m mandatory [0m [1;7m [0m โ [1mValidators[0m: โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
+โ โ allowed โ
+โ โ โข registred ports (1024 to 49151) โ
+โ โ are allowed โ
+โ โ โข private ports (greater than 49152) โ
+โ โ are allowed โ
+โ โ [1mDefault[0m: copy HTTP port if proxy is โ
+โ โ not "Manual". โ
+โ โ [1mDisabled[0m: if type not in: โ
+โ โ - HTTP โ
+โ โ - HTTPS/SSL โ
+โ โ - SOCKS4 โ
+โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.username[0m โ Username. โ
+โ [1;7m UNIX user [0m [1;7m standard [0m [1;7m [0m[1;3;7mmandatory[0m[1;7m [0m [1;7m [0m โ [1mMandatory[0m: when the variable โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ "Password" โ
+โ โ (foxyproxy.proxies.password) hasn't โ
+โ โ the value "null". โ
+โ โ [1mDisabled[0m: if type not in: โ
+โ โ - HTTP โ
+โ โ - HTTPS/SSL โ
+โ โ - SOCKS4 โ
+โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.password[0m โ Password. โ
+โ [1;7m secret [0m [1;7m standard [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
+โ โ - HTTP โ
+โ โ - HTTPS/SSL โ
+โ โ - SOCKS4 โ
+โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.url[0m โ URL. โ
+โ [1;7m web address [0m [1;7m standard [0m [1;7m mandatory [0m โ [1mValidators[0m: โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ โข well-known ports (1 to 1023) are โ
+โ โ allowed โ
+โ โ โข registred ports (1024 to 49151) โ
+โ โ are allowed โ
+โ โ โข type domainname โ
+โ โ โข the domain name can be a hostname โ
+โ โ [1mDefault[0m: copy HTTP address if proxy โ
+โ โ is "Auto". โ
+โ โ [1mDisabled[0m: if type is not in: โ
+โ โ - PAC URL โ
+โ โ - WPAD. โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
diff --git a/tests/results_tutorial/240/doc_changelog.sh b/tests/results_tutorial/240/doc_changelog.sh
new file mode 100644
index 000000000..94d839ac3
--- /dev/null
+++ b/tests/results_tutorial/240/doc_changelog.sh
@@ -0,0 +1,24 @@
+[1;4;96mNew variables[0m
+
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
+โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
+โ [1mfoxyproxy.proxies.username[0m โ Username. โ
+โ [1;7m UNIX user [0m [1;7m standard [0m [1;7m [0m[1;3;7mmandatory[0m[1;7m [0m [1;7m [0m โ [1mMandatory[0m: when the variable โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ "Password" โ
+โ โ (foxyproxy.proxies.password) hasn't โ
+โ โ the value "null". โ
+โ โ [1mDisabled[0m: if type not in: โ
+โ โ - HTTP โ
+โ โ - HTTPS/SSL โ
+โ โ - SOCKS4 โ
+โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
+โ [1mfoxyproxy.proxies.password[0m โ Password. โ
+โ [1;7m secret [0m [1;7m standard [0m [1;7m [0m[1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
+โ โ - HTTP โ
+โ โ - HTTPS/SSL โ
+โ โ - SOCKS4 โ
+โ โ - SOCKS5. โ
+โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
+
diff --git a/tests/results_tutorial/231/doc.json b/tests/results_tutorial/241/doc.json
similarity index 99%
rename from tests/results_tutorial/231/doc.json
rename to tests/results_tutorial/241/doc.json
index 0af36ce07..6435378fb 100644
--- a/tests/results_tutorial/231/doc.json
+++ b/tests/results_tutorial/241/doc.json
@@ -494,12 +494,8 @@
"ori_name": "disabled",
"access_control": true,
"annotation": {
- "description": "if {0} is not \"Manual proxy configuration\"\nor {1} is \"v4\".",
+ "description": "if {0} is accessible and equals \"v4\".",
"variables": [
- {
- "path": "firefox.proxy_mode",
- "description": "Configure Proxy Access to the Internet"
- },
{
"path": "firefox.manual.socks_proxy.version",
"description": "SOCKS host version used by proxy"
@@ -866,7 +862,10 @@
"access_control": true,
"annotation": {
"description": "if username is empty.",
- "type": "jinja"
+ "type": "variable",
+ "ori_path": "foxyproxy.proxies.username",
+ "optional": false,
+ "propertyerror": true
}
},
{
diff --git a/tests/results_tutorial/231/doc.sh b/tests/results_tutorial/241/doc.sh
similarity index 98%
rename from tests/results_tutorial/231/doc.sh
rename to tests/results_tutorial/241/doc.sh
index e5561ab65..6d1bfc468 100644
--- a/tests/results_tutorial/231/doc.sh
+++ b/tests/results_tutorial/241/doc.sh
@@ -183,14 +183,10 @@
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [1mfirefox.proxy_dns_socks5[0m โ Use proxy DNS when using SOCKS v5. โ
โ [1;7m boolean [0m [1;7m advanced [0m [1;7m mandatory [0m [1;7m [0m โ [1mDefault[0m: false โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "Configure Proxy Access โ
-โ โ to the Internet" โ
-โ โ (firefox.proxy_mode) is not "Manual โ
-โ โ proxy configuration" โ
-โ โ or "SOCKS host version used by โ
-โ โ proxy" โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if "SOCKS host version โ
+โ โ used by proxy" โ
โ โ (firefox.manual.socks_proxy.version) โ
-โ โ is "v4". โ
+โ โ is accessible and equals "v4". โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[1;4;92mDNS over HTTPS[0m
diff --git a/tests/results_tutorial/231/doc_changelog.sh b/tests/results_tutorial/241/doc_changelog.sh
similarity index 86%
rename from tests/results_tutorial/231/doc_changelog.sh
rename to tests/results_tutorial/241/doc_changelog.sh
index 3d0b3d3ce..da8670792 100644
--- a/tests/results_tutorial/231/doc_changelog.sh
+++ b/tests/results_tutorial/241/doc_changelog.sh
@@ -4,8 +4,11 @@
โ[1m [0m[1mVariable [0m[1m [0mโ[1m [0m[1mDescription [0m[1m [0mโ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ [1mfoxyproxy.proxies.username[0m โ Username. โ
-โ [1;7m [0m[1;7;9mmandatory[0m[1;7m [0m [1;7m UNIX user [0m [1;7m standard [0m [1;7m [0m โ [1mMandatory[0m: [9mif a password is set.[0m โ
-โ [1;3;7mdisabled[0m[1;7m [0m โ [1mDisabled[0m: if type not in: โ
+โ [1;7m [0m[1;7;9mmandatory[0m[1;7m [0m [1;7m UNIX user [0m [1;7m standard [0m [1;7m [0m โ [1mMandatory[0m: [9mwhen the variable [0m โ
+โ [1;3;7mdisabled[0m[1;7m [0m โ [9m"Password" [0m โ
+โ โ [9m(foxyproxy.proxies.password) hasn't [0m โ
+โ โ [9mthe value "null".[0m โ
+โ โ [1mDisabled[0m: if type not in: โ
โ โ - HTTP โ
โ โ - HTTPS/SSL โ
โ โ - SOCKS4 โ