diff --git a/src/rougail/output_doc/utils.py b/src/rougail/output_doc/utils.py
index ed76139cb..7572ce37e 100644
--- a/src/rougail/output_doc/utils.py
+++ b/src/rougail/output_doc/utils.py
@@ -808,14 +808,15 @@ class CommonFormater:
submessage, msg = self.message_to_string(msg, submessage)
if isinstance(msg, list):
if len(msg) == 1:
- msg = calc_path(msg[0], self)
+ submessage, elt = self.message_to_string(msg[0], submessage)
+ submessage += self.list(elt)
else:
lst = []
for p in msg:
submessage, elt = self.message_to_string(p, submessage)
lst.append(elt)
submessage += self.list(lst)
- msg = ""
+ msg = ""
if not isinstance(msg, str):
submessage += dump(msg)
else:
diff --git a/tests/results/test/60_0family_dynamic_source_hidden.adoc b/tests/results/test/60_0family_dynamic_source_hidden.adoc
new file mode 100644
index 000000000..528fd5d69
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_source_hidden.adoc
@@ -0,0 +1,26 @@
+== A dynamic family
+
+This family builds families dynamically.
+
+
+**dyn__val1__** +
+**dyn__val2__**
+
+`basic`
+
+**Identifiers**: (from an undocumented variable)
+
+* val1
+* val2
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+|
+
+**dyn__val1__.var** +
+**dyn__val2__.var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` |
+A dynamic variable.
+|====
+
diff --git a/tests/results/test/60_0family_dynamic_source_hidden.gitlab.md b/tests/results/test/60_0family_dynamic_source_hidden.gitlab.md
new file mode 100644
index 000000000..a2a96dbfc
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_source_hidden.gitlab.md
@@ -0,0 +1,15 @@
+A dynamic family
+
+This family builds families dynamically.
+
+>>> [!note] Informations
+**dyn*val1***
**dyn*val2***
`basic`
+
+**Identifiers**: (from an undocumented variable)
- val1
- val2
+>>>
+| Variable | Description |
+|----------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **dyn*val1*.var**
**dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
+
+
diff --git a/tests/results/test/60_0family_dynamic_source_hidden.html b/tests/results/test/60_0family_dynamic_source_hidden.html
new file mode 100644
index 000000000..35d556d34
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_source_hidden.html
@@ -0,0 +1,20 @@
+
A dynamic family
+
+This family builds families dynamically.
+
+dynval1
dynval2
+
+basic
+
+Identifiers: (from an undocumented variable)
+
+
+
+| Variable | Description |
+
+
+dynval1.var dynval2.var string basic mandatory | A dynamic variable. |
+
+
+
diff --git a/tests/results/test/60_0family_dynamic_source_hidden.json b/tests/results/test/60_0family_dynamic_source_hidden.json
new file mode 100644
index 000000000..a25020b04
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_source_hidden.json
@@ -0,0 +1,72 @@
+{
+ "dyn{{ identifier }}": {
+ "type": "dynamic",
+ "informations": {
+ "names": [
+ "dynval1",
+ "dynval2"
+ ],
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "path": "dyn{{ identifier }}",
+ "description": "A dynamic family",
+ "properties": [
+ {
+ "type": "mode",
+ "name": "basic"
+ }
+ ],
+ "identifier": [
+ {
+ "submessage": "(from an undocumented variable)",
+ "values": [
+ "val1",
+ "val2"
+ ]
+ }
+ ],
+ "help": [
+ "This family builds families dynamically."
+ ]
+ },
+ "children": {
+ "var": {
+ "names": [
+ "var",
+ "var"
+ ],
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "path": "dyn{{ identifier }}.var",
+ "description": "A dynamic variable.",
+ "type": "variable",
+ "properties": [
+ {
+ "type": "type",
+ "name": "string"
+ },
+ {
+ "type": "mode",
+ "name": "basic"
+ },
+ {
+ "type": "property",
+ "name": "mandatory"
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/results/test/60_0family_dynamic_source_hidden.md b/tests/results/test/60_0family_dynamic_source_hidden.md
new file mode 100644
index 000000000..04c28af96
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_source_hidden.md
@@ -0,0 +1,14 @@
+# A dynamic family
+
+This family builds families dynamically.
+
+**dyn*val1***
**dyn*val2***
+
+`basic`
+
+**Identifiers**: (from an undocumented variable)
- val1
- val2
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **dyn*val1*.var**
**dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
diff --git a/tests/results/test/60_0family_dynamic_source_hidden.sh b/tests/results/test/60_0family_dynamic_source_hidden.sh
new file mode 100644
index 000000000..e9afff32a
--- /dev/null
+++ b/tests/results/test/60_0family_dynamic_source_hidden.sh
@@ -0,0 +1,30 @@
+
+
+[1;4;96mA dynamic family[0m
+
+
+This family builds families dynamically.
+
+
+
+[1mdyn[0m[1;3mval1[0m
+[1mdyn[0m[1;3mval2[0m
+
+
+[1;7m basic [0m
+
+
+[1mIdentifiers[0m: [1m([0mfrom an undocumented variable[1m)[0m
+- val1
+- val2
+
+
+
+┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
+┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+│ [1mdyn[0m[1;3mval1[0m[1m.var[0m │ A dynamic variable. │
+│ [1mdyn[0m[1;3mval2[0m[1m.var[0m │ │
+│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ │
+└───────────────────────────────────────┴──────────────────────────────────────┘
+
diff --git a/tests/results/test/warnings_60_0family_dynamic_source_hidden b/tests/results/test/warnings_60_0family_dynamic_source_hidden
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test/warnings_60_0family_dynamic_source_hidden
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_examples/60_0family_dynamic_source_hidden.md b/tests/results/test_examples/60_0family_dynamic_source_hidden.md
new file mode 100644
index 000000000..fd768aa88
--- /dev/null
+++ b/tests/results/test_examples/60_0family_dynamic_source_hidden.md
@@ -0,0 +1,18 @@
+# Example with mandatory variables not filled in
+
+```yaml
+---
+dynval1:
+ var: example
+dynval2:
+ var: example
+```
+# Example with all variables modifiable
+
+```yaml
+---
+dynval1:
+ var: example
+dynval2:
+ var: example
+```
diff --git a/tests/results/test_examples/warnings_60_0family_dynamic_source_hidden b/tests/results/test_examples/warnings_60_0family_dynamic_source_hidden
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_examples/warnings_60_0family_dynamic_source_hidden
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.adoc b/tests/results/test_namespace/60_0family_dynamic_source_hidden.adoc
new file mode 100644
index 000000000..226c3f45d
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.adoc
@@ -0,0 +1,32 @@
+== Variables for "Rougail"
+
+**rougail**
+
+`basic`
+
+=== A dynamic family
+
+This family builds families dynamically.
+
+
+**rougail.dyn__val1__** +
+**rougail.dyn__val2__**
+
+`basic`
+
+**Identifiers**: (from an undocumented variable)
+
+* val1
+* val2
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+|
+
+**rougail.dyn__val1__.var** +
+**rougail.dyn__val2__.var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` |
+A dynamic variable.
+|====
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.adoc b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.adoc
new file mode 100644
index 000000000..43f1382f9
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.adoc
@@ -0,0 +1,13 @@
+== New variable
+
+[cols="1a,1a"]
+|====
+| Variable | Description
+|
+
+**rougail.dyn__val1__.var** +
+**rougail.dyn__val2__.var** +
+`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` |
+A dynamic variable.
+|====
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.gitlab.md b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.gitlab.md
new file mode 100644
index 000000000..60e804309
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.gitlab.md
@@ -0,0 +1,6 @@
+New variable
+
+| Variable | Description |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **rougail.dyn*val1*.var**
**rougail.dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.html b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.html
new file mode 100644
index 000000000..ce2da09b8
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.html
@@ -0,0 +1,11 @@
+New variable
+
+
+
+| Variable | Description |
+
+
+rougail.dynval1.var rougail.dynval2.var string basic mandatory | A dynamic variable. |
+
+
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.md b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.md
new file mode 100644
index 000000000..929837b70
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.md
@@ -0,0 +1,6 @@
+# New variable
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **rougail.dyn*val1*.var**
**rougail.dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.sh b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.sh
new file mode 100644
index 000000000..6e009057b
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.changelog.sh
@@ -0,0 +1,12 @@
+
+
+[1;4;96mNew variable[0m
+
+
+┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
+┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+│ [1mrougail.dyn[0m[1;3mval1[0m[1m.var[0m │ A dynamic variable. │
+│ [1mrougail.dyn[0m[1;3mval2[0m[1m.var[0m │ │
+│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ │
+└───────────────────────────────────────┴──────────────────────────────────────┘
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.gitlab.md b/tests/results/test_namespace/60_0family_dynamic_source_hidden.gitlab.md
new file mode 100644
index 000000000..5e5f381e0
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.gitlab.md
@@ -0,0 +1,24 @@
+Rougail
+
+>>> [!note] Informations
+**rougail**
`basic`
+
+
+>>>
+A dynamic family
+
+This family builds families dynamically.
+
+>>> [!note] Informations
+**rougail.dyn*val1***
**rougail.dyn*val2***
`basic`
+
+**Identifiers**: (from an undocumented variable)
- val1
- val2
+>>>
+| Variable | Description |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|
+| **rougail.dyn*val1*.var**
**rougail.dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
+
+
+
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.html b/tests/results/test_namespace/60_0family_dynamic_source_hidden.html
new file mode 100644
index 000000000..cc73823c6
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.html
@@ -0,0 +1,26 @@
+Variables for "Rougail"
+
+rougail
+
+basic
+
+A dynamic family
+
+This family builds families dynamically.
+
+rougail.dynval1
rougail.dynval2
+
+basic
+
+Identifiers: (from an undocumented variable)
+
+
+
+| Variable | Description |
+
+
+rougail.dynval1.var rougail.dynval2.var string basic mandatory | A dynamic variable. |
+
+
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.json b/tests/results/test_namespace/60_0family_dynamic_source_hidden.json
new file mode 100644
index 000000000..d0983aec6
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.json
@@ -0,0 +1,90 @@
+{
+ "rougail": {
+ "type": "namespace",
+ "informations": {
+ "path": "rougail",
+ "names": [
+ "rougail"
+ ],
+ "description": "Rougail",
+ "properties": [
+ {
+ "type": "mode",
+ "name": "basic"
+ }
+ ]
+ },
+ "children": {
+ "dyn{{ identifier }}": {
+ "type": "dynamic",
+ "informations": {
+ "names": [
+ "dynval1",
+ "dynval2"
+ ],
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "path": "rougail.dyn{{ identifier }}",
+ "description": "A dynamic family",
+ "properties": [
+ {
+ "type": "mode",
+ "name": "basic"
+ }
+ ],
+ "identifier": [
+ {
+ "submessage": "(from an undocumented variable)",
+ "values": [
+ "val1",
+ "val2"
+ ]
+ }
+ ],
+ "help": [
+ "This family builds families dynamically."
+ ]
+ },
+ "children": {
+ "var": {
+ "names": [
+ "var",
+ "var"
+ ],
+ "identifiers": [
+ [
+ "val1"
+ ],
+ [
+ "val2"
+ ]
+ ],
+ "path": "rougail.dyn{{ identifier }}.var",
+ "description": "A dynamic variable.",
+ "type": "variable",
+ "properties": [
+ {
+ "type": "type",
+ "name": "string"
+ },
+ {
+ "type": "mode",
+ "name": "basic"
+ },
+ {
+ "type": "property",
+ "name": "mandatory"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.md b/tests/results/test_namespace/60_0family_dynamic_source_hidden.md
new file mode 100644
index 000000000..742127ec7
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.md
@@ -0,0 +1,20 @@
+# Variables for "Rougail"
+
+**rougail**
+
+`basic`
+
+## A dynamic family
+
+This family builds families dynamically.
+
+**rougail.dyn*val1***
**rougail.dyn*val2***
+
+`basic`
+
+**Identifiers**: (from an undocumented variable)
- val1
- val2
+
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **rougail.dyn*val1*.var**
**rougail.dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
diff --git a/tests/results/test_namespace/60_0family_dynamic_source_hidden.sh b/tests/results/test_namespace/60_0family_dynamic_source_hidden.sh
new file mode 100644
index 000000000..3847767bf
--- /dev/null
+++ b/tests/results/test_namespace/60_0family_dynamic_source_hidden.sh
@@ -0,0 +1,45 @@
+
+
+[1;4;96mVariables for [0m[1;4;96m"Rougail"[0m
+
+
+
+[1mrougail[0m
+
+
+
+[1;7m basic [0m
+
+
+
+
+
+ [1;4;92mA dynamic family[0m
+
+
+This family builds families dynamically.
+
+
+
+[1mrougail.dyn[0m[1;3mval1[0m
+[1mrougail.dyn[0m[1;3mval2[0m
+
+
+[1;7m basic [0m
+
+
+[1mIdentifiers[0m: [1m([0mfrom an undocumented variable[1m)[0m
+- val1
+- val2
+
+
+
+┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
+┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+│ [1mrougail.dyn[0m[1;3mval1[0m[1m.var[0m │ A dynamic variable. │
+│ [1mrougail.dyn[0m[1;3mval2[0m[1m.var[0m │ │
+│ [1;7m string [0m [1;7m basic [0m [1;7m mandatory [0m │ │
+└───────────────────────────────────────┴──────────────────────────────────────┘
+
+
diff --git a/tests/results/test_namespace/warnings_60_0family_dynamic_source_hidden b/tests/results/test_namespace/warnings_60_0family_dynamic_source_hidden
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace/warnings_60_0family_dynamic_source_hidden
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace_examples/60_0family_dynamic_source_hidden.md b/tests/results/test_namespace_examples/60_0family_dynamic_source_hidden.md
new file mode 100644
index 000000000..124364e8d
--- /dev/null
+++ b/tests/results/test_namespace_examples/60_0family_dynamic_source_hidden.md
@@ -0,0 +1,20 @@
+# Example with mandatory variables not filled in
+
+```yaml
+---
+rougail:
+ dynval1:
+ var: example
+ dynval2:
+ var: example
+```
+# Example with all variables modifiable
+
+```yaml
+---
+rougail:
+ dynval1:
+ var: example
+ dynval2:
+ var: example
+```
diff --git a/tests/results/test_namespace_examples/warnings_60_0family_dynamic_source_hidden b/tests/results/test_namespace_examples/warnings_60_0family_dynamic_source_hidden
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace_examples/warnings_60_0family_dynamic_source_hidden
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/results/test_namespace_without_family/60_0family_dynamic_source_hidden.md b/tests/results/test_namespace_without_family/60_0family_dynamic_source_hidden.md
new file mode 100644
index 000000000..6953a76e5
--- /dev/null
+++ b/tests/results/test_namespace_without_family/60_0family_dynamic_source_hidden.md
@@ -0,0 +1,4 @@
+| Variable | Description |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **rougail.dyn*val1*.var**
**rougail.dyn*val2*.var**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A dynamic variable. |
+
diff --git a/tests/results/test_namespace_without_family/warnings_60_0family_dynamic_source_hidden b/tests/results/test_namespace_without_family/warnings_60_0family_dynamic_source_hidden
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/tests/results/test_namespace_without_family/warnings_60_0family_dynamic_source_hidden
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tests/test_load.py b/tests/test_load.py
index 075c8ef0a..15fc261bc 100644
--- a/tests/test_load.py
+++ b/tests/test_load.py
@@ -20,7 +20,7 @@ excludes = [
]
test_ok = get_structures_list(excludes)
-# test_ok = [HERE.parent.parent / "rougail-tests" / "structures" / "40_0leadership_leader_follower"]
+test_ok = [HERE.parent.parent / "rougail-tests" / "structures" / "60_0family_dynamic_source_hidden"]
os.environ['COLUMNS'] = '80'