fix: root config with identifier

This commit is contained in:
egarette@silique.fr 2026-02-01 21:11:08 +01:00
parent e06c9b1829
commit 76a0a9080b
83 changed files with 1618 additions and 21 deletions

View file

@ -119,13 +119,23 @@ class RougailOutputDoc(Examples, Changelog):
self.property_to_string = get_properties_to_string() self.property_to_string = get_properties_to_string()
self.outputs = OutPuts().get() self.outputs = OutPuts().get()
self.dynamic_paths = {} self.dynamic_paths = {}
if self.config.type() in ['config', 'metaconfig', 'groupconfig', 'mixconfig']:
self.populate_dynamics(config=self.true_config.unrestraint)
else:
family = self.true_config
one_is_dynamic = False
for path in self.config.path().split('.'):
family = family.option(path)
if family.isdynamic():
self.populate_dynamic(family, False, False)
one_is_dynamic = True
if family.isoptiondescription() and one_is_dynamic:
self.populate_dynamics(config=family)
if not self.config.isoptiondescription(): if not self.config.isoptiondescription():
informations = {} informations = {}
self.parse_variable(self.config, None, informations) self.parse_variable(self.config.unrestraint, None, informations)
else: else:
config = self.config.unrestraint informations = self.parse_families(self.config.unrestraint)
self.populate_dynamics(config=config)
informations = self.parse_families(config)
if informations is None: if informations is None:
informations = {} informations = {}
elif self.config.type() not in ['config', 'metaconfig', 'groupconfig', 'mixconfig']: elif self.config.type() not in ['config', 'metaconfig', 'groupconfig', 'mixconfig']:
@ -136,15 +146,15 @@ class RougailOutputDoc(Examples, Changelog):
family = family.option(path) family = family.option(path)
name = family.name(uncalculated=True) name = family.name(uncalculated=True)
if family.isoptiondescription(): if family.isoptiondescription():
infos[name] = self.get_root_family(family) infos[name] = self.get_root_family(family, with_identifier=False)
infos = infos[name]["children"] infos = infos[name]["children"]
infos.update(informations) infos.update(informations)
informations = root_informations informations = root_informations
self.informations = informations self.informations = informations
def get_root_family(self, family): def get_root_family(self, family, with_identifier=True):
family_informations = self._populate_family( family_informations = self._populate_family(
family, family, with_identifier=with_identifier
) )
if family_informations is not False: if family_informations is not False:
return { return {
@ -154,18 +164,15 @@ class RougailOutputDoc(Examples, Changelog):
} }
def populate_dynamics(self, *, config=None, reload=False): def populate_dynamics(self, *, config=None, reload=False):
# "reload" is used in rougail-user-data-html
if config is None: if config is None:
config = self.config.unrestraint config = self.config.unrestraint
self._populate_dynamics(config, reload) self._populate_dynamics(config, reload)
def _populate_dynamics(self, family, reload, uncalculated=False) -> None: def _populate_dynamics(self, family, reload, uncalculated=False) -> None:
def populate(child, uncalculated): def populate(child, uncalculated):
if child.isoptiondescription():
type_ = "family"
else:
type_ = "variable"
if child.isdynamic(): if child.isdynamic():
self.populate_dynamic(child, type_, reload, uncalculated) self.populate_dynamic(child, reload, uncalculated)
if child.isoptiondescription(): if child.isoptiondescription():
self._populate_dynamics(child, reload, uncalculated) self._populate_dynamics(child, reload, uncalculated)
for child in family.list(uncalculated=uncalculated): for child in family.list(uncalculated=uncalculated):
@ -175,7 +182,7 @@ class RougailOutputDoc(Examples, Changelog):
if child.isdynamic() and child.path(uncalculated=True) not in self.dynamic_paths: if child.isdynamic() and child.path(uncalculated=True) not in self.dynamic_paths:
populate(family, uncalculated=True) populate(family, uncalculated=True)
def populate_dynamic(self, obj, type_, reload, uncalculated) -> None: def populate_dynamic(self, obj, reload, uncalculated) -> None:
path = obj.path(uncalculated=True) path = obj.path(uncalculated=True)
if path not in self.dynamic_paths: if path not in self.dynamic_paths:
new_name = True new_name = True
@ -186,6 +193,10 @@ class RougailOutputDoc(Examples, Changelog):
"identifiers": [], "identifiers": [],
"path": self.doc_path(path), "path": self.doc_path(path),
} }
if obj.isoptiondescription():
type_ = "family"
else:
type_ = "variable"
if not obj.information.get("forced_description", False): if not obj.information.get("forced_description", False):
self.dynamic_paths[path]["description"] = self._convert_description( self.dynamic_paths[path]["description"] = self._convert_description(
description, type_, its_a_path=False description, type_, its_a_path=False
@ -325,8 +336,6 @@ class RougailOutputDoc(Examples, Changelog):
def _parse_variable_dynamic( def _parse_variable_dynamic(
self, variable, leader, name, path, informations, only_one self, variable, leader, name, path, informations, only_one
) -> None: ) -> None:
# if path not in self.dynamic_paths:
# self.populate_dynamic(variable, path)
dynamic_variable = self.dynamic_paths[path] dynamic_variable = self.dynamic_paths[path]
if (not only_one or path in informations) and "type" in dynamic_variable: if (not only_one or path in informations) and "type" in dynamic_variable:
dynamic_variable["gen_examples"].append( dynamic_variable["gen_examples"].append(
@ -350,6 +359,8 @@ class RougailOutputDoc(Examples, Changelog):
def _populate_family( def _populate_family(
self, self,
family, family,
*,
with_identifier: bool=True,
) -> dict: ) -> dict:
path = family.path(uncalculated=True) path = family.path(uncalculated=True)
if family.isdynamic(): if family.isdynamic():
@ -363,12 +374,13 @@ class RougailOutputDoc(Examples, Changelog):
_("This family contains lists of variable blocks") _("This family contains lists of variable blocks")
) )
if family.isdynamic(only_self=True): if family.isdynamic(only_self=True):
identifiers = self._to_string(family, "dynamic", do_not_raise=True) if with_identifier:
if identifiers is None: identifiers = self._to_string(family, "dynamic", do_not_raise=True)
identifiers = family.identifiers(only_self=True) if identifiers is None:
if not isinstance(identifiers, list): identifiers = family.identifiers(only_self=True)
identifiers = [identifiers] if not isinstance(identifiers, list):
informations["identifier"] = identifiers identifiers = [identifiers]
informations["identifier"] = identifiers
informations.setdefault("help", []).append( informations.setdefault("help", []).append(
_("This family builds families dynamically") _("This family builds families dynamically")
) )

View file

@ -17,5 +17,26 @@ a_family: # first family
description: a new variable description: a new variable
default: default:
variable: ___.a_variable variable: ___.a_variable
a_variable: 2 # a root variable a_variable: 2 # a root variable
a_dynamic_{{ identifier }}:
description: A dynamic {{ identifier }}
dynamic:
- family1
- family2
a_variable: a_value # A variable
a_subfamily: # A sub family
a_variable: a_value # A variable
a_subdyn_{{ identifier }}:
description: A dynamic {{ identifier }}
dynamic:
- family3
- family4
a_variable: a_value # A variable
... ...

View file

@ -0,0 +1,24 @@
== A dynamic __family1__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__
====
=== A dynamic __family4__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__.a_subdyn___family4__
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subdyn___family4__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,20 @@
<details><summary>A dynamic *family1*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
<details><summary>A dynamic *family4*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*.a_subdyn_*family4*
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>
</details>

View file

@ -0,0 +1,21 @@
<h1>A dynamic &lt;i&gt;family1&lt;/i&gt;</h1>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>
<h2>A dynamic &lt;i&gt;family4&lt;/i&gt;</h2>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,76 @@
{
"a_dynamic_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_dynamic_family1"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_subdyn_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_subdyn_family4"
],
"identifiers": [
[
"family1",
"family4"
]
],
"path": "a_dynamic_{{ identifier }}.a_subdyn_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_variable": {
"names": [
"a_variable"
],
"identifiers": [
[
"family1",
"family4"
]
],
"path": "a_dynamic_{{ identifier }}.a_subdyn_{{ identifier }}.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value"
],
"mandatory_without_value": false
}
}
}
}
}
}

View file

@ -0,0 +1,18 @@
# A dynamic *family1*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
## A dynamic *family4*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*.a_subdyn_*family4*
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,22 @@
A dynamic family1
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1
A dynamic family4
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1.a_subdyn_family4
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subdyn_family4.a… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,10 @@
== New variable
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subdyn___family4__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,8 @@
<details><summary>New variable</summary>
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>

View file

@ -0,0 +1,11 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# New variable
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,9 @@
New variable
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subdyn_family4.a… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,9 @@
== Example with all variables modifiable
[,yaml]
----
---
a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value
----

View file

@ -0,0 +1,10 @@
<details><summary>Example with all variables modifiable</summary>
```yaml
---
a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value
```
</details>

View file

@ -0,0 +1,5 @@
<h1>Example with all variables modifiable</h1>
<pre>a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value</pre>

View file

@ -0,0 +1,8 @@
# Example with all variables modifiable
```yaml
---
a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value
```

View file

@ -0,0 +1,7 @@
Example with all variables modifiable
--- 
a_dynamic_family1: 
 a_subdyn_family4: 
 a_variable: a_value 

View file

@ -0,0 +1,24 @@
== A dynamic __family1__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__
====
=== A dynamic __family4__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__.a_subdyn___family4__
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subdyn___family4__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,20 @@
<details><summary>A dynamic *family1*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
<details><summary>A dynamic *family4*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*.a_subdyn_*family4*
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>
</details>

