fix: better identifier documentation
This commit is contained in:
parent
cce4447390
commit
8562659f2b
11168 changed files with 31659 additions and 28060 deletions
|
|
@ -78,5 +78,3 @@ include_toc: true
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="doc.examples.comment" name="doc.examples.comment">doc.examples.comment</a>**<br/>**Ligne de commande** : <br/>• -dx, --doc.examples.comment<br/>• -ndx, --doc.examples.no-comment<br/>**Variable d'environnement** : DOC.EXAMPLES.COMMENT | Ajouter la description des variables et des familles lorsqu'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** : <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'on génère des exemples](#doc.examples.comment)" a la valeur "false". |
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -78,5 +78,3 @@ include_toc: true
|
|||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="doc.examples.comment" name="doc.examples.comment">doc.examples.comment</a>**<br/>**Command line**: <br/>• -dx, --doc.examples.comment<br/>• -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**: <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". |
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2026-03-31 12:21+0200\n"
|
||||
"PO-Revision-Date: 2026-03-31 12:22+0200\n"
|
||||
"POT-Creation-Date: 2026-04-30 06:54+0200\n"
|
||||
"PO-Revision-Date: 2026-04-30 06:55+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
"X-Generator: Poedit 3.8\n"
|
||||
"X-Generator: Poedit 3.9\n"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:153
|
||||
msgid "New variable"
|
||||
|
|
@ -24,23 +24,23 @@ msgstr "Nouvelle variable"
|
|||
msgid "New variables"
|
||||
msgstr "Nouvelles variables"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:169
|
||||
#: src/rougail/output_doc/changelog.py:165
|
||||
msgid "Modified variable"
|
||||
msgstr "Variable modifiée"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:171
|
||||
#: src/rougail/output_doc/changelog.py:167
|
||||
msgid "Modified variables"
|
||||
msgstr "Variables modifiées"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:185
|
||||
#: src/rougail/output_doc/changelog.py:177
|
||||
msgid "Deleted variable"
|
||||
msgstr "Variable supprimée"
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:187
|
||||
#: src/rougail/output_doc/changelog.py:179
|
||||
msgid "Deleted variables"
|
||||
msgstr "Variables supprimées"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:52
|
||||
#: src/rougail/output_doc/collect.py:53
|
||||
msgid ""
|
||||
"cannot find \"{0}_calculation\" information, do you have annotate this "
|
||||
"configuration?"
|
||||
|
|
@ -48,140 +48,140 @@ msgstr ""
|
|||
"ne peut trouver l'information \"{0}_calculation\", avez-vous annoté cette "
|
||||
"configuration ?"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:102
|
||||
msgid "the value of the information \"{0}\" of the variable \"{1}\""
|
||||
msgstr "la valeur de l'information \"{0}\" de la variable \"{1}\""
|
||||
#: src/rougail/output_doc/collect.py:107
|
||||
msgid "the value of the information \"{0}\" of the variable {{0}}"
|
||||
msgstr "la valeur de l'information \"{0}\" de la variable \"{{0}}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:106
|
||||
#: src/rougail/output_doc/collect.py:115
|
||||
msgid "the value of the global information \"{0}\""
|
||||
msgstr "la valeur de l'information globale \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:112
|
||||
#: src/rougail/output_doc/collect.py:121
|
||||
msgid "the value of the {0}"
|
||||
msgstr "la valeur de l'{0}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:121
|
||||
#: src/rougail/output_doc/collect.py:130
|
||||
msgid "depends on a calculation"
|
||||
msgstr "dépend d'un calcul"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:122
|
||||
#: src/rougail/output_doc/collect.py:131
|
||||
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}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:181
|
||||
#: src/rougail/output_doc/collect.py:190
|
||||
msgid "depends on an undocumented variable"
|
||||
msgstr "dépends d'une variable non documentée"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:199
|
||||
#: src/rougail/output_doc/collect.py:208
|
||||
msgid "is \"{0}\""
|
||||
msgstr "est \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:204
|
||||
#: src/rougail/output_doc/collect.py:213
|
||||
msgid "is accessible"
|
||||
msgstr "est accessible"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:206
|
||||
#: src/rougail/output_doc/collect.py:215
|
||||
msgid "is defined"
|
||||
msgstr "est définie"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:211
|
||||
#: src/rougail/output_doc/collect.py:220
|
||||
msgid "hasn't the value \"{0}\""
|
||||
msgstr "n'a pas la valeur \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:213
|
||||
#: src/rougail/output_doc/collect.py:222
|
||||
msgid "has the value \"{0}\""
|
||||
msgstr "a la valeur \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:217
|
||||
#: src/rougail/output_doc/collect.py:226
|
||||
msgid "is {0}"
|
||||
msgstr "est {0}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:219
|
||||
msgid "when the variable \"{{0}}\" {0}."
|
||||
msgstr "lorsque la variable \"{{0}}\" {0}."
|
||||
#: src/rougail/output_doc/collect.py:228
|
||||
msgid "when the variable {{0}} {0}."
|
||||
msgstr "lorsque la variable {{0}} {0}."
|
||||
|
||||
#: src/rougail/output_doc/collect.py:246
|
||||
msgid "the value of the variable \"{0}\" if it is defined"
|
||||
msgstr "la valeur de la variable \"{0}\" si elle est définie"
|
||||
#: src/rougail/output_doc/collect.py:256
|
||||
msgid "the value of the variable {0} if it is defined"
|
||||
msgstr "la valeur de la variable {0} si elle est définie"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:248
|
||||
msgid "the value of the variable \"{0}\""
|
||||
msgstr "la valeur de la variable \"{0}\""
|
||||
#: src/rougail/output_doc/collect.py:258
|
||||
msgid "the value of the variable {0}"
|
||||
msgstr "la valeur de la variable {0}"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:264
|
||||
#: src/rougail/output_doc/collect.py:277
|
||||
msgid "(from an undocumented variable)"
|
||||
msgstr "(issue d'une variable non documentée)"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:270
|
||||
#: src/rougail/output_doc/collect.py:283
|
||||
msgid "{0} (from an undocumented variable)"
|
||||
msgstr "{0} (issue d'une variable non documentée)"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:274
|
||||
#: src/rougail/output_doc/collect.py:287
|
||||
msgid "the value of an undocumented variable"
|
||||
msgstr "la valeur d'une variable non documentée"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:309
|
||||
#: src/rougail/output_doc/collect.py:322
|
||||
msgid "when the identifier is \"{0}\""
|
||||
msgstr "lorsque l'identifiant est \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:311
|
||||
#: src/rougail/output_doc/collect.py:324
|
||||
msgid "when the identifier is not \"{0}\""
|
||||
msgstr "lorsque l'identifiant n'est pas \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:316
|
||||
#: src/rougail/output_doc/collect.py:329
|
||||
msgid "the value of the identifier"
|
||||
msgstr "la valeur de l'identifiant"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:401
|
||||
#: src/rougail/output_doc/collect.py:426
|
||||
msgid "This family contains lists of variable blocks"
|
||||
msgstr "Cette famille contient des listes de bloc de variable"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:405
|
||||
#: src/rougail/output_doc/collect.py:430
|
||||
msgid "This family builds families dynamically"
|
||||
msgstr "Cette famille construit des familles dynamiquement"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:415
|
||||
#: src/rougail/output_doc/collect.py:440
|
||||
msgid "This family is a namespace"
|
||||
msgstr "Cette famille est un espace de nom"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:466
|
||||
#: src/rougail/output_doc/collect.py:489
|
||||
msgid "Example"
|
||||
msgstr "Exemple"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:469
|
||||
#: src/rougail/output_doc/collect.py:492
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:475
|
||||
#: src/rougail/output_doc/collect.py:498
|
||||
msgid "Tag"
|
||||
msgstr "Étiquette"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:478
|
||||
#: src/rougail/output_doc/collect.py:501
|
||||
msgid "Tags"
|
||||
msgstr "Étiquettes"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:572
|
||||
#: src/rougail/output_doc/collect.py:597
|
||||
msgid "text based with regular expressions \"{0}\""
|
||||
msgstr "texte avec expression rationnelle \"{0}\""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:576
|
||||
#: src/rougail/output_doc/collect.py:601
|
||||
#: src/rougail/output_doc/tabular/six_columns.py:83
|
||||
msgid "Validator"
|
||||
msgstr "Validateur"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:579
|
||||
#: src/rougail/output_doc/collect.py:604
|
||||
msgid "Validators"
|
||||
msgstr "Validateurs"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:588
|
||||
#: src/rougail/output_doc/collect.py:613
|
||||
msgid "Choices"
|
||||
msgstr "Choix"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:638
|
||||
#: src/rougail/output_doc/collect.py:665
|
||||
msgid "Default"
|
||||
msgstr "Défaut"
|
||||
|
||||
#: src/rougail/output_doc/collect.py:648
|
||||
#: src/rougail/output_doc/collect.py:675
|
||||
msgid "No attribute \"description\" for \"{0}\" in {1}"
|
||||
msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}"
|
||||
|
||||
|
|
@ -386,20 +386,24 @@ msgstr "Commentaire dans les exemples commence à la colonne"
|
|||
msgid "{0} is not set as step.output"
|
||||
msgstr "{0} n'est pas défini dans step.output"
|
||||
|
||||
#: src/rougail/output_doc/example.py:96
|
||||
#: src/rougail/output_doc/example.py:61
|
||||
msgid "Example with mandatory variables not filled in"
|
||||
msgstr "Exemple avec des variables obligatoire non renseignée"
|
||||
|
||||
#: src/rougail/output_doc/example.py:98
|
||||
#: src/rougail/output_doc/example.py:63
|
||||
msgid "Example with all variables modifiable"
|
||||
msgstr "Exemple avec toutes les variables modifiable"
|
||||
|
||||
#: src/rougail/output_doc/output/asciidoc.py:156
|
||||
#: src/rougail/output_doc/output/console.py:201
|
||||
#: src/rougail/output_doc/output/gitlab.py:44
|
||||
#: src/rougail/output_doc/output/console.py:234
|
||||
#: src/rougail/output_doc/output/gitlab.py:53
|
||||
msgid "Informations"
|
||||
msgstr "Informations"
|
||||
|
||||
#: src/rougail/output_doc/output/console.py:75
|
||||
msgid "cannot find Python module Rich, please install it!"
|
||||
msgstr "ne peut trouver le module Python Rich, veuillez l'installer !"
|
||||
|
||||
#: src/rougail/output_doc/tabular/five_columns.py:72
|
||||
msgid "Access control"
|
||||
msgstr "Contrôle des accès"
|
||||
|
|
@ -428,21 +432,21 @@ msgstr "Ligne de commande"
|
|||
msgid "Environment variable"
|
||||
msgstr "Variable d'environnement"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:532
|
||||
#: src/rougail/output_doc/utils.py:545
|
||||
msgid "Path"
|
||||
msgstr "Chemin"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:542
|
||||
#: src/rougail/output_doc/utils.py:555
|
||||
msgid "Identifiers"
|
||||
msgstr "Identifiants"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:825 src/rougail/output_doc/utils.py:834
|
||||
#: src/rougail/output_doc/utils.py:840 src/rougail/output_doc/utils.py:846
|
||||
#: src/rougail/output_doc/utils.py:850
|
||||
#: src/rougail/output_doc/utils.py:849 src/rougail/output_doc/utils.py:858
|
||||
#: src/rougail/output_doc/utils.py:864 src/rougail/output_doc/utils.py:870
|
||||
#: src/rougail/output_doc/utils.py:874
|
||||
msgid "(default)"
|
||||
msgstr "(défaut)"
|
||||
|
||||
#: src/rougail/output_doc/utils.py:1164
|
||||
#: src/rougail/output_doc/utils.py:1211
|
||||
msgid "{0}: {1}"
|
||||
msgstr "{0} : {1}"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2026-03-31 12:22+0200\n"
|
||||
"POT-Creation-Date: 2026-04-30 06:55+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
@ -23,160 +23,160 @@ msgstr ""
|
|||
msgid "New variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:169
|
||||
#: src/rougail/output_doc/changelog.py:165
|
||||
msgid "Modified variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:171
|
||||
#: src/rougail/output_doc/changelog.py:167
|
||||
msgid "Modified variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:185
|
||||
#: src/rougail/output_doc/changelog.py:177
|
||||
msgid "Deleted variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/changelog.py:187
|
||||
#: src/rougail/output_doc/changelog.py:179
|
||||
msgid "Deleted variables"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:52
|
||||
#: src/rougail/output_doc/collect.py:53
|
||||
msgid "cannot find \"{0}_calculation\" information, do you have annotate this configuration?"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:102
|
||||
msgid "the value of the information \"{0}\" of the variable \"{1}\""
|
||||
#: src/rougail/output_doc/collect.py:107
|
||||
msgid "the value of the information \"{0}\" of the variable {{0}}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:106
|
||||
#: src/rougail/output_doc/collect.py:115
|
||||
msgid "the value of the global information \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:112
|
||||
#: src/rougail/output_doc/collect.py:121
|
||||
msgid "the value of the {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:121
|
||||
#: src/rougail/output_doc/collect.py:130
|
||||
msgid "depends on a calculation"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:122
|
||||
#: src/rougail/output_doc/collect.py:131
|
||||
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:181
|
||||
#: src/rougail/output_doc/collect.py:190
|
||||
msgid "depends on an undocumented variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:199
|
||||
#: src/rougail/output_doc/collect.py:208
|
||||
msgid "is \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:204
|
||||
#: src/rougail/output_doc/collect.py:213
|
||||
msgid "is accessible"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:206
|
||||
#: src/rougail/output_doc/collect.py:215
|
||||
msgid "is defined"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:211
|
||||
#: src/rougail/output_doc/collect.py:220
|
||||
msgid "hasn't the value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:213
|
||||
#: src/rougail/output_doc/collect.py:222
|
||||
msgid "has the value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:217
|
||||
#: src/rougail/output_doc/collect.py:226
|
||||
msgid "is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:219
|
||||
msgid "when the variable \"{{0}}\" {0}."
|
||||
#: src/rougail/output_doc/collect.py:228
|
||||
msgid "when the variable {{0}} {0}."
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:246
|
||||
msgid "the value of the variable \"{0}\" if it is defined"
|
||||
#: src/rougail/output_doc/collect.py:256
|
||||
msgid "the value of the variable {0} if it is defined"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:248
|
||||
msgid "the value of the variable \"{0}\""
|
||||
#: src/rougail/output_doc/collect.py:258
|
||||
msgid "the value of the variable {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:264
|
||||
#: src/rougail/output_doc/collect.py:277
|
||||
msgid "(from an undocumented variable)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:270
|
||||
#: src/rougail/output_doc/collect.py:283
|
||||
msgid "{0} (from an undocumented variable)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:274
|
||||
#: src/rougail/output_doc/collect.py:287
|
||||
msgid "the value of an undocumented variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:309
|
||||
#: src/rougail/output_doc/collect.py:322
|
||||
msgid "when the identifier is \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:311
|
||||
#: src/rougail/output_doc/collect.py:324
|
||||
msgid "when the identifier is not \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:316
|
||||
#: src/rougail/output_doc/collect.py:329
|
||||
msgid "the value of the identifier"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:401
|
||||
#: src/rougail/output_doc/collect.py:426
|
||||
msgid "This family contains lists of variable blocks"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:405
|
||||
#: src/rougail/output_doc/collect.py:430
|
||||
msgid "This family builds families dynamically"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:415
|
||||
#: src/rougail/output_doc/collect.py:440
|
||||
msgid "This family is a namespace"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:466
|
||||
#: src/rougail/output_doc/collect.py:489
|
||||
msgid "Example"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:469
|
||||
#: src/rougail/output_doc/collect.py:492
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:475
|
||||
#: src/rougail/output_doc/collect.py:498
|
||||
msgid "Tag"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:478
|
||||
#: src/rougail/output_doc/collect.py:501
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:572
|
||||
#: src/rougail/output_doc/collect.py:597
|
||||
msgid "text based with regular expressions \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:576
|
||||
#: src/rougail/output_doc/collect.py:601
|
||||
#: src/rougail/output_doc/tabular/six_columns.py:83
|
||||
msgid "Validator"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:579
|
||||
#: src/rougail/output_doc/collect.py:604
|
||||
msgid "Validators"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:588
|
||||
#: src/rougail/output_doc/collect.py:613
|
||||
msgid "Choices"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:638
|
||||
#: src/rougail/output_doc/collect.py:665
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/collect.py:648
|
||||
#: src/rougail/output_doc/collect.py:675
|
||||
msgid "No attribute \"description\" for \"{0}\" in {1}"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -336,20 +336,24 @@ msgstr ""
|
|||
msgid "{0} is not set as step.output"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/example.py:96
|
||||
#: src/rougail/output_doc/example.py:61
|
||||
msgid "Example with mandatory variables not filled in"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/example.py:98
|
||||
#: src/rougail/output_doc/example.py:63
|
||||
msgid "Example with all variables modifiable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/output/asciidoc.py:156
|
||||
#: src/rougail/output_doc/output/console.py:201
|
||||
#: src/rougail/output_doc/output/gitlab.py:44
|
||||
#: src/rougail/output_doc/output/console.py:234
|
||||
#: src/rougail/output_doc/output/gitlab.py:53
|
||||
msgid "Informations"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/output/console.py:75
|
||||
msgid "cannot find Python module Rich, please install it!"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/tabular/five_columns.py:72
|
||||
msgid "Access control"
|
||||
msgstr ""
|
||||
|
|
@ -378,21 +382,21 @@ msgstr ""
|
|||
msgid "Environment variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:532
|
||||
#: src/rougail/output_doc/utils.py:545
|
||||
msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:542
|
||||
#: src/rougail/output_doc/utils.py:555
|
||||
msgid "Identifiers"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:825 src/rougail/output_doc/utils.py:834
|
||||
#: src/rougail/output_doc/utils.py:840 src/rougail/output_doc/utils.py:846
|
||||
#: src/rougail/output_doc/utils.py:850
|
||||
#: src/rougail/output_doc/utils.py:849 src/rougail/output_doc/utils.py:858
|
||||
#: src/rougail/output_doc/utils.py:864 src/rougail/output_doc/utils.py:870
|
||||
#: src/rougail/output_doc/utils.py:874
|
||||
msgid "(default)"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/output_doc/utils.py:1164
|
||||
#: src/rougail/output_doc/utils.py:1211
|
||||
msgid "{0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -249,9 +249,9 @@ class Annotator(Walk):
|
|||
if not self.regexp_description_get_paths:
|
||||
self.regexp_description_get_paths = compile('"(.*?)"')
|
||||
index = 0
|
||||
description = values.description
|
||||
val_description = values.description
|
||||
variables = []
|
||||
for r_path in self.regexp_description_get_paths.findall(description):
|
||||
for r_path in self.regexp_description_get_paths.findall(val_description):
|
||||
variable, identifiers = self.objectspace.paths.get_with_dynamic(
|
||||
r_path,
|
||||
path,
|
||||
|
|
@ -260,64 +260,65 @@ class Annotator(Walk):
|
|||
values.xmlfiles,
|
||||
)
|
||||
if variable:
|
||||
description = description.replace(f'"{r_path}"', f'{{{index}}}')
|
||||
val_description = val_description.replace(f'"{r_path}"', f'{{{index}}}')
|
||||
v = {"path": variable.path, "description": variable.description}
|
||||
if identifiers:
|
||||
v["identifiers"] = identifiers
|
||||
v["identifiers"] = [identifiers]
|
||||
v["identifier_type"] = "many"
|
||||
variables.append(v)
|
||||
index += 1
|
||||
ret = {"description": description}
|
||||
description = {"description": True,
|
||||
"value": val_description,
|
||||
}
|
||||
if variables:
|
||||
ret["variables"] = variables
|
||||
return ret
|
||||
description["variables"] = variables
|
||||
else:
|
||||
description = {}
|
||||
if isinstance(values, JinjaCalculation):
|
||||
if values.description:
|
||||
value = values.description
|
||||
else:
|
||||
value = True
|
||||
return {
|
||||
"type": "jinja",
|
||||
"value": value,
|
||||
}
|
||||
if not description:
|
||||
description["value"] = True
|
||||
description["type"] = "jinja"
|
||||
return description
|
||||
if isinstance(values, (VariableCalculation, VariablePropertyCalculation)):
|
||||
variable_path = self.get_path_from_variable(values, version, path)
|
||||
value = self.calculation_to_information_variable(
|
||||
variable_path, values, prop, version, path
|
||||
)
|
||||
if value is None:
|
||||
return
|
||||
return {
|
||||
"type": "variable",
|
||||
"value": value,
|
||||
"ori_path": variable_path,
|
||||
"optional": values.optional,
|
||||
"propertyerror": values.propertyerror,
|
||||
}
|
||||
if not description:
|
||||
value = self.calculation_to_information_variable(
|
||||
variable_path, values, prop, version, path
|
||||
)
|
||||
if value is None:
|
||||
return
|
||||
description["value"] = value
|
||||
description["type"] = "variable"
|
||||
description["ori_path"] = variable_path
|
||||
description["optional"] = values.optional
|
||||
description["propertyerror"] = values.propertyerror
|
||||
return description
|
||||
if isinstance(values, InformationCalculation):
|
||||
# FIXME
|
||||
return self.calculation_to_information_information(values, version, path)
|
||||
if isinstance(values, IdentifierPropertyCalculation):
|
||||
ret = {}
|
||||
self.when_to_condition(values, ret)
|
||||
ret["type"] = "identifier"
|
||||
return ret
|
||||
self.when_to_condition(values, description)
|
||||
description["type"] = "identifier"
|
||||
return description
|
||||
if isinstance(values, IdentifierCalculation):
|
||||
return {"type": "identifier"}
|
||||
description["type"] = "identifier"
|
||||
return description
|
||||
if isinstance(values, IndexCalculation):
|
||||
return {
|
||||
"type": "index",
|
||||
"value": True,
|
||||
}
|
||||
if not description:
|
||||
description["value"] = True
|
||||
description["type"] = "index"
|
||||
return description
|
||||
if isinstance(values, NamespaceCalculation):
|
||||
return {
|
||||
"type": "namespace",
|
||||
"value": True,
|
||||
}
|
||||
if not description:
|
||||
description["value"] = True
|
||||
description["type"] = "namespace"
|
||||
return description
|
||||
if RisottoCalculation and isinstance(values, RisottoCalculation):
|
||||
# FIXME
|
||||
return {
|
||||
"type": "risotto",
|
||||
"value": True,
|
||||
}
|
||||
if not description:
|
||||
description["value"] = True
|
||||
description["type"] = "risotto"
|
||||
return description
|
||||
raise Exception(f'unknown calculation {type(values)} "{values}"')
|
||||
|
||||
def calculation_to_information_variable(
|
||||
|
|
@ -337,6 +338,7 @@ class Annotator(Walk):
|
|||
values_calculation = {"path": variable.path}
|
||||
if identifiers:
|
||||
values_calculation["identifiers"] = identifiers
|
||||
values_calculation["identifier_type"] = "many"
|
||||
if prop in PROPERTY_ATTRIBUTE:
|
||||
# get comparative value
|
||||
self.when_to_condition(values, values_calculation)
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
self._modified_variables.append((new, modified_attributes))
|
||||
|
||||
def display(self) -> str:
|
||||
msg = ""
|
||||
lst = []
|
||||
if self._added_variables:
|
||||
if len(self._added_variables) == 1:
|
||||
title = _("New variable")
|
||||
|
|
@ -155,15 +155,11 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
title = _("New variables")
|
||||
for add in self._added_variables:
|
||||
self.formatter.variable_to_string(add)
|
||||
msg += self.formatter._run(
|
||||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.tabular(),
|
||||
self.formatter.end_family(self.level),
|
||||
],
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
)
|
||||
lst.append(self.formatter.title(title, self.level))
|
||||
lst.append(self.formatter.tabular())
|
||||
end = self.formatter.end_family(self.level)
|
||||
if end:
|
||||
lst.append(end)
|
||||
if self._modified_variables:
|
||||
if len(self._modified_variables) == 1:
|
||||
title = _("Modified variable")
|
||||
|
|
@ -171,27 +167,25 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
|
|||
title = _("Modified variables")
|
||||
for mod, modified_attributes in self._modified_variables:
|
||||
self.formatter.variable_to_string(mod, modified_attributes)
|
||||
msg += self.formatter._run(
|
||||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.tabular(),
|
||||
self.formatter.end_family(self.level),
|
||||
],
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
)
|
||||
lst.append(self.formatter.title(title, self.level))
|
||||
lst.append(self.formatter.tabular())
|
||||
end = self.formatter.end_family(self.level)
|
||||
if end:
|
||||
lst.append(end)
|
||||
if self._removed_variables:
|
||||
if len(self._removed_variables) == 1:
|
||||
title = _("Deleted variable")
|
||||
else:
|
||||
title = _("Deleted variables")
|
||||
msg += self.formatter._run(
|
||||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.list(self._removed_variables, inside_tabular=False),
|
||||
self.formatter.end_family(self.level),
|
||||
],
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
)
|
||||
return msg
|
||||
lst.append(self.formatter.title(title, self.level))
|
||||
lst.append(self.formatter.list(self._removed_variables, inside_tabular=False))
|
||||
end = self.formatter.end_family(self.level)
|
||||
if end:
|
||||
lst.append(end)
|
||||
if not lst:
|
||||
return ""
|
||||
return self.formatter._run(
|
||||
lst,
|
||||
self.level,
|
||||
dico_is_already_treated=True,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -21,11 +21,12 @@ from typing import Optional
|
|||
|
||||
from tiramisu import Calculation, groups
|
||||
from tiramisu.error import display_list, PropertiesOptionError
|
||||
from tiramisu.config import get_common_path
|
||||
from rougail.tiramisu import display_xmlfiles
|
||||
from rougail.utils import PROPERTY_ATTRIBUTE
|
||||
from rougail.error import VariableCalculationDependencyError, RougailWarning, ExtensionError
|
||||
|
||||
from .utils import dump, to_phrase, calc_path, add_dot
|
||||
from .utils import dump, to_phrase, calc_path, add_dot, doc_path
|
||||
from .i18n import _
|
||||
|
||||
|
||||
|
|
@ -67,13 +68,15 @@ class _ToString:
|
|||
return ret
|
||||
|
||||
def _calculation_to_string(self, child, calculation, attribute_type, inside_list=True):
|
||||
if "description" in calculation:
|
||||
values = calculation
|
||||
if calculation.get("description", False):
|
||||
values = calculation.copy()
|
||||
if self.document_a_type and "variables" in values:
|
||||
for variable in list(values["variables"]):
|
||||
variable["path"] = self.doc_path(variable["path"])
|
||||
variable["path"] = doc_path(variable["path"], self.document_a_type)
|
||||
if not inside_list:
|
||||
values["description"] = add_dot(values["description"])
|
||||
values["description"] = add_dot(values.pop("value"))
|
||||
else:
|
||||
values["description"] = values.pop("value")
|
||||
elif "type" not in calculation:
|
||||
values = calculation["value"]
|
||||
if isinstance(values, str) and not inside_list:
|
||||
|
|
@ -107,7 +110,7 @@ class _ToString:
|
|||
if not inside_list:
|
||||
msg = add_dot(msg)
|
||||
variable = self.true_config.unrestraint.option(calculation["path"])
|
||||
values = self._calculation_with_variable(variable, calculation, msg)
|
||||
values = self._calculation_with_variable(child, variable, calculation, msg)
|
||||
else:
|
||||
values = _('the value of the global information "{0}"').format(
|
||||
calculation["information"]
|
||||
|
|
@ -129,7 +132,7 @@ class _ToString:
|
|||
'"{0}" is a calculation for {1} but has no description in {2}'
|
||||
).format(
|
||||
attribute_type,
|
||||
self.doc_path(child.path(uncalculated=True)),
|
||||
doc_path(child.path(uncalculated=True), self.document_a_type),
|
||||
display_xmlfiles(child.information.get("ymlfiles")),
|
||||
)
|
||||
warn(
|
||||
|
|
@ -140,19 +143,19 @@ class _ToString:
|
|||
|
||||
def _calculation_variable_to_string(self, child, calculation, attribute_type):
|
||||
if attribute_type in PROPERTY_ATTRIBUTE:
|
||||
func = self._calculation_variable_to_string_known_property
|
||||
func = self._calculation_variable_to_string_property
|
||||
else:
|
||||
func = self._calculation_variable_to_string_not_properties
|
||||
func = self._calculation_variable_to_string_not_property
|
||||
return func(child, calculation, attribute_type)
|
||||
|
||||
def _calculation_variable_to_string_known_property(self, child, informations, prop):
|
||||
def _calculation_variable_to_string_property(self, child, informations, prop):
|
||||
condition = informations["value"]
|
||||
variable_path = condition["path"]
|
||||
values = []
|
||||
option = self.true_config.option(variable_path)
|
||||
if option.isdynamic():
|
||||
variables = self._get_annotation_variable(
|
||||
option, condition.get("identifiers")
|
||||
child, option, condition.get("identifiers")
|
||||
)
|
||||
else:
|
||||
option = self.true_config.option(variable_path)
|
||||
|
|
@ -163,11 +166,11 @@ class _ToString:
|
|||
raise err from err
|
||||
is_inaccessible = True
|
||||
if is_inaccessible:
|
||||
variables = [[None, None, None]]
|
||||
variables = [[None, None, None, None]]
|
||||
else:
|
||||
description = option.description(uncalculated=True)
|
||||
variables = [[variable_path, description, None]]
|
||||
for cpath, description, identifiers in variables:
|
||||
variables = [[variable_path, description, None, "one"]]
|
||||
for cpath, description, identifiers, identifier_type in variables:
|
||||
if not cpath:
|
||||
# we cannot access to this variable, so try with permissive
|
||||
if condition["type"] == "transitive":
|
||||
|
|
@ -190,7 +193,7 @@ class _ToString:
|
|||
return informations.get("default", False)
|
||||
if condition["type"] == "transitive":
|
||||
return True
|
||||
if prop in HIDDEN_PROPERTIES:
|
||||
if prop in HIDDEN_PROPERTIES and not self.only_disabled:
|
||||
condition_type = condition["condition"]
|
||||
if (
|
||||
condition_type == "when"
|
||||
|
|
@ -224,10 +227,11 @@ class _ToString:
|
|||
)
|
||||
msg = _('when the variable {{0}} {0}.').format(submsg)
|
||||
path_obj = {
|
||||
"path": self.doc_path(variable_path),
|
||||
"path": doc_path(variable_path, self.document_a_type),
|
||||
}
|
||||
if identifiers:
|
||||
path_obj["identifiers"] = identifiers
|
||||
path_obj["identifier_type"] = identifier_type
|
||||
|
||||
values.append(
|
||||
{
|
||||
|
|
@ -240,7 +244,7 @@ class _ToString:
|
|||
return values[0]
|
||||
return values
|
||||
|
||||
def _calculation_variable_to_string_not_properties(
|
||||
def _calculation_variable_to_string_not_property(
|
||||
self, child, calculation, attribute_type
|
||||
):
|
||||
variable = self.true_config.unrestraint.option(calculation["value"]["path"])
|
||||
|
|
@ -252,21 +256,21 @@ class _ToString:
|
|||
true_msg = _('the value of the variable {0} if it is defined')
|
||||
else:
|
||||
true_msg = _('the value of the variable {0}')
|
||||
return self._calculation_with_variable(variable, calculation["value"], true_msg)
|
||||
return self._calculation_with_variable(child, variable, calculation["value"], true_msg)
|
||||
|
||||
def _calculation_with_variable(self, child, calculation, msg):
|
||||
if not child.isdynamic():
|
||||
def _calculation_with_variable(self, child, variable, calculation, msg):
|
||||
if not variable.isdynamic():
|
||||
func = self._calculation_normal_with_variable
|
||||
else:
|
||||
func = self._calculation_dynamic_variable_with_variable
|
||||
return func(child, calculation, msg)
|
||||
return func(child, variable, calculation, msg)
|
||||
|
||||
def _calculation_normal_with_variable(
|
||||
self, child, obj, msg
|
||||
self, child, variable, obj, msg
|
||||
):
|
||||
isfollower = not child.isoptiondescription() and child.isfollower()
|
||||
if not isfollower and self.is_inaccessible_user_data(child):
|
||||
uncalculated = child.value.default(uncalculated=True)
|
||||
isfollower = not variable.isoptiondescription() and variable.isfollower()
|
||||
if not isfollower and self.is_inaccessible_user_data(variable):
|
||||
uncalculated = variable.value.default(uncalculated=True)
|
||||
if uncalculated and not isinstance(uncalculated, Calculation):
|
||||
if isinstance(uncalculated, list):
|
||||
return {
|
||||
|
|
@ -282,7 +286,7 @@ class _ToString:
|
|||
else:
|
||||
msg = _("the value of an undocumented variable")
|
||||
try:
|
||||
description = child.description(uncalculated=True)
|
||||
description = variable.description(uncalculated=True)
|
||||
except AttributeError:
|
||||
description = path
|
||||
return {
|
||||
|
|
@ -292,21 +296,22 @@ class _ToString:
|
|||
}
|
||||
|
||||
def _calculation_dynamic_variable_with_variable(
|
||||
self, child, obj, msg
|
||||
self, child, variable, obj, msg
|
||||
):
|
||||
values = []
|
||||
for path, description, identifiers in self._get_annotation_variable(
|
||||
child, obj.get("identifiers")
|
||||
for path, description, identifiers, identifier_type in self._get_annotation_variable(
|
||||
child, variable, obj.get("identifiers")
|
||||
):
|
||||
variable = self.true_config.option(path)
|
||||
path_obj = {
|
||||
"path": self.doc_path(path),
|
||||
"path": doc_path(path, self.document_a_type),
|
||||
}
|
||||
if identifiers:
|
||||
path_obj["identifiers"] = identifiers
|
||||
path_obj["identifier_type"] = identifier_type
|
||||
values.append(
|
||||
self._calculation_normal_with_variable(
|
||||
variable, path_obj, msg
|
||||
child, variable, path_obj, msg
|
||||
)
|
||||
)
|
||||
return values
|
||||
|
|
@ -323,15 +328,23 @@ class _ToString:
|
|||
else:
|
||||
return _("the value of the identifier")
|
||||
|
||||
def doc_path(self, path):
|
||||
if self.document_a_type:
|
||||
if not "." in path:
|
||||
return None
|
||||
return path.split(".", 1)[-1]
|
||||
return path
|
||||
|
||||
def _get_annotation_variable(self, child, ori_identifiers):
|
||||
path = child.path(uncalculated=True)
|
||||
def _get_annotation_variable(self, child, variable, ori_identifiers):
|
||||
path = variable.path(uncalculated=True)
|
||||
description = variable.description(uncalculated=True)
|
||||
child_path = child.path(uncalculated=True)
|
||||
if ori_identifiers:
|
||||
if path.count("{{ identifier }}") == len(ori_identifiers):
|
||||
identifier_type = "one"
|
||||
elif "{{ identifier }}" in path[len(get_common_path(child_path, path)):]:
|
||||
identifier_type = "outside"
|
||||
else:
|
||||
identifier_type = "inside"
|
||||
else:
|
||||
common_path = get_common_path(child_path, path)
|
||||
if common_path and "{{ identifier }}" in path[len(common_path):]:
|
||||
identifier_type = "outside"
|
||||
else:
|
||||
identifier_type = "inside"
|
||||
if ori_identifiers:
|
||||
if None in ori_identifiers:
|
||||
all_identifiers = self.true_config.option(
|
||||
|
|
@ -339,18 +352,22 @@ class _ToString:
|
|||
).identifiers()
|
||||
else:
|
||||
all_identifiers = [ori_identifiers]
|
||||
for identifiers in all_identifiers:
|
||||
cpath = calc_path(path, identifiers=identifiers)
|
||||
if variable.isdynamic():
|
||||
yield path, description, [identifiers.copy()], identifier_type
|
||||
else:
|
||||
yield path, description, None, identifier_type
|
||||
else:
|
||||
all_identifiers = child.identifiers()
|
||||
for identifiers in all_identifiers:
|
||||
cpath = calc_path(path, identifiers=identifiers)
|
||||
description = child.description(uncalculated=True)
|
||||
if child.isdynamic():
|
||||
yield path, description, identifiers.copy()
|
||||
if variable.isdynamic():
|
||||
yield path, description, variable.identifiers().copy(), identifier_type
|
||||
else:
|
||||
yield path, description, None
|
||||
yield path, description, None, identifier_type
|
||||
|
||||
|
||||
class Collect(_ToString):
|
||||
only_disabled = False
|
||||
|
||||
def collect_families(self, family) -> dict:
|
||||
informations = {}
|
||||
for child in family.list(uncalculated=True):
|
||||
|
|
@ -439,8 +456,6 @@ class Collect(_ToString):
|
|||
return None
|
||||
informations[name] = sub_informations
|
||||
if child.isleader():
|
||||
# if not self.default_values:
|
||||
# child.value.set(sub_informations["gen_examples"][0])
|
||||
return sub_informations
|
||||
return None
|
||||
|
||||
|
|
@ -504,7 +519,10 @@ class Collect(_ToString):
|
|||
display, properties = self._get_properties(child, informations)
|
||||
if not display:
|
||||
return False
|
||||
informations["path"] = self.doc_path(child.path(uncalculated=True))
|
||||
path = child.path(uncalculated=True)
|
||||
informations["path"] = doc_path(path, self.document_a_type)
|
||||
if path != informations["path"]:
|
||||
informations["full_path"] = path
|
||||
informations["name"] = child.name(uncalculated=True)
|
||||
description = self._get_description(child, family_type)
|
||||
if description is not None:
|
||||
|
|
@ -524,7 +542,7 @@ class Collect(_ToString):
|
|||
break
|
||||
if child.isdynamic():
|
||||
informations["identifiers"] = []
|
||||
path = child.path(uncalculated=True)
|
||||
informations["identifier_type"] = "many"
|
||||
if child.has_identifiers():
|
||||
identifiers = child.identifiers()
|
||||
else:
|
||||
|
|
@ -535,6 +553,7 @@ class Collect(_ToString):
|
|||
if not self.is_inaccessible_user_data(child_identifier):
|
||||
informations["identifiers"].append(identifier)
|
||||
if not informations["identifiers"]:
|
||||
# doc.default_values is false
|
||||
informations["identifiers"] = [["example"]]
|
||||
return True
|
||||
|
||||
|
|
@ -565,16 +584,14 @@ class Collect(_ToString):
|
|||
validators.append(msg["description"].format(value))
|
||||
|
||||
# get validation information from annotator
|
||||
for name in child.information.list():
|
||||
if not name.startswith("validators_calculation"):
|
||||
continue
|
||||
calculation = child.information.get("validators_calculation", None)
|
||||
if calculation:
|
||||
validators.extend(
|
||||
self._to_string(
|
||||
child,
|
||||
"validators",
|
||||
)
|
||||
)
|
||||
break
|
||||
if variable_type == "regexp":
|
||||
validators.append(
|
||||
_('text based with regular expressions "{0}"').format(child.pattern())
|
||||
|
|
@ -608,7 +625,7 @@ class Collect(_ToString):
|
|||
annotation = False
|
||||
if child.information.get(f"{prop}_calculation", False):
|
||||
annotation = self._to_string(child, prop)
|
||||
if annotation is None and prop in HIDDEN_PROPERTIES:
|
||||
if not self.only_disabled and annotation is None and prop in HIDDEN_PROPERTIES:
|
||||
return False, []
|
||||
if annotation is True and prop in DISABLED_PROPERTIES:
|
||||
return False, []
|
||||
|
|
@ -617,7 +634,9 @@ class Collect(_ToString):
|
|||
elif prop not in properties:
|
||||
# this property is not in the variable so, do not comment it
|
||||
continue
|
||||
elif prop in HIDDEN_PROPERTIES:
|
||||
elif not self.only_disabled and prop in HIDDEN_PROPERTIES:
|
||||
return False, []
|
||||
elif prop in DISABLED_PROPERTIES:
|
||||
return False, []
|
||||
prop_obj = {
|
||||
"type": "property",
|
||||
|
|
@ -670,12 +689,12 @@ class Collect(_ToString):
|
|||
def _convert_description(self, description, type_):
|
||||
return to_phrase(description, type_)
|
||||
|
||||
def is_inaccessible_user_data(self, child, *, only_disabled=False):
|
||||
def is_inaccessible_user_data(self, child):
|
||||
"""If family is not accessible in read_write mode (to load user_data),
|
||||
do not comment this family
|
||||
"""
|
||||
properties = child.property.get(uncalculated=True)
|
||||
if only_disabled:
|
||||
if self.only_disabled:
|
||||
hidden_properties = DISABLED_PROPERTIES
|
||||
else:
|
||||
hidden_properties = HIDDEN_PROPERTIES
|
||||
|
|
@ -699,7 +718,7 @@ class Collect(_ToString):
|
|||
except AttributeError:
|
||||
variable = None
|
||||
if variable and self.is_inaccessible_user_data(
|
||||
variable, only_disabled=only_disabled
|
||||
variable
|
||||
):
|
||||
try:
|
||||
variable_value = self._get_unmodified_default_value(
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ cli:
|
|||
type: boolean
|
||||
default:
|
||||
jinja: |-
|
||||
{{{{ step.output is not propertyerror and step.output != "doc" }}}}
|
||||
{{{{ step.output is not propertyerror and step.output == "doc" }}}}
|
||||
description: {_('is true if doc is activate')}
|
||||
|
||||
doc:
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
def load_formatter(self) -> str:
|
||||
output_format = self.rougailconfig["doc.output_format"]
|
||||
self.formatter = self.outputs[output_format](
|
||||
self.rougailconfig, support_namespace=self.support_namespace
|
||||
self.rougailconfig, support_namespace=self.support_namespace, document_a_type=self.document_a_type
|
||||
)
|
||||
|
||||
def print(self) -> None:
|
||||
|
|
@ -98,7 +98,6 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
def load(self):
|
||||
self.document_a_type = self.rougailconfig["doc.document_a_type"]
|
||||
self.modes_level = self.rougailconfig["modes_level"]
|
||||
self.default_values = self.rougailconfig["doc.default_values"]
|
||||
self.disabled_modes = []
|
||||
if self.modes_level:
|
||||
for mode in self.modes_level:
|
||||
|
|
@ -116,6 +115,8 @@ class RougailOutputDoc(Collect, Examples, Changelog):
|
|||
self.dynamic_paths = {}
|
||||
if self.config.isoptiondescription():
|
||||
informations = self.collect_families(self.config.unrestraint)
|
||||
# from pprint import pprint
|
||||
# pprint(informations)
|
||||
else:
|
||||
informations = {}
|
||||
self.collect_variable(self.config, informations)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ from ruamel.yaml.representer import RoundTripRepresenter
|
|||
|
||||
from tiramisu import Calculation, owners
|
||||
|
||||
|
||||
from .utils import _, dump, to_phrase
|
||||
|
||||
|
||||
|
|
@ -53,6 +52,23 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
|
|||
|
||||
def gen_doc_examples(self):
|
||||
"""Return examples"""
|
||||
datas = []
|
||||
config = self._build_example_config()
|
||||
for only_modified in [True, False]:
|
||||
results = self._gen_doc_examples(config, only_modified)
|
||||
if results:
|
||||
if only_modified:
|
||||
title = _("Example with mandatory variables not filled in")
|
||||
else:
|
||||
title = _("Example with all variables modifiable")
|
||||
datas.append(self.formatter.title(title, self.level))
|
||||
datas.append(self.formatter.yaml(dump(results)))
|
||||
end = self.formatter.end_family(self.level)
|
||||
if end:
|
||||
datas.append(end)
|
||||
return self.formatter.compute(datas)
|
||||
|
||||
def _build_example_config(self):
|
||||
self.comment_examples = self.rougailconfig["doc.examples.comment"]
|
||||
self.level = self.rougailconfig["doc.title_level"]
|
||||
if self.comment_examples:
|
||||
|
|
@ -63,47 +79,48 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
|
|||
config.information.set("description_type", "description")
|
||||
config.property.read_write()
|
||||
self._set_mandatories(config)
|
||||
datas = []
|
||||
for only_modified in [True, False]:
|
||||
if not only_modified:
|
||||
self._set_examples(config)
|
||||
results = CommentedMap()
|
||||
return config
|
||||
|
||||
def _gen_doc_examples(self, config, only_modified: bool):
|
||||
if not only_modified:
|
||||
self._set_examples(config)
|
||||
results = CommentedMap()
|
||||
if self.true_config == self.config:
|
||||
root_config = config
|
||||
true_results = None
|
||||
n_results = None
|
||||
else:
|
||||
root_config = config.option(self.config.path())
|
||||
current_option = self.true_config
|
||||
subpaths = self.config.path().split(".")
|
||||
n_results = CommentedMap()
|
||||
true_results = n_results
|
||||
if not self.config.isoptiondescription():
|
||||
subpaths = subpaths[:-1]
|
||||
for subpath in subpaths:
|
||||
current_option = current_option.option(subpath)
|
||||
name = current_option.name()
|
||||
new_results = CommentedMap()
|
||||
self._set_description(new_results, name, current_option)
|
||||
n_results[name] = new_results
|
||||
n_results = n_results[name]
|
||||
if only_modified:
|
||||
dump_type = 'modified'
|
||||
else:
|
||||
dump_type = 'all'
|
||||
if root_config.isoptiondescription():
|
||||
self._example_parse_family(
|
||||
root_config.value.get(), results, dump_type
|
||||
)
|
||||
else:
|
||||
self._set_example_value(
|
||||
results, root_config, root_config.value.get(), dump_type
|
||||
)
|
||||
if true_results and results:
|
||||
n_results.update(results)
|
||||
else:
|
||||
true_results = results
|
||||
if self.true_config == self.config:
|
||||
root_config = config
|
||||
else:
|
||||
root_config = config.option(self.config.path())
|
||||
current_option = self.true_config
|
||||
subpaths = self.config.path().split(".")
|
||||
if not self.config.isoptiondescription():
|
||||
subpaths = subpaths[:-1]
|
||||
for subpath in subpaths:
|
||||
current_option = current_option.option(subpath)
|
||||
name = current_option.name()
|
||||
results[name] = CommentedMap()
|
||||
self._set_description(results, name, current_option)
|
||||
results = results[name]
|
||||
if root_config.isoptiondescription():
|
||||
self._example_parse_family(
|
||||
root_config.value.get(), results, only_modified
|
||||
)
|
||||
else:
|
||||
self._set_example_value(
|
||||
results, root_config, root_config.value.get(), only_modified
|
||||
)
|
||||
if results:
|
||||
if only_modified:
|
||||
title = _("Example with mandatory variables not filled in")
|
||||
else:
|
||||
title = _("Example with all variables modifiable")
|
||||
datas.extend(
|
||||
[
|
||||
self.formatter.title(title, self.level),
|
||||
self.formatter.yaml(dump(true_results)),
|
||||
self.formatter.end_family(self.level),
|
||||
]
|
||||
)
|
||||
return self.formatter.compute(datas)
|
||||
return true_results
|
||||
|
||||
def _set_mandatories(self, config):
|
||||
for calculated_too in [False, True]:
|
||||
|
|
@ -165,7 +182,7 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
|
|||
if ori_len > current_len:
|
||||
for idx in reversed(range(current_len, ori_len)):
|
||||
option.value.pop(idx)
|
||||
option.value.set(value)
|
||||
option.unrestraint.value.set(value)
|
||||
|
||||
def _get_value_from_example(self, option):
|
||||
examples = option.information.get("examples", None)
|
||||
|
|
@ -182,49 +199,58 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
|
|||
return option.issubmulti()
|
||||
return option.ismulti()
|
||||
|
||||
def _example_parse_family(self, config, results, only_modified):
|
||||
def _example_parse_family(self, config, results, dump_type):
|
||||
for option, values in config.items():
|
||||
if option.isoptiondescription():
|
||||
if option.isleadership():
|
||||
subresults = self._example_parse_leadership(values, only_modified)
|
||||
subresults = self._example_parse_leadership(values, dump_type)
|
||||
if subresults:
|
||||
name = option.name()
|
||||
results[name] = subresults
|
||||
self._set_description(results, name, option)
|
||||
else:
|
||||
subresults = CommentedMap()
|
||||
self._example_parse_family(values, subresults, only_modified)
|
||||
self._example_parse_family(values, subresults, dump_type)
|
||||
if subresults:
|
||||
name = option.name()
|
||||
results[name] = subresults
|
||||
self._set_description(results, name, option)
|
||||
else:
|
||||
self._set_example_value(results, option, values, only_modified)
|
||||
self._set_example_value(results, option, values, dump_type)
|
||||
|
||||
def _set_example_value(self, results, option, values, only_modified):
|
||||
if self._is_valid_owner(option, only_modified):
|
||||
name = option.name()
|
||||
results[name] = values
|
||||
self._set_description(results, name, option)
|
||||
def _set_example_value(self, results, option, values, dump_type):
|
||||
if not self._is_valid_owner(option, dump_type):
|
||||
return
|
||||
if dump_type == "hidden" and values is None:
|
||||
values = self._get_an_example(option)
|
||||
name = option.name()
|
||||
results[name] = values
|
||||
self._set_description(results, name, option)
|
||||
|
||||
def _is_valid_owner(self, option, only_modified):
|
||||
def _is_valid_owner(self, option, dump_type):
|
||||
if option.type(only_self=True, translation=False) == "symlink":
|
||||
return False
|
||||
if dump_type == "all":
|
||||
return True
|
||||
if dump_type == "hidden":
|
||||
return "hidden" in option.property.get()
|
||||
is_default = option.owner.isdefault()
|
||||
return (
|
||||
option.type(only_self=True, translation=False) != "symlink"
|
||||
and not only_modified
|
||||
or (not option.owner.isdefault() and option.owner.get() != owners.forced)
|
||||
(dump_type == 'modified' and not is_default and option.owner.get() != owners.forced)
|
||||
or (dump_type == 'default' and is_default)
|
||||
)
|
||||
|
||||
def _example_parse_leadership(self, values, only_modified):
|
||||
def _example_parse_leadership(self, values, dump_type):
|
||||
leadership_iter = iter(values.items())
|
||||
leader, leader_values = next(leadership_iter)
|
||||
if not self._is_valid_owner(leader, only_modified):
|
||||
if not self._is_valid_owner(leader, dump_type):
|
||||
return None
|
||||
leadership = [CommentedMap() for idx in range(len(leader_values))]
|
||||
for idx, value in enumerate(leader_values):
|
||||
self._set_example_value(leadership[idx], leader, value, only_modified)
|
||||
self._set_example_value(leadership[idx], leader, value, dump_type)
|
||||
for option, value in leadership_iter:
|
||||
idx = option.index()
|
||||
self._set_example_value(leadership[idx], option, value, only_modified)
|
||||
self._set_example_value(leadership[idx], option, value, dump_type)
|
||||
return leadership
|
||||
|
||||
def _set_description(self, results, name, option):
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -35,7 +35,7 @@ class Formatter(CommonFormatter):
|
|||
) -> str:
|
||||
"""Display family name as a title"""
|
||||
char = "="
|
||||
return f"{char * (level + 1)} {title}\n\n"
|
||||
return f"{char * (level + 1)} {title}"
|
||||
|
||||
def join(
|
||||
self,
|
||||
|
|
@ -122,9 +122,9 @@ class Formatter(CommonFormatter):
|
|||
prop = self.underline(prop)
|
||||
return f"`{prop}`"
|
||||
|
||||
def yaml(self, _dump: dict) -> str:
|
||||
def _yaml(self, _dump: str) -> str:
|
||||
"""Dump yaml part of documentation"""
|
||||
return f"[,yaml]\n----\n---\n{_dump}\n----\n"
|
||||
return f"[,yaml]\n----\n{_dump}\n----\n"
|
||||
|
||||
def tabular(self, with_header: bool = True) -> str:
|
||||
"""Transform list to a tabular in string format
|
||||
|
|
@ -157,7 +157,7 @@ class Formatter(CommonFormatter):
|
|||
return f"====\n{info}\n\n"
|
||||
|
||||
def end_family_informations(self) -> str:
|
||||
return f"\n====\n"
|
||||
return f"===="
|
||||
|
||||
def family_informations_ends_line(self) -> str:
|
||||
return " +\n"
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class Formatter(CommonFormatter):
|
|||
|
||||
def __init__(self, rougailconfig, **kwargs) -> None:
|
||||
if not Console:
|
||||
raise ExtensionError(_("cannot find python module rich, please install it!"))
|
||||
raise ExtensionError(_("cannot find Python module Rich, please install it!"))
|
||||
self.custom_theme = Theme(self.titles_color)
|
||||
self.max_line = 0
|
||||
super().__init__(rougailconfig, **kwargs)
|
||||
|
|
@ -93,16 +93,18 @@ class Formatter(CommonFormatter):
|
|||
with console.capture() as capture:
|
||||
for data in dico:
|
||||
console.print(data)
|
||||
console.print()
|
||||
return capture.get()
|
||||
|
||||
def title(
|
||||
self,
|
||||
title: str,
|
||||
level: int,
|
||||
collapse: bool=True,
|
||||
) -> str:
|
||||
"""Display family name as a title"""
|
||||
space = " " * (2 * (level - 1))
|
||||
return f"{space}[title{level}]{title}[/title{level}]\n"
|
||||
return f"{space}[title{level}]{title}[/title{level}]"
|
||||
|
||||
def join(
|
||||
self,
|
||||
|
|
@ -192,9 +194,9 @@ class Formatter(CommonFormatter):
|
|||
prop = f"[reverse][bold] {prop} [/bold][/reverse]"
|
||||
return prop
|
||||
|
||||
def yaml(self, _dump):
|
||||
def _yaml(self, _dump: str) -> str:
|
||||
"""Dump yaml part of documentation"""
|
||||
return Syntax(f"---\n{_dump}", "yaml")
|
||||
return Syntax(_dump, "yaml")
|
||||
|
||||
def link(
|
||||
self,
|
||||
|
|
@ -228,9 +230,6 @@ class Formatter(CommonFormatter):
|
|||
def family_informations_ends_line(self) -> str:
|
||||
return "\n"
|
||||
|
||||
def end_family_informations(self) -> str:
|
||||
return ""
|
||||
|
||||
def display_family_informations(self, msg) -> str:
|
||||
msg = ["[blue]" + self.bold(f"🛈 {_('Informations')}") + "\n" + "[/blue]"] + msg
|
||||
return BlockQuote(self.family_informations_ends_line().join(msg))
|
||||
|
|
|
|||
|
|
@ -45,10 +45,11 @@ class Formatter(CommonFormatter):
|
|||
self,
|
||||
title: str,
|
||||
level: int,
|
||||
collapse: bool=True,
|
||||
) -> str:
|
||||
"""Display family name as a title"""
|
||||
char = "#"
|
||||
return f"{char * level} {title}\n\n"
|
||||
return f"{char * level} {title}"
|
||||
|
||||
def join(
|
||||
self,
|
||||
|
|
@ -103,6 +104,7 @@ class Formatter(CommonFormatter):
|
|||
with_enter: bool = True,
|
||||
):
|
||||
"""Display a liste of element"""
|
||||
end = ""
|
||||
if type_ == "variable":
|
||||
if inside_tabular:
|
||||
if with_enter:
|
||||
|
|
@ -111,9 +113,12 @@ class Formatter(CommonFormatter):
|
|||
first_char = f"• "
|
||||
char = f"{self.enter_tabular}{first_char}"
|
||||
else:
|
||||
first_char = char = "\n- "
|
||||
first_char = "- "
|
||||
char = "\n- "
|
||||
else:
|
||||
char = first_char = f"\n{self.family_informations_starts_line()}- "
|
||||
first_char = f"{self.family_informations_starts_list_first()}- "
|
||||
char = f"\n{first_char}"
|
||||
end = self.family_informations_ends_line()
|
||||
ret = ""
|
||||
for idx, choice in enumerate(choices):
|
||||
if not isinstance(choice, str):
|
||||
|
|
@ -122,9 +127,12 @@ class Formatter(CommonFormatter):
|
|||
c = first_char
|
||||
else:
|
||||
c = char
|
||||
ret += c + choice
|
||||
ret += end + c + choice
|
||||
return ret
|
||||
|
||||
def family_informations_starts_list_first(self):
|
||||
return self.family_informations_starts_line()
|
||||
|
||||
def prop(
|
||||
self,
|
||||
prop: str,
|
||||
|
|
@ -147,9 +155,9 @@ class Formatter(CommonFormatter):
|
|||
return lst
|
||||
return [l + " " * (self.max_line_variable - len(l)) for l in lst]
|
||||
|
||||
def yaml(self, _dump):
|
||||
def _yaml(self, _dump: str) -> str:
|
||||
"""Dump yaml part of documentation"""
|
||||
return f"```yaml\n---\n{_dump}\n```\n"
|
||||
return f"```yaml\n{_dump}\n```"
|
||||
|
||||
def link_variable(
|
||||
self,
|
||||
|
|
@ -163,7 +171,7 @@ class Formatter(CommonFormatter):
|
|||
link = f"{filename}#{name}"
|
||||
else:
|
||||
link = f"#{name}"
|
||||
return f'"[{description}]({link})" ({path})'
|
||||
return f'"[{description}]({link})"'
|
||||
|
||||
def anchor(
|
||||
self,
|
||||
|
|
@ -198,7 +206,7 @@ class Formatter(CommonFormatter):
|
|||
|
||||
def family_informations(self):
|
||||
start = self.family_informations_starts_line()
|
||||
return [start + "[!NOTE]", start]
|
||||
return start + "[!NOTE]\n" + start + "\n"
|
||||
|
||||
def family_informations_ends_line(self) -> str:
|
||||
return "\\\n"
|
||||
|
|
@ -209,5 +217,4 @@ class Formatter(CommonFormatter):
|
|||
def display_family_informations(self, msg) -> str:
|
||||
start = self.family_informations_starts_line()
|
||||
end = self.family_informations_ends_line()
|
||||
msg = self.family_informations() + [end.join([start + m for m in msg])]
|
||||
return "\n".join(msg)
|
||||
return self.family_informations() + end.join([start + m for m in msg])
|
||||
|
|
|
|||
|
|
@ -20,19 +20,28 @@ from typing import List
|
|||
|
||||
|
||||
from .github import Formatter as GithubFormatter
|
||||
from ..utils import dump
|
||||
from ..i18n import _
|
||||
|
||||
|
||||
class Formatter(GithubFormatter):
|
||||
name = "gitlab"
|
||||
level = 51
|
||||
format_in_title = False
|
||||
|
||||
def title(self, title: str, level: int) -> str:
|
||||
# self.max_line_variable = 0
|
||||
return "<details><summary>" + title + "</summary>\n\n"
|
||||
def title(self,
|
||||
title: str,
|
||||
level: int,
|
||||
collapse: bool=True,
|
||||
) -> str:
|
||||
if collapse:
|
||||
return "<details><summary>" + title + "</summary>"
|
||||
return super().title(title, level, collapse)
|
||||
|
||||
def end_family(self, level):
|
||||
return "</details>\n\n"
|
||||
def end_family(self, level, collapse: bool=True):
|
||||
if collapse:
|
||||
return "</details>"
|
||||
return None
|
||||
|
||||
def columns(
|
||||
self,
|
||||
|
|
@ -41,8 +50,54 @@ class Formatter(GithubFormatter):
|
|||
pass
|
||||
|
||||
def family_informations(self) -> str:
|
||||
return [f"> [!note] 🛈 {_('Informations')}"]
|
||||
return f"> [!note] 🛈 {_('Informations')}"
|
||||
|
||||
def table_header(self, lst):
|
||||
"""Manage the header of a table"""
|
||||
return lst
|
||||
|
||||
def family_informations_ends_line(self) -> str:
|
||||
return "\n> "
|
||||
|
||||
def family_informations_starts_line(self) -> str:
|
||||
return "\n> "
|
||||
# def list(self, *args, **kwargs):
|
||||
# return super().list(*args, **kwargs) + "\n"
|
||||
|
||||
def family_informations_starts_list_first(self):
|
||||
return ""
|
||||
|
||||
def list(
|
||||
self,
|
||||
choices: list,
|
||||
*,
|
||||
inside_tabular: bool = True,
|
||||
type_: str = "variable",
|
||||
with_enter: bool = True,
|
||||
):
|
||||
"""Display a liste of element"""
|
||||
end = ""
|
||||
if type_ == "variable":
|
||||
if inside_tabular:
|
||||
if with_enter:
|
||||
char = first_char = f"{self.enter_tabular}• "
|
||||
else:
|
||||
first_char = f"• "
|
||||
char = f"{self.enter_tabular}{first_char}"
|
||||
else:
|
||||
first_char = "- "
|
||||
char = "\n- "
|
||||
else:
|
||||
first_char = f"{self.family_informations_starts_list_first()}- "
|
||||
char = f"{first_char}"
|
||||
end = self.family_informations_ends_line()
|
||||
ret = ""
|
||||
for idx, choice in enumerate(choices):
|
||||
if not isinstance(choice, str):
|
||||
choice = dump(choice)
|
||||
if not idx:
|
||||
c = first_char
|
||||
else:
|
||||
c = char
|
||||
ret += end + c + choice
|
||||
return ret
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class Formatter(CommonFormatter):
|
|||
level: int,
|
||||
) -> str:
|
||||
"""Display family name as a title"""
|
||||
return f"<h{level}>{title}</h{level}>\n\n"
|
||||
return f"<h{level}>{title}</h{level}>"
|
||||
|
||||
def join(
|
||||
self,
|
||||
|
|
@ -122,7 +122,7 @@ class Formatter(CommonFormatter):
|
|||
prop = self.underline(prop)
|
||||
return f"<mark>{prop}</mark>"
|
||||
|
||||
def yaml(self, _dump: dict) -> str:
|
||||
def _yaml(self, _dump: str) -> str:
|
||||
"""Dump yaml part of documentation"""
|
||||
return f"<pre>{_dump}</pre>"
|
||||
|
||||
|
|
@ -144,3 +144,6 @@ class Formatter(CommonFormatter):
|
|||
|
||||
def to_phrase(self, text: str) -> str:
|
||||
return escape(text)
|
||||
|
||||
def family_informations_ends_line(self):
|
||||
return "<br/>"
|
||||
|
|
|
|||
|
|
@ -31,9 +31,4 @@ class Formatter:
|
|||
|
||||
def run(self, informations: dict, *args) -> str: # pylint: disable=unused-argument
|
||||
"""Transform to string"""
|
||||
# if root:
|
||||
# current = informations
|
||||
# for path in root.split('.'):
|
||||
# current = current[path]["children"]
|
||||
# informations = current
|
||||
return dumps(informations, ensure_ascii=False, indent=2)
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ class CommonTabular:
|
|||
self.description = self.formatter.get_description(
|
||||
self.informations,
|
||||
self.modified_attributes,
|
||||
self.force_identifiers,
|
||||
force_identifiers=self.force_identifiers,
|
||||
)
|
||||
else:
|
||||
self.description = None
|
||||
|
|
@ -251,14 +251,16 @@ class CommonFormatter:
|
|||
"""Class with common function for formatter"""
|
||||
|
||||
enter_tabular = "\n"
|
||||
format_in_title = True
|
||||
# tabulate module name
|
||||
name = None
|
||||
|
||||
def __init__(self, rougailconfig, support_namespace, **kwargs):
|
||||
def __init__(self, rougailconfig, support_namespace, document_a_type, **kwargs):
|
||||
tabulate_module.PRESERVE_WHITESPACE = True
|
||||
self.header_setted = False
|
||||
self.rougailconfig = rougailconfig
|
||||
self.support_namespace = support_namespace
|
||||
self.document_a_type = document_a_type
|
||||
|
||||
def run(self, informations: dict, *, dico_is_already_treated=False) -> str:
|
||||
"""Transform to string"""
|
||||
|
|
@ -286,13 +288,14 @@ class CommonFormatter:
|
|||
self.tabular_datas = Tabulars().get()[tabular_template](self)
|
||||
|
||||
def compute(self, data):
|
||||
return "".join([d for d in data if d])
|
||||
return ENTER.join([d for d in data if d])
|
||||
|
||||
# Class you needs implement to your Formatter
|
||||
def title(
|
||||
self,
|
||||
title: str,
|
||||
level: int,
|
||||
collapse: bool=True,
|
||||
) -> str:
|
||||
"""Display family name as a title"""
|
||||
raise NotImplementedError()
|
||||
|
|
@ -335,6 +338,7 @@ class CommonFormatter:
|
|||
) -> str:
|
||||
"""Set a text link to variable anchor"""
|
||||
# return f'"{description}"'
|
||||
# FIXME OPTION POUR METTRE LE PATH
|
||||
return f'"{description}" ({path})'
|
||||
|
||||
def stripped(
|
||||
|
|
@ -374,10 +378,16 @@ class CommonFormatter:
|
|||
"""Add a link"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def yaml(self, _dump: str, yaml_version: str="1.1"):
|
||||
output = f"---\n{_dump}"
|
||||
if yaml_version == "1.2":
|
||||
output = f'%YAML 1.2\n{output}\n...'
|
||||
return self._yaml(output)
|
||||
|
||||
##################
|
||||
|
||||
def end_family_informations(self) -> str:
|
||||
return ENTER
|
||||
return None
|
||||
|
||||
def display_paths(
|
||||
self,
|
||||
|
|
@ -397,7 +407,6 @@ class CommonFormatter:
|
|||
|
||||
def anchor(path, true_path):
|
||||
return path
|
||||
|
||||
ret_paths = []
|
||||
path = informations["path"]
|
||||
if not path:
|
||||
|
|
@ -438,6 +447,10 @@ class CommonFormatter:
|
|||
)
|
||||
else:
|
||||
new = []
|
||||
if "full_path" in informations:
|
||||
full_path = informations["full_path"]
|
||||
else:
|
||||
full_path = path
|
||||
if "identifiers" in informations:
|
||||
for idx, identifier in enumerate(informations["identifiers"]):
|
||||
if force_identifiers and identifier != force_identifiers:
|
||||
|
|
@ -446,12 +459,12 @@ class CommonFormatter:
|
|||
if variable_prefix:
|
||||
path_ = variable_prefix + upper(path_)
|
||||
if not idx:
|
||||
path_ = anchor(path_, path)
|
||||
path_ = anchor(path_, full_path)
|
||||
if identifier in new:
|
||||
path_ = self.underline(path_)
|
||||
ret_paths.append(bold(path_))
|
||||
else:
|
||||
ret_paths.append(bold(anchor(variable_prefix + upper(path), path)))
|
||||
ret_paths.append(bold(anchor(variable_prefix + upper(path), full_path)))
|
||||
return ret_paths
|
||||
|
||||
def tabular_header(
|
||||
|
|
@ -464,8 +477,8 @@ class CommonFormatter:
|
|||
def _run(self, dico: dict, level: int, dico_is_already_treated: bool) -> str:
|
||||
"""Parse the dict to transform to dict"""
|
||||
if dico_is_already_treated:
|
||||
return "".join(dico)
|
||||
return "".join([msg for msg in self.dict_to_dict(dico, level, init=True)])
|
||||
return ENTER.join(dico)
|
||||
return ENTER.join([msg for msg in self.dict_to_dict(dico, level, init=True)])
|
||||
|
||||
def dict_to_dict(
|
||||
self,
|
||||
|
|
@ -490,7 +503,9 @@ class CommonFormatter:
|
|||
self.family_to_string(value["informations"], level, namespace)
|
||||
)
|
||||
msg.extend(self.dict_to_dict(value["children"], level + 1))
|
||||
msg.append(self.end_family(level))
|
||||
end = self.end_family(level)
|
||||
if end:
|
||||
msg.append(end)
|
||||
else:
|
||||
self.dict_to_dict(
|
||||
value["children"],
|
||||
|
|
@ -504,7 +519,7 @@ class CommonFormatter:
|
|||
def namespace_to_title(self, informations: dict, level: int) -> str:
|
||||
"""manage namespace family"""
|
||||
return self.title(
|
||||
self.get_description(informations, {}, None),
|
||||
self.get_description(informations, {}, title=True),
|
||||
level,
|
||||
)
|
||||
|
||||
|
|
@ -515,7 +530,7 @@ class CommonFormatter:
|
|||
else:
|
||||
ret = [
|
||||
self.title(
|
||||
self.get_description(informations, {}, None), level
|
||||
self.get_description(informations, {}, title=True), level,
|
||||
)
|
||||
]
|
||||
msg = []
|
||||
|
|
@ -542,25 +557,30 @@ class CommonFormatter:
|
|||
)
|
||||
if msg:
|
||||
ret.append(self.display_family_informations(msg))
|
||||
ret.append(self.end_family_informations())
|
||||
end = self.end_family_informations()
|
||||
if end:
|
||||
ret.append(end)
|
||||
return ret
|
||||
|
||||
def display_family_informations(self, msg) -> str:
|
||||
fam_info = self.family_informations()
|
||||
return fam_info + self.family_informations_ends_line().join(msg)
|
||||
msg = self.family_informations_ends_line().join(msg)
|
||||
if fam_info:
|
||||
msg = fam_info + msg
|
||||
return msg
|
||||
|
||||
def family_informations(self) -> str:
|
||||
return ""
|
||||
return None
|
||||
|
||||
def family_informations_starts_line(self) -> str:
|
||||
return ""
|
||||
return None
|
||||
|
||||
def family_informations_ends_line(self) -> str:
|
||||
return ENTER
|
||||
|
||||
def end_family(self, level: int) -> str:
|
||||
return ""
|
||||
|
||||
def end_family(self, level: int, collapse: bool=True) -> str:
|
||||
return None
|
||||
|
||||
def convert_list_to_string(
|
||||
self, attribute: str, informations: dict, modified_attributes: dict
|
||||
) -> str():
|
||||
|
|
@ -591,41 +611,43 @@ class CommonFormatter:
|
|||
self,
|
||||
informations: dict,
|
||||
modified_attributes: dict,
|
||||
force_identifiers: Optional[str],
|
||||
*,
|
||||
force_identifiers: Optional[list]=None,
|
||||
with_to_phrase: bool=True,
|
||||
title: bool=False,
|
||||
) -> str:
|
||||
add_new_description = True
|
||||
def _get_description(description, identifiers, delete=False, new=[], previous_identifiers=[], new_identifiers=[], its_a_name=False):
|
||||
if new_identifiers:
|
||||
new_identifiers = new_identifiers[0]
|
||||
# if new_identifiers:
|
||||
# new_identifiers = new_identifiers[0]
|
||||
if identifiers and "{{ identifier }}" in description:
|
||||
lst = []
|
||||
for i in identifiers:
|
||||
if not force_identifiers or i == force_identifiers:
|
||||
identifier = i[-1]
|
||||
if identifier in new_identifiers:
|
||||
identifier = self.underline(identifier)
|
||||
identifier = self.italic(identifier)
|
||||
lst.append(identifier)
|
||||
for i in previous_identifiers:
|
||||
if not force_identifiers or i == force_identifiers:
|
||||
lst.append(self.italic(self.delete(i)))
|
||||
if not its_a_name:
|
||||
identifiers_text = display_list(
|
||||
lst,
|
||||
separator="or",
|
||||
sort=False,
|
||||
)
|
||||
description = description.replace(
|
||||
"{{ identifier }}", identifiers_text
|
||||
)
|
||||
if its_a_name:
|
||||
information_type = "name"
|
||||
else:
|
||||
description = display_list(
|
||||
[description.replace("{{ identifier }}", l) for l in lst],
|
||||
separator="or",
|
||||
sort=False,
|
||||
)
|
||||
information_type = "description"
|
||||
if isinstance(informations["path"], dict):
|
||||
info = informations["path"]
|
||||
else:
|
||||
info = informations
|
||||
path = informations["path"]
|
||||
if isinstance(path, str):
|
||||
identifier_type = "many"
|
||||
else:
|
||||
identifier_type = path["identifier_type"]
|
||||
if previous_identifiers:
|
||||
pass
|
||||
if not title or self.format_in_title:
|
||||
formatter = self
|
||||
else:
|
||||
formatter = None
|
||||
description = get_path_from_identifiers(description,
|
||||
identifiers,
|
||||
previous_identifiers,
|
||||
new_identifiers,
|
||||
identifier_type,
|
||||
formatter=formatter,
|
||||
information_type=information_type,
|
||||
)
|
||||
elif with_to_phrase:
|
||||
description = self.to_phrase(description)
|
||||
if description in new:
|
||||
|
|
@ -634,24 +656,31 @@ class CommonFormatter:
|
|||
description = self.delete(description)
|
||||
return description
|
||||
|
||||
if force_identifiers:
|
||||
all_identifiers = force_identifiers
|
||||
else:
|
||||
all_identifiers = informations.get("identifiers", [])
|
||||
if "description" in modified_attributes:
|
||||
name, previous, new = modified_attributes["description"]
|
||||
if previous:
|
||||
identifiers = modified_attributes.get("identifiers", [])
|
||||
# if modified_attributes has no description
|
||||
if not identifiers:
|
||||
identifiers = informations.get("identifiers")
|
||||
identifiers = all_identifiers
|
||||
modified_description = _get_description(
|
||||
previous[0], identifiers, delete=True
|
||||
)
|
||||
else:
|
||||
modified_description = None
|
||||
elif "identifiers" in modified_attributes and "{{ identifier }}" in informations["description"]:
|
||||
# FIXME aussi au dessus !
|
||||
name, previous, new = modified_attributes["identifiers"]
|
||||
previous_identifiers = previous[-1] if previous else []
|
||||
new_identifiers = new[-1] if new else []
|
||||
if new_identifiers:
|
||||
all_identifiers = [identifier for identifier in all_identifiers if identifier != new_identifiers]
|
||||
modified_description = _get_description(
|
||||
informations["description"], informations.get("identifiers"), previous_identifiers=previous_identifiers, new_identifiers=new_identifiers
|
||||
informations["description"], all_identifiers, previous_identifiers=previous_identifiers, new_identifiers=new_identifiers
|
||||
)
|
||||
add_new_description = False
|
||||
else:
|
||||
|
|
@ -660,11 +689,11 @@ class CommonFormatter:
|
|||
if add_new_description:
|
||||
if "description" in informations:
|
||||
description = _get_description(
|
||||
informations["description"], informations.get("identifiers"), new=new
|
||||
informations["description"], all_identifiers, new=new
|
||||
)
|
||||
else:
|
||||
description = _get_description(
|
||||
informations["name"], informations.get("identifiers"), new=new, its_a_name=True,
|
||||
informations["name"], all_identifiers, new=new, its_a_name=True,
|
||||
)
|
||||
else:
|
||||
description = None
|
||||
|
|
@ -876,10 +905,15 @@ class CommonFormatter:
|
|||
underline=False,
|
||||
)
|
||||
)
|
||||
if "multi" in modified_attributes:
|
||||
properties.append(
|
||||
self.prop("multiple", italic=False, delete=True, underline=False)
|
||||
)
|
||||
if "multiple" in modified_attributes:
|
||||
if modified_attributes["multiple"][1] and modified_attributes["multiple"][1][0]:
|
||||
properties.append(
|
||||
self.prop("multiple", italic=False, delete=True, underline=False)
|
||||
)
|
||||
else:
|
||||
properties.append(
|
||||
self.prop("multiple", italic=False, delete=False, underline=True)
|
||||
)
|
||||
if "properties" not in contents and "properties" in modified_attributes:
|
||||
for prop in modified_attributes["properties"]:
|
||||
if prop["ori_name"] == "mandatory":
|
||||
|
|
@ -941,10 +975,15 @@ class CommonFormatter:
|
|||
]
|
||||
else:
|
||||
previous = new = []
|
||||
if "type" in contents and "variable_type" in modified_attributes:
|
||||
previous, new = modified_attributes["variable_type"][1:]
|
||||
properties.append(
|
||||
self.prop(previous[0], italic=False, delete=True, underline=False)
|
||||
)
|
||||
others = []
|
||||
if "type" in contents and "variable_type" in informations:
|
||||
others.append({"name": informations["variable_type"], "type": "type"})
|
||||
if informations.get("multiple"):
|
||||
if informations.get("multiple") and not "multiple" in modified_attributes:
|
||||
others.append({"name": "multiple", "type": "multiple"})
|
||||
if "properties" not in contents and "properties" in informations:
|
||||
for prop in informations["properties"]:
|
||||
|
|
@ -1058,7 +1097,6 @@ class CommonFormatter:
|
|||
headers=headers,
|
||||
tablefmt=self._tabular_name,
|
||||
)
|
||||
+ "\n\n"
|
||||
)
|
||||
return msg
|
||||
|
||||
|
|
@ -1079,14 +1117,24 @@ class CommonFormatter:
|
|||
if "." in self.other_root_filenames:
|
||||
filename = self.other_root_filenames["."]
|
||||
if "identifiers" in msg["path"]:
|
||||
msg["identifiers"] = [msg["path"]["identifiers"]]
|
||||
path = self.link_variable(
|
||||
calc_path(msg["path"], formatter=self, identifiers=identifiers),
|
||||
msg["path"]["path"],
|
||||
self.get_description(msg, {}, None, with_to_phrase=False),
|
||||
filename=filename,
|
||||
)
|
||||
msg = msg["message"].format(path)
|
||||
msg["identifiers"] = msg["path"]["identifiers"]
|
||||
calculated_paths = calc_path(msg["path"], formatter=self, identifiers=identifiers)
|
||||
if isinstance(calculated_paths, list):
|
||||
msgs = [msg["message"].format(self.link_variable(
|
||||
doc_path(calculated_path, self.document_a_type),
|
||||
msg["path"]["path"],
|
||||
self.get_description(msg, {}, force_identifiers=[msg["path"]["identifiers"][idx]], with_to_phrase=False),
|
||||
filename=filename,
|
||||
)) for idx, calculated_path in enumerate(calculated_paths)]
|
||||
msg = self.list(msgs)
|
||||
else:
|
||||
path = self.link_variable(
|
||||
doc_path(calculated_paths, self.document_a_type),
|
||||
msg["path"]["path"],
|
||||
self.get_description(msg, {}, with_to_phrase=False),
|
||||
filename=filename,
|
||||
)
|
||||
msg = msg["message"].format(path)
|
||||
elif "description" in msg:
|
||||
if "variables" in msg:
|
||||
paths = []
|
||||
|
|
@ -1102,6 +1150,10 @@ class CommonFormatter:
|
|||
if "." in self.other_root_filenames:
|
||||
filename = self.other_root_filenames["."]
|
||||
identifiers = variable.get("identifiers")
|
||||
if self.format_in_title:
|
||||
formatter = self
|
||||
else:
|
||||
formatter = None
|
||||
path = calc_path(
|
||||
variable, formatter=self, identifiers=identifiers
|
||||
)
|
||||
|
|
@ -1175,9 +1227,7 @@ def calc_path(path, *, formatter=None, identifiers: List[str] = None) -> str:
|
|||
if isinstance(path, dict):
|
||||
path_ = path["path"]
|
||||
if "identifiers" in path:
|
||||
for identifier in path["identifiers"]:
|
||||
path_ = _path_with_identifier(path_, identifier)
|
||||
path_ = path_.replace("{{ __identifier__ }}", "{{ identifier }}")
|
||||
path_ = get_path_from_identifiers(path["path"], path["identifiers"], [], [], path["identifier_type"], formatter)
|
||||
elif identifiers:
|
||||
path_ = path
|
||||
for identifier in identifiers:
|
||||
|
|
@ -1186,3 +1236,92 @@ def calc_path(path, *, formatter=None, identifiers: List[str] = None) -> str:
|
|||
else:
|
||||
path_ = path
|
||||
return path_
|
||||
|
||||
|
||||
def doc_path(path, document_a_type):
|
||||
if document_a_type:
|
||||
if "." not in path:
|
||||
return None
|
||||
return path.split(".", 1)[-1]
|
||||
return path
|
||||
|
||||
|
||||
def get_path_from_identifiers(text: str,
|
||||
all_identifiers: list,
|
||||
previous_identifiers: list,
|
||||
new_identifiers: list,
|
||||
identifier_type: str,
|
||||
formatter: Optional[object]=None,
|
||||
information_type="path",
|
||||
) -> str:
|
||||
if not isinstance(all_identifiers, list):
|
||||
raise Exception('hu1?')
|
||||
if all_identifiers:
|
||||
for i in all_identifiers:
|
||||
if not isinstance(i, list):
|
||||
raise Exception('hu2?')
|
||||
for j in i:
|
||||
if isinstance(j, list):
|
||||
raise Exception('hu3?')
|
||||
if not isinstance(new_identifiers, list):
|
||||
raise Exception('hu?')
|
||||
def _text_with_identifier(information, identifier, delete=False, underline=False):
|
||||
if identifier is None:
|
||||
identifier = "{{ __identifier__ }}"
|
||||
elif information_type == "path":
|
||||
identifier = normalize_family(str(identifier))
|
||||
else:
|
||||
identifier = str(identifier)
|
||||
if formatter:
|
||||
if delete:
|
||||
identifier = formatter.delete(identifier)
|
||||
if underline:
|
||||
identifier = formatter.underline(identifier)
|
||||
identifier = formatter.italic(identifier)
|
||||
return information.replace("{{ identifier }}", identifier, 1)
|
||||
if identifier_type == "outside":
|
||||
separator = "and"
|
||||
else:
|
||||
separator = "or"
|
||||
if information_type == "description":
|
||||
ori_text = "{{ identifier }}"
|
||||
else:
|
||||
ori_text = text
|
||||
paths = []
|
||||
identifiers_done = []
|
||||
for identifiers in all_identifiers:
|
||||
if information_type != "path":
|
||||
identifier = identifiers[-1]
|
||||
if identifier in identifiers_done:
|
||||
continue
|
||||
text_ = _text_with_identifier(ori_text, identifiers[-1])
|
||||
identifiers_done.append(identifier)
|
||||
else:
|
||||
text_ = ori_text
|
||||
for identifier in identifiers:
|
||||
text_ = _text_with_identifier(text_, identifier)
|
||||
paths.append(text_)
|
||||
if formatter:
|
||||
for identifier in previous_identifiers:
|
||||
paths.append(_text_with_identifier(ori_text, identifier, delete=True))
|
||||
for identifier in new_identifiers:
|
||||
paths.append(_text_with_identifier(ori_text, identifier, underline=True))
|
||||
if information_type == "description":
|
||||
if identifier_type == "outside":
|
||||
paths = [text.replace("{{ identifier }}", path) for path in paths]
|
||||
return display_list(
|
||||
paths,
|
||||
separator=separator,
|
||||
sort=False,
|
||||
)
|
||||
identifiers_text = display_list(
|
||||
paths,
|
||||
separator=separator,
|
||||
sort=False,
|
||||
)
|
||||
return text.replace(
|
||||
"{{ identifier }}", identifiers_text
|
||||
)
|
||||
if identifier_type == 'outside':
|
||||
return paths
|
||||
return display_list(paths, separator=separator, sort=False)
|
||||
|
|
|
|||
|
|
@ -17,5 +17,4 @@
|
|||
* the value of the variable "first variable" (var1)
|
||||
* the value of the variable "a second variable" (family.var2)
|
||||
* the value of the variable "a third variable" (family2.var3)
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
<details><summary>New variables</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="family2.var2" name="family2.var2">family2.var2</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable2.<br/>**Default**: the value of the variable "[a second variable](#family.var2)" (family.var2). |
|
||||
| **<a id="family2.var3" name="family2.var3">family2.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: string4<br/>**Example**: string5 |
|
||||
| **<a id="family2.subfamily.variable" name="family2.subfamily.variable">family2.subfamily.variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | Fourth variable.<br/>**Default**: <br/>• the value of the variable "[first variable](#var1)" (var1)<br/>• the value of the variable "[a second variable](#family.var2)" (family.var2)<br/>• the value of the variable "[a third variable](#family2.var3)" (family2.var3) |
|
||||
|
||||
</details>
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="family2.var2" name="family2.var2">family2.var2</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable2.<br/>**Default**: the value of the variable "[a second variable](#family.var2)". |
|
||||
| **<a id="family2.var3" name="family2.var3">family2.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: string4<br/>**Example**: string5 |
|
||||
| **<a id="family2.subfamily.variable" name="family2.subfamily.variable">family2.subfamily.variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | Fourth variable.<br/>**Default**: <br/>• the value of the variable "[first variable](#var1)"<br/>• the value of the variable "[a second variable](#family.var2)"<br/>• the value of the variable "[a third variable](#family2.var3)" |
|
||||
|
||||
</details>
|
||||
|
|
@ -11,5 +11,4 @@
|
|||
<li>the value of the variable "a second variable" (family.var2)</li>
|
||||
<li>the value of the variable "a third variable" (family2.var3)</li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
# New variables
|
||||
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="family2.var2" name="family2.var2">family2.var2</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable2.<br/>**Default**: the value of the variable "[a second variable](#family.var2)" (family.var2). |
|
||||
| **<a id="family2.var3" name="family2.var3">family2.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: string4<br/>**Example**: string5 |
|
||||
| **<a id="family2.subfamily.variable" name="family2.subfamily.variable">family2.subfamily.variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | Fourth variable.<br/>**Default**: <br/>• the value of the variable "[first variable](#var1)" (var1)<br/>• the value of the variable "[a second variable](#family.var2)" (family.var2)<br/>• the value of the variable "[a third variable](#family2.var3)" (family2.var3) |
|
||||
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="family2.var2" name="family2.var2">family2.var2</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable2.<br/>**Default**: the value of the variable "[a second variable](#family.var2)". |
|
||||
| **<a id="family2.var3" name="family2.var3">family2.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: string4<br/>**Example**: string5 |
|
||||
| **<a id="family2.subfamily.variable" name="family2.subfamily.variable">family2.subfamily.variable</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `mandatory` `unique` | Fourth variable.<br/>**Default**: <br/>• the value of the variable "[first variable](#var1)"<br/>• the value of the variable "[a second variable](#family.var2)"<br/>• the value of the variable "[a third variable](#family2.var3)" |
|
||||
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
<details><summary>Deleted variable</summary>
|
||||
|
||||
- variable_to_family.var
|
||||
|
||||
- variable_to_family.var</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -6,5 +6,4 @@
|
|||
|
||||
# Deleted variable
|
||||
|
||||
|
||||
- variable_to_family.var
|
||||
|
|
@ -5,5 +5,4 @@
|
|||
| Variable | Description
|
||||
| **family.var3** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A third variable.
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
|
||||
| **<a id="family.var3" name="family.var3">family.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
<tbody>
|
||||
<tr><td><b>family.var3</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>A third variable.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
|
||||
| **<a id="family.var3" name="family.var3">family.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |
|
||||
|
||||
| **<a id="family.var3" name="family.var3">family.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |
|
||||
|
|
@ -8,6 +8,6 @@
|
|||
|
||||
<details><summary>Deleted variable</summary>
|
||||
|
||||
- variable_to_family
|
||||
|
||||
- variable_to_family</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -6,5 +6,4 @@
|
|||
|
||||
# Deleted variable
|
||||
|
||||
|
||||
- variable_to_family
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A third variable.
|
||||
| **family2.var4** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | A fourth variable.
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -5,5 +5,4 @@
|
|||
| **<a id="family.var3" name="family.var3">family.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |
|
||||
| **<a id="family2.var4" name="family2.var4">family2.var4</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A fourth variable. |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -8,5 +8,4 @@
|
|||
<tr><td><b>family.var3</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark> </td><td>A third variable. </td></tr>
|
||||
<tr><td><b>family2.var4</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>A fourth variable.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -3,5 +3,4 @@
|
|||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|
|
||||
| **<a id="family.var3" name="family.var3">family.var3</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |
|
||||
| **<a id="family2.var4" name="family2.var4">family2.var4</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A fourth variable. |
|
||||
|
||||
| **<a id="family2.var4" name="family2.var4">family2.var4</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A fourth variable. |
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<details><summary>Deleted variables</summary>
|
||||
|
||||
|
||||
- family2.var2
|
||||
- family2.var3
|
||||
- family2.subfamily.variable</details>
|
||||
- family2.subfamily.variable
|
||||
|
||||
</details>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
# Deleted variables
|
||||
|
||||
|
||||
- family2.var2
|
||||
- family2.var3
|
||||
- family2.subfamily.variable
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<details><summary>Deleted variable</summary>
|
||||
|
||||
- family.var3
|
||||
|
||||
- family.var3</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
# Deleted variable
|
||||
|
||||
|
||||
- family.var3
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<details><summary>Deleted variables</summary>
|
||||
|
||||
|
||||
- family.var3
|
||||
- family2.var4</details>
|
||||
- family2.var4
|
||||
|
||||
</details>
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
# Deleted variables
|
||||
|
||||
|
||||
- family.var3
|
||||
- family2.var4
|
||||
|
|
@ -5,5 +5,4 @@
|
|||
| Variable | Description
|
||||
| **var1** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | #New description.#
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | <ins>New description.</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td><ins>New description.</ins></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | <ins>New description.</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | <ins>New description.</ins> |
|
||||
|
|
@ -6,5 +6,4 @@
|
|||
| **var1** +
|
||||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | +++First variable.+++ +
|
||||
#New description.#
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | ~~First variable.~~<br/><ins>New description.</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td><del>First variable.</del><br/><ins>New description.</ins></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | ~~First variable.~~<br/><ins>New description.</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | ~~First variable.~~<br/><ins>New description.</ins> |
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | First variable. +
|
||||
+++First help.+++ +
|
||||
#Modified help.#
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>~~First help.~~<br/><ins>Modified help.</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>First variable.<br/><del>First help.</del><br/><ins>Modified help.</ins></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>~~First help.~~<br/><ins>Modified help.</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>~~First help.~~<br/><ins>Modified help.</ins> |
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
var1:
|
||||
description: first variable
|
||||
type: integer
|
||||
...
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
var1:
|
||||
description: first variable
|
||||
...
|
||||
8
tests/changelog/10mod_variable_type/result.adoc
Normal file
8
tests/changelog/10mod_variable_type/result.adoc
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
== Modified variable
|
||||
|
||||
[cols="1a,1a"]
|
||||
|====
|
||||
| Variable | Description
|
||||
| **var1** +
|
||||
`+++string+++` `#https://rougail.readthedocs.io/en/latest/variable.html#variables-types#[integer]` `basic` `mandatory` | First variable.
|
||||
|====
|
||||
7
tests/changelog/10mod_variable_type/result.gitlab.md
Normal file
7
tests/changelog/10mod_variable_type/result.gitlab.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`string`~~ [<ins>`integer`</ins>](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable. |
|
||||
|
||||
</details>
|
||||
10
tests/changelog/10mod_variable_type/result.html
Normal file
10
tests/changelog/10mod_variable_type/result.html
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<h1>Modified variable</h1>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Variable </th><th>Description </th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><del>string</del></mark> <mark><ins><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>integer</a></ins></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>First variable.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
5
tests/changelog/10mod_variable_type/result.md
Normal file
5
tests/changelog/10mod_variable_type/result.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`string`~~ [<ins>`integer`</ins>](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable. |
|
||||
9
tests/changelog/10mod_variable_type/result.sh
Normal file
9
tests/changelog/10mod_variable_type/result.sh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[1;4;96mModified variable[0m
|
||||
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃[1m [0m[1mVariable [0m[1m [0m┃[1m [0m[1mDescription [0m[1m [0m┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ [1mvar1[0m │ First variable. │
|
||||
│ [1;7m [0m[1;7;9mstring[0m[1;7m [0m [1;7m [0m[1;4;7minteger[0m[1;7m [0m [1;7m basic [0m [1;7m mandatory[0m │ │
|
||||
└───────────────────────────────────────┴──────────────────────────────────────┘
|
||||
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | First variable. +
|
||||
**Validator**: +++"not valid1" is not allowed+++ +
|
||||
#"not valid2" is not allowed#
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validator**: ~~"not valid1" is not allowed~~<br/><ins>"not valid2" is not allowed</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -7,5 +7,4 @@
|
|||
<tbody>
|
||||
<tr><td><b>var1</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>First variable.<br/><b>Validator</b>: <del>"not valid1" is not allowed</del><br/><ins>"not valid2" is not allowed</ins></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validator**: ~~"not valid1" is not allowed~~<br/><ins>"not valid2" is not allowed</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validator**: ~~"not valid1" is not allowed~~<br/><ins>"not valid2" is not allowed</ins> |
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
* +++"not valid2" is not allowed+++
|
||||
* '"not valid1" is not allowed'
|
||||
* '#"not valid3" is not allowed#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validators**: <br/>• ~~"not valid2" is not allowed~~<br/>• "not valid1" is not allowed<br/>• <ins>"not valid3" is not allowed</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
<li>'"not valid1" is not allowed'</li>
|
||||
<li><ins>"not valid3" is not allowed</ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validators**: <br/>• ~~"not valid2" is not allowed~~<br/>• "not valid1" is not allowed<br/>• <ins>"not valid3" is not allowed</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validators**: <br/>• ~~"not valid2" is not allowed~~<br/>• "not valid1" is not allowed<br/>• <ins>"not valid3" is not allowed</ins> |
|
||||
|
|
@ -12,5 +12,4 @@
|
|||
* '#"not valid4" is not allowed#'
|
||||
* '"not valid2" is not allowed'
|
||||
* '#"not valid5" is not allowed#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validators**: <br/>• ~~"not valid1" is not allowed~~<br/>• ~~"not valid3" is not allowed~~<br/>• <ins>"not valid4" is not allowed</ins><br/>• "not valid2" is not allowed<br/>• <ins>"not valid5" is not allowed</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -11,5 +11,4 @@
|
|||
<li>'"not valid2" is not allowed'</li>
|
||||
<li><ins>"not valid5" is not allowed</ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validators**: <br/>• ~~"not valid1" is not allowed~~<br/>• ~~"not valid3" is not allowed~~<br/>• <ins>"not valid4" is not allowed</ins><br/>• "not valid2" is not allowed<br/>• <ins>"not valid5" is not allowed</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>**Validators**: <br/>• ~~"not valid1" is not allowed~~<br/>• ~~"not valid3" is not allowed~~<br/>• <ins>"not valid4" is not allowed</ins><br/>• "not valid2" is not allowed<br/>• <ins>"not valid5" is not allowed</ins> |
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
|
||||
* val1 +++← (default)+++
|
||||
* 'val2 #**← (default)**#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1 ~~← (default)~~<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -8,5 +8,4 @@
|
|||
<tr><td><b>var1</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>standard</mark> <mark>mandatory</mark></td><td>First variable.<br/><b>Choices</b>: <ul><li>val1 <del>← (default)</del></li>
|
||||
<li>val2 <ins><b>← (default)</b></ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1 ~~← (default)~~<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1 ~~← (default)~~<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
|
@ -11,5 +11,4 @@
|
|||
* +++val2+++
|
||||
* the value of the variable "the first source variable" (source_variable_1) **← (default)**
|
||||
* the value of the variable "the second source variable" (source_variable_2)
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1 ← (default)~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1) **← (default)**<br/>• the value of the variable "[the second source variable](#source_variable_2)" (source_variable_2) |
|
||||
|
||||
</details>
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1 ← (default)~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)" **← (default)**<br/>• the value of the variable "[the second source variable](#source_variable_2)" |
|
||||
|
||||
</details>
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
<li>the value of the variable "the first source variable" (source_variable_1) <b>← (default)</b></li>
|
||||
<li>the value of the variable "the second source variable" (source_variable_2)</li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1 ← (default)~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1) **← (default)**<br/>• the value of the variable "[the second source variable](#source_variable_2)" (source_variable_2) |
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1 ← (default)~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)" **← (default)**<br/>• the value of the variable "[the second source variable](#source_variable_2)" |
|
||||
|
|
@ -11,5 +11,4 @@
|
|||
* +++the value of the variable "the second source variable" (source_variable_2)+++
|
||||
* '#val1 **← (default)**#'
|
||||
* '#val2#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1)~~<br/>• ~~the value of the variable "[the second source variable](#source_variable_2)" (source_variable_2)~~<br/>• <ins>val1 **← (default)**</ins><br/>• <ins>val2</ins> |
|
||||
|
||||
</details>
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)"~~<br/>• ~~the value of the variable "[the second source variable](#source_variable_2)"~~<br/>• <ins>val1 **← (default)**</ins><br/>• <ins>val2</ins> |
|
||||
|
||||
</details>
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
<li><ins>val1 <b>← (default)</b></ins></li>
|
||||
<li><ins>val2</ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1)~~<br/>• ~~the value of the variable "[the second source variable](#source_variable_2)" (source_variable_2)~~<br/>• <ins>val1 **← (default)**</ins><br/>• <ins>val2</ins> |
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)"~~<br/>• ~~the value of the variable "[the second source variable](#source_variable_2)"~~<br/>• <ins>val1 **← (default)**</ins><br/>• <ins>val2</ins> |
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
* +++val1+++
|
||||
* +++val2+++
|
||||
* the value of the variable "the first source variable" (source_variable_1).
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1). |
|
||||
|
||||
</details>
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)". |
|
||||
|
||||
</details>
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
<li><del>val2</del></li>
|
||||
<li>the value of the variable "the first source variable" (source_variable_1).</li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1). |
|
||||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~val1~~<br/>• ~~val2~~<br/>• the value of the variable "[the first source variable](#source_variable_1)". |
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
* +++the value of the variable "the first source variable" (source_variable_1).+++
|
||||
* '#val1#'
|
||||
* '#val2#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
<details><summary>Modified variable</summary>
|
||||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1).~~<br/>• <ins>val1</ins><br/>• <ins>val2</ins> |
|
||||
|
||||
</details>
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)".~~<br/>• <ins>val1</ins><br/>• <ins>val2</ins> |
|
||||
|
||||
</details>
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
<li><ins>val1</ins></li>
|
||||
<li><ins>val2</ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
# Modified variable
|
||||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)" (source_variable_1).~~<br/>• <ins>val1</ins><br/>• <ins>val2</ins> |
|
||||
|
||||
| Variable | Description |
|
||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="my_variable" name="my_variable">my_variable</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>• ~~the value of the variable "[the first source variable](#source_variable_1)".~~<br/>• <ins>val1</ins><br/>• <ins>val2</ins> |
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
|
||||
* val1
|
||||
* 'val2 #**← (default)**#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -8,5 +8,4 @@
|
|||
<tr><td><b>var1</b><br/><mark><del>basic</del></mark> <mark><ins>standard</ins></mark> <mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>standard</mark> <mark>mandatory</mark></td><td>First variable.<br/><b>Choices</b>: <ul><li>val1</li>
|
||||
<li>val2 <ins><b>← (default)</b></ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | First variable.<br/>**Choices**: <br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
* null +++← (default)+++
|
||||
* val1
|
||||
* 'val2 #**← (default)**#'
|
||||
|====
|
||||
|
||||
|====
|
||||
|
|
@ -4,5 +4,4 @@
|
|||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
|
@ -9,5 +9,4 @@
|
|||
<li>val1</li>
|
||||
<li>val2 <ins><b>← (default)</b></ins></li></ul> </td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
|
|
@ -2,5 +2,4 @@
|
|||
|
||||
| Variable | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
||||
| **<a id="var1" name="var1">var1</a>**<br/>~~`basic`~~ <ins>`standard`</ins> ~~`mandatory`~~ [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | First variable.<br/>**Choices**: <br/>• null ~~← (default)~~<br/>• val1<br/>• val2 <ins>**← (default)**</ins> |
|
||||
|
|
@ -10,5 +10,4 @@
|
|||
* +++val3 ← (default)+++
|
||||
* val1
|
||||
* 'val2 #**← (default)**#'
|
||||
|====
|
||||
|
||||
|====
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue