feat: remove doc.root, pass directly the family to doc output (be careful, add true_config parameter too)

This commit is contained in:
egarette@silique.fr 2026-01-04 19:16:18 +01:00
parent e3ad3be95d
commit d229eb2a34
38 changed files with 479 additions and 510 deletions

View file

@ -15,13 +15,12 @@ include_toc: true
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | | Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="doc.output_format" name="doc.output_format">doc.output_format</a>**<br/>**Ligne de commande** : -do, --doc.output_format<br/>**Variable d'environnement** : DOC.OUTPUT_FORMAT | Le format de sortie de la documentation générée. | console | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | **Choix** : <br/>&nbsp;console<br/>&nbsp;asciidoc<br/>&nbsp;html<br/>&nbsp;github<br/>&nbsp;gitlab<br/>&nbsp;json | | **<a id="doc.output_format" name="doc.output_format">doc.output_format</a>**<br/>**Ligne de commande** : <br/>-do, --doc.output_format<br/>**Variable d'environnement** : DOC.OUTPUT_FORMAT | Le format de sortie de la documentation générée. | console | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | **Choix** : <br/>&nbsp;console<br/>&nbsp;asciidoc<br/>&nbsp;html<br/>&nbsp;github<br/>&nbsp;gitlab<br/>&nbsp;json |
| **<a id="doc.tabular_template" name="doc.tabular_template">doc.tabular_template</a>**<br/>**Ligne de commande** : -dm, --doc.tabular_template<br/>**Variable d'environnement** : DOC.TABULAR_TEMPLATE | Génère la documentation avec ce modèle de tableau.<br/>Les variables sont documentées avec une vue tableau. Une sélection de modèle vous permet de choisir le contenu de chaque colonne. | two_columns | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : "[Le format de sortie de la documentation générée](#doc.output_format)" en json n\'est pas compatible avec cette variable<br/> | **Choix** : <br/>&nbsp;two_columns<br/>&nbsp;three_columns<br/>&nbsp;four_columns<br/>&nbsp;five_columns<br/>&nbsp;six_columns | | **<a id="doc.tabular_template" name="doc.tabular_template">doc.tabular_template</a>**<br/>**Ligne de commande** : <br/>-dm, --doc.tabular_template<br/>**Variable d'environnement** : DOC.TABULAR_TEMPLATE | Génère la documentation avec ce modèle de tableau.<br/>Les variables sont documentées avec une vue tableau. Une sélection de modèle vous permet de choisir le contenu de chaque colonne. | two_columns | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : "[Le format de sortie de la documentation générée](#doc.output_format)" en json n\'est pas compatible avec cette variable<br/> | **Choix** : <br/>&nbsp;two_columns<br/>&nbsp;three_columns<br/>&nbsp;four_columns<br/>&nbsp;five_columns<br/>&nbsp;six_columns |
| **<a id="doc.contents" name="doc.contents">doc.contents</a>**<br/>**Ligne de commande** : -dc, --doc.contents<br/>**Variable d'environnement** : DOC.CONTENTS | Contenu généré.<br/>Vous pouvez générer trois type de documentation. Toutes les variables (&quot;variables&quot;), un exemple de fichier au format YAML (&quot;example&quot;) ou le journal des changements (&quot;changelog&quot;). | •&nbsp;variables | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `obligatoire` | *`cachée`*<br/>**Cachée** : "[Le format de sortie de la documentation générée](#doc.output_format)" en json n'est pas compatible avec "[Contenu généré](#doc.contents)" changelog or example<br/> | `unique`<br/>**Choix** : <br/>&nbsp;variables<br/>&nbsp;example<br/>&nbsp;changelog | | **<a id="doc.contents" name="doc.contents">doc.contents</a>**<br/>**Ligne de commande** : <br/>-dc, --doc.contents<br/>**Variable d'environnement** : DOC.CONTENTS | Contenu généré.<br/>Vous pouvez générer trois type de documentation. Toutes les variables (&quot;variables&quot;), un exemple de fichier au format YAML (&quot;example&quot;) ou le journal des changements (&quot;changelog&quot;). | •&nbsp;variables | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `obligatoire` | *`cachée`*<br/>**Cachée** : "[Le format de sortie de la documentation générée](#doc.output_format)" en json n'est pas compatible avec "[Contenu généré](#doc.contents)" changelog or example<br/> | `unique`<br/>**Choix** : <br/>&nbsp;variables<br/>&nbsp;example<br/>&nbsp;changelog |
| **<a id="doc.title_level" name="doc.title_level">doc.title_level</a>**<br/>**Ligne de commande** : -dt, --doc.title_level<br/>**Variable d'environnement** : DOC.TITLE_LEVEL | Niveau de titre de départ. | 1 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | | **<a id="doc.title_level" name="doc.title_level">doc.title_level</a>**<br/>**Ligne de commande** : <br/>-dt, --doc.title_level<br/>**Variable d'environnement** : DOC.TITLE_LEVEL | Niveau de titre de départ. | 1 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | |
| **<a id="doc.default_values" name="doc.default_values">doc.default_values</a>**<br/>**Ligne de commande** : <br/>&nbsp;--doc.default_values<br/>&nbsp;--doc.no-default_values<br/>**Variable d'environnement** : DOC.DEFAULT_VALUES | Modifier les valeurs pour documenter toutes les variables.<br/>Pour documenter les variables des leadership ou des familles dynamiques, il est parfois nécessaire de générer des valeurs, qui peuvent modifier les valeurs de la configuration. Soyez vigilent si vous réutilisez cette configuration. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | | **<a id="doc.default_values" name="doc.default_values">doc.default_values</a>**<br/>**Ligne de commande** : <br/>&nbsp;--doc.default_values<br/>&nbsp;--doc.no-default_values<br/>**Variable d'environnement** : DOC.DEFAULT_VALUES | Modifier les valeurs pour documenter toutes les variables.<br/>Pour documenter les variables des leadership ou des familles dynamiques, il est parfois nécessaire de générer des valeurs, qui peuvent modifier les valeurs de la configuration. Soyez vigilent si vous réutilisez cette configuration. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | |
| **<a id="doc.true_color" name="doc.true_color">doc.true_color</a>**<br/>**Ligne de commande** : <br/>&nbsp;--doc.true_color<br/>&nbsp;--doc.no-true_color<br/>**Variable d'environnement** : DOC.TRUE_COLOR | Afficher la documentation dans la console en permanence avec un terminal en couleurs réelles. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : lorsque la variable "[Le format de sortie de la documentation générée](#doc.output_format)" n'a pas la valeur "console" | | | **<a id="doc.true_color" name="doc.true_color">doc.true_color</a>**<br/>**Ligne de commande** : <br/>&nbsp;--doc.true_color<br/>&nbsp;--doc.no-true_color<br/>**Variable d'environnement** : DOC.TRUE_COLOR | Afficher la documentation dans la console en permanence avec un terminal en couleurs réelles. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : lorsque la variable "[Le format de sortie de la documentation générée](#doc.output_format)" n'a pas la valeur "console" | |
| **<a id="doc.root" name="doc.root">doc.root</a>**<br/>**Ligne de commande** : -dr, --doc.root<br/>**Variable d'environnement** : DOC.ROOT | Documenter les variables enfants de cette famille.<br/>Par défaut, toute les variables accessibles sont incluent dans la documentation. Il est possible de définir une famille a partir de laquelle la documentation doit être générée. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | | |
### Les variables pour cette famille sont documentés dans un autre fichier ### Les variables pour cette famille sont documentés dans un autre fichier
@ -29,14 +28,12 @@ include_toc: true
> >
> Si vous séparez les variables dans différents fichiers, le lien entre les variables va être cassé. Dans ce cas, vous devez définit différents nom de fichiers pour les fichiers contenant ces variables.\ > Si vous séparez les variables dans différents fichiers, le lien entre les variables va être cassé. Dans ce cas, vous devez définit différents nom de fichiers pour les fichiers contenant ces variables.\
> Cette famille contient des listes de bloc de variable.\ > Cette famille contient des listes de bloc de variable.\
> **Chemin** : doc.other_root_filenames\ > **Chemin** : doc.other_root_filenames
> *`désactivé`*\
> **Désactivé** : lorsque la variable "[Documenter les variables enfants de cette famille](#doc.root)" a la valeur "null"
| Variable | Description | Type | Validateur | | Variable | Description | Type | Validateur |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------| |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| **<a id="doc.other_root_filenames.root_path" name="doc.other_root_filenames.root_path">doc.other_root_filenames.root_path</a>**<br/>**Ligne de commande** : --doc.other_root_filenames.root_path<br/>**Variable d'environnement** : DOC.OTHER_ROOT_FILENAMES.ROOT_PATH | Ce fichier contient les variables enfants de la famille. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `unique` | | **<a id="doc.other_root_filenames.root_path" name="doc.other_root_filenames.root_path">doc.other_root_filenames.root_path</a>**<br/>**Ligne de commande** : <br/>--doc.other_root_filenames.root_path<br/>**Variable d'environnement** : DOC.OTHER_ROOT_FILENAMES.ROOT_PATH | Ce fichier contient les variables enfants de la famille. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `unique` |
| **<a id="doc.other_root_filenames.filename" name="doc.other_root_filenames.filename">doc.other_root_filenames.filename</a>**<br/>**Ligne de commande** : --doc.other_root_filenames.filename<br/>**Variable d'environnement** : DOC.OTHER_ROOT_FILENAMES.FILENAME | Nom du fichier. | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | •&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;type de fichier autorisé: "file". | | **<a id="doc.other_root_filenames.filename" name="doc.other_root_filenames.filename">doc.other_root_filenames.filename</a>**<br/>**Ligne de commande** : <br/>--doc.other_root_filenames.filename<br/>**Variable d'environnement** : DOC.OTHER_ROOT_FILENAMES.FILENAME | Nom du fichier. | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | •&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;type de fichier autorisé: "file". |
### Documentation des variables et journal de changements ### Documentation des variables et journal de changements
@ -51,7 +48,7 @@ include_toc: true
| **<a id="doc.tabulars.without_family" name="doc.tabulars.without_family">doc.tabulars.without_family</a>**<br/>**Ligne de commande** : <br/>&nbsp;-df, --doc.tabulars.without_family<br/>&nbsp;-ndf, --doc.tabulars.no-without_family<br/>**Variable d'environnement** : DOC.TABULARS.WITHOUT_FAMILY | Ne pas ajouter les familles dans la documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | | **<a id="doc.tabulars.without_family" name="doc.tabulars.without_family">doc.tabulars.without_family</a>**<br/>**Ligne de commande** : <br/>&nbsp;-df, --doc.tabulars.without_family<br/>&nbsp;-ndf, --doc.tabulars.no-without_family<br/>**Variable d'environnement** : DOC.TABULARS.WITHOUT_FAMILY | Ne pas ajouter les familles dans la documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | |
| **<a id="doc.tabulars.with_commandline" name="doc.tabulars.with_commandline">doc.tabulars.with_commandline</a>**<br/>**Ligne de commande** : <br/>&nbsp;-dw, --doc.tabulars.with_commandline<br/>&nbsp;-ndw, --doc.tabulars.no-with_commandline<br/>**Variable d'environnement** : DOC.TABULARS.WITH_COMMANDLINE | Ajoute les informations de la ligne de commande dans la documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | | **<a id="doc.tabulars.with_commandline" name="doc.tabulars.with_commandline">doc.tabulars.with_commandline</a>**<br/>**Ligne de commande** : <br/>&nbsp;-dw, --doc.tabulars.with_commandline<br/>&nbsp;-ndw, --doc.tabulars.no-with_commandline<br/>**Variable d'environnement** : DOC.TABULARS.WITH_COMMANDLINE | Ajoute les informations de la ligne de commande dans la documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | |
| **<a id="doc.tabulars.with_environment" name="doc.tabulars.with_environment">doc.tabulars.with_environment</a>**<br/>**Ligne de commande** : <br/>&nbsp;-de, --doc.tabulars.with_environment<br/>&nbsp;-nde, --doc.tabulars.no-with_environment<br/>**Variable d'environnement** : DOC.TABULARS.WITH_ENVIRONMENT | Ajoute les informations de variable d&#x27;environnement dans la documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | | **<a id="doc.tabulars.with_environment" name="doc.tabulars.with_environment">doc.tabulars.with_environment</a>**<br/>**Ligne de commande** : <br/>&nbsp;-de, --doc.tabulars.with_environment<br/>&nbsp;-nde, --doc.tabulars.no-with_environment<br/>**Variable d'environnement** : DOC.TABULARS.WITH_ENVIRONMENT | Ajoute les informations de variable d&#x27;environnement dans la documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | |
| **<a id="doc.tabulars.environment_prefix" name="doc.tabulars.environment_prefix">doc.tabulars.environment_prefix</a>**<br/>**Ligne de commande** : -dv, --doc.tabulars.environment_prefix<br/>**Variable d'environnement** : DOC.TABULARS.ENVIRONMENT_PREFIX | Préfixe du nom des variables d&#x27;environnement. | ROUGAIL | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : si "main_namespace" n'est pas défini ou "[Ajoute les informations de variable d&#x27;environnement dans la documentation](#doc.tabulars.with_environment)" est false | Doit seulement utilise des caractères en majuscule. | | **<a id="doc.tabulars.environment_prefix" name="doc.tabulars.environment_prefix">doc.tabulars.environment_prefix</a>**<br/>**Ligne de commande** : <br/>-dv, --doc.tabulars.environment_prefix<br/>**Variable d'environnement** : DOC.TABULARS.ENVIRONMENT_PREFIX | Préfixe du nom des variables d&#x27;environnement. | ROUGAIL | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : si "main_namespace" n'est pas défini ou "[Ajoute les informations de variable d&#x27;environnement dans la documentation](#doc.tabulars.with_environment)" est false | Doit seulement utilise des caractères en majuscule. |
### Documentation du journal des changements ### Documentation du journal des changements
@ -61,9 +58,9 @@ include_toc: true
> *`désactivé`*\ > *`désactivé`*\
> **Désactivé** : changelog n'est pas défini dans "[Contenu généré](#doc.contents)" > **Désactivé** : changelog n'est pas défini dans "[Contenu généré](#doc.contents)"
| Variable | Description | Type | | Variable | Description | Type |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------| |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| **<a id="doc.changelog.previous_json_file" name="doc.changelog.previous_json_file">doc.changelog.previous_json_file</a>**<br/>**Ligne de commande** : -dp, --doc.changelog.previous_json_file<br/>**Variable d'environnement** : DOC.CHANGELOG.PREVIOUS_JSON_FILE | Précédent fichier de description au format JSON.<br/>Pour générer le journal des changements, vous devez comparer l&#x27;ancienne liste des variables (au format json) avec les variables courantes. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | **<a id="doc.changelog.previous_json_file" name="doc.changelog.previous_json_file">doc.changelog.previous_json_file</a>**<br/>**Ligne de commande** : <br/>-dp, --doc.changelog.previous_json_file<br/>**Variable d'environnement** : DOC.CHANGELOG.PREVIOUS_JSON_FILE | Précédent fichier de description au format JSON.<br/>Pour générer le journal des changements, vous devez comparer l&#x27;ancienne liste des variables (au format json) avec les variables courantes. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` |
### Configuration des exemples ### Configuration des exemples
@ -76,6 +73,6 @@ include_toc: true
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | | Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="doc.examples.comment" name="doc.examples.comment">doc.examples.comment</a>**<br/>**Ligne de commande** : <br/>&nbsp;-dx, --doc.examples.comment<br/>&nbsp;-ndx, --doc.examples.no-comment<br/>**Variable d'environnement** : DOC.EXAMPLES.COMMENT | Ajouter la description des variables et des familles lorsqu&#x27;on génère des exemples. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | **<a id="doc.examples.comment" name="doc.examples.comment">doc.examples.comment</a>**<br/>**Ligne de commande** : <br/>&nbsp;-dx, --doc.examples.comment<br/>&nbsp;-ndx, --doc.examples.no-comment<br/>**Variable d'environnement** : DOC.EXAMPLES.COMMENT | Ajouter la description des variables et des familles lorsqu&#x27;on génère des exemples. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | |
| **<a id="doc.examples.comment_column" name="doc.examples.comment_column">doc.examples.comment_column</a>**<br/>**Ligne de commande** : --doc.examples.comment_column<br/>**Variable d'environnement** : DOC.EXAMPLES.COMMENT_COLUMN | Commentaire dans les exemples commence à la colonne. | 30 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : lorsque la variable "[Ajouter la description des variables et des familles lorsqu&#x27;on génère des exemples](#doc.examples.comment)" a la valeur "false" | | **<a id="doc.examples.comment_column" name="doc.examples.comment_column">doc.examples.comment_column</a>**<br/>**Ligne de commande** : <br/>--doc.examples.comment_column<br/>**Variable d'environnement** : DOC.EXAMPLES.COMMENT_COLUMN | Commentaire dans les exemples commence à la colonne. | 30 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*<br/>**Désactivé** : lorsque la variable "[Ajouter la description des variables et des familles lorsqu&#x27;on génère des exemples](#doc.examples.comment)" a la valeur "false" |

View file

@ -15,13 +15,12 @@ include_toc: true
| Variable | Description | Default value | Type | Access control | Validator | | Variable | Description | Default value | Type | Access control | Validator |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|-----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|-----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="doc.output_format" name="doc.output_format">doc.output_format</a>**<br/>**Command line**: -do, --doc.output_format<br/>**Environment variable**: DOC.OUTPUT_FORMAT | The output format of the generated documentation. | console | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | **Choices**: <br/>&nbsp;console<br/>&nbsp;asciidoc<br/>&nbsp;html<br/>&nbsp;github<br/>&nbsp;gitlab<br/>&nbsp;json | | **<a id="doc.output_format" name="doc.output_format">doc.output_format</a>**<br/>**Command line**: <br/>-do, --doc.output_format<br/>**Environment variable**: DOC.OUTPUT_FORMAT | The output format of the generated documentation. | console | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | **Choices**: <br/>&nbsp;console<br/>&nbsp;asciidoc<br/>&nbsp;html<br/>&nbsp;github<br/>&nbsp;gitlab<br/>&nbsp;json |
| **<a id="doc.tabular_template" name="doc.tabular_template">doc.tabular_template</a>**<br/>**Command line**: -dm, --doc.tabular_template<br/>**Environment variable**: DOC.TABULAR_TEMPLATE | Generate document with this tabular model.<br/>The variables are documented with a tabular view. A template selection allows you to choose the content of each column. | two_columns | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: "[The output format of the generated documentation](#doc.output_format)" in json is not compatible with this variable<br/> | **Choices**: <br/>&nbsp;two_columns<br/>&nbsp;three_columns<br/>&nbsp;four_columns<br/>&nbsp;five_columns<br/>&nbsp;six_columns | | **<a id="doc.tabular_template" name="doc.tabular_template">doc.tabular_template</a>**<br/>**Command line**: <br/>-dm, --doc.tabular_template<br/>**Environment variable**: DOC.TABULAR_TEMPLATE | Generate document with this tabular model.<br/>The variables are documented with a tabular view. A template selection allows you to choose the content of each column. | two_columns | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: "[The output format of the generated documentation](#doc.output_format)" in json is not compatible with this variable<br/> | **Choices**: <br/>&nbsp;two_columns<br/>&nbsp;three_columns<br/>&nbsp;four_columns<br/>&nbsp;five_columns<br/>&nbsp;six_columns |
| **<a id="doc.contents" name="doc.contents">doc.contents</a>**<br/>**Command line**: -dc, --doc.contents<br/>**Environment variable**: DOC.CONTENTS | Generated content.<br/>You can generate three type of document. All variables (&quot;variables&quot;), an example file in YAML format (&quot;example&quot;) or change log (&quot;changelog&quot;). | •&nbsp;variables | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `mandatory` | *`hidden`*<br/>**Hidden**: "[The output format of the generated documentation](#doc.output_format)" in json is not compatible with changelog or example "[Generated content](#doc.contents)"<br/> | `unique`<br/>**Choices**: <br/>&nbsp;variables<br/>&nbsp;example<br/>&nbsp;changelog | | **<a id="doc.contents" name="doc.contents">doc.contents</a>**<br/>**Command line**: <br/>-dc, --doc.contents<br/>**Environment variable**: DOC.CONTENTS | Generated content.<br/>You can generate three type of document. All variables (&quot;variables&quot;), an example file in YAML format (&quot;example&quot;) or change log (&quot;changelog&quot;). | •&nbsp;variables | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `mandatory` | *`hidden`*<br/>**Hidden**: "[The output format of the generated documentation](#doc.output_format)" in json is not compatible with changelog or example "[Generated content](#doc.contents)"<br/> | `unique`<br/>**Choices**: <br/>&nbsp;variables<br/>&nbsp;example<br/>&nbsp;changelog |
| **<a id="doc.title_level" name="doc.title_level">doc.title_level</a>**<br/>**Command line**: -dt, --doc.title_level<br/>**Environment variable**: DOC.TITLE_LEVEL | Starting title level. | 1 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **<a id="doc.title_level" name="doc.title_level">doc.title_level</a>**<br/>**Command line**: <br/>-dt, --doc.title_level<br/>**Environment variable**: DOC.TITLE_LEVEL | Starting title level. | 1 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | |
| **<a id="doc.default_values" name="doc.default_values">doc.default_values</a>**<br/>**Command line**: <br/>&nbsp;--doc.default_values<br/>&nbsp;--doc.no-default_values<br/>**Environment variable**: DOC.DEFAULT_VALUES | Modify values to document all variables.<br/>To document leadership or dynamic family variables, it is sometimes necessary to generate values, which can change the values in the configuration. Be careful if you reuse this configuration. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **<a id="doc.default_values" name="doc.default_values">doc.default_values</a>**<br/>**Command line**: <br/>&nbsp;--doc.default_values<br/>&nbsp;--doc.no-default_values<br/>**Environment variable**: DOC.DEFAULT_VALUES | Modify values to document all variables.<br/>To document leadership or dynamic family variables, it is sometimes necessary to generate values, which can change the values in the configuration. Be careful if you reuse this configuration. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | |
| **<a id="doc.true_color" name="doc.true_color">doc.true_color</a>**<br/>**Command line**: <br/>&nbsp;--doc.true_color<br/>&nbsp;--doc.no-true_color<br/>**Environment variable**: DOC.TRUE_COLOR | Display documentation in console always with true color terminal. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: when the variable "[The output format of the generated documentation](#doc.output_format)" hasn't the value "console" | | | **<a id="doc.true_color" name="doc.true_color">doc.true_color</a>**<br/>**Command line**: <br/>&nbsp;--doc.true_color<br/>&nbsp;--doc.no-true_color<br/>**Environment variable**: DOC.TRUE_COLOR | Display documentation in console always with true color terminal. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: when the variable "[The output format of the generated documentation](#doc.output_format)" hasn't the value "console" | |
| **<a id="doc.root" name="doc.root">doc.root</a>**<br/>**Command line**: -dr, --doc.root<br/>**Environment variable**: DOC.ROOT | Document the child variables of the family.<br/>By default, all accessible variables are included in the documentation. It is possible to define the family from which the documentation should be generated. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | | |
### The variables in this family are documented in another file ### The variables in this family are documented in another file
@ -29,14 +28,12 @@ include_toc: true
> >
> If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables.\ > If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables.\
> This family contains lists of variable blocks.\ > This family contains lists of variable blocks.\
> **Path**: doc.other_root_filenames\ > **Path**: doc.other_root_filenames
> *`disabled`*\
> **Disabled**: when the variable "[Document the child variables of the family](#doc.root)" has the value "null"
| Variable | Description | Type | Validator | | Variable | Description | Type | Validator |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------| |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| **<a id="doc.other_root_filenames.root_path" name="doc.other_root_filenames.root_path">doc.other_root_filenames.root_path</a>**<br/>**Command line**: --doc.other_root_filenames.root_path<br/>**Environment variable**: DOC.OTHER_ROOT_FILENAMES.ROOT_PATH | This file contains child variables of the family. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `unique` | | **<a id="doc.other_root_filenames.root_path" name="doc.other_root_filenames.root_path">doc.other_root_filenames.root_path</a>**<br/>**Command line**: <br/>--doc.other_root_filenames.root_path<br/>**Environment variable**: DOC.OTHER_ROOT_FILENAMES.ROOT_PATH | This file contains child variables of the family. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `unique` |
| **<a id="doc.other_root_filenames.filename" name="doc.other_root_filenames.filename">doc.other_root_filenames.filename</a>**<br/>**Command line**: --doc.other_root_filenames.filename<br/>**Environment variable**: DOC.OTHER_ROOT_FILENAMES.FILENAME | Name of the file. | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | •&nbsp;this filename could be a relative path<br/>&nbsp;file type allowed: "file". | | **<a id="doc.other_root_filenames.filename" name="doc.other_root_filenames.filename">doc.other_root_filenames.filename</a>**<br/>**Command line**: <br/>--doc.other_root_filenames.filename<br/>**Environment variable**: DOC.OTHER_ROOT_FILENAMES.FILENAME | Name of the file. | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | •&nbsp;this filename could be a relative path<br/>&nbsp;file type allowed: "file". |
### Variables and changelog documentation ### Variables and changelog documentation
@ -51,7 +48,7 @@ include_toc: true
| **<a id="doc.tabulars.without_family" name="doc.tabulars.without_family">doc.tabulars.without_family</a>**<br/>**Command line**: <br/>&nbsp;-df, --doc.tabulars.without_family<br/>&nbsp;-ndf, --doc.tabulars.no-without_family<br/>**Environment variable**: DOC.TABULARS.WITHOUT_FAMILY | Do not add families in documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **<a id="doc.tabulars.without_family" name="doc.tabulars.without_family">doc.tabulars.without_family</a>**<br/>**Command line**: <br/>&nbsp;-df, --doc.tabulars.without_family<br/>&nbsp;-ndf, --doc.tabulars.no-without_family<br/>**Environment variable**: DOC.TABULARS.WITHOUT_FAMILY | Do not add families in documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | |
| **<a id="doc.tabulars.with_commandline" name="doc.tabulars.with_commandline">doc.tabulars.with_commandline</a>**<br/>**Command line**: <br/>&nbsp;-dw, --doc.tabulars.with_commandline<br/>&nbsp;-ndw, --doc.tabulars.no-with_commandline<br/>**Environment variable**: DOC.TABULARS.WITH_COMMANDLINE | Add command line informations in documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **<a id="doc.tabulars.with_commandline" name="doc.tabulars.with_commandline">doc.tabulars.with_commandline</a>**<br/>**Command line**: <br/>&nbsp;-dw, --doc.tabulars.with_commandline<br/>&nbsp;-ndw, --doc.tabulars.no-with_commandline<br/>**Environment variable**: DOC.TABULARS.WITH_COMMANDLINE | Add command line informations in documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | |
| **<a id="doc.tabulars.with_environment" name="doc.tabulars.with_environment">doc.tabulars.with_environment</a>**<br/>**Command line**: <br/>&nbsp;-de, --doc.tabulars.with_environment<br/>&nbsp;-nde, --doc.tabulars.no-with_environment<br/>**Environment variable**: DOC.TABULARS.WITH_ENVIRONMENT | Add environment variable informations in documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **<a id="doc.tabulars.with_environment" name="doc.tabulars.with_environment">doc.tabulars.with_environment</a>**<br/>**Command line**: <br/>&nbsp;-de, --doc.tabulars.with_environment<br/>&nbsp;-nde, --doc.tabulars.no-with_environment<br/>**Environment variable**: DOC.TABULARS.WITH_ENVIRONMENT | Add environment variable informations in documentation. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | |
| **<a id="doc.tabulars.environment_prefix" name="doc.tabulars.environment_prefix">doc.tabulars.environment_prefix</a>**<br/>**Command line**: -dv, --doc.tabulars.environment_prefix<br/>**Environment variable**: DOC.TABULARS.ENVIRONMENT_PREFIX | Environment variables prefix name. | ROUGAIL | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: if "main_namespace" is not set or "[Add environment variable informations in documentation](#doc.tabulars.with_environment)" is false | Should only use uppercase characters. | | **<a id="doc.tabulars.environment_prefix" name="doc.tabulars.environment_prefix">doc.tabulars.environment_prefix</a>**<br/>**Command line**: <br/>-dv, --doc.tabulars.environment_prefix<br/>**Environment variable**: DOC.TABULARS.ENVIRONMENT_PREFIX | Environment variables prefix name. | ROUGAIL | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: if "main_namespace" is not set or "[Add environment variable informations in documentation](#doc.tabulars.with_environment)" is false | Should only use uppercase characters. |
### Changelog documentation ### Changelog documentation
@ -61,9 +58,9 @@ include_toc: true
> *`disabled`*\ > *`disabled`*\
> **Disabled**: if changelog in not in "[Generated content](#doc.contents)" > **Disabled**: if changelog in not in "[Generated content](#doc.contents)"
| Variable | Description | Type | | Variable | Description | Type |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| **<a id="doc.changelog.previous_json_file" name="doc.changelog.previous_json_file">doc.changelog.previous_json_file</a>**<br/>**Command line**: -dp, --doc.changelog.previous_json_file<br/>**Environment variable**: DOC.CHANGELOG.PREVIOUS_JSON_FILE | Previous description file in JSON format.<br/>To generate the changelog, you need to compare the old list of variables (in json format) with the current variables. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | **<a id="doc.changelog.previous_json_file" name="doc.changelog.previous_json_file">doc.changelog.previous_json_file</a>**<br/>**Command line**: <br/>-dp, --doc.changelog.previous_json_file<br/>**Environment variable**: DOC.CHANGELOG.PREVIOUS_JSON_FILE | Previous description file in JSON format.<br/>To generate the changelog, you need to compare the old list of variables (in json format) with the current variables. | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` |
### Examples configuration ### Examples configuration
@ -76,6 +73,6 @@ include_toc: true
| Variable | Description | Default value | Type | Access control | | Variable | Description | Default value | Type | Access control |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="doc.examples.comment" name="doc.examples.comment">doc.examples.comment</a>**<br/>**Command line**: <br/>&nbsp;-dx, --doc.examples.comment<br/>&nbsp;-ndx, --doc.examples.no-comment<br/>**Environment variable**: DOC.EXAMPLES.COMMENT | Add description of variables and families when generate examples. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | **<a id="doc.examples.comment" name="doc.examples.comment">doc.examples.comment</a>**<br/>**Command line**: <br/>&nbsp;-dx, --doc.examples.comment<br/>&nbsp;-ndx, --doc.examples.no-comment<br/>**Environment variable**: DOC.EXAMPLES.COMMENT | Add description of variables and families when generate examples. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | |
| **<a id="doc.examples.comment_column" name="doc.examples.comment_column">doc.examples.comment_column</a>**<br/>**Command line**: --doc.examples.comment_column<br/>**Environment variable**: DOC.EXAMPLES.COMMENT_COLUMN | Comment in examples starts at column. | 30 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: when the variable "[Add description of variables and families when generate examples](#doc.examples.comment)" has the value "false" | | **<a id="doc.examples.comment_column" name="doc.examples.comment_column">doc.examples.comment_column</a>**<br/>**Command line**: <br/>--doc.examples.comment_column<br/>**Environment variable**: DOC.EXAMPLES.COMMENT_COLUMN | Comment in examples starts at column. | 30 | [`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*<br/>**Disabled**: when the variable "[Add description of variables and families when generate examples](#doc.examples.comment)" has the value "false" |

View file

@ -5,8 +5,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: 2025-12-22 08:53+0100\n" "POT-Creation-Date: 2026-01-04 19:14+0100\n"
"PO-Revision-Date: 2025-12-22 08:54+0100\n" "PO-Revision-Date: 2026-01-04 19:15+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@ -32,27 +32,27 @@ msgstr "lorsque l'identifiant est \"{0}\""
msgid "when the identifier is not \"{0}\"" msgid "when the identifier is not \"{0}\""
msgstr "lorsque l'identifiant n'est pas \"{0}\"" msgstr "lorsque l'identifiant n'est pas \"{0}\""
#: src/rougail/output_doc/changelog.py:147 #: src/rougail/output_doc/changelog.py:137
msgid "New variable" msgid "New variable"
msgstr "Nouvelle variable" msgstr "Nouvelle variable"
#: src/rougail/output_doc/changelog.py:149 #: src/rougail/output_doc/changelog.py:139
msgid "New variables" msgid "New variables"
msgstr "Nouvelles variables" msgstr "Nouvelles variables"
#: src/rougail/output_doc/changelog.py:163 #: src/rougail/output_doc/changelog.py:153
msgid "Modified variable" msgid "Modified variable"
msgstr "Variable modifiée" msgstr "Variable modifiée"
#: src/rougail/output_doc/changelog.py:165 #: src/rougail/output_doc/changelog.py:155
msgid "Modified variables" msgid "Modified variables"
msgstr "Variables modifiées" msgstr "Variables modifiées"
#: src/rougail/output_doc/changelog.py:179 #: src/rougail/output_doc/changelog.py:169
msgid "Deleted variable" msgid "Deleted variable"
msgstr "Variable supprimée" msgstr "Variable supprimée"
#: src/rougail/output_doc/changelog.py:181 #: src/rougail/output_doc/changelog.py:171
msgid "Deleted variables" msgid "Deleted variables"
msgstr "Variables supprimées" msgstr "Variables supprimées"
@ -64,15 +64,15 @@ msgstr "niveau dupliqué pour rougail-doc pour {0} \"{1}\": {2} et {3}"
msgid "duplicated name \"{0}\" in rougail-output-doc" msgid "duplicated name \"{0}\" in rougail-output-doc"
msgstr "nom dupliqué \"{0}\" dans rougail-output-doc" msgstr "nom dupliqué \"{0}\" dans rougail-output-doc"
#: src/rougail/output_doc/config.py:117 #: src/rougail/output_doc/config.py:118
msgid "is true if doc is activate" msgid "is true if doc is activate"
msgstr "est true si doc est activé" msgstr "est true si doc est activé"
#: src/rougail/output_doc/config.py:120 #: src/rougail/output_doc/config.py:121
msgid "Generate documentation from structural files" msgid "Generate documentation from structural files"
msgstr "Générer la documentation depuis les fichiers de structure" msgstr "Générer la documentation depuis les fichiers de structure"
#: src/rougail/output_doc/config.py:121 #: src/rougail/output_doc/config.py:122
msgid "" msgid ""
"The structural files contain all the information related to the variables. " "The structural files contain all the information related to the variables. "
"This output generates the documentation for all or some of these variables." "This output generates the documentation for all or some of these variables."
@ -81,19 +81,19 @@ msgstr ""
"variables. Cette sortie génère la documentation pour tout ou partie de ces " "variables. Cette sortie génère la documentation pour tout ou partie de ces "
"variables." "variables."
#: src/rougail/output_doc/config.py:126 #: src/rougail/output_doc/config.py:127
msgid "if doc is not set in \"step.output\"" msgid "if doc is not set in \"step.output\""
msgstr "si doc n'est pas spécifié dans \"step.output\"" msgstr "si doc n'est pas spécifié dans \"step.output\""
#: src/rougail/output_doc/config.py:129 #: src/rougail/output_doc/config.py:130
msgid "The output format of the generated documentation" msgid "The output format of the generated documentation"
msgstr "Le format de sortie de la documentation générée" msgstr "Le format de sortie de la documentation générée"
#: src/rougail/output_doc/config.py:138 #: src/rougail/output_doc/config.py:139
msgid "Generate document with this tabular model" msgid "Generate document with this tabular model"
msgstr "Génère la documentation avec ce modèle de tableau" msgstr "Génère la documentation avec ce modèle de tableau"
#: src/rougail/output_doc/config.py:139 #: src/rougail/output_doc/config.py:140
msgid "" msgid ""
"The variables are documented with a tabular view. A template selection " "The variables are documented with a tabular view. A template selection "
"allows you to choose the content of each column." "allows you to choose the content of each column."
@ -101,15 +101,15 @@ msgstr ""
"Les variables sont documentées avec une vue tableau. Une sélection de modèle " "Les variables sont documentées avec une vue tableau. Une sélection de modèle "
"vous permet de choisir le contenu de chaque colonne." "vous permet de choisir le contenu de chaque colonne."
#: src/rougail/output_doc/config.py:147 #: src/rougail/output_doc/config.py:148
msgid "\"_.output_format\" in json is not compatible with this variable" msgid "\"_.output_format\" in json is not compatible with this variable"
msgstr "\"_.output_format\" en json n\\'est pas compatible avec cette variable" msgstr "\"_.output_format\" en json n\\'est pas compatible avec cette variable"
#: src/rougail/output_doc/config.py:154 #: src/rougail/output_doc/config.py:155
msgid "Generated content" msgid "Generated content"
msgstr "Contenu généré" msgstr "Contenu généré"
#: src/rougail/output_doc/config.py:155 #: src/rougail/output_doc/config.py:156
msgid "" msgid ""
"You can generate three type of document. All variables (\"variables\"), an " "You can generate three type of document. All variables (\"variables\"), an "
"example file in YAML format (\"example\") or change log (\"changelog\")." "example file in YAML format (\"example\") or change log (\"changelog\")."
@ -118,7 +118,7 @@ msgstr ""
"(\"variables\"), un exemple de fichier au format YAML (\"example\") ou le " "(\"variables\"), un exemple de fichier au format YAML (\"example\") ou le "
"journal des changements (\"changelog\")." "journal des changements (\"changelog\")."
#: src/rougail/output_doc/config.py:168 #: src/rougail/output_doc/config.py:169
msgid "" msgid ""
"\"_.output_format\" in json is not compatible with changelog or example " "\"_.output_format\" in json is not compatible with changelog or example "
"\"_.contents\"" "\"_.contents\""
@ -126,15 +126,15 @@ msgstr ""
"\"_.output_format\" en json n'est pas compatible avec \"_.contents\" " "\"_.output_format\" en json n'est pas compatible avec \"_.contents\" "
"changelog or example" "changelog or example"
#: src/rougail/output_doc/config.py:171 #: src/rougail/output_doc/config.py:172
msgid "Starting title level" msgid "Starting title level"
msgstr "Niveau de titre de départ" msgstr "Niveau de titre de départ"
#: src/rougail/output_doc/config.py:176 #: src/rougail/output_doc/config.py:177
msgid "Modify values to document all variables" msgid "Modify values to document all variables"
msgstr "Modifier les valeurs pour documenter toutes les variables" msgstr "Modifier les valeurs pour documenter toutes les variables"
#: src/rougail/output_doc/config.py:177 #: src/rougail/output_doc/config.py:178
msgid "" msgid ""
"To document leadership or dynamic family variables, it is sometimes " "To document leadership or dynamic family variables, it is sometimes "
"necessary to generate values, which can change the values in the " "necessary to generate values, which can change the values in the "
@ -145,31 +145,17 @@ msgstr ""
"valeurs de la configuration. Soyez vigilent si vous réutilisez cette " "valeurs de la configuration. Soyez vigilent si vous réutilisez cette "
"configuration." "configuration."
#: src/rougail/output_doc/config.py:181 #: src/rougail/output_doc/config.py:182
msgid "Display documentation in console always with true color terminal" msgid "Display documentation in console always with true color terminal"
msgstr "" msgstr ""
"Afficher la documentation dans la console en permanence avec un terminal en " "Afficher la documentation dans la console en permanence avec un terminal en "
"couleurs réelles" "couleurs réelles"
#: src/rougail/output_doc/config.py:188
msgid "Document the child variables of the family"
msgstr "Documenter les variables enfants de cette famille"
#: src/rougail/output_doc/config.py:189 #: src/rougail/output_doc/config.py:189
msgid ""
"By default, all accessible variables are included in the documentation. It "
"is possible to define the family from which the documentation should be "
"generated."
msgstr ""
"Par défaut, toute les variables accessibles sont incluent dans la "
"documentation. Il est possible de définir une famille a partir de laquelle "
"la documentation doit être générée."
#: src/rougail/output_doc/config.py:194
msgid "The variables in this family are documented in another file" msgid "The variables in this family are documented in another file"
msgstr "Les variables pour cette famille sont documentés dans un autre fichier" msgstr "Les variables pour cette famille sont documentés dans un autre fichier"
#: src/rougail/output_doc/config.py:195 #: src/rougail/output_doc/config.py:190
msgid "" msgid ""
"If you separate the variables into different files, the links between the " "If you separate the variables into different files, the links between the "
"variables will break. Therefore, you must define different filenames for the " "variables will break. Therefore, you must define different filenames for the "
@ -179,19 +165,19 @@ msgstr ""
"variables va être cassé. Dans ce cas, vous devez définit différents nom de " "variables va être cassé. Dans ce cas, vous devez définit différents nom de "
"fichiers pour les fichiers contenant ces variables." "fichiers pour les fichiers contenant ces variables."
#: src/rougail/output_doc/config.py:202 #: src/rougail/output_doc/config.py:194
msgid "This file contains child variables of the family" msgid "This file contains child variables of the family"
msgstr "Ce fichier contient les variables enfants de la famille" msgstr "Ce fichier contient les variables enfants de la famille"
#: src/rougail/output_doc/config.py:206 #: src/rougail/output_doc/config.py:198
msgid "Name of the file" msgid "Name of the file"
msgstr "Nom du fichier" msgstr "Nom du fichier"
#: src/rougail/output_doc/config.py:214 #: src/rougail/output_doc/config.py:206
msgid "Variables and changelog documentation" msgid "Variables and changelog documentation"
msgstr "Documentation des variables et journal de changements" msgstr "Documentation des variables et journal de changements"
#: src/rougail/output_doc/config.py:219 #: src/rougail/output_doc/config.py:211
msgid "" msgid ""
"if \"_.output_format\" is json or \"_.contents\" hasn't variables or " "if \"_.output_format\" is json or \"_.contents\" hasn't variables or "
"changelog" "changelog"
@ -199,45 +185,45 @@ msgstr ""
"si \"_.output_format\" en json ou si \"_.contents\" n'est pas variables ou " "si \"_.output_format\" en json ou si \"_.contents\" n'est pas variables ou "
"changelog" "changelog"
#: src/rougail/output_doc/config.py:222 #: src/rougail/output_doc/config.py:214
msgid "Do not add families in documentation" msgid "Do not add families in documentation"
msgstr "Ne pas ajouter les familles dans la documentation" msgstr "Ne pas ajouter les familles dans la documentation"
#: src/rougail/output_doc/config.py:227 #: src/rougail/output_doc/config.py:219
msgid "Add command line informations in documentation" msgid "Add command line informations in documentation"
msgstr "Ajoute les informations de la ligne de commande dans la documentation" msgstr "Ajoute les informations de la ligne de commande dans la documentation"
#: src/rougail/output_doc/config.py:232 #: src/rougail/output_doc/config.py:224
msgid "Add environment variable informations in documentation" msgid "Add environment variable informations in documentation"
msgstr "" msgstr ""
"Ajoute les informations de variable d'environnement dans la documentation" "Ajoute les informations de variable d'environnement dans la documentation"
#: src/rougail/output_doc/config.py:237 #: src/rougail/output_doc/config.py:229
msgid "Environment variables prefix name" msgid "Environment variables prefix name"
msgstr "Préfixe du nom des variables d'environnement" msgstr "Préfixe du nom des variables d'environnement"
#: src/rougail/output_doc/config.py:244 #: src/rougail/output_doc/config.py:236
msgid "should only use uppercase characters" msgid "should only use uppercase characters"
msgstr "doit seulement utilise des caractères en majuscule" msgstr "doit seulement utilise des caractères en majuscule"
#: src/rougail/output_doc/config.py:249 #: src/rougail/output_doc/config.py:241
msgid "if \"main_namespace\" is not set or \"_.with_environment\" is false" msgid "if \"main_namespace\" is not set or \"_.with_environment\" is false"
msgstr "" msgstr ""
"si \"main_namespace\" n'est pas défini ou \"_.with_environment\" est false" "si \"main_namespace\" n'est pas défini ou \"_.with_environment\" est false"
#: src/rougail/output_doc/config.py:252 #: src/rougail/output_doc/config.py:244
msgid "Changelog documentation" msgid "Changelog documentation"
msgstr "Documentation du journal des changements" msgstr "Documentation du journal des changements"
#: src/rougail/output_doc/config.py:257 #: src/rougail/output_doc/config.py:249
msgid "if changelog in not in \"_.contents\"" msgid "if changelog in not in \"_.contents\""
msgstr "changelog n'est pas défini dans \"_.contents\"" msgstr "changelog n'est pas défini dans \"_.contents\""
#: src/rougail/output_doc/config.py:260 #: src/rougail/output_doc/config.py:252
msgid "Previous description file in JSON format" msgid "Previous description file in JSON format"
msgstr "Précédent fichier de description au format JSON" msgstr "Précédent fichier de description au format JSON"
#: src/rougail/output_doc/config.py:261 #: src/rougail/output_doc/config.py:253
msgid "" msgid ""
"To generate the changelog, you need to compare the old list of variables (in " "To generate the changelog, you need to compare the old list of variables (in "
"json format) with the current variables." "json format) with the current variables."
@ -245,118 +231,118 @@ msgstr ""
"Pour générer le journal des changements, vous devez comparer l'ancienne " "Pour générer le journal des changements, vous devez comparer l'ancienne "
"liste des variables (au format json) avec les variables courantes." "liste des variables (au format json) avec les variables courantes."
#: src/rougail/output_doc/config.py:265 #: src/rougail/output_doc/config.py:257
msgid "Examples configuration" msgid "Examples configuration"
msgstr "Configuration des exemples" msgstr "Configuration des exemples"
#: src/rougail/output_doc/config.py:270 #: src/rougail/output_doc/config.py:262
msgid "if example is not in \"_.contents\"" msgid "if example is not in \"_.contents\""
msgstr "si example n'est pas défini dans \"_.contents\"" msgstr "si example n'est pas défini dans \"_.contents\""
#: src/rougail/output_doc/config.py:273 #: src/rougail/output_doc/config.py:265
msgid "Add description of variables and families when generate examples" msgid "Add description of variables and families when generate examples"
msgstr "" msgstr ""
"Ajouter la description des variables et des familles lorsqu'on génère des " "Ajouter la description des variables et des familles lorsqu'on génère des "
"exemples" "exemples"
#: src/rougail/output_doc/config.py:278 #: src/rougail/output_doc/config.py:270
msgid "Comment in examples starts at column" msgid "Comment in examples starts at column"
msgstr "Commentaire dans les exemples commence à la colonne" msgstr "Commentaire dans les exemples commence à la colonne"
#: src/rougail/output_doc/doc.py:329 #: src/rougail/output_doc/doc.py:354
msgid "This family contains lists of variable blocks" msgid "This family contains lists of variable blocks"
msgstr "Cette famille contient des listes de bloc de variable" msgstr "Cette famille contient des listes de bloc de variable"
#: src/rougail/output_doc/doc.py:339 #: src/rougail/output_doc/doc.py:364
msgid "This family builds families dynamically" msgid "This family builds families dynamically"
msgstr "Cette famille construit des familles dynamiquement" msgstr "Cette famille construit des familles dynamiquement"
#: src/rougail/output_doc/doc.py:353 #: src/rougail/output_doc/doc.py:378
msgid "Default" msgid "Default"
msgstr "Défaut" msgstr "Défaut"
#: src/rougail/output_doc/doc.py:371 #: src/rougail/output_doc/doc.py:396
msgid "Example" msgid "Example"
msgstr "Exemple" msgstr "Exemple"
#: src/rougail/output_doc/doc.py:374 #: src/rougail/output_doc/doc.py:399
msgid "Examples" msgid "Examples"
msgstr "Exemples" msgstr "Exemples"
#: src/rougail/output_doc/doc.py:383 #: src/rougail/output_doc/doc.py:408
msgid "Tag" msgid "Tag"
msgstr "Étiquette" msgstr "Étiquette"
#: src/rougail/output_doc/doc.py:386 #: src/rougail/output_doc/doc.py:411
msgid "Tags" msgid "Tags"
msgstr "Étiquettes" msgstr "Étiquettes"
#: src/rougail/output_doc/doc.py:418 #: src/rougail/output_doc/doc.py:443
msgid "No attribute \"description\" for \"{0}\" in {1}" msgid "No attribute \"description\" for \"{0}\" in {1}"
msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}" msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}"
#: src/rougail/output_doc/doc.py:553 #: src/rougail/output_doc/doc.py:578
msgid "text based with regular expressions \"{0}\"" msgid "text based with regular expressions \"{0}\""
msgstr "texte avec expression rationnelle \"{0}\"" msgstr "texte avec expression rationnelle \"{0}\""
#: src/rougail/output_doc/doc.py:557 #: src/rougail/output_doc/doc.py:582
#: src/rougail/output_doc/tabular/six_columns.py:65 #: src/rougail/output_doc/tabular/six_columns.py:65
msgid "Validator" msgid "Validator"
msgstr "Validateur" msgstr "Validateur"
#: src/rougail/output_doc/doc.py:560 #: src/rougail/output_doc/doc.py:585
msgid "Validators" msgid "Validators"
msgstr "Validateurs" msgstr "Validateurs"
#: src/rougail/output_doc/doc.py:569 #: src/rougail/output_doc/doc.py:594
msgid "Choices" msgid "Choices"
msgstr "Choix" msgstr "Choix"
#: src/rougail/output_doc/doc.py:672 #: src/rougail/output_doc/doc.py:697
msgid "the value of the identifier" msgid "the value of the identifier"
msgstr "la valeur de l'identifiant" msgstr "la valeur de l'identifiant"
#: src/rougail/output_doc/doc.py:676 #: src/rougail/output_doc/doc.py:701
msgid "the value of the {0}" msgid "the value of the {0}"
msgstr "la valeur de l'{0}" msgstr "la valeur de l'{0}"
#: src/rougail/output_doc/doc.py:685 #: src/rougail/output_doc/doc.py:710
msgid "depends on a calculation" msgid "depends on a calculation"
msgstr "dépend d'un calcul" msgstr "dépend d'un calcul"
#: src/rougail/output_doc/doc.py:691 #: src/rougail/output_doc/doc.py:716
msgid "\"{0}\" is a calculation for {1} but has no description in {2}" msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}" msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}"
#: src/rougail/output_doc/doc.py:719 #: src/rougail/output_doc/doc.py:744
msgid "the value of the variable \"{0}\"" msgid "the value of the variable \"{0}\""
msgstr "la valeur de la variable \"{0}\"" msgstr "la valeur de la variable \"{0}\""
#: src/rougail/output_doc/doc.py:721 #: src/rougail/output_doc/doc.py:746
msgid "the value of the variable \"{0}\" if it is defined" msgid "the value of the variable \"{0}\" if it is defined"
msgstr "la valeur de la variable \"{0}\" si elle est définie" msgstr "la valeur de la variable \"{0}\" si elle est définie"
#: src/rougail/output_doc/doc.py:741 #: src/rougail/output_doc/doc.py:766
msgid "the value of an undocumented variable" msgid "the value of an undocumented variable"
msgstr "la valeur d'une variable non documentée" msgstr "la valeur d'une variable non documentée"
#: src/rougail/output_doc/doc.py:744 #: src/rougail/output_doc/doc.py:769
msgid "the values of undocumented variables" msgid "the values of undocumented variables"
msgstr "les valeurs de variables non documentées" msgstr "les valeurs de variables non documentées"
#: src/rougail/output_doc/doc.py:767 #: src/rougail/output_doc/doc.py:792
msgid "(from an undocumented variable)" msgid "(from an undocumented variable)"
msgstr "(issue d'une variable non documentée)" msgstr "(issue d'une variable non documentée)"
#: src/rougail/output_doc/doc.py:775 #: src/rougail/output_doc/doc.py:800
msgid "{0} (from an undocumented variable)" msgid "{0} (from an undocumented variable)"
msgstr "{0} (issue d'une variable non documentée)" msgstr "{0} (issue d'une variable non documentée)"
#: src/rougail/output_doc/doc.py:779 src/rougail/output_doc/doc.py:831 #: src/rougail/output_doc/doc.py:804 src/rougail/output_doc/doc.py:856
msgid "depends on an undocumented variable" msgid "depends on an undocumented variable"
msgstr "dépends d'une variable non documentée" msgstr "dépends d'une variable non documentée"
#: src/rougail/output_doc/doc.py:853 #: src/rougail/output_doc/doc.py:878
msgid "" msgid ""
"when the variable \"{{0}}\" is defined, accessible and hasn't the value " "when the variable \"{{0}}\" is defined, accessible and hasn't the value "
"\"{0}\"" "\"{0}\""
@ -364,43 +350,43 @@ msgstr ""
"lorsque la variable \"{{0}}\" est définie, accessible et n'a pas la valeur " "lorsque la variable \"{{0}}\" est définie, accessible et n'a pas la valeur "
"\"{0}\"" "\"{0}\""
#: src/rougail/output_doc/doc.py:857 #: src/rougail/output_doc/doc.py:882
msgid "when the variable \"{{0}}\" is defined and hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" is defined and hasn't the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" est définie et n'a pas la valeur \"{0}\"" msgstr "lorsque la variable \"{{0}}\" est définie et n'a pas la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:861 #: src/rougail/output_doc/doc.py:886
msgid "when the variable \"{{0}}\" is accessible and hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" is accessible and hasn't the value \"{0}\""
msgstr "" msgstr ""
"lorsque la variable \"{{0}}\" est accessible et n'a pas la valeur \"{0}\"" "lorsque la variable \"{{0}}\" est accessible et n'a pas la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:863 #: src/rougail/output_doc/doc.py:888
msgid "when the variable \"{{0}}\" hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" hasn't the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" n'a pas la valeur \"{0}\"" msgstr "lorsque la variable \"{{0}}\" n'a pas la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:867 #: src/rougail/output_doc/doc.py:892
msgid "" msgid ""
"when the variable \"{{0}}\" is defined, is accessible and has the value " "when the variable \"{{0}}\" is defined, is accessible and has the value "
"\"{0}\"" "\"{0}\""
msgstr "" msgstr ""
"lorsque la variable \"{{0}}\" est définie, accessible et a la valeur \"{0}\"" "lorsque la variable \"{{0}}\" est définie, accessible et a la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:871 #: src/rougail/output_doc/doc.py:896
msgid "when the variable \"{{0}}\" is defined and has the value \"{0}\"" msgid "when the variable \"{{0}}\" is defined and has the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" est définie et a la valeur \"{0}\"" msgstr "lorsque la variable \"{{0}}\" est définie et a la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:875 #: src/rougail/output_doc/doc.py:900
msgid "when the variable \"{{0}}\" is accessible and has the value \"{0}\"" msgid "when the variable \"{{0}}\" is accessible and has the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" est accessible et a la valeur \"{0}\"" msgstr "lorsque la variable \"{{0}}\" est accessible et a la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:877 #: src/rougail/output_doc/doc.py:902
msgid "when the variable \"{{0}}\" has the value \"{0}\"" msgid "when the variable \"{{0}}\" has the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" a la valeur \"{0}\"" msgstr "lorsque la variable \"{{0}}\" a la valeur \"{0}\""
#: src/rougail/output_doc/example.py:45 #: src/rougail/output_doc/example.py:62
msgid "Example with mandatory variables not filled in" msgid "Example with mandatory variables not filled in"
msgstr "Exemple avec des variables obligatoire non renseignée" msgstr "Exemple avec des variables obligatoire non renseignée"
#: src/rougail/output_doc/example.py:52 #: src/rougail/output_doc/example.py:69
msgid "Example with all variables modifiable" msgid "Example with all variables modifiable"
msgstr "Exemple avec toutes les variables modifiable" msgstr "Exemple avec toutes les variables modifiable"
@ -438,24 +424,36 @@ msgstr "Ligne de commande"
msgid "Environment variable" msgid "Environment variable"
msgstr "Variable d'environnement" msgstr "Variable d'environnement"
#: src/rougail/output_doc/utils.py:458 #: src/rougail/output_doc/utils.py:437
msgid "Path" msgid "Path"
msgstr "Chemin" msgstr "Chemin"
#: src/rougail/output_doc/utils.py:468 #: src/rougail/output_doc/utils.py:447
msgid "Identifiers" msgid "Identifiers"
msgstr "Identifiants" msgstr "Identifiants"
#: src/rougail/output_doc/utils.py:684 src/rougail/output_doc/utils.py:693 #: src/rougail/output_doc/utils.py:663 src/rougail/output_doc/utils.py:672
#: src/rougail/output_doc/utils.py:699 src/rougail/output_doc/utils.py:705 #: src/rougail/output_doc/utils.py:678 src/rougail/output_doc/utils.py:684
#: src/rougail/output_doc/utils.py:709 #: src/rougail/output_doc/utils.py:688
msgid "(default)" msgid "(default)"
msgstr "(défaut)" msgstr "(défaut)"
#: src/rougail/output_doc/utils.py:960 #: src/rougail/output_doc/utils.py:940
msgid "{0}: {1}" msgid "{0}: {1}"
msgstr "{0} : {1}" msgstr "{0} : {1}"
#~ msgid "Document the child variables of the family"
#~ msgstr "Documenter les variables enfants de cette famille"
#~ msgid ""
#~ "By default, all accessible variables are included in the documentation. "
#~ "It is possible to define the family from which the documentation should "
#~ "be generated."
#~ msgstr ""
#~ "Par défaut, toute les variables accessibles sont incluent dans la "
#~ "documentation. Il est possible de définir une famille a partir de "
#~ "laquelle la documentation doit être générée."
#~ msgid "variables is not selected in \"_.contents\"" #~ msgid "variables is not selected in \"_.contents\""
#~ msgstr "variables n'est pas sélectionné dans \"_.contents\"" #~ msgstr "variables n'est pas sélectionné dans \"_.contents\""

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-12-23 21:35+0100\n" "POT-Creation-Date: 2026-01-04 19:15+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -31,27 +31,27 @@ msgstr ""
msgid "when the identifier is not \"{0}\"" msgid "when the identifier is not \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:147 #: src/rougail/output_doc/changelog.py:137
msgid "New variable" msgid "New variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:149 #: src/rougail/output_doc/changelog.py:139
msgid "New variables" msgid "New variables"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:163 #: src/rougail/output_doc/changelog.py:153
msgid "Modified variable" msgid "Modified variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:165 #: src/rougail/output_doc/changelog.py:155
msgid "Modified variables" msgid "Modified variables"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:179 #: src/rougail/output_doc/changelog.py:169
msgid "Deleted variable" msgid "Deleted variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:181 #: src/rougail/output_doc/changelog.py:171
msgid "Deleted variables" msgid "Deleted variables"
msgstr "" msgstr ""
@ -124,223 +124,215 @@ msgid "Display documentation in console always with true color terminal"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:189 #: src/rougail/output_doc/config.py:189
msgid "Document the child variables of the family"
msgstr ""
#: src/rougail/output_doc/config.py:190
msgid "By default, all accessible variables are included in the documentation. It is possible to define the family from which the documentation should be generated."
msgstr ""
#: src/rougail/output_doc/config.py:195
msgid "The variables in this family are documented in another file" msgid "The variables in this family are documented in another file"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:196 #: src/rougail/output_doc/config.py:190
msgid "If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables." msgid "If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables."
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:203 #: src/rougail/output_doc/config.py:194
msgid "This file contains child variables of the family" msgid "This file contains child variables of the family"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:207 #: src/rougail/output_doc/config.py:198
msgid "Name of the file" msgid "Name of the file"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:215 #: src/rougail/output_doc/config.py:206
msgid "Variables and changelog documentation" msgid "Variables and changelog documentation"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:220 #: src/rougail/output_doc/config.py:211
msgid "if \"_.output_format\" is json or \"_.contents\" hasn't variables or changelog" msgid "if \"_.output_format\" is json or \"_.contents\" hasn't variables or changelog"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:223 #: src/rougail/output_doc/config.py:214
msgid "Do not add families in documentation" msgid "Do not add families in documentation"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:228 #: src/rougail/output_doc/config.py:219
msgid "Add command line informations in documentation" msgid "Add command line informations in documentation"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:233 #: src/rougail/output_doc/config.py:224
msgid "Add environment variable informations in documentation" msgid "Add environment variable informations in documentation"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:238 #: src/rougail/output_doc/config.py:229
msgid "Environment variables prefix name" msgid "Environment variables prefix name"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:245 #: src/rougail/output_doc/config.py:236
msgid "should only use uppercase characters" msgid "should only use uppercase characters"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:250 #: src/rougail/output_doc/config.py:241
msgid "if \"main_namespace\" is not set or \"_.with_environment\" is false" msgid "if \"main_namespace\" is not set or \"_.with_environment\" is false"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:253 #: src/rougail/output_doc/config.py:244
msgid "Changelog documentation" msgid "Changelog documentation"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:258 #: src/rougail/output_doc/config.py:249
msgid "if changelog in not in \"_.contents\"" msgid "if changelog in not in \"_.contents\""
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:261 #: src/rougail/output_doc/config.py:252
msgid "Previous description file in JSON format" msgid "Previous description file in JSON format"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:262 #: src/rougail/output_doc/config.py:253
msgid "To generate the changelog, you need to compare the old list of variables (in json format) with the current variables." msgid "To generate the changelog, you need to compare the old list of variables (in json format) with the current variables."
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:266 #: src/rougail/output_doc/config.py:257
msgid "Examples configuration" msgid "Examples configuration"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:271 #: src/rougail/output_doc/config.py:262
msgid "if example is not in \"_.contents\"" msgid "if example is not in \"_.contents\""
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:274 #: src/rougail/output_doc/config.py:265
msgid "Add description of variables and families when generate examples" msgid "Add description of variables and families when generate examples"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:279 #: src/rougail/output_doc/config.py:270
msgid "Comment in examples starts at column" msgid "Comment in examples starts at column"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:329 #: src/rougail/output_doc/doc.py:354
msgid "This family contains lists of variable blocks" msgid "This family contains lists of variable blocks"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:339 #: src/rougail/output_doc/doc.py:364
msgid "This family builds families dynamically" msgid "This family builds families dynamically"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:353 #: src/rougail/output_doc/doc.py:378
msgid "Default" msgid "Default"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:371 #: src/rougail/output_doc/doc.py:396
msgid "Example" msgid "Example"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:374 #: src/rougail/output_doc/doc.py:399
msgid "Examples" msgid "Examples"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:383 #: src/rougail/output_doc/doc.py:408
msgid "Tag" msgid "Tag"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:386 #: src/rougail/output_doc/doc.py:411
msgid "Tags" msgid "Tags"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:418 #: src/rougail/output_doc/doc.py:443
msgid "No attribute \"description\" for \"{0}\" in {1}" msgid "No attribute \"description\" for \"{0}\" in {1}"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:553 #: src/rougail/output_doc/doc.py:578
msgid "text based with regular expressions \"{0}\"" msgid "text based with regular expressions \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:557 #: src/rougail/output_doc/doc.py:582
#: src/rougail/output_doc/tabular/six_columns.py:65 #: src/rougail/output_doc/tabular/six_columns.py:65
msgid "Validator" msgid "Validator"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:560 #: src/rougail/output_doc/doc.py:585
msgid "Validators" msgid "Validators"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:569 #: src/rougail/output_doc/doc.py:594
msgid "Choices" msgid "Choices"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:672 #: src/rougail/output_doc/doc.py:697
msgid "the value of the identifier" msgid "the value of the identifier"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:676 #: src/rougail/output_doc/doc.py:701
msgid "the value of the {0}" msgid "the value of the {0}"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:685 #: src/rougail/output_doc/doc.py:710
msgid "depends on a calculation" msgid "depends on a calculation"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:691 #: src/rougail/output_doc/doc.py:716
msgid "\"{0}\" is a calculation for {1} but has no description in {2}" msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:719 #: src/rougail/output_doc/doc.py:744
msgid "the value of the variable \"{0}\"" msgid "the value of the variable \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:721 #: src/rougail/output_doc/doc.py:746
msgid "the value of the variable \"{0}\" if it is defined" msgid "the value of the variable \"{0}\" if it is defined"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:741 #: src/rougail/output_doc/doc.py:766
msgid "the value of an undocumented variable" msgid "the value of an undocumented variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:744 #: src/rougail/output_doc/doc.py:769
msgid "the values of undocumented variables" msgid "the values of undocumented variables"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:767 #: src/rougail/output_doc/doc.py:792
msgid "(from an undocumented variable)" msgid "(from an undocumented variable)"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:775 #: src/rougail/output_doc/doc.py:800
msgid "{0} (from an undocumented variable)" msgid "{0} (from an undocumented variable)"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:779 src/rougail/output_doc/doc.py:831 #: src/rougail/output_doc/doc.py:804 src/rougail/output_doc/doc.py:856
msgid "depends on an undocumented variable" msgid "depends on an undocumented variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:853 #: src/rougail/output_doc/doc.py:878
msgid "when the variable \"{{0}}\" is defined, accessible and hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" is defined, accessible and hasn't the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:857 #: src/rougail/output_doc/doc.py:882
msgid "when the variable \"{{0}}\" is defined and hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" is defined and hasn't the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:861 #: src/rougail/output_doc/doc.py:886
msgid "when the variable \"{{0}}\" is accessible and hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" is accessible and hasn't the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:863 #: src/rougail/output_doc/doc.py:888
msgid "when the variable \"{{0}}\" hasn't the value \"{0}\"" msgid "when the variable \"{{0}}\" hasn't the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:867 #: src/rougail/output_doc/doc.py:892
msgid "when the variable \"{{0}}\" is defined, is accessible and has the value \"{0}\"" msgid "when the variable \"{{0}}\" is defined, is accessible and has the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:871 #: src/rougail/output_doc/doc.py:896
msgid "when the variable \"{{0}}\" is defined and has the value \"{0}\"" msgid "when the variable \"{{0}}\" is defined and has the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:875 #: src/rougail/output_doc/doc.py:900
msgid "when the variable \"{{0}}\" is accessible and has the value \"{0}\"" msgid "when the variable \"{{0}}\" is accessible and has the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:877 #: src/rougail/output_doc/doc.py:902
msgid "when the variable \"{{0}}\" has the value \"{0}\"" msgid "when the variable \"{{0}}\" has the value \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/example.py:45 #: src/rougail/output_doc/example.py:62
msgid "Example with mandatory variables not filled in" msgid "Example with mandatory variables not filled in"
msgstr "" msgstr ""
#: src/rougail/output_doc/example.py:52 #: src/rougail/output_doc/example.py:69
msgid "Example with all variables modifiable" msgid "Example with all variables modifiable"
msgstr "" msgstr ""
@ -378,21 +370,21 @@ msgstr ""
msgid "Environment variable" msgid "Environment variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:458 #: src/rougail/output_doc/utils.py:437
msgid "Path" msgid "Path"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:468 #: src/rougail/output_doc/utils.py:447
msgid "Identifiers" msgid "Identifiers"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:684 src/rougail/output_doc/utils.py:693 #: src/rougail/output_doc/utils.py:663 src/rougail/output_doc/utils.py:672
#: src/rougail/output_doc/utils.py:699 src/rougail/output_doc/utils.py:705 #: src/rougail/output_doc/utils.py:678 src/rougail/output_doc/utils.py:684
#: src/rougail/output_doc/utils.py:709 #: src/rougail/output_doc/utils.py:688
msgid "(default)" msgid "(default)"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:960 #: src/rougail/output_doc/utils.py:940
msgid "{0}: {1}" msgid "{0}: {1}"
msgstr "" msgstr ""

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
distribued with GPL-2 or later license distribued with GPL-2 or later license

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the
@ -36,17 +36,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
self._added_variables = [] self._added_variables = []
self._modified_variables = [] self._modified_variables = []
self._removed_variables = [] self._removed_variables = []
root = self.rougailconfig["doc.root"] informations = self.informations
if root:
informations = self.informations
for family in root.split('.'):
informations = informations[family]["children"]
if previous_doc and family in previous_doc:
previous_doc = previous_doc[family]['children']
else:
previous_doc = {}
else:
informations = self.informations
self.formatter.options() self.formatter.options()
self.parser(previous_doc, informations) self.parser(previous_doc, informations)
return self.display() return self.display()

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the
@ -185,19 +185,10 @@ doc:
variable: _.output_format variable: _.output_format
when_not: console when_not: console
root:
description: {_('Document the child variables of the family')}
help: {_('By default, all accessible variables are included in the documentation. It is possible to define the family from which the documentation should be generated.')}
alternative_name: dr
mandatory: false
other_root_filenames: other_root_filenames:
description: {_("The variables in this family are documented in another file")} description: {_("The variables in this family are documented in another file")}
help: {_("If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables.")} help: {_("If you separate the variables into different files, the links between the variables will break. Therefore, you must define different filenames for the files containing these variables.")}
type: leadership type: leadership
disabled:
variable: _.root
when: null
root_path: root_path:
description: {_("This file contains child variables of the family")} description: {_("This file contains child variables of the family")}

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the
@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from warnings import warn from warnings import warn
from typing import Optional from typing import Optional, Union
from itertools import chain from itertools import chain
from re import compile from re import compile
@ -47,9 +47,10 @@ class RougailOutputDoc(Examples, Changelog):
def __init__( def __init__(
self, self,
config: "Config", config: Union["Config", "SubConfig"],
*, *,
rougailconfig: "RougailConfig" = None, rougailconfig: "RougailConfig" = None,
true_config: "Config" = None,
**kwargs, **kwargs,
): ):
# Import here to avoid circular import # Import here to avoid circular import
@ -66,6 +67,10 @@ class RougailOutputDoc(Examples, Changelog):
raise Exception("doc is not set as step.output") raise Exception("doc is not set as step.output")
self.outputs = OutPuts().get() self.outputs = OutPuts().get()
self.conf = config self.conf = config
if true_config is None:
self.true_config = config
else:
self.true_config = true_config
self.modes_level = rougailconfig["modes_level"] self.modes_level = rougailconfig["modes_level"]
self.disabled_modes = [] self.disabled_modes = []
if self.modes_level: if self.modes_level:
@ -117,8 +122,30 @@ class RougailOutputDoc(Examples, Changelog):
informations = self.parse_families(config) informations = self.parse_families(config)
if informations is None: if informations is None:
informations = {} informations = {}
elif self.conf.type() not in ['config', 'metaconfig', 'groupconfig', 'mixconfig']:
root_informations = {}
infos = root_informations
family = self.true_config
for path in self.conf.path().split('.'):
family = family.option(path)
name = family.name(uncalculated=True)
infos[name] = self.get_root_family(family)
infos = infos[name]["children"]
infos.update(informations)
informations = root_informations
self.informations = informations self.informations = informations
def get_root_family(self, family):
family_informations = self._populate_family(
family,
)
if family_informations is not False:
return {
"type": self._get_family_type(family),
"informations": family_informations,
"children": {},
}
def populate_dynamics(self, *, config=None, reload=False): def populate_dynamics(self, *, config=None, reload=False):
if config is None: if config is None:
config = self.conf.unrestraint config = self.conf.unrestraint
@ -194,7 +221,7 @@ class RougailOutputDoc(Examples, Changelog):
calculation = child.information.get(f"{hidden_property}_calculation", None) calculation = child.information.get(f"{hidden_property}_calculation", None)
if calculation and calculation.get("type") == "variable": if calculation and calculation.get("type") == "variable":
variable_path, value, condition = calculation["value"] variable_path, value, condition = calculation["value"]
variable = self.conf.forcepermissive.option(variable_path) variable = self.true_config.forcepermissive.option(variable_path)
try: try:
variable.value.get() variable.value.get()
except AttributeError: except AttributeError:
@ -214,17 +241,15 @@ class RougailOutputDoc(Examples, Changelog):
return False return False
def parse_family(self, family, informations: dict, *, force_injection=False) -> None: def parse_family(self, family, informations: dict, *, force_injection=False) -> None:
path = family.path(uncalculated=True)
name = family.name(uncalculated=True)
sub_informations = self.parse_families(family) sub_informations = self.parse_families(family)
if not force_injection and not sub_informations: if not force_injection and not sub_informations:
return return
# if self.with_family: # if self.with_family:
family_informations = self._populate_family( family_informations = self._populate_family(
family, family,
path,
) )
if family_informations is not False: if family_informations is not False:
name = family.name(uncalculated=True)
informations[name] = { informations[name] = {
"type": self._get_family_type(family), "type": self._get_family_type(family),
"informations": family_informations, "informations": family_informations,
@ -316,8 +341,8 @@ class RougailOutputDoc(Examples, Changelog):
def _populate_family( def _populate_family(
self, self,
family, family,
path: str,
) -> dict: ) -> dict:
path = family.path(uncalculated=True)
if family.isdynamic(): if family.isdynamic():
informations = self.dynamic_paths[path] informations = self.dynamic_paths[path]
else: else:
@ -712,7 +737,7 @@ class RougailOutputDoc(Examples, Changelog):
return None return None
else: else:
try: try:
self.conf.forcepermissive.option(path).get() self.true_config.forcepermissive.option(path).get()
except AttributeError: except AttributeError:
return None return None
if not calculation["optional"]: if not calculation["optional"]:
@ -747,7 +772,7 @@ class RougailOutputDoc(Examples, Changelog):
else: else:
# FIXME A MUTUALISER AUSSI # FIXME A MUTUALISER AUSSI
variable_path = calculation["ori_path"] variable_path = calculation["ori_path"]
variable = self.conf.unrestraint.option(variable_path) variable = self.true_config.unrestraint.option(variable_path)
try: try:
isfollower = variable.isfollower() isfollower = variable.isfollower()
except AttributeError: except AttributeError:
@ -782,7 +807,7 @@ class RougailOutputDoc(Examples, Changelog):
values = true_msg values = true_msg
else: else:
try: try:
description = self._convert_description(self.conf.option(calculation["ori_path"]).description(uncalculated=True), "description", its_a_path=False) description = self._convert_description(self.true_config.option(calculation["ori_path"]).description(uncalculated=True), "description", its_a_path=False)
except AttributeError: except AttributeError:
description = calculation["ori_path"] description = calculation["ori_path"]
values = { values = {
@ -806,7 +831,7 @@ class RougailOutputDoc(Examples, Changelog):
if "{{ identifier }}" in calculation["ori_path"] or "{{ identifier }}" in variable_path: if "{{ identifier }}" in calculation["ori_path"] or "{{ identifier }}" in variable_path:
variables = self.get_annotation_variable(variable_path, calculation["ori_path"]) variables = self.get_annotation_variable(variable_path, calculation["ori_path"])
else: else:
option = self.conf.option(variable_path) option = self.true_config.option(variable_path)
try: try:
is_inaccessible = self.is_inaccessible_user_data(option) is_inaccessible = self.is_inaccessible_user_data(option)
except AttributeError as err: except AttributeError as err:
@ -820,7 +845,7 @@ class RougailOutputDoc(Examples, Changelog):
variables = [[variable_path, description, None]] variables = [[variable_path, description, None]]
for cpath, description, identifiers in variables: for cpath, description, identifiers in variables:
if not cpath: if not cpath:
variable = self.conf.forcepermissive.option(variable_path) variable = self.true_config.forcepermissive.option(variable_path)
try: try:
variable_value = self._get_unmodified_default_value(variable) variable_value = self._get_unmodified_default_value(variable)
except PropertiesOptionError as err: except PropertiesOptionError as err:
@ -905,10 +930,10 @@ class RougailOutputDoc(Examples, Changelog):
cpath = calc_path(path, identifiers=identifiers) cpath = calc_path(path, identifiers=identifiers)
if regexp and not regexp.search(cpath): if regexp and not regexp.search(cpath):
continue continue
if self.is_inaccessible_user_data(self.conf.option(cpath)): if self.is_inaccessible_user_data(self.true_config.option(cpath)):
yield None, None, None yield None, None, None
else: else:
description = self._convert_description(self.conf.option(path).description(uncalculated=True), "description", its_a_path=False) description = self._convert_description(self.true_config.option(path).description(uncalculated=True), "description", its_a_path=False)
if "{{ identifier }}" in path: if "{{ identifier }}" in path:
yield path, description, identifiers.copy() yield path, description, identifiers.copy()
else: else:
@ -919,7 +944,7 @@ class RougailOutputDoc(Examples, Changelog):
if not calculation: if not calculation:
return child.value.get() return child.value.get()
if calculation["type"] == "variable": if calculation["type"] == "variable":
variable = self.conf.forcepermissive.option(calculation["value"]) variable = self.true_config.forcepermissive.option(calculation["value"])
if variable and self.is_inaccessible_user_data(variable): if variable and self.is_inaccessible_user_data(variable):
return self._get_unmodified_default_value(variable) return self._get_unmodified_default_value(variable)
raise VariableCalculationDependencyError() raise VariableCalculationDependencyError()

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the
@ -18,10 +18,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from typing import Optional from typing import Optional
from ruamel.yaml import CommentedMap from ruamel.yaml import CommentedMap
from ruamel.yaml.representer import RoundTripRepresenter
from .utils import _, calc_path from .utils import _, calc_path
# XXX explicit null (see rougail-output-formatter
def represent_none(self, data):
return self.represent_scalar("tag:yaml.org,2002:null", "null")
def represent_str(self, data):
if data == "":
return self.represent_scalar("tag:yaml.org,2002:null", "")
return self.represent_scalar("tag:yaml.org,2002:str", data)
RoundTripRepresenter.add_representer(type(None), represent_none)
RoundTripRepresenter.add_representer(str, represent_str)
# XXX
class Examples: # pylint: disable=no-member,too-few-public-methods class Examples: # pylint: disable=no-member,too-few-public-methods
"""Build examples""" """Build examples"""
@ -31,12 +49,11 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
def gen_doc_examples(self): def gen_doc_examples(self):
"""Return examples""" """Return examples"""
root = self.rougailconfig["doc.root"]
self.comment_examples = self.rougailconfig["doc.examples.comment"] self.comment_examples = self.rougailconfig["doc.examples.comment"]
self.level = self.rougailconfig["doc.title_level"] self.level = self.rougailconfig["doc.title_level"]
if self.comment_examples: if self.comment_examples:
self.comment_examples_column = self.rougailconfig["doc.examples.comment_column"] self.comment_examples_column = self.rougailconfig["doc.examples.comment_column"]
self._build_examples(root) self._build_examples()
return_string = "" return_string = ""
datas = [] datas = []
if self.examples_mandatories: if self.examples_mandatories:
@ -56,28 +73,10 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
]) ])
return self.formatter.compute(datas) return self.formatter.compute(datas)
def _build_examples(self, root): def _build_examples(self):
examples, examples_mandatories = self._parse_examples( examples, examples_mandatories = self._parse_examples(
self.informations self.informations
) )
if root and examples:
sub_examples = examples
sub_examples_mandatories = examples_mandatories
new_examples_mandatories = examples_mandatories = {}
new_examples = examples = {}
for sub in root.split('.'):
new_examples[sub] = {}
new_examples = new_examples[sub]
sub_examples = sub_examples[sub]
if examples_mandatories and sub in sub_examples_mandatories:
new_examples_mandatories[sub] = {}
new_examples_mandatories = new_examples_mandatories[sub]
sub_examples_mandatories = sub_examples_mandatories[sub]
else:
new_examples_mandatories = {}
sub_examples_mandatories = {}
new_examples.update(sub_examples)
new_examples_mandatories.update(sub_examples_mandatories)
self.examples = examples self.examples = examples
self.examples_mandatories = examples_mandatories self.examples_mandatories = examples_mandatories

View file

@ -1,6 +1,6 @@
"""Internationalisation utilities """Internationalisation utilities
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
"""Loads output """Loads output
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the
@ -31,10 +31,9 @@ class Formatter:
def run(self, informations: dict, *args) -> str: # pylint: disable=unused-argument def run(self, informations: dict, *args) -> str: # pylint: disable=unused-argument
"""Transform to string""" """Transform to string"""
root = self.rougailconfig["doc.root"] # if root:
if root: # current = informations
current = informations # for path in root.split('.'):
for path in root.split('.'): # current = current[path]["children"]
current = current[path]["children"] # informations = current
informations = current
return dumps(informations, ensure_ascii=False, indent=2) return dumps(informations, ensure_ascii=False, indent=2)

View file

@ -1,6 +1,6 @@
"""Loads output """Loads output
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2025 Copyright (C) 2025-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024-2025 Copyright (C) 2024-2026
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the under the terms of the GNU Lesser General Public License as published by the
@ -201,12 +201,6 @@ class CommonFormatter:
if informations: if informations:
level = self.rougailconfig["doc.title_level"] level = self.rougailconfig["doc.title_level"]
self.options() self.options()
if self.root:
current = informations
for path in self.root.split('.'):
info = current[path]['informations']
current = current[path]["children"]
informations = {"informations": info, "children": current}
return self._run(informations, level, dico_is_already_treated) return self._run(informations, level, dico_is_already_treated)
return "" return ""
@ -221,16 +215,7 @@ class CommonFormatter:
else: else:
self.prefix = self.rougailconfig["doc.tabulars.environment_prefix"] + "_" self.prefix = self.rougailconfig["doc.tabulars.environment_prefix"] + "_"
self.with_family = not self.rougailconfig["doc.tabulars.without_family"] self.with_family = not self.rougailconfig["doc.tabulars.without_family"]
self.root = self.rougailconfig["doc.root"]
self.other_root_filenames = None self.other_root_filenames = None
if self.root:
try:
other_root_filenames = self.rougailconfig["doc.other_root_filenames"]
except PropertiesOptionError:
pass
else:
if other_root_filenames:
self.other_root_filenames = dict(zip(other_root_filenames["root_path"], other_root_filenames["filename"]))
tabular_template = self.rougailconfig["doc.tabular_template"] tabular_template = self.rougailconfig["doc.tabular_template"]
self.tabular_datas = Tabulars().get()[tabular_template](self) self.tabular_datas = Tabulars().get()[tabular_template](self)
@ -406,11 +391,6 @@ class CommonFormatter:
) -> str: ) -> str:
"""Parse the dict to transform to dict""" """Parse the dict to transform to dict"""
msg = [] msg = []
if init and self.root:
if self.with_family:
msg.extend(self.family_to_string(dico["informations"], level, False))
level += 1
dico = dico["children"]
for value in dico.values(): for value in dico.values():
if value["type"] == "variable": if value["type"] == "variable":
self.variable_to_string(value) self.variable_to_string(value)
@ -446,7 +426,6 @@ class CommonFormatter:
ret = [self.namespace_to_title(informations, level)] ret = [self.namespace_to_title(informations, level)]
else: else:
ret = [self.title(self.get_description("family", informations, {}, None), level)] ret = [self.title(self.get_description("family", informations, {}, None), level)]
# ret.append(self.anchor("", informations["path"]) + ENTER)
fam_info = self.family_informations() fam_info = self.family_informations()
if fam_info: if fam_info:
ret.append(fam_info) ret.append(fam_info)
@ -824,7 +803,6 @@ class CommonFormatter:
or new[prop_name] != previous[prop_name] or new[prop_name] != previous[prop_name]
): ):
underline_ = True underline_ = True
# prop_annotation = self.underline(prop_annotation)
else: else:
underline_ = False underline_ = False
local_calculated_properties.setdefault(prop["name"], []).append( local_calculated_properties.setdefault(prop["name"], []).append(
@ -838,7 +816,6 @@ class CommonFormatter:
calculated_property_name, calculated_property_name,
calculated_property, calculated_property,
) in local_calculated_properties.items(): ) in local_calculated_properties.items():
# calculated_property = calculated_property_data["annotation"]
data = [] data = []
for calc in calculated_property: for calc in calculated_property:
annotation = self.message_to_string(calc["annotation"], None)[1] annotation = self.message_to_string(calc["annotation"], None)[1]

View file

@ -1,60 +0,0 @@
---
version: 1.1
var1:
description: my var1
alternative_name: v
var2:
description: my var2
default:
jinja: |
{{ a.unknown.variable }}
description: var calculated
var3:
description: my var3
hidden:
jinja: |
{% if a.unknown.variable == 'value' %}
it's hidden
{% endif %}
description: var could be hidden
var4:
description: my var4
hidden:
variable: a.unknown.variable
when: 'value'
var5:
description: my var5
default:
type: information
information: info
variable: a.unknown.variable
var6:
description: my var6
choices:
variable: a.unknown.variable
var7:
description: my var7
choices:
- variable: a.unknown.variable1
- variable: a.unknown.variable2
var8:
description: my var8
choices:
jinja: |
a.unknown.variable
description: the a.unknown.variable values
"var{{ identifier }}":
description: my var6
dynamic:
variable: a.unknown.variable
var:
description: a variable

View file

@ -1,4 +1,11 @@
== An other family == First family
====
**🛈 Informations**
**Path**: a_family
====
=== An other family
==== ====
**🛈 Informations** **🛈 Informations**

View file

@ -1,3 +1,8 @@
<details><summary>First family</summary>
> [!note] 🛈 Informations
> **Path**: a_family
<details><summary>An other family</summary> <details><summary>An other family</summary>
> [!note] 🛈 Informations > [!note] 🛈 Informations
@ -9,3 +14,7 @@
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| **<a id="a_family.an_other_family.a_variable" name="a_family.an_other_family.a_variable">a_family.an_other_family.a_variable</a>**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A new variable.<br/>**Default**: the value of the variable "[A root variable](#a_variable)" | | **<a id="a_family.an_other_family.a_variable" name="a_family.an_other_family.a_variable">a_family.an_other_family.a_variable</a>**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | A new variable.<br/>**Default**: the value of the variable "[A root variable](#a_variable)" |
</details>
</details>