View file

@ -0,0 +1,21 @@
<h1>A dynamic &lt;i&gt;family1&lt;/i&gt;</h1>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>
<h2>A dynamic &lt;i&gt;family4&lt;/i&gt;</h2>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,76 @@
{
"a_dynamic_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_dynamic_family1"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_subdyn_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_subdyn_family4"
],
"identifiers": [
[
"family1",
"family4"
]
],
"path": "a_dynamic_{{ identifier }}.a_subdyn_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_variable": {
"names": [
"a_variable"
],
"identifiers": [
[
"family1",
"family4"
]
],
"path": "a_dynamic_{{ identifier }}.a_subdyn_{{ identifier }}.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value"
],
"mandatory_without_value": false
}
}
}
}
}
}

View file

@ -0,0 +1,18 @@
# A dynamic *family1*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
## A dynamic *family4*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*.a_subdyn_*family4*
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,22 @@
A dynamic family1
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1
A dynamic family4
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1.a_subdyn_family4
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subdyn_family4.a… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,10 @@
== New variable
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subdyn___family4__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,8 @@
<details><summary>New variable</summary>
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>

View file

@ -0,0 +1,11 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# New variable
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family4*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,9 @@
New variable
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subdyn_family4.a… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,9 @@
== Example with all variables modifiable
[,yaml]
----
---
a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value
----

View file

@ -0,0 +1,10 @@
<details><summary>Example with all variables modifiable</summary>
```yaml
---
a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value
```
</details>

View file

@ -0,0 +1,5 @@
<h1>Example with all variables modifiable</h1>
<pre>a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value</pre>

View file

@ -0,0 +1,8 @@
# Example with all variables modifiable
```yaml
---
a_dynamic_family1:
a_subdyn_family4:
a_variable: a_value
```

View file

@ -0,0 +1,7 @@
Example with all variables modifiable
--- 
a_dynamic_family1: 
 a_subdyn_family4: 
 a_variable: a_value 

View file

@ -0,0 +1,23 @@
== A dynamic __family1__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__
====
=== A sub family
====
**🛈 Informations**
**Path**: a_dynamic___family1__.a_subfamily
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subfamily.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,19 @@
<details><summary>A dynamic *family1*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
<details><summary>A sub family</summary>
> [!note] 🛈 Informations
> **Path**: a_dynamic_*family1*.a_subfamily
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>
</details>

View file

@ -0,0 +1,19 @@
<h1>A dynamic &lt;i&gt;family1&lt;/i&gt;</h1>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>
<h2>A sub family</h2>
<b>Path</b>: a_dynamic_<i>family1</i>.a_subfamily
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subfamily.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,71 @@
{
"a_dynamic_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_dynamic_family1"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_subfamily": {
"type": "family",
"informations": {
"names": [
"a_subfamily"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}.a_subfamily",
"description": "A sub family",
"properties": []
},
"children": {
"a_variable": {
"names": [
"a_variable"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}.a_subfamily.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value"
],
"mandatory_without_value": false
}
}
}
}
}
}

View file

@ -0,0 +1,17 @@
# A dynamic *family1*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
## A sub family
> [!NOTE]
>
> **Path**: a_dynamic_*family1*.a_subfamily
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,21 @@
A dynamic family1
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1
A sub family
▌ 🛈 Informations
▌ 
▌ Path: a_dynamic_family1.a_subfamily
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subfamily.a_vari… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,10 @@
== New variable
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subfamily.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,8 @@
<details><summary>New variable</summary>
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>

View file

@ -0,0 +1,11 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subfamily.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# New variable
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,9 @@
New variable
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subfamily.a_vari… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,9 @@
== Example with all variables modifiable
[,yaml]
----
---
a_dynamic_family1:
a_subfamily:
a_variable: a_value
----

View file

@ -0,0 +1,10 @@
<details><summary>Example with all variables modifiable</summary>
```yaml
---
a_dynamic_family1:
a_subfamily:
a_variable: a_value
```
</details>

View file

@ -0,0 +1,5 @@
<h1>Example with all variables modifiable</h1>
<pre>a_dynamic_family1:
a_subfamily:
a_variable: a_value</pre>

View file

@ -0,0 +1,8 @@
# Example with all variables modifiable
```yaml
---
a_dynamic_family1:
a_subfamily:
a_variable: a_value
```

View file

@ -0,0 +1,7 @@
Example with all variables modifiable
--- 
a_dynamic_family1: 
 a_subfamily: 
 a_variable: a_value 

View file

@ -0,0 +1,16 @@
== A dynamic __family1__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,12 @@
<details><summary>A dynamic *family1*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>

View file

@ -0,0 +1,15 @@
<h1>A dynamic &lt;i&gt;family1&lt;/i&gt;</h1>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,53 @@
{
"a_dynamic_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_dynamic_family1"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_variable": {
"names": [
"a_variable"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value"
],
"mandatory_without_value": false
}
}
}
}

View file

@ -0,0 +1,11 @@
# A dynamic *family1*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,14 @@
A dynamic family1
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_variable │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,10 @@
== New variable
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,8 @@
<details><summary>New variable</summary>
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>

View file

@ -0,0 +1,11 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# New variable
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,9 @@
New variable
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_variable │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,8 @@
== Example with all variables modifiable
[,yaml]
----
---
a_dynamic_family1:
a_variable: a_value
----

View file

@ -0,0 +1,9 @@
<details><summary>Example with all variables modifiable</summary>
```yaml
---
a_dynamic_family1:
a_variable: a_value
```
</details>

View file

@ -0,0 +1,4 @@
<h1>Example with all variables modifiable</h1>
<pre>a_dynamic_family1:
a_variable: a_value</pre>

View file

@ -0,0 +1,7 @@
# Example with all variables modifiable
```yaml
---
a_dynamic_family1:
a_variable: a_value
```

View file

@ -0,0 +1,6 @@
Example with all variables modifiable
--- 
a_dynamic_family1: 
 a_variable: a_value 

View file

@ -0,0 +1,55 @@
== A dynamic __family1__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**: a_dynamic___family1__
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====
=== A sub family
====
**🛈 Informations**
**Path**: a_dynamic___family1__.a_subfamily
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subfamily.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====
=== A dynamic __family3__ or A dynamic __family4__
====
**🛈 Informations**
This family builds families dynamically. +
**Path**:
* a_dynamic___family1__.a_subdyn___family3__
* a_dynamic___family1__.a_subdyn___family4__ +
**Identifiers**:
* family3
* family4
====
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_subdyn___family3__.a_variable** +
**a_dynamic___family1__.a_subdyn___family4__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,40 @@
<details><summary>A dynamic *family1*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
<details><summary>A sub family</summary>
> [!note] 🛈 Informations
> **Path**: a_dynamic_*family1*.a_subfamily
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>
<details><summary>A dynamic *family3* or A dynamic *family4*</summary>
> [!note] 🛈 Informations
> This family builds families dynamically.\
> **Path**:
> - a_dynamic_*family1*.a_subdyn_*family3*
> - a_dynamic_*family1*.a_subdyn_*family4*\
> **Identifiers**:
> - family3
> - family4
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family3*.a_variable</a>**<br/>**a_dynamic_*family1*.a_subdyn_*family4*.a_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>
</details>

View file