View file

@ -1,4 +1,8 @@
<h1>An other family</h1> <h1>First family</h1>
<b>Path</b>: a_family
<h2>An other family</h2>
<b>Path</b>: a_family.an_other_family <b>Path</b>: a_family.an_other_family

View file

@ -1,33 +1,73 @@
{ {
"a_variable": { "a_family": {
"type": "variable", "type": "family",
"default": { "informations": {
"name": "Default", "path": "a_family",
"values": { "names": [
"message": "the value of the variable \"{0}\"", "a_family"
"path": { ],
"path": "a_variable" "description": "First family",
}, "properties": []
"description": "A root variable"
}
}, },
"variable_type": "integer", "children": {
"path": "a_family.an_other_family.a_variable", "an_other_family": {
"names": [ "type": "family",
"a_variable" "informations": {
], "path": "a_family.an_other_family",
"description": "A new variable.", "names": [
"properties": [ "an_other_family"
{ ],
"type": "property", "description": "An other family",
"name": "mandatory", "properties": [
"ori_name": "mandatory", {
"access_control": false "type": "property",
"name": "hidden",
"ori_name": "hidden",
"access_control": true,
"annotation": {
"message": "when the variable \"{0}\" has the value \"true\"",
"path": {
"path": "a_family.a_second_family.a_variable"
},
"description": "A boolean variable"
}
}
]
},
"children": {
"a_variable": {
"type": "variable",
"default": {
"name": "Default",
"values": {
"message": "the value of the variable \"{0}\"",
"path": {
"path": "a_variable"
},
"description": "A root variable"
}
},
"variable_type": "integer",
"path": "a_family.an_other_family.a_variable",
"names": [
"a_variable"
],
"description": "A new variable.",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
2
],
"mandatory_without_value": false
}
}
} }
], }
"gen_examples": [
2
],
"mandatory_without_value": false
} }
} }