@ -0,0 +1,47 @@
<h1>A dynamic &lt;i&gt;family1&lt;/i&gt;</h1>
This family builds families dynamically.
<b>Path</b>: a_dynamic_<i>family1</i>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>
<h2>A sub family</h2>
<b>Path</b>: a_dynamic_<i>family1</i>.a_subfamily
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subfamily.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>
<h2>A dynamic &lt;i&gt;family3&lt;/i&gt; or A dynamic &lt;i&gt;family4&lt;/i&gt;</h2>
This family builds families dynamically.
<b>Path</b>: <ul><li>a_dynamic_<i>family1</i>.a_subdyn_<i>family3</i></li>
<li>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i></li></ul>
<b>Identifiers</b>: <ul><li>family3</li>
<li>family4</li></ul>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family3</i>.a_variable</b><br/><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,169 @@
{
"a_dynamic_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_dynamic_family1"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_variable": {
"names": [
"a_variable"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value"
],
"mandatory_without_value": false
},
"a_subfamily": {
"type": "family",
"informations": {
"names": [
"a_subfamily"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}.a_subfamily",
"description": "A sub family",
"properties": []
},
"children": {
"a_variable": {
"names": [
"a_variable"
],
"identifiers": [
[
"family1"
]
],
"path": "a_dynamic_{{ identifier }}.a_subfamily.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value"
],
"mandatory_without_value": false
}
}
},
"a_subdyn_{{ identifier }}": {
"type": "dynamic",
"informations": {
"names": [
"a_subdyn_family3",
"a_subdyn_family4"
],
"identifiers": [
[
"family1",
"family3"
],
[
"family1",
"family4"
]
],
"path": "a_dynamic_{{ identifier }}.a_subdyn_{{ identifier }}",
"description": "A dynamic {{ identifier }}",
"properties": [],
"identifier": [
"family3",
"family4"
],
"help": [
"This family builds families dynamically"
]
},
"children": {
"a_variable": {
"names": [
"a_variable",
"a_variable"
],
"identifiers": [
[
"family1",
"family3"
],
[
"family1",
"family4"
]
],
"path": "a_dynamic_{{ identifier }}.a_subdyn_{{ identifier }}.a_variable",
"description": "A variable.",
"type": "variable",
"default": {
"name": "Default",
"values": "a_value"
},
"variable_type": "string",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
"a_value",
"a_value"
],
"mandatory_without_value": false
}
}
}
}
}
}

View file

@ -0,0 +1,37 @@
# A dynamic *family1*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**: a_dynamic_*family1*
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
## A sub family
> [!NOTE]
>
> **Path**: a_dynamic_*family1*.a_subfamily
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
## A dynamic *family3* or A dynamic *family4*
> [!NOTE]
>
> This family builds families dynamically.\
> **Path**:
> - a_dynamic_*family1*.a_subdyn_*family3*
> - a_dynamic_*family1*.a_subdyn_*family4*\
> **Identifiers**:
> - family3
> - family4
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family3*.a_variable</a>**<br/>**a_dynamic_*family1*.a_subdyn_*family4*.a_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,47 @@
A dynamic family1
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path: a_dynamic_family1
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_variable │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘
A sub family
▌ 🛈 Informations
▌ 
▌ Path: a_dynamic_family1.a_subfamily
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subfamily.a_vari… │ A variable. │
 string   mandatory  │ Default: a_value │
└───────────────────────────────────────┴──────────────────────────────────────┘
A dynamic family3 or A dynamic family4
▌ 🛈 Informations
▌ 
▌ This family builds families dynamically.
▌ Path:
▌  • a_dynamic_family1.a_subdyn_family3
▌  • a_dynamic_family1.a_subdyn_family4
▌ Identifiers:
▌  • family3
▌  • family4
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_subdyn_family3.a… │ A variable. │
a_dynamic_family1.a_subdyn_family4.a… │ Default: a_value │
 string   mandatory  │ │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,17 @@
== New variables
[cols="1a,1a"]
|====
| Variable | Description
| **a_dynamic___family1__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
| **a_dynamic___family1__.a_subfamily.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
| **a_dynamic___family1__.a_subdyn___family3__.a_variable** +
**a_dynamic___family1__.a_subdyn___family4__.a_variable** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `mandatory` | A variable. +
**Default**: a_value
|====

View file

@ -0,0 +1,10 @@
<details><summary>New variables</summary>
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family3*.a_variable</a>**<br/>**a_dynamic_*family1*.a_subdyn_*family4*.a_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
</details>

View file

@ -0,0 +1,13 @@
<h1>New variables</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>a_dynamic_<i>family1</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark> </td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
<tr><td><b>a_dynamic_<i>family1</i>.a_subfamily.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark> </td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
<tr><td><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family3</i>.a_variable</b><br/><b>a_dynamic_<i>family1</i>.a_subdyn_<i>family4</i>.a_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Default</b>: a_value</td></tr>
</tbody>
</table>

View file