View file

@ -1,4 +1,10 @@
# An other family # First family
> [!NOTE]
>
> **Path**: a_family
## An other family
> [!NOTE] > [!NOTE]
> >

View file

@ -1,4 +1,10 @@
An other family First family
▌ 🛈 Informations
▌ 
▌ Path: a_family
An other family
▌ 🛈 Informations ▌ 🛈 Informations
▌  ▌ 
@ -14,3 +20,5 @@
 integer   mandatory  │ Default: the value of the variable │  integer   mandatory  │ Default: the value of the variable │
│ │ "a_variable" │ │ "a_variable"
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -27,3 +27,5 @@
</details> </details>
</details>

View file

@ -1,97 +1,110 @@
{ {
"a_second_family": { "a_family": {
"type": "family", "type": "family",
"informations": { "informations": {
"path": "a_family.a_second_family", "path": "a_family",
"names": [ "names": [
"a_second_family" "a_family"
], ],
"description": "A second family", "description": "First family",
"properties": [] "properties": []
}, },
"children": { "children": {
"a_variable": { "a_second_family": {
"type": "variable", "type": "family",
"default": { "informations": {
"name": "Default", "path": "a_family.a_second_family",
"values": true "names": [
"a_second_family"
],
"description": "A second family",
"properties": []
}, },
"variable_type": "boolean", "children": {
"path": "a_family.a_second_family.a_variable", "a_variable": {
"names": [ "type": "variable",
"a_variable" "default": {
], "name": "Default",
"description": "A boolean variable.", "values": true
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
true
],
"mandatory_without_value": false
}
}
},
"an_other_family": {
"type": "family",
"informations": {
"path": "a_family.an_other_family",
"names": [
"an_other_family"
],
"description": "An other family",
"properties": [
{
"type": "property",
"name": "hidden",
"ori_name": "hidden",
"access_control": true,
"annotation": {
"message": "when the variable \"{0}\" has the value \"true\"",
"path": {
"path": "a_family.a_second_family.a_variable"
}, },
"description": "A boolean variable" "variable_type": "boolean",
"path": "a_family.a_second_family.a_variable",
"names": [
"a_variable"
],
"description": "A boolean variable.",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
true
],
"mandatory_without_value": false
} }
} }
] },
}, "an_other_family": {
"children": { "type": "family",
"a_variable": { "informations": {
"type": "variable", "path": "a_family.an_other_family",
"default": { "names": [
"name": "Default", "an_other_family"
"values": { ],
"message": "the value of the variable \"{0}\"", "description": "An other family",
"path": { "properties": [
"path": "a_variable" {
}, "type": "property",
"description": "A root variable" "name": "hidden",
} "ori_name": "hidden",
"access_control": true,
"annotation": {
"message": "when the variable \"{0}\" has the value \"true\"",
"path": {
"path": "a_family.a_second_family.a_variable"
},
"description": "A boolean variable"
}
}
]
}, },
"variable_type": "integer", "children": {
"path": "a_family.an_other_family.a_variable", "a_variable": {
"names": [ "type": "variable",
"a_variable" "default": {
], "name": "Default",
"description": "A new variable.", "values": {
"properties": [ "message": "the value of the variable \"{0}\"",
{ "path": {
"type": "property", "path": "a_variable"
"name": "mandatory", },
"ori_name": "mandatory", "description": "A root variable"
"access_control": false }
},
"variable_type": "integer",
"path": "a_family.an_other_family.a_variable",
"names": [
"a_variable"
],
"description": "A new variable.",
"properties": [
{
"type": "property",
"name": "mandatory",
"ori_name": "mandatory",
"access_control": false
}
],
"gen_examples": [
2
],
"mandatory_without_value": false
} }
], }
"gen_examples": [
2
],
"mandatory_without_value": false
} }
} }
} }