@ -0,0 +1,8 @@
# New variables
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **<a id="a_dynamic_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_variable">a_dynamic_*family1*.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
| **<a id="a_dynamic_:::identifier:::.a_subfamily.a_variable" name="a_dynamic_:::identifier:::.a_subfamily.a_variable">a_dynamic_*family1*.a_subfamily.a_variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |
| **<a id="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable" name="a_dynamic_:::identifier:::.a_subdyn_:::identifier:::.a_variable">a_dynamic_*family1*.a_subdyn_*family3*.a_variable</a>**<br/>**a_dynamic_*family1*.a_subdyn_*family4*.a_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A variable.<br/>**Default**: a_value |

View file

@ -0,0 +1,16 @@
New variables
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
a_dynamic_family1.a_variable │ A variable. │
 string   mandatory  │ Default: a_value │
├───────────────────────────────────────┼──────────────────────────────────────┤
a_dynamic_family1.a_subfamily.a_vari… │ A variable. │
 string   mandatory  │ Default: a_value │
├───────────────────────────────────────┼──────────────────────────────────────┤
a_dynamic_family1.a_subdyn_family3.a… │ A variable. │
a_dynamic_family1.a_subdyn_family4.a… │ Default: a_value │
 string   mandatory  │ │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,14 @@
== Example with all variables modifiable
[,yaml]
----
---
a_dynamic_family1:
a_variable: a_value
a_subfamily:
a_variable: a_value
a_subdyn_family3:
a_variable: a_value
a_subdyn_family4:
a_variable: a_value
----

View file

@ -0,0 +1,15 @@
<details><summary>Example with all variables modifiable</summary>
```yaml
---
a_dynamic_family1:
a_variable: a_value
a_subfamily:
a_variable: a_value
a_subdyn_family3:
a_variable: a_value
a_subdyn_family4:
a_variable: a_value
```
</details>

View file

@ -0,0 +1,10 @@
<h1>Example with all variables modifiable</h1>
<pre>a_dynamic_family1:
a_variable: a_value
a_subfamily:
a_variable: a_value
a_subdyn_family3:
a_variable: a_value
a_subdyn_family4:
a_variable: a_value</pre>

View file

@ -0,0 +1,13 @@
# Example with all variables modifiable
```yaml
---
a_dynamic_family1:
a_variable: a_value
a_subfamily:
a_variable: a_value
a_subdyn_family3:
a_variable: a_value
a_subdyn_family4:
a_variable: a_value
```

View file

@ -0,0 +1,12 @@
Example with all variables modifiable
--- 
a_dynamic_family1: 
 a_variable: a_value 
 a_subfamily: 
 a_variable: a_value 
 a_subdyn_family3: 
 a_variable: a_value 
 a_subdyn_family4: 
 a_variable: a_value 

View file

@ -68,3 +68,64 @@ def test_root_example():
def test_root_sub_example(): def test_root_sub_example():
_test_root('a_family.an_other_family', "example") _test_root('a_family.an_other_family', "example")
#
def test_root_dynamic_family():
_test_root('a_dynamic_family1')
def test_root_dynamic_variable():
_test_root('a_dynamic_family1.a_variable')
def test_root_dynamic_sub_family():
_test_root('a_dynamic_family1.a_subfamily')
def test_root_dynamic_sub_dyn_family():
_test_root('a_dynamic_family1.a_subdyn_family4')
def test_root_dynamic_sub_dyn_family_variable():
_test_root('a_dynamic_family1.a_subdyn_family4.a_variable')
def test_root_dynamic_family_example():
_test_root('a_dynamic_family1', "example")
def test_root_dynamic_variable_example():
_test_root('a_dynamic_family1.a_variable', "example")
def test_root_dynamic_sub_family_example():
_test_root('a_dynamic_family1.a_subfamily', "example")
def test_root_dynamic_sub_dyn_example():
_test_root('a_dynamic_family1.a_subdyn_family4', "example")
def test_root_dynamic_sub_dyn_family_variable_example():
_test_root('a_dynamic_family1.a_subdyn_family4.a_variable', "example")
def test_root_dynamic_family_changelog():
_test_root('a_dynamic_family1', "changelog")
def test_root_dynamic_variable_changelog():
_test_root('a_dynamic_family1.a_variable', "changelog")
def test_root_dynamic_sub_family_changelog():
_test_root('a_dynamic_family1.a_subfamily', "changelog")
def test_root_dynamic_sub_dyn_changelog():
_test_root('a_dynamic_family1.a_subdyn_family4', "changelog")
def test_root_dynamic_sub_dyn_family_variable_changelog():
_test_root('a_dynamic_family1.a_subdyn_family4.a_variable', "changelog")