View file

@ -34,3 +34,4 @@
│ │ "a_variable" │ │ "a_variable"
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -1,27 +0,0 @@
from pathlib import Path
from rougail import Rougail
from rougail.config import get_rougail_config
from rougail.output_doc import RougailOutputDoc
def test_force_optional():
print('FIXME')
# test_dir = Path(__file__).resolve().parent
# rougailconfig = get_rougail_config(backward_compatibility=False)
# rougailconfig['step.output'] = 'doc'
## rougailconfig['tiramisu_cache'] = 'p.py'
# dirs = [str(test_dir / 'cmdline')]
# rougailconfig['plugins'] = ["structural_commandline"]
# rougailconfig['main_structural_directories'] = dirs
# rougailconfig['doc.output_format'] = 'asciidoc'
# rougail = Rougail(rougailconfig)
# config = rougail.run()
# inventory = RougailOutputDoc(config, rougailconfig=rougailconfig)
# doc = inventory.run()
# result_file = test_dir / 'cmdline.adoc'
# if not result_file.is_file():
# with open(str(result_file), 'w') as docfh:
# docfh.write(doc)
# with open(str(result_file)) as docfh:
# result = docfh.read()
# assert doc == result

View file

@ -20,14 +20,15 @@ def _test_root(root, contents=None):
rougailconfig['main_structural_directories'] = dirs rougailconfig['main_structural_directories'] = dirs
rougail = Rougail(rougailconfig) rougail = Rougail(rougailconfig)
config = rougail.run() config = rougail.run()
rougailconfig['doc.root'] = root subconfig = config.option(root)
# rougailconfig['doc.root'] = root
if contents == 'changelog': if contents == 'changelog':
rougailconfig["doc.changelog.previous_json_file"] = str(test_dir / "empty/out.json") rougailconfig["doc.changelog.previous_json_file"] = str(test_dir / "empty/out.json")
for output_format, ext in EXT.items(): for output_format, ext in EXT.items():
if output_format == 'json' and contents: if output_format == 'json' and contents:
continue continue
rougailconfig['doc.output_format'] = output_format rougailconfig['doc.output_format'] = output_format
inventory = RougailOutputDoc(config, rougailconfig=rougailconfig) inventory = RougailOutputDoc(subconfig, rougailconfig=rougailconfig, true_config=config)
doc = inventory.run()[1] doc = inventory.run()[1]
if contents: if contents:
result_file = test_dir / f'root_{root}_{contents}.{ext}' result_file = test_dir / f'root_{root}_{contents}.{ext}'