Compare commits

...

4 commits

4410 changed files with 22238 additions and 9296 deletions

View file

@ -1,3 +1,11 @@
## 0.2.0a36 (2025-10-29)
### Feat
- anchor in gitlab output_format
- can had comments with family/variable description in examples doc
- comment variables from a family
## 0.2.0a35 (2025-10-27) ## 0.2.0a35 (2025-10-27)
### Feat ### Feat

View file

@ -5,8 +5,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: 2025-10-26 15:19+0100\n" "POT-Creation-Date: 2025-10-29 11:01+0100\n"
"PO-Revision-Date: 2025-10-26 15:20+0100\n" "PO-Revision-Date: 2025-10-29 11:02+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@ -16,43 +16,43 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 3.7\n" "X-Generator: Poedit 3.7\n"
#: src/rougail/output_doc/annotator.py:324 #: src/rougail/output_doc/annotator.py:325
msgid "the value of the information \"{0}\" of the variable \"{1}\"" msgid "the value of the information \"{0}\" of the variable \"{1}\""
msgstr "la valeur de l'information \"{0}\" de la variable \"{1}\"" msgstr "la valeur de l'information \"{0}\" de la variable \"{1}\""
#: src/rougail/output_doc/annotator.py:327 #: src/rougail/output_doc/annotator.py:328
msgid "the value of the global information \"{0}\"" msgid "the value of the global information \"{0}\""
msgstr "la valeur de l'information globale \"{0}\"" msgstr "la valeur de l'information globale \"{0}\""
#: src/rougail/output_doc/annotator.py:334 #: src/rougail/output_doc/annotator.py:335
msgid "when the identifier is \"{0}\"" msgid "when the identifier is \"{0}\""
msgstr "lorsque l'identifiant est \"{0}\"" msgstr "lorsque l'identifiant est \"{0}\""
#: src/rougail/output_doc/annotator.py:336 #: src/rougail/output_doc/annotator.py:337
msgid "when the identifier is not \"{0}\"" msgid "when the identifier is not \"{0}\""
msgstr "lorsque l'identifiant n'est pas \"{0}\"" msgstr "lorsque l'identifiant n'est pas \"{0}\""
#: src/rougail/output_doc/changelog.py:137 #: src/rougail/output_doc/changelog.py:144
msgid "New variable" msgid "New variable"
msgstr "Nouvelle variable" msgstr "Nouvelle variable"
#: src/rougail/output_doc/changelog.py:139 #: src/rougail/output_doc/changelog.py:146
msgid "New variables" msgid "New variables"
msgstr "Nouvelles variables" msgstr "Nouvelles variables"
#: src/rougail/output_doc/changelog.py:150 #: src/rougail/output_doc/changelog.py:158
msgid "Modified variable" msgid "Modified variable"
msgstr "Variable modifiée" msgstr "Variable modifiée"
#: src/rougail/output_doc/changelog.py:152 #: src/rougail/output_doc/changelog.py:160
msgid "Modified variables" msgid "Modified variables"
msgstr "Variables modifiées" msgstr "Variables modifiées"
#: src/rougail/output_doc/changelog.py:163 #: src/rougail/output_doc/changelog.py:172
msgid "Deleted variable" msgid "Deleted variable"
msgstr "Variable supprimée" msgstr "Variable supprimée"
#: src/rougail/output_doc/changelog.py:165 #: src/rougail/output_doc/changelog.py:174
msgid "Deleted variables" msgid "Deleted variables"
msgstr "Variables supprimées" msgstr "Variables supprimées"
@ -81,160 +81,227 @@ msgid "Do not add families in documentation"
msgstr "Ne pas ajouter les familles dans la documentation" msgstr "Ne pas ajouter les familles dans la documentation"
#: src/rougail/output_doc/config.py:114 #: src/rougail/output_doc/config.py:114
msgid "Document the variables from this family"
msgstr "Documente les variables depuis cette famille"
#: src/rougail/output_doc/config.py:118
msgid "Families or variables for this family are in an other file name"
msgstr ""
"Les familles ou variables pour cette famille sont dans un autre fichier"
#: src/rougail/output_doc/config.py:128
msgid "documentation must be splitted and in gitlab format"
msgstr "documentation doit être séparée et au format gitlab"
#: src/rougail/output_doc/config.py:131
msgid "Root family name"
msgstr "Nom de la famille racine"
#: src/rougail/output_doc/config.py:135
msgid "Name of the file"
msgstr "Nom du fichier"
#: src/rougail/output_doc/config.py:141
msgid "Disable documentation for variables with those modes" msgid "Disable documentation for variables with those modes"
msgstr "Désactiver la documentation des variables avec ces modes" msgstr "Désactiver la documentation des variables avec ces modes"
#: src/rougail/output_doc/config.py:122 #: src/rougail/output_doc/config.py:149
msgid "disabled when there is no mode available" msgid "disabled when there is no mode available"
msgstr "désactiver lorsqu'il n'y a pas de mode valable" msgstr "désactiver lorsqu'il n'y a pas de mode valable"
#: src/rougail/output_doc/config.py:128 #: src/rougail/output_doc/config.py:155
msgid "verify if disable modes already exists" msgid "verify if disable modes already exists"
msgstr "vérifier le mode existe déjà" msgstr "vérifier le mode existe déjà"
#: src/rougail/output_doc/config.py:130 #: src/rougail/output_doc/config.py:157
msgid "Modify values to document leaderships and dynamics families" msgid "Modify values to document leaderships and dynamics families"
msgstr "Valeurs modifiées pour documenter les familles leader ou dynamique" msgstr "Valeurs modifiées pour documenter les familles leader ou dynamique"
#: src/rougail/output_doc/config.py:133 #: src/rougail/output_doc/config.py:160
msgid "Add description of variables and families when generate examples"
msgstr ""
"Ajouter la description des variables et des familles lorsqu'on génère des "
"exemples"
#: src/rougail/output_doc/config.py:166
msgid "disabled when example in not in contents"
msgstr "désactiver lorsqu'il example n'est pas dans contents"
#: src/rougail/output_doc/config.py:169
msgid "Comment in examples starts at column"
msgstr "Commentaire dans les exemples commence à la colonne"
#: src/rougail/output_doc/config.py:177
msgid "Generate document in format" msgid "Generate document in format"
msgstr "Générer le document au format" msgstr "Générer le document au format"
#: src/rougail/output_doc/config.py:151 #: src/rougail/output_doc/config.py:187
msgid ""
"json output_format is not compatible with \"changelog\" and \"example\" "
"contents"
msgstr ""
"le format de sortie json n'est pas compatible avec \"changelog\" et "
"example\" de la variable contents"
#: src/rougail/output_doc/config.py:196
msgid "Force true color terminal" msgid "Force true color terminal"
msgstr "Force les vrais couleurs dans le terminal" msgstr "Force les vrais couleurs dans le terminal"
#: src/rougail/output_doc/doc.py:344 #: src/rougail/output_doc/doc.py:358
msgid "This family contains lists of variable blocks." msgid "This family contains lists of variable blocks"
msgstr "Cette famille contient des listes de bloc de variable." msgstr "Cette famille contient des listes de bloc de variable"
#: src/rougail/output_doc/doc.py:354
msgid "This family builds families dynamically."
msgstr "Cette famille construit des familles dynamiquement."
#: src/rougail/output_doc/doc.py:368 #: src/rougail/output_doc/doc.py:368
msgid "This family builds families dynamically"
msgstr "Cette famille construit des familles dynamiquement"
#: src/rougail/output_doc/doc.py:382
msgid "Default" msgid "Default"
msgstr "Défaut" msgstr "Défaut"
#: src/rougail/output_doc/doc.py:383 #: src/rougail/output_doc/doc.py:397
msgid "multiple" msgid "multiple"
msgstr "multiple" msgstr "multiple"
#: src/rougail/output_doc/doc.py:391 #: src/rougail/output_doc/doc.py:405
msgid "Example" msgid "Example"
msgstr "Exemple" msgstr "Exemple"
#: src/rougail/output_doc/doc.py:394 #: src/rougail/output_doc/doc.py:408
msgid "Examples" msgid "Examples"
msgstr "Exemples" msgstr "Exemples"
#: src/rougail/output_doc/doc.py:403 #: src/rougail/output_doc/doc.py:417
msgid "Tag" msgid "Tag"
msgstr "Étiquette" msgstr "Étiquette"
#: src/rougail/output_doc/doc.py:406 #: src/rougail/output_doc/doc.py:420
msgid "Tags" msgid "Tags"
msgstr "Étiquettes" msgstr "Étiquettes"
#: src/rougail/output_doc/doc.py:435 #: src/rougail/output_doc/doc.py:449
msgid "No attribute \"description\" for \"{0}\" in {1}" msgid "No attribute \"description\" for \"{0}\" in {1}"
msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}" msgstr "Aucun attribut \"description\" pour \"{0}\" dans {1}"
#: src/rougail/output_doc/doc.py:577 #: src/rougail/output_doc/doc.py:587
msgid "text based with regular expressions \"{0}\"" msgid "text based with regular expressions \"{0}\""
msgstr "texte avec expression rationnelle \"{0}\"" msgstr "texte avec expression rationnelle \"{0}\""
#: src/rougail/output_doc/doc.py:581 #: src/rougail/output_doc/doc.py:591
msgid "Validator" msgid "Validator"
msgstr "Validateur" msgstr "Validateur"
#: src/rougail/output_doc/doc.py:584 #: src/rougail/output_doc/doc.py:594
msgid "Validators" msgid "Validators"
msgstr "Validateurs" msgstr "Validateurs"
#: src/rougail/output_doc/doc.py:593 #: src/rougail/output_doc/doc.py:603
msgid "Choices" msgid "Choices"
msgstr "Choix" msgstr "Choix"
#: src/rougail/output_doc/doc.py:696 #: src/rougail/output_doc/doc.py:706
msgid "the value of the identifier" msgid "the value of the identifier"
msgstr "la valeur de l'identifiant" msgstr "la valeur de l'identifiant"
#: src/rougail/output_doc/doc.py:700 #: src/rougail/output_doc/doc.py:710
msgid "the value of the {0}" msgid "the value of the {0}"
msgstr "la valeur de l'{0}" msgstr "la valeur de l'{0}"
#: src/rougail/output_doc/doc.py:709 #: src/rougail/output_doc/doc.py:719
msgid "depends on a calculation" msgid "depends on a calculation"
msgstr "dépend d'un calcul" msgstr "dépend d'un calcul"
#: src/rougail/output_doc/doc.py:715 #: src/rougail/output_doc/doc.py:725
msgid "\"{0}\" is a calculation for {1} but has no description in {2}" msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}" msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}"
#: src/rougail/output_doc/doc.py:742 src/rougail/output_doc/doc.py:858 #: src/rougail/output_doc/doc.py:753
msgid "depends on an undocumented variable"
msgstr "dépends d'une variable non documentée"
#: src/rougail/output_doc/doc.py:758
msgid "when the variable \"{0}\" hasn't the value \"{1}\""
msgstr "lorsque la variable \"{0}\" n'a pas la valeur \"{1}\""
#: src/rougail/output_doc/doc.py:760
msgid "when the variable \"{0}\" is defined and hasn't the value \"{1}\""
msgstr "lorsque la variable \"{0}\" est définie et n'a pas la valeur \"{1}\""
#: src/rougail/output_doc/doc.py:765
msgid "when the variable \"{0}\" has the value \"{1}\""
msgstr "lorsque la variable \"{0}\" a la valeur \"{1}\""
#: src/rougail/output_doc/doc.py:767
msgid "when the variable \"{0}\" is defined and has the value \"{1}\""
msgstr "lorsque la variable \"{0}\" est définie et a la valeur \"{1}\""
#: src/rougail/output_doc/doc.py:785
msgid "the value of the variable \"{0}\"" msgid "the value of the variable \"{0}\""
msgstr "la valeur de la variable \"{0}\"" msgstr "la valeur de la variable \"{0}\""
#: src/rougail/output_doc/doc.py:787 #: src/rougail/output_doc/doc.py:755
msgid "the value of the variable \"{0}\" if it is defined" msgid "the value of the variable \"{0}\" if it is defined"
msgstr "la valeur de la variable \"{0}\" si elle est définie" msgstr "la valeur de la variable \"{0}\" si elle est définie"
#: src/rougail/output_doc/doc.py:788 #: src/rougail/output_doc/doc.py:775
msgid "the value of an undocumented variable" msgid "the value of an undocumented variable"
msgstr "la valeur d'une variable non documentée" msgstr "la valeur d'une variable non documentée"
#: src/rougail/output_doc/doc.py:826 #: src/rougail/output_doc/doc.py:778
msgid "the values of undocumented variables" msgid "the values of undocumented variables"
msgstr "les valeurs de variables non documentées" msgstr "les valeurs de variables non documentées"
#: src/rougail/output_doc/doc.py:846 #: src/rougail/output_doc/doc.py:801
msgid "(from an undocumented variable)" msgid "(from an undocumented variable)"
msgstr "(issue d'une variable non documentée)" msgstr "(issue d'une variable non documentée)"
#: src/rougail/output_doc/doc.py:854 #: src/rougail/output_doc/doc.py:809
msgid "{0} (from an undocumented variable)" msgid "{0} (from an undocumented variable)"
msgstr "{0} (issue d'une variable non documentée)" msgstr "{0} (issue d'une variable non documentée)"
#: src/rougail/output_doc/example.py:37 #: src/rougail/output_doc/doc.py:813 src/rougail/output_doc/doc.py:862
msgid "depends on an undocumented variable"
msgstr "dépends d'une variable non documentée"
#: src/rougail/output_doc/doc.py:884
msgid ""
"when the variable \"{{0}}\" is defined, accessible and hasn't the value "
"\"{0}\""
msgstr ""
"lorsque la variable \"{{0}}\" est définie, accessible et n'a pas la valeur "
"\"{0}\""
#: src/rougail/output_doc/doc.py:888
msgid "when the variable \"{{0}}\" is defined and hasn't the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" est définie et n'a pas la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:892
msgid "when the variable \"{{0}}\" is accessible and hasn't the value \"{0}\""
msgstr ""
"lorsque la variable \"{{0}}\" est acessible et n'a pas la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:894
msgid "when the variable \"{{0}}\" hasn't the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" n'a pas la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:898
msgid ""
"when the variable \"{{0}}\" is defined, is accessible and has the value "
"\"{0}\""
msgstr ""
"lorsque la variable \"{{0}}\" est définie, accessible et a la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:902
msgid "when the variable \"{{0}}\" is defined and has the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" est définie et a la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:906
msgid "when the variable \"{{0}}\" is accessible and has the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" est accessible et a la valeur \"{0}\""
#: src/rougail/output_doc/doc.py:908
msgid "when the variable \"{{0}}\" has the value \"{0}\""
msgstr "lorsque la variable \"{{0}}\" a la valeur \"{0}\""
#: src/rougail/output_doc/example.py:38
msgid "Example with mandatory variables not filled in" msgid "Example with mandatory variables not filled in"
msgstr "Exemple avec des variables obligatoire non renseignée" msgstr "Exemple avec des variables obligatoire non renseignée"
#: src/rougail/output_doc/example.py:42 #: src/rougail/output_doc/example.py:43
msgid "Example with all variables modifiable" msgid "Example with all variables modifiable"
msgstr "Exemple avec toutes les variables modifiable" msgstr "Exemple avec toutes les variables modifiable"
#: src/rougail/output_doc/output/console.py:164 #: src/rougail/output_doc/output/console.py:165
#: src/rougail/output_doc/utils.py:782 #: src/rougail/output_doc/utils.py:820
msgid "Variable" msgid "Variable"
msgstr "Variable" msgstr "Variable"
#: src/rougail/output_doc/output/console.py:165 #: src/rougail/output_doc/output/console.py:166
#: src/rougail/output_doc/utils.py:782 #: src/rougail/output_doc/utils.py:820
msgid "Description" msgid "Description"
msgstr "Description" msgstr "Description"
#: src/rougail/output_doc/output/gitlab.py:51 #: src/rougail/output_doc/output/gitlab.py:68
msgid "Informations" msgid "Informations"
msgstr "Informations" msgstr "Informations"
@ -338,21 +405,21 @@ msgstr "ce fichier doit exister"
msgid "file type allowed: {0}" msgid "file type allowed: {0}"
msgstr "type de fichier autorisé : {0}" msgstr "type de fichier autorisé : {0}"
#: src/rougail/output_doc/utils.py:332 #: src/rougail/output_doc/utils.py:362
msgid "Variables for \"{0}\"" msgid "Variables for \"{0}\""
msgstr "Variables pour \"{0}\"" msgstr "Variables pour \"{0}\""
#: src/rougail/output_doc/utils.py:362 #: src/rougail/output_doc/utils.py:392
msgid "Identifiers" msgid "Identifiers"
msgstr "Identifiants" msgstr "Identifiants"
#: src/rougail/output_doc/utils.py:659 src/rougail/output_doc/utils.py:668 #: src/rougail/output_doc/utils.py:697 src/rougail/output_doc/utils.py:706
#: src/rougail/output_doc/utils.py:674 src/rougail/output_doc/utils.py:680 #: src/rougail/output_doc/utils.py:712 src/rougail/output_doc/utils.py:718
#: src/rougail/output_doc/utils.py:684 #: src/rougail/output_doc/utils.py:722
msgid "(default)" msgid "(default)"
msgstr "(défaut)" msgstr "(défaut)"
#: src/rougail/output_doc/utils.py:832 #: src/rougail/output_doc/utils.py:877
msgid "{0}: {1}" msgid "{0}: {1}"
msgstr "{0} : {1}" msgstr "{0} : {1}"

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-10-26 15:23+0100\n" "POT-Creation-Date: 2025-10-29 11:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,43 +15,43 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: src/rougail/output_doc/annotator.py:324 #: src/rougail/output_doc/annotator.py:325
msgid "the value of the information \"{0}\" of the variable \"{1}\"" msgid "the value of the information \"{0}\" of the variable \"{1}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/annotator.py:327 #: src/rougail/output_doc/annotator.py:328
msgid "the value of the global information \"{0}\"" msgid "the value of the global information \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/annotator.py:334 #: src/rougail/output_doc/annotator.py:335
msgid "when the identifier is \"{0}\"" msgid "when the identifier is \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/annotator.py:336 #: src/rougail/output_doc/annotator.py:337
msgid "when the identifier is not \"{0}\"" msgid "when the identifier is not \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:137 #: src/rougail/output_doc/changelog.py:144
msgid "New variable" msgid "New variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:139 #: src/rougail/output_doc/changelog.py:146
msgid "New variables" msgid "New variables"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:150 #: src/rougail/output_doc/changelog.py:158
msgid "Modified variable" msgid "Modified variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:152 #: src/rougail/output_doc/changelog.py:160
msgid "Modified variables" msgid "Modified variables"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:163 #: src/rougail/output_doc/changelog.py:172
msgid "Deleted variable" msgid "Deleted variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/changelog.py:165 #: src/rougail/output_doc/changelog.py:174
msgid "Deleted variables" msgid "Deleted variables"
msgstr "" msgstr ""
@ -80,160 +80,212 @@ msgid "Do not add families in documentation"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:114 #: src/rougail/output_doc/config.py:114
msgid "Disable documentation for variables with those modes" msgid "Document the variables from this family"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:122 #: src/rougail/output_doc/config.py:118
msgid "disabled when there is no mode available" msgid "Families or variables for this family are in an other file name"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:128 #: src/rougail/output_doc/config.py:128
msgid "documentation must be splitted and in gitlab format"
msgstr ""
#: src/rougail/output_doc/config.py:131
msgid "Root family name"
msgstr ""
#: src/rougail/output_doc/config.py:135
msgid "Name of the file"
msgstr ""
#: src/rougail/output_doc/config.py:141
msgid "Disable documentation for variables with those modes"
msgstr ""
#: src/rougail/output_doc/config.py:149
msgid "disabled when there is no mode available"
msgstr ""
#: src/rougail/output_doc/config.py:155
msgid "verify if disable modes already exists" msgid "verify if disable modes already exists"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:130 #: src/rougail/output_doc/config.py:157
msgid "Modify values to document leaderships and dynamics families" msgid "Modify values to document leaderships and dynamics families"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:133 #: src/rougail/output_doc/config.py:160
msgid "Add description of variables and families when generate examples"
msgstr ""
#: src/rougail/output_doc/config.py:166
msgid "disabled when example in not in contents"
msgstr ""
#: src/rougail/output_doc/config.py:169
msgid "Comment in examples starts at column"
msgstr ""
#: src/rougail/output_doc/config.py:177
msgid "Generate document in format" msgid "Generate document in format"
msgstr "" msgstr ""
#: src/rougail/output_doc/config.py:151 #: src/rougail/output_doc/config.py:187
msgid "json output_format is not compatible with \"changelog\" and \"example\" contents"
msgstr ""
#: src/rougail/output_doc/config.py:196
msgid "Force true color terminal" msgid "Force true color terminal"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:344 #: src/rougail/output_doc/doc.py:358
msgid "This family contains lists of variable blocks." msgid "This family contains lists of variable blocks"
msgstr ""
#: src/rougail/output_doc/doc.py:354
msgid "This family builds families dynamically."
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:368 #: src/rougail/output_doc/doc.py:368
msgid "This family builds families dynamically"
msgstr ""
#: src/rougail/output_doc/doc.py:382
msgid "Default" msgid "Default"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:383 #: src/rougail/output_doc/doc.py:397
msgid "multiple" msgid "multiple"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:391 #: src/rougail/output_doc/doc.py:405
msgid "Example" msgid "Example"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:394 #: src/rougail/output_doc/doc.py:408
msgid "Examples" msgid "Examples"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:403 #: src/rougail/output_doc/doc.py:417
msgid "Tag" msgid "Tag"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:406 #: src/rougail/output_doc/doc.py:420
msgid "Tags" msgid "Tags"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:435 #: src/rougail/output_doc/doc.py:449
msgid "No attribute \"description\" for \"{0}\" in {1}" msgid "No attribute \"description\" for \"{0}\" in {1}"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:577 #: src/rougail/output_doc/doc.py:587
msgid "text based with regular expressions \"{0}\"" msgid "text based with regular expressions \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:581 #: src/rougail/output_doc/doc.py:591
msgid "Validator" msgid "Validator"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:584 #: src/rougail/output_doc/doc.py:594
msgid "Validators" msgid "Validators"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:593 #: src/rougail/output_doc/doc.py:603
msgid "Choices" msgid "Choices"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:696 #: src/rougail/output_doc/doc.py:706
msgid "the value of the identifier" msgid "the value of the identifier"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:700 #: src/rougail/output_doc/doc.py:710
msgid "the value of the {0}" msgid "the value of the {0}"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:709 #: src/rougail/output_doc/doc.py:719
msgid "depends on a calculation" msgid "depends on a calculation"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:715 #: src/rougail/output_doc/doc.py:725
msgid "\"{0}\" is a calculation for {1} but has no description in {2}" msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:742 src/rougail/output_doc/doc.py:858 #: src/rougail/output_doc/doc.py:753
msgid "depends on an undocumented variable"
msgstr ""
#: src/rougail/output_doc/doc.py:758
msgid "when the variable \"{0}\" hasn't the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:760
msgid "when the variable \"{0}\" is defined and hasn't the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:765
msgid "when the variable \"{0}\" has the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:767
msgid "when the variable \"{0}\" is defined and has the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:785
msgid "the value of the variable \"{0}\"" msgid "the value of the variable \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:787 #: src/rougail/output_doc/doc.py:755
msgid "the value of the variable \"{0}\" if it is defined" msgid "the value of the variable \"{0}\" if it is defined"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:788 #: src/rougail/output_doc/doc.py:775
msgid "the value of an undocumented variable" msgid "the value of an undocumented variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:826 #: src/rougail/output_doc/doc.py:778
msgid "the values of undocumented variables" msgid "the values of undocumented variables"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:846 #: src/rougail/output_doc/doc.py:801
msgid "(from an undocumented variable)" msgid "(from an undocumented variable)"
msgstr "" msgstr ""
#: src/rougail/output_doc/doc.py:854 #: src/rougail/output_doc/doc.py:809
msgid "{0} (from an undocumented variable)" msgid "{0} (from an undocumented variable)"
msgstr "" msgstr ""
#: src/rougail/output_doc/example.py:37 #: src/rougail/output_doc/doc.py:813 src/rougail/output_doc/doc.py:862
msgid "depends on an undocumented variable"
msgstr ""
#: src/rougail/output_doc/doc.py:884
msgid "when the variable \"{{0}}\" is defined, accessible and hasn't the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:888
msgid "when the variable \"{{0}}\" is defined and hasn't the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:892
msgid "when the variable \"{{0}}\" is accessible and hasn't the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:894
msgid "when the variable \"{{0}}\" hasn't the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:898
msgid "when the variable \"{{0}}\" is defined, is accessible and has the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:902
msgid "when the variable \"{{0}}\" is defined and has the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:906
msgid "when the variable \"{{0}}\" is accessible and has the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:908
msgid "when the variable \"{{0}}\" has the value \"{0}\""
msgstr ""
#: src/rougail/output_doc/example.py:38
msgid "Example with mandatory variables not filled in" msgid "Example with mandatory variables not filled in"
msgstr "" msgstr ""
#: src/rougail/output_doc/example.py:42 #: src/rougail/output_doc/example.py:43
msgid "Example with all variables modifiable" msgid "Example with all variables modifiable"
msgstr "" msgstr ""
#: src/rougail/output_doc/output/console.py:164 #: src/rougail/output_doc/output/console.py:165
#: src/rougail/output_doc/utils.py:782 #: src/rougail/output_doc/utils.py:820
msgid "Variable" msgid "Variable"
msgstr "" msgstr ""
#: src/rougail/output_doc/output/console.py:165 #: src/rougail/output_doc/output/console.py:166
#: src/rougail/output_doc/utils.py:782 #: src/rougail/output_doc/utils.py:820
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: src/rougail/output_doc/output/gitlab.py:51 #: src/rougail/output_doc/output/gitlab.py:68
msgid "Informations" msgid "Informations"
msgstr "" msgstr ""
@ -337,21 +389,21 @@ msgstr ""
msgid "file type allowed: {0}" msgid "file type allowed: {0}"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:332 #: src/rougail/output_doc/utils.py:362
msgid "Variables for \"{0}\"" msgid "Variables for \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:362 #: src/rougail/output_doc/utils.py:392
msgid "Identifiers" msgid "Identifiers"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:659 src/rougail/output_doc/utils.py:668 #: src/rougail/output_doc/utils.py:697 src/rougail/output_doc/utils.py:706
#: src/rougail/output_doc/utils.py:674 src/rougail/output_doc/utils.py:680 #: src/rougail/output_doc/utils.py:712 src/rougail/output_doc/utils.py:718
#: src/rougail/output_doc/utils.py:684 #: src/rougail/output_doc/utils.py:722
msgid "(default)" msgid "(default)"
msgstr "" msgstr ""
#: src/rougail/output_doc/utils.py:832 #: src/rougail/output_doc/utils.py:877
msgid "{0}: {1}" msgid "{0}: {1}"
msgstr "" msgstr ""

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project] [project]
name = "rougail.output_doc" name = "rougail.output_doc"
version = "0.2.0a35" version = "0.2.0a36"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md" readme = "README.md"
description = "Rougail output doc" description = "Rougail output doc"

View file

@ -1 +1 @@
__version__ = "0.2.0a35" __version__ = "0.2.0a36"

View file

@ -244,7 +244,7 @@ class Annotator(Walk):
"value": value, "value": value,
} }
if isinstance(values, (VariableCalculation, VariablePropertyCalculation)): if isinstance(values, (VariableCalculation, VariablePropertyCalculation)):
variable_path = self.get_path_from_variable(values, version, path) variable_path = self.get_path_from_variable(values, version, values.path)
value = self.calculation_to_information_variable( value = self.calculation_to_information_variable(
variable_path, values, prop, version, path variable_path, values, prop, version, path
) )
@ -255,6 +255,7 @@ class Annotator(Walk):
"value": value, "value": value,
"ori_path": variable_path, "ori_path": variable_path,
"optional": values.optional, "optional": values.optional,
"propertyerror": values.propertyerror,
} }
if isinstance(values, InformationCalculation): if isinstance(values, InformationCalculation):
return { return {

View file

@ -34,12 +34,19 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
self._added_variables = [] self._added_variables = []
self._modified_variables = [] self._modified_variables = []
self._removed_variables = [] self._removed_variables = []
if self.root:
for family in self.root.split('.'):
if family in previous_doc:
previous_doc = previous_doc[family]['children']
else:
previous_doc = {}
break
self.parser(previous_doc, self.informations) self.parser(previous_doc, self.informations)
return self.display() return self.display()
def parser(self, previous_families, new_families): def parser(self, previous_families, new_families):
def add(new): def add(new):
self.formater.variable_to_string(new, self._added_variables) self.formatter.variable_to_string(new, self._added_variables)
def remove(previous): def remove(previous):
self._removed_variables.append(previous) self._removed_variables.append(previous)
@ -60,18 +67,18 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
if previous["type"] == "variable": if previous["type"] == "variable":
if "identifiers" in previous: if "identifiers" in previous:
for identifiers in previous["identifiers"]: for identifiers in previous["identifiers"]:
remove(calc_path(previous["path"], self.formater, identifiers)) remove(calc_path(previous["path"], self.formatter, identifiers))
else: else:
remove(calc_path(previous["path"], self.formater)) remove(calc_path(previous["path"], self.formatter))
else: else:
self.parser(previous["children"], {}) self.parser(previous["children"], {})
elif previous["type"] != new["type"]: elif previous["type"] != new["type"]:
if previous["type"] == "variable": if previous["type"] == "variable":
if "identifiers" in previous: if "identifiers" in previous:
for identifiers in previous["identifiers"]: for identifiers in previous["identifiers"]:
remove(calc_path(previous["path"], self.formater, identifiers)) remove(calc_path(previous["path"], self.formatter, identifiers))
else: else:
remove(calc_path(previous["path"], self.formater)) remove(calc_path(previous["path"], self.formatter))
self.parser({}, new["children"]) self.parser({}, new["children"])
else: else:
add(new) add(new)
@ -126,7 +133,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
modified_attributes[prop] = (name, prop_previous, prop_new) modified_attributes[prop] = (name, prop_previous, prop_new)
if not modified_attributes: if not modified_attributes:
continue continue
self.formater.variable_to_string( self.formatter.variable_to_string(
new, self._modified_variables, modified_attributes new, self._modified_variables, modified_attributes
) )
@ -137,10 +144,11 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
title = _("New variable") title = _("New variable")
else: else:
title = _("New variables") title = _("New variables")
msg += self.formater.run( msg += self.formatter.run(
[ [
self.formater.title(title, self.level), self.formatter.title(title, self.level),
self.formater.table(self._added_variables), self.formatter.table(self._added_variables),
self.formatter.end_family(self.level)
], ],
self.level, self.level,
dico_is_already_treated=True, dico_is_already_treated=True,
@ -150,10 +158,11 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
title = _("Modified variable") title = _("Modified variable")
else: else:
title = _("Modified variables") title = _("Modified variables")
msg += self.formater.run( msg += self.formatter.run(
[ [
self.formater.title(title, self.level), self.formatter.title(title, self.level),
self.formater.table(self._modified_variables), self.formatter.table(self._modified_variables),
self.formatter.end_family(self.level)
], ],
self.level, self.level,
dico_is_already_treated=True, dico_is_already_treated=True,
@ -163,10 +172,11 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods
title = _("Deleted variable") title = _("Deleted variable")
else: else:
title = _("Deleted variables") title = _("Deleted variables")
msg += self.formater.run( msg += self.formatter.run(
[ [
self.formater.title(title, self.level), self.formatter.title(title, self.level),
self.formater.list(self._removed_variables), self.formatter.list(self._removed_variables, inside_table=False),
self.formatter.end_family(self.level)
], ],
self.level, self.level,
dico_is_already_treated=True, dico_is_already_treated=True,

View file

@ -35,16 +35,16 @@ def get_outputs() -> None:
if not name.endswith(".py") or name.endswith("__.py"): if not name.endswith(".py") or name.endswith("__.py"):
continue continue
module = load_modules(module_name + "." + name[:-3], str(path)) module = load_modules(module_name + "." + name[:-3], str(path))
if "Formater" not in dir(module): if "Formatter" not in dir(module):
continue continue
level = module.Formater.level level = module.Formatter.level
if level in outputs: if level in outputs:
raise ImportError( raise ImportError(
_('duplicated level rougail-doc for output "{0}": {1} and {2}').format( _('duplicated level rougail-doc for output "{0}": {1} and {2}').format(
level, module.Formater.name, outputs[level].name level, module.Formatter.name, outputs[level].name
) )
) )
outputs[module.Formater.level] = module.Formater outputs[module.Formatter.level] = module.Formatter
return {outputs[level].name: outputs[level] for level in sorted(outputs)} return {outputs[level].name: outputs[level] for level in sorted(outputs)}
@ -110,6 +110,33 @@ doc:
return_type: boolean return_type: boolean
description: variables is not selected description: variables is not selected
root:
description: {_('Document the variables from this family')}
mandatory: false
other_root_filenames:
description: {_("Families or variables for this family are in an other file name")}
type: leadership
disabled:
jinja: |-
{{% if not _.root %}}
Documents are not splitted
{{% endif %}}
{{% if _.output_format != 'gitlab' %}}
anchor is available only for gitlab output_format
{{% endif %}}
description: {_('documentation must be splitted and in gitlab format')}
root_path:
description: {_("Root family name")}
mandatory: false
filename:
description: {_("Name of the file")}
type: unix_filename
params:
allow_relative: true
disabled_modes: disabled_modes:
description: {_('Disable documentation for variables with those modes')} description: {_('Disable documentation for variables with those modes')}
multi: true multi: true
@ -129,6 +156,23 @@ doc:
change_default_value: true # {_('Modify values to document leaderships and dynamics families')} change_default_value: true # {_('Modify values to document leaderships and dynamics families')}
comment_examples:
description: {_('Add description of variables and families when generate examples')}
default: false
disabled:
jinja: |-
{{{{ "example" not in _.contents }}}}
return_type: boolean
description: {_('disabled when example in not in contents')}
comment_examples_column:
description: {_('Comment in examples starts at column')}
default: 30
disabled:
variable: _.comment_examples
propertyerror: false
when: false
output_format: output_format:
description: {_('Generate document in format')} description: {_('Generate document in format')}
alternative_name: do alternative_name: do
@ -136,10 +180,11 @@ doc:
validators: validators:
- jinja: |- - jinja: |-
{{% if _.output_format == 'json' %}} {{% if _.output_format == 'json' %}}
{{% if "changelog" in _.contents %}} {{% if "changelog" in _.contents or "example" in _.contents %}}
cannot add to contents "changelog" with output_format "json" cannot add to contents "{{{{ _.contents }}}}" with output_format "json"
{{% endif %}} {{% endif %}}
{{% endif %}} {{% endif %}}
description: {_('json output_format is not compatible with "changelog" and "example" contents')}
choices: choices:
""".replace( """.replace(
"output_format_default", output_format_default "output_format_default", output_format_default

View file

@ -85,7 +85,19 @@ class RougailOutputDoc(Examples, Changelog):
self.output_format = output_format self.output_format = output_format
self.level = rougailconfig["doc.title_level"] self.level = rougailconfig["doc.title_level"]
self.contents = rougailconfig["doc.contents"] self.contents = rougailconfig["doc.contents"]
self.root = rougailconfig["doc.root"]
if self.root:
try:
self.other_root_filenames = rougailconfig["doc.other_root_filenames"]
except PropertiesOptionError:
self.other_root_filenames = None
else:
self.other_root_filenames = None
self.example = "example" in self.contents self.example = "example" in self.contents
if self.example:
self.comment_examples = rougailconfig["doc.comment_examples"]
if self.comment_examples:
self.comment_examples_column = rougailconfig["doc.comment_examples_column"]
if "variables" in self.contents: if "variables" in self.contents:
self.with_family = not rougailconfig["doc.without_family"] self.with_family = not rougailconfig["doc.without_family"]
else: else:
@ -93,10 +105,10 @@ class RougailOutputDoc(Examples, Changelog):
if "changelog" in self.contents: if "changelog" in self.contents:
self.previous_json_file = rougailconfig["doc.previous_json_file"] self.previous_json_file = rougailconfig["doc.previous_json_file"]
if output_format == 'console': if output_format == 'console':
force_true_color_terminal = rougailconfig["doc.force_true_color_terminal"] self.force_true_color_terminal = rougailconfig["doc.force_true_color_terminal"]
else: else:
force_true_color_terminal = None self.force_true_color_terminal = None
self.formater = outputs[output_format](self.with_family, force_true_color_terminal=force_true_color_terminal) self.formatter = outputs[output_format](self)
self.informations = None self.informations = None
try: try:
groups.namespace groups.namespace
@ -111,7 +123,7 @@ class RougailOutputDoc(Examples, Changelog):
self.load() self.load()
return_string = "" return_string = ""
if "variables" in self.contents: if "variables" in self.contents:
return_string += self.formater.run(self.informations, self.level) return_string += self.formatter.run(self.informations, self.level)
if "example" in self.contents: if "example" in self.contents:
return_string += self.gen_doc_examples() return_string += self.gen_doc_examples()
if "changelog" in self.contents: if "changelog" in self.contents:
@ -126,6 +138,8 @@ class RougailOutputDoc(Examples, Changelog):
def load(self): def load(self):
self.dynamic_paths = {} self.dynamic_paths = {}
config = self.conf.unrestraint config = self.conf.unrestraint
if self.root:
config = config.option(self.root)
self.populate_dynamics(config=config) self.populate_dynamics(config=config)
informations = self.parse_families(config) informations = self.parse_families(config)
if informations is None: if informations is None:
@ -167,11 +181,11 @@ class RougailOutputDoc(Examples, Changelog):
} }
if not obj.information.get("forced_description", False): if not obj.information.get("forced_description", False):
self.dynamic_paths[path]["description"] = self._convert_description( self.dynamic_paths[path]["description"] = self._convert_description(
description, obj, type_, its_a_path=False description, type_, its_a_path=False
) )
elif obj.isoptiondescription(): elif obj.isoptiondescription():
self.dynamic_paths[path]["description"] = self._convert_description( self.dynamic_paths[path]["description"] = self._convert_description(
description, obj, type_, its_a_path=True description, type_, its_a_path=True
) )
if uncalculated: if uncalculated:
return return
@ -341,7 +355,7 @@ class RougailOutputDoc(Examples, Changelog):
return False return False
if family.isleadership(): if family.isleadership():
informations.setdefault("help", []).append( informations.setdefault("help", []).append(
_("This family contains lists of variable blocks.") _("This family contains lists of variable blocks")
) )
if family.isdynamic(only_self=True): if family.isdynamic(only_self=True):
identifiers = self._to_string(family, "dynamic", do_not_raise=True) identifiers = self._to_string(family, "dynamic", do_not_raise=True)
@ -351,7 +365,7 @@ class RougailOutputDoc(Examples, Changelog):
identifiers = [identifiers] identifiers = [identifiers]
informations["identifier"] = identifiers informations["identifier"] = identifiers
informations.setdefault("help", []).append( informations.setdefault("help", []).append(
_("This family builds families dynamically.") _("This family builds families dynamically")
) )
return informations return informations
@ -442,13 +456,13 @@ class RougailOutputDoc(Examples, Changelog):
) )
if child.isoptiondescription(): if child.isoptiondescription():
description = self._convert_description( description = self._convert_description(
child.description(uncalculated=True), child, type_, its_a_path=True child.description(uncalculated=True), type_, its_a_path=True
) )
else: else:
description = None description = None
else: else:
description = self._convert_description( description = self._convert_description(
child.description(uncalculated=True), child, type_, its_a_path=False child.description(uncalculated=True), type_, its_a_path=False
) )
if not child.isdynamic(): if not child.isdynamic():
informations["path"] = child.path(uncalculated=True) informations["path"] = child.path(uncalculated=True)
@ -464,13 +478,9 @@ class RougailOutputDoc(Examples, Changelog):
informations["properties"] = properties informations["properties"] = properties
return True return True
def _convert_description(self, description, obj, type_, its_a_path=False): def _convert_description(self, description, type_, its_a_path=False):
if not its_a_path: if not its_a_path:
description = to_phrase(description, type_) description = to_phrase(description, type_)
# if "{{ identifier }}" in description:
# description = {"description": description,
# "identifier": obj.identifiers()[-1],
# }
return description return description
def _add_examples(self, variable, informations: dict, leader) -> None: def _add_examples(self, variable, informations: dict, leader) -> None:
@ -680,8 +690,8 @@ class RougailOutputDoc(Examples, Changelog):
def _calculation_to_string(self, child, calculation, prop, inside_list=False): def _calculation_to_string(self, child, calculation, prop, inside_list=False):
if "description" in calculation: if "description" in calculation:
values = calculation["description"] values = calculation["description"]
if not values.endswith("."): # if not values.endswith("."):
values += "." # values += "."
return values return values
if "type" not in calculation: if "type" not in calculation:
return calculation["value"] return calculation["value"]
@ -698,8 +708,8 @@ class RougailOutputDoc(Examples, Changelog):
values = calculation["value"] values = calculation["value"]
else: else:
values = _("the value of the {0}").format(calculation["type"]) values = _("the value of the {0}").format(calculation["type"])
if not inside_list and isinstance(values, str) and not values.endswith("."): # if not inside_list and isinstance(values, str) and not values.endswith("."):
values += "." # values += "."
return values return values
def _calculation_jinja_to_string(self, child, calculation, prop): def _calculation_jinja_to_string(self, child, calculation, prop):
@ -727,49 +737,7 @@ class RougailOutputDoc(Examples, Changelog):
def _calculation_variable_to_string(self, child, calculation, prop): def _calculation_variable_to_string(self, child, calculation, prop):
if prop in PROPERTY_ATTRIBUTE: if prop in PROPERTY_ATTRIBUTE:
variable_path, value, condition = calculation["value"] values = self._calculation_variable_to_string_known_property(child, calculation, prop)
variable = self.conf.forcepermissive.option(variable_path)
try:
variable.value.get()
except AttributeError as err:
if prop in HIDDEN_PROPERTIES:
return False
variable = None
if variable and self.is_inaccessible_user_data(variable):
try:
variable_value = self._get_unmodified_default_value(variable)
except VariableCalculationDependencyError:
msg = _("depends on an undocumented variable")
else:
if (
condition == "when"
and value == variable_value
or condition == "when_not"
and value != variable_value
):
if prop in HIDDEN_PROPERTIES:
return
# always "{prop}" (but depends on an undocumented variable)
return True
# depends on an undocumented variable but is never "{prop}"
return False
elif condition == "when_not":
if not calculation["optional"]:
msg = _('when the variable "{0}" hasn\'t the value "{1}"')
else:
msg = _(
'when the variable "{0}" is defined and hasn\'t the value "{1}"'
)
else:
if not calculation["optional"]:
msg = _('when the variable "{0}" has the value "{1}"')
else:
msg = _(
'when the variable "{0}" is defined and has the value "{1}"'
)
if not isinstance(value, str):
value = dump(value)
values = msg.format(variable_path, value)
else: else:
if calculation["optional"]: if calculation["optional"]:
path = calculation["value"] path = calculation["value"]
@ -785,46 +753,33 @@ class RougailOutputDoc(Examples, Changelog):
true_msg = _('the value of the variable "{0}"') true_msg = _('the value of the variable "{0}"')
else: else:
true_msg = _('the value of the variable "{0}" if it is defined') true_msg = _('the value of the variable "{0}" if it is defined')
hidden_msg = _("the value of an undocumented variable")
if "{{ identifier }}" in calculation["ori_path"]: if "{{ identifier }}" in calculation["ori_path"]:
if calculation["value"] == calculation["ori_path"]:
regexp = None
else:
regexp = compile(
"^"
+ calculation["ori_path"].replace("{{ identifier }}", "(.*)")
+ "$"
)
informations = [self.dynamic_paths[calculation["value"]]]
values = [] values = []
all_is_undocumented = None all_is_undocumented = False
for information in informations: for cpath, description, identifiers in self.get_annotation_variable(calculation["value"], calculation["ori_path"]):
# if calculation["ori_path"] == information['path']: if cpath:
path = information["path"] all_is_undocumented = False
for identifiers in information["identifiers"]: path_obj = {
cpath = calc_path(path, identifiers=identifiers) "path": cpath,
if regexp and not regexp.search(cpath): }
continue if identifiers:
if self.is_inaccessible_user_data(self.conf.option(cpath)): path_obj["identifiers"] = identifiers
if all_is_undocumented is None: values.append({
all_is_undocumented = True "message": true_msg,
msg = hidden_msg "path": path_obj,
else: "description": description,
if "{{ identifier }}" in path: })
msg = { else:
"message": true_msg, if all_is_undocumented is None:
"path": { all_is_undocumented = True
"path": path, values.append(_("the value of an undocumented variable"))
"identifiers": identifiers.copy(), if all_is_undocumented:
}, if len(values) > 1:
} values = _("the values of undocumented variables")
else: else:
msg = true_msg.format(path) values = values[0]
all_is_undocumented = False
values.append(msg)
if all_is_undocumented and len(values) > 1:
values = _("the values of undocumented variables")
else: else:
# FIXME A MUTUALISER AUSSI
variable_path = calculation["ori_path"] variable_path = calculation["ori_path"]
variable = self.conf.forcepermissive.option(variable_path) variable = self.conf.forcepermissive.option(variable_path)
try: try:
@ -860,11 +815,136 @@ class RougailOutputDoc(Examples, Changelog):
if isinstance(true_msg, dict): if isinstance(true_msg, dict):
values = true_msg values = true_msg
else: else:
values = true_msg.format(calculation["ori_path"]) description = self._convert_description(self.conf.option(calculation["ori_path"]).description(uncalculated=True), "description", its_a_path=False)
values = {
"message": true_msg,
"path": {
"path": calculation["ori_path"],
},
"description": description,
}
else: else:
values = None values = None
return values return values
def _calculation_variable_to_string_known_property(self, child, calculation, prop):
variable_path, value, condition = calculation["value"]
if isinstance(value, str):
str_value = value
else:
str_value = dump(value)
values = []
if "{{ identifier }}" in calculation["ori_path"] or "{{ identifier }}" in variable_path:
variables = self.get_annotation_variable(variable_path, calculation["ori_path"])
else:
option = self.conf.option(variable_path)
try:
is_inaccessible = self.is_inaccessible_user_data(option)
except AttributeError as err:
if err.code != "option-not-found":
raise err from err
is_inaccessible = True
if is_inaccessible:
variables = [[None, None, None]]
else:
description = self._convert_description(option.description(uncalculated=True), "description", its_a_path=False)
variables = [[variable_path, description, None]]
for cpath, description, identifiers in variables:
if not cpath:
variable = self.conf.forcepermissive.option(variable_path)
try:
variable_value = self._get_unmodified_default_value(variable)
except PropertiesOptionError as err:
if calculation["propertyerror"]:
raise err from err
variable_value = value
except VariableCalculationDependencyError:
values.append(_("depends on an undocumented variable"))
continue
except AttributeError as err:
if err.code != "option-not-found" or not calculation.get("optional", False):
raise err from err
return calculation.get("default", False)
if (
condition == "when"
and value == variable_value
or condition == "when_not"
and value != variable_value
):
if prop in HIDDEN_PROPERTIES:
return False
# always "prop"
return True
# never "prop"
return False
else:
if condition == "when_not":
if calculation["optional"]:
if not calculation["propertyerror"]:
msg = _(
'when the variable "{{0}}" is defined, accessible and hasn\'t the value "{0}"'
)
else:
msg = _(
'when the variable "{{0}}" is defined and hasn\'t the value "{0}"'
)
elif not calculation["propertyerror"]:
msg = _('when the variable "{{0}}" is accessible and hasn\'t the value "{0}"')
else:
msg = _('when the variable "{{0}}" hasn\'t the value "{0}"')
else:
if calculation["optional"]:
if not calculation["propertyerror"]:
msg = _(
'when the variable "{{0}}" is defined, is accessible and has the value "{0}"'
)
else:
msg = _(
'when the variable "{{0}}" is defined and has the value "{0}"'
)
elif not calculation["propertyerror"]:
msg = _('when the variable "{{0}}" is accessible and has the value "{0}"')
else:
msg = _('when the variable "{{0}}" has the value "{0}"')
path_obj = {
"path": variable_path,
}
if identifiers:
path_obj["identifiers"] = identifiers
values.append({
"message": msg.format(str_value),
"path": path_obj,
"description": description,
})
if len(values) == 1:
return values[0]
return values
def get_annotation_variable(self, current_path, ori_path):
if current_path == ori_path:
regexp = None
else:
regexp = compile(
"^"
+ ori_path.replace("{{ identifier }}", "(.*)")
+ "$"
)
information = self.dynamic_paths[current_path]
path = information["path"]
for identifiers in information["identifiers"]:
cpath = calc_path(path, identifiers=identifiers)
if regexp and not regexp.search(cpath):
continue
if self.is_inaccessible_user_data(self.conf.option(cpath)):
yield None, None, None
else:
description = self._convert_description(self.conf.option(path).description(uncalculated=True), "description", its_a_path=False)
if "{{ identifier }}" in path:
yield path, description, identifiers.copy()
else:
yield path, description, None
def _get_unmodified_default_value(self, child): def _get_unmodified_default_value(self, child):
calculation = child.information.get(f"default_calculation", None) calculation = child.information.get(f"default_calculation", None)
if not calculation: if not calculation:

View file

@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from typing import Optional from typing import Optional
from ruamel.yaml import CommentedMap
from .utils import _, calc_path from .utils import _, calc_path
@ -33,34 +34,44 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
self._build_examples() self._build_examples()
return_string = "" return_string = ""
if self.examples_mandatories: if self.examples_mandatories:
return_string += self.formater.title( return_string += self.formatter.title(
_("Example with mandatory variables not filled in"), self.level _("Example with mandatory variables not filled in"), self.level
) )
return_string += self.formater.yaml(self.examples_mandatories) return_string += self.formatter.yaml(self.examples_mandatories)
if self.examples: if self.examples:
return_string += self.formater.title( return_string += self.formatter.title(
_("Example with all variables modifiable"), self.level _("Example with all variables modifiable"), self.level
) )
return_string += self.formater.yaml(self.examples) return_string += self.formatter.yaml(self.examples)
return return_string return return_string
def _build_examples(self): def _build_examples(self):
self.examples, self.examples_mandatories = self._parse_examples( examples, examples_mandatories = self._parse_examples(
self.informations self.informations
) )
if self.root and examples:
for sub in self.root.split('.'):
examples = {sub: examples}
if examples_mandatories:
examples_mandatories = {sub: examples_mandatories}
self.examples = examples
self.examples_mandatories = examples_mandatories
def _parse_examples(self, dico, dyn_parent: Optional[str] = None) -> tuple: def _parse_examples(self, dico, dyn_parent: Optional[str] = None) -> tuple:
examples = {} if self.comment_examples:
examples_mandatories = {} examples = CommentedMap()
examples_mandatories = CommentedMap()
else:
examples = {}
examples_mandatories = {}
for value in dico.values(): for value in dico.values():
if value["type"] == "variable": if value["type"] == "variable":
self._parse_examples_variable( parse = self._parse_examples_variable
value, dyn_parent, examples, examples_mandatories
)
else: else:
self._parse_examples_family( parse = self._parse_examples_family
value, dyn_parent, examples, examples_mandatories parse(
) value, dyn_parent, examples, examples_mandatories
)
return examples, examples_mandatories return examples, examples_mandatories
def _parse_examples_variable( def _parse_examples_variable(
@ -87,8 +98,18 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
name = variable["names"][idx] name = variable["names"][idx]
value = variable["example"][idx] value = variable["example"][idx]
examples[name] = value examples[name] = value
if self.comment_examples and "description" in variable:
description = variable["description"]
if description.endswith('.'):
description = description[:-1]
examples.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
if variable["mandatory_without_value"]: if variable["mandatory_without_value"]:
examples_mandatories[name] = value examples_mandatories[name] = value
if self.comment_examples and "description" in variable:
description = variable["description"]
if description.endswith('.'):
description = description[:-1]
examples_mandatories.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
break break
def _parse_examples_family( def _parse_examples_family(
@ -116,8 +137,18 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
) )
if ret_m: if ret_m:
examples_mandatories[name] = ret_m examples_mandatories[name] = ret_m
if self.comment_examples and "description" in family["informations"]:
description = family["informations"]["description"]
if description.endswith('.'):
description = description[:-1]
examples_mandatories.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
if ret_e: if ret_e:
examples[name] = ret_e examples[name] = ret_e
if self.comment_examples and "description" in family["informations"]:
description = family["informations"]["description"]
if description.endswith('.'):
description = description[:-1]
examples.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
ori_path = family["informations"]["path"] ori_path = family["informations"]["path"]
if "identifiers" in family["informations"]: if "identifiers" in family["informations"]:
@ -144,16 +175,27 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
if dyn_parent is not None and not path.startswith(dyn_parent): if dyn_parent is not None and not path.startswith(dyn_parent):
continue continue
for leader_idx in range(len(leader["example"][path_idx])): for leader_idx in range(len(leader["example"][path_idx])):
followers = {} if self.comment_examples:
followers = CommentedMap()
else:
followers = {}
for follower in leadership.values(): for follower in leadership.values():
if len(follower["names"]) == 1: if len(follower["names"]) == 1:
name = follower["names"][0] name = follower["names"][0]
else: else:
name = follower["names"][path_idx] name = follower["names"][path_idx]
followers[name] = follower["example"][path_idx][leader_idx] followers[name] = follower["example"][path_idx][leader_idx]
if self.comment_examples and "description" in follower:
description = follower["description"]
if description.endswith('.'):
description = description[:-1]
followers.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
examples.append(followers) examples.append(followers)
if leader["mandatory_without_value"]: if leader["mandatory_without_value"]:
followers = {} if self.comment_examples:
followers = CommentedMap()
else:
followers = {}
for follower in leadership.values(): for follower in leadership.values():
if not follower["mandatory_without_value"]: if not follower["mandatory_without_value"]:
continue continue
@ -162,6 +204,11 @@ class Examples: # pylint: disable=no-member,too-few-public-methods
else: else:
name = follower["names"][path_idx] name = follower["names"][path_idx]
followers[name] = follower["example"][path_idx][leader_idx] followers[name] = follower["example"][path_idx][leader_idx]
if self.comment_examples and "description" in follower:
description = follower["description"]
if description.endswith('.'):
description = description[:-1]
followers.yaml_add_eol_comment(description, name, column=self.comment_examples_column)
examples_mandatories.append(followers) examples_mandatories.append(followers)
break break
return examples, examples_mandatories return examples, examples_mandatories

View file

@ -17,11 +17,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from typing import List from typing import List
from ..utils import CommonFormater, dump from ..utils import CommonFormatter, dump
class Formater(CommonFormater): class Formatter(CommonFormatter):
"""The asciidoc formater""" """The asciidoc formatter"""
name = "asciidoc" name = "asciidoc"
_table_name = "asciidoc" _table_name = "asciidoc"
@ -92,6 +92,7 @@ class Formater(CommonFormater):
def list( def list(
self, self,
choices: list, choices: list,
inside_table: bool=True,
) -> str: ) -> str:
"""Display a liste of element""" """Display a liste of element"""
prefix = "\n\n* " prefix = "\n\n* "

View file

@ -19,11 +19,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from typing import List from typing import List
from ..i18n import _ from ..i18n import _
from ..utils import dump, CommonFormater, ENTER from ..utils import dump, CommonFormatter, ENTER
class Formater(CommonFormater): class Formatter(CommonFormatter):
"""The markdown (for github) formater""" """The markdown (for github) formatter"""
name = "console" name = "console"
level = 10 level = 10
@ -36,20 +36,20 @@ class Formater(CommonFormater):
"title5": "dark_green underline bold", "title5": "dark_green underline bold",
} }
def __init__(self, with_family: bool, force_true_color_terminal: bool=False) -> None: def __init__(self, doc) -> None:
from rich.table import Table from rich.table import Table
from rich.theme import Theme from rich.theme import Theme
from rich.console import Console from rich.console import Console
self.rich_table = Table self.rich_table = Table
self.rich_console = Console self.rich_console = Console
if force_true_color_terminal: if doc.force_true_color_terminal:
self.force_terminal = 'xterm-256color' self.force_terminal = 'xterm-256color'
else: else:
self.force_terminal = None self.force_terminal = None
self.custom_theme = Theme(self.titles_color) self.custom_theme = Theme(self.titles_color)
self.max_line = 0 self.max_line = 0
super().__init__(with_family) super().__init__(doc)
def run(self, dico: dict, level: int, *, dico_is_already_treated=False) -> str: def run(self, dico: dict, level: int, *, dico_is_already_treated=False) -> str:
if not dico_is_already_treated: if not dico_is_already_treated:
@ -113,7 +113,8 @@ class Formater(CommonFormater):
def list( def list(
self, self,
choices, choices: list,
inside_table: bool=True,
) -> str: ) -> str:
"""Display a liste of element""" """Display a liste of element"""
char = f"{self.enter_table}- " char = f"{self.enter_table}- "

View file

@ -19,21 +19,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from typing import List from typing import List
from html import escape from html import escape
from ..utils import dump, CommonFormater from ..utils import dump, CommonFormatter
class Formater(CommonFormater): class Formatter(CommonFormatter):
"""The markdown (for github) formater""" """The markdown (for github) formatter"""
name = "github" name = "github"
_table_name = "github" _table_name = "github"
level = 50 level = 50
enter_table = "<br/>" enter_table = "<br/>"
def __init__(self, with_family: bool, **kwarg) -> None: def __init__(self, doc, **kwarg) -> None:
self.max_line_variable = 0 self.max_line_variable = 0
self.max_line_description = 0 self.max_line_description = 0
super().__init__(with_family) super().__init__(doc)
def title( def title(
self, self,
@ -88,10 +88,14 @@ class Formater(CommonFormater):
def list( def list(
self, self,
choices, choices: list,
inside_table: bool=True,
): ):
"""Display a liste of element""" """Display a liste of element"""
char = f"{self.enter_table}- " if inside_table:
char = f"{self.enter_table}- "
else:
char = "\n- "
ret = "" ret = ""
for choice in choices: for choice in choices:
if not isinstance(choice, str): if not isinstance(choice, str):

View file

@ -16,14 +16,14 @@ You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from typing import List from typing import List, Optional
from .github import Formater as GithubFormater from .github import Formatter as GithubFormatter
from ..i18n import _ from ..i18n import _
class Formater(GithubFormater): class Formatter(GithubFormatter):
name = "gitlab" name = "gitlab"
level = 51 level = 51
@ -41,6 +41,23 @@ class Formater(GithubFormater):
def end_family(self, level): def end_family(self, level):
return "</details>\n\n" return "</details>\n\n"
def anchor(self,
path: str,
true_path: str,
) -> str:
return f'<a id="{true_path}" name="{true_path}">{path}</a>'
def link_variable(self,
path: str,
description: str,
filename: Optional[str],
) -> str:
if filename:
link = f'{filename}#{path}'
else:
link = f'#{path}'
return self.link(description, link)
def columns( def columns(
self, self,
col: List[str], col: List[str],

View file

@ -18,11 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from typing import List from typing import List
from html import escape from html import escape
from ..utils import CommonFormater, dump from ..utils import CommonFormatter, dump
class Formater(CommonFormater): class Formatter(CommonFormatter):
"""The asciidoc formater""" """The asciidoc formatter"""
name = "html" name = "html"
_table_name = "unsafehtml" _table_name = "unsafehtml"
@ -92,6 +92,7 @@ class Formater(CommonFormater):
def list( def list(
self, self,
choices: list, choices: list,
inside_table: bool=True,
) -> str: ) -> str:
"""Display a liste of element""" """Display a liste of element"""
prefix = "<ul>" prefix = "<ul>"

View file

@ -20,13 +20,13 @@ from json import dumps
from typing import Any from typing import Any
class Formater: class Formatter:
"""Just return internal structure to json""" """Just return internal structure to json"""
name = "json" name = "json"
level = 90 level = 90
def __init__(self, with_family: bool, **kwarg): def __init__(self, doc):
pass pass
def run(self, dico: dict, *args) -> str: # pylint: disable=unused-argument def run(self, dico: dict, *args) -> str: # pylint: disable=unused-argument

View file

@ -136,7 +136,7 @@ def to_phrase(msg, type_="variable"):
if type_ == "variable": if type_ == "variable":
if not msg.endswith("."): if not msg.endswith("."):
msg += "." msg += "."
elif type_ == "family": elif type_ in ["family", "description"]:
if msg.endswith("."): if msg.endswith("."):
msg = msg[:-1] msg = msg[:-1]
else: else:
@ -145,19 +145,22 @@ def to_phrase(msg, type_="variable"):
return msg[0].upper() + msg[1:] return msg[0].upper() + msg[1:]
class CommonFormater: class CommonFormatter:
"""Class with common function for formater""" """Class with common function for formatter"""
enter_table = "\n" enter_table = "\n"
# tabulate module name # tabulate module name
name = None name = None
def __init__(self, with_family: bool, **kwarg): def __init__(self, doc, **kwarg):
tabulate_module.PRESERVE_WHITESPACE = True tabulate_module.PRESERVE_WHITESPACE = True
self.header_setted = False self.header_setted = False
self.with_family = with_family self.with_family = doc.with_family
self.other_root_filenames = doc.other_root_filenames
if doc.other_root_filenames:
self.other_root_filenames = dict(zip(doc.other_root_filenames["root_path"], self.other_root_filenames["filename"]))
# Class you needs implement to your Formater # Class you needs implement to your Formatter
def title( def title(
self, self,
title: str, title: str,
@ -180,6 +183,28 @@ class CommonFormater:
"""Set a text to bold""" """Set a text to bold"""
raise NotImplementedError() raise NotImplementedError()
def underline(
self,
msg: str,
) -> str:
"""Set a text to underline"""
raise NotImplementedError()
def anchor(self,
path: str,
true_path: str,
) -> str:
"""Set a text to a link anchor"""
return path
def link_variable(self,
path: str,
description: str,
filename: Optional[str],
) -> str:
"""Set a text link to variable anchor"""
return path
def stripped( def stripped(
self, self,
text: str, text: str,
@ -190,6 +215,7 @@ class CommonFormater:
def list( def list(
self, self,
choices: list, choices: list,
inside_table: bool=True,
) -> str: ) -> str:
"""Display a liste of element""" """Display a liste of element"""
raise NotImplementedError() raise NotImplementedError()
@ -223,6 +249,8 @@ class CommonFormater:
informations: dict, informations: dict,
modified_attributes: dict, modified_attributes: dict,
force_identifiers: Optional[str], force_identifiers: Optional[str],
*,
is_variable=False
) -> str: ) -> str:
ret_paths = [] ret_paths = []
path = informations["path"] path = informations["path"]
@ -237,15 +265,17 @@ class CommonFormater:
else: else:
new = [] new = []
if "identifiers" in informations: if "identifiers" in informations:
for identifier in informations["identifiers"]: for idx, identifier in enumerate(informations["identifiers"]):
if force_identifiers and identifier != force_identifiers: if force_identifiers and identifier != force_identifiers:
continue continue
path_ = calc_path(path, self, identifier) path_ = calc_path(path, self, identifier)
if not idx:
path_ = self.anchor(path_, path)
if identifier in new: if identifier in new:
path_ = self.underline(path_) path_ = self.underline(path_)
ret_paths.append(self.bold(path_)) ret_paths.append(self.bold(path_))
else: else:
ret_paths.append(self.bold(path)) ret_paths.append(self.bold(self.anchor(path, path)))
return ret_paths return ret_paths
def after_family_paths(self) -> str: def after_family_paths(self) -> str:
@ -481,7 +511,7 @@ class CommonFormater:
informations, calculated_properties, modified_attributes informations, calculated_properties, modified_attributes
) )
first_col = [ first_col = [
self.join(self.display_paths(informations, modified_attributes, force_identifiers)), self.join(self.display_paths(informations, modified_attributes, force_identifiers, is_variable=True)),
properties, properties,
] ]
self.columns(first_col) self.columns(first_col)
@ -605,6 +635,9 @@ class CommonFormater:
default_is_a_list = False default_is_a_list = False
else: else:
default_is_a_list = True default_is_a_list = True
for idx, choice in enumerate(choices_values.copy()):
if isinstance(choice, dict):
choices_values[idx] = self.message_to_string(choice, None)[1]
if "default" in modified_attributes: if "default" in modified_attributes:
name, old_default, new_default = modified_attributes["default"] name, old_default, new_default = modified_attributes["default"]
if not old_default: if not old_default:
@ -628,6 +661,9 @@ class CommonFormater:
default = [] default = []
if not isinstance(default, list): if not isinstance(default, list):
default = [default] default = [default]
for idx, value in enumerate(default.copy()):
if isinstance(value, dict):
default[idx] = self.message_to_string(value, None)[1]
default_value_not_in_choices = set(default) - set(choices_values) default_value_not_in_choices = set(default) - set(choices_values)
if default_value_not_in_choices: if default_value_not_in_choices:
default_is_changed = False default_is_changed = False
@ -654,6 +690,8 @@ class CommonFormater:
if "choices" in modified_attributes: if "choices" in modified_attributes:
name, previous, new = modified_attributes["choices"] name, previous, new = modified_attributes["choices"]
for choice in reversed(previous): for choice in reversed(previous):
if isinstance(choice, dict):
choice = self.message_to_string(choice, None)[1]
if choice in old_default: if choice in old_default:
choices_values.insert( choices_values.insert(
0, self.delete(dump(choice) + "" + _("(default)")) 0, self.delete(dump(choice) + "" + _("(default)"))
@ -799,7 +837,14 @@ class CommonFormater:
ret += msg["submessage"] ret += msg["submessage"]
msg = msg["values"] msg = msg["values"]
elif "message" in msg: elif "message" in msg:
path = calc_path(msg["path"], self, identifiers) filename = None
if self.other_root_filenames:
path = msg["path"]["path"]
for root in self.other_root_filenames:
if path == root or path.startswith(f'{root}.'):
filename = self.other_root_filenames[root]
break
path = self.link_variable(calc_path(msg["path"], self, identifiers), msg["description"], filename=filename)
msg = msg["message"].format(path) msg = msg["message"].format(path)
return ret, msg return ret, msg
@ -832,17 +877,18 @@ class CommonFormater:
return _("{0}: {1}").format(self.bold(name), submessage) return _("{0}: {1}").format(self.bold(name), submessage)
def calc_path(path, formater=None, identifiers: List[str] = None) -> str: def calc_path(path, formatter=None, identifiers: List[str] = None) -> str:
def _path_with_identifier(path, identifier): def _path_with_identifier(path, identifier):
identifier = normalize_family(str(identifier)) identifier = normalize_family(str(identifier))
if formater: if formatter:
identifier = formater.italic(identifier) identifier = formatter.italic(identifier)
return path.replace("{{ identifier }}", identifier, 1) return path.replace("{{ identifier }}", identifier, 1)
if isinstance(path, dict): if isinstance(path, dict):
path_ = path["path"] path_ = path["path"]
for identifier in path["identifiers"]: if "identifiers" in path:
path_ = _path_with_identifier(path_, identifier) for identifier in path["identifiers"]:
path_ = _path_with_identifier(path_, identifier)
elif identifiers: elif identifiers:
path_ = path path_ = path
for identifier in identifiers: for identifier in identifiers:

View file

@ -8,7 +8,7 @@
**family2.var2** + **family2.var2** +
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `standard` `mandatory` | `https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `standard` `mandatory` |
A variable2. + A variable2. +
**Default**: the value of the variable "family.var2". **Default**: the value of the variable "family.var2"
| |
**family2.var3** + **family2.var3** +

View file

@ -0,0 +1,10 @@
<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)" |
| **<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) `standard` `mandatory` `unique` `multiple` | 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>

View file

@ -0,0 +1,15 @@
<h1>New variables</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>family2.var2</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>standard</mark> <mark>mandatory</mark> </td><td>A variable2.<br/><b>Default</b>: the value of the variable "family.var2" </td></tr>
<tr><td><b>family2.var3</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>standard</mark> <mark>mandatory</mark> </td><td>A third variable.<br/><b>Default</b>: string4<br/><b>Example</b>: string5</td></tr>
<tr><td><b>family2.subfamily.variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>string</a></mark> <mark>standard</mark> <mark>mandatory</mark> <mark>unique</mark> <mark>multiple</mark></td><td>Fourth variable.<br/><b>Default</b>: <ul><li>the value of the variable "var1"</li>
<li>the value of the variable "family.var2"</li>
<li>the value of the variable "family2.var3"</li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,8 @@
# New variables
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **family2.var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable2.<br/>**Default**: the value of the variable "family.var2" |
| **family2.var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: string4<br/>**Example**: string5 |
| **family2.subfamily.variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | Fourth variable.<br/>**Default**: <br/>- the value of the variable "var1"<br/>- the value of the variable "family.var2"<br/>- the value of the variable "family2.var3" |

View file

@ -8,7 +8,7 @@
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
family2.var2 │ A variable2. │ family2.var2 │ A variable2. │
 string   standard   mandatory  │ Default: the value of the variable │  string   standard   mandatory  │ Default: the value of the variable │
│ │ "family.var2". │ │ "family.var2"
├───────────────────────────────────────┼──────────────────────────────────────┤ ├───────────────────────────────────────┼──────────────────────────────────────┤
family2.var3 │ A third variable. │ family2.var3 │ A third variable. │
 string   standard   mandatory  │ Default: string4 │  string   standard   mandatory  │ Default: string4 │
@ -22,3 +22,4 @@
│ │ - the value of the variable │ │ │ - the value of the variable │
│ │ "family2.var3" │ │ "family2.var3"
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,13 @@
<details><summary>New variable</summary>
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
| **<a id="variable_to_family" name="variable_to_family">variable_to_family</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable that became a family. |
</details>
<details><summary>Deleted variable</summary>
- variable_to_family.var</details>

View file

@ -0,0 +1,14 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>variable_to_family</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 variable that became a family.</td></tr>
</tbody>
</table>
<h1>Deleted variable</h1>
<ul><li>variable_to_family.var</li></ul>

View file

@ -0,0 +1,10 @@
# New variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **variable_to_family**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable that became a family. |
# Deleted variable
- variable_to_family.var

View file

@ -11,8 +11,10 @@
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘
Deleted variable Deleted variable
- variable_to_family.var - variable_to_family.var

View file

@ -0,0 +1,8 @@
<details><summary>New variable</summary>
| 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. |
</details>

View file

@ -0,0 +1,11 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>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>

View file

@ -0,0 +1,6 @@
# New variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **family.var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |

View file

@ -9,3 +9,4 @@
family.var3 │ A third variable. │ family.var3 │ A third variable. │
 string   basic   mandatory  │ │  string   basic   mandatory  │ │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,13 @@
<details><summary>New variable</summary>
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|
| **<a id="variable_to_family.var" name="variable_to_family.var">variable_to_family.var</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A second variable. |
</details>
<details><summary>Deleted variable</summary>
- variable_to_family</details>

View file

@ -0,0 +1,14 @@
<h1>New variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>variable_to_family.var</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 second variable.</td></tr>
</tbody>
</table>
<h1>Deleted variable</h1>
<ul><li>variable_to_family</li></ul>

View file

@ -0,0 +1,10 @@
# New variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **variable_to_family.var**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A second variable. |
# Deleted variable
- variable_to_family

View file

@ -11,8 +11,10 @@
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘
Deleted variable Deleted variable
- variable_to_family - variable_to_family

View file

@ -0,0 +1,9 @@
<details><summary>New variables</summary>
| 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. |
</details>

View file

@ -0,0 +1,12 @@
<h1>New variables</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<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>
<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>

View file

@ -0,0 +1,7 @@
# New variables
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **family.var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A third variable. |
| **family2.var4**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A fourth variable. |

View file

@ -12,3 +12,4 @@
family2.var4 │ A fourth variable. │ family2.var4 │ A fourth variable. │
 string   basic   mandatory  │ │  string   basic   mandatory  │ │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,7 @@
<details><summary>Deleted variables</summary>
- family2.var2
- family2.var3
- family2.subfamily.variable</details>

View file

@ -0,0 +1,5 @@
<h1>Deleted variables</h1>
<ul><li>family2.var2</li>
<li>family2.var3</li>
<li>family2.subfamily.variable</li></ul>

View file

@ -0,0 +1,6 @@
# Deleted variables
- family2.var2
- family2.var3
- family2.subfamily.variable

View file

@ -7,3 +7,4 @@
- family2.var2 - family2.var2
- family2.var3 - family2.var3
- family2.subfamily.variable - family2.subfamily.variable

View file

@ -0,0 +1,5 @@
<details><summary>Deleted variable</summary>
- family.var3</details>

View file

@ -0,0 +1,3 @@
<h1>Deleted variable</h1>
<ul><li>family.var3</li></ul>

View file

@ -0,0 +1,4 @@
# Deleted variable
- family.var3

View file

@ -5,3 +5,4 @@
- family.var3 - family.var3

View file

@ -0,0 +1,6 @@
<details><summary>Deleted variables</summary>
- family.var3
- family2.var4</details>

View file

@ -0,0 +1,4 @@
<h1>Deleted variables</h1>
<ul><li>family.var3</li>
<li>family2.var4</li></ul>

View file

@ -0,0 +1,5 @@
# Deleted variables
- family.var3
- family2.var4

View file

@ -6,3 +6,4 @@
- family.var3 - family.var3
- family2.var4 - family2.var4

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| 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> |
</details>

View file

@ -0,0 +1,11 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<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>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | ~~First variable.~~<br/><ins>New description.</ins> |

View file

@ -9,3 +9,4 @@
var1 │ First variable. │ var1 │ First variable. │
 string   basic   mandatory  │ New description. │  string   basic   mandatory  │ New description. │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| 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> |
</details>

View file

@ -0,0 +1,11 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<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>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | First variable.<br/>~~First help.~~<br/><ins>Modified help.</ins> |

View file

@ -10,3 +10,4 @@
 string   basic   mandatory  │ First help. │  string   basic   mandatory  │ First help. │
│ │ Modified help. │ │ │ Modified help. │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -9,7 +9,7 @@
`https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` | `https://rougail.readthedocs.io/en/latest/variable.html#variables-types[string]` `basic` `mandatory` |
First variable. + First variable. +
**Validator**: **Validator**:
+++"not valid1" is not allowed.+++ + +++"not valid1" is not allowed+++ +
#"not valid2" is not allowed.# #"not valid2" is not allowed#
|==== |====

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| 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> |
</details>

View file

@ -0,0 +1,11 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<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>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<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> |

View file

@ -8,6 +8,7 @@
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
var1 │ First variable. │ var1 │ First variable. │
 string   basic   mandatory  │ Validator: "not valid1" is not  │  string   basic   mandatory  │ Validator: "not valid1" is not  │
│ │ allowed. │ │ │ allowed
│ │ "not valid2" is not allowed. │ │ │ "not valid2" is not allowed
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -10,8 +10,8 @@
First variable. + First variable. +
**Validators**: **Validators**:
* +++"not valid2" is not allowed.+++ * +++"not valid2" is not allowed+++
* '"not valid1" is not allowed.' * '"not valid1" is not allowed'
* '#"not valid3" is not allowed.#' * '#"not valid3" is not allowed#'
|==== |====

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| 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> |
</details>

View file

@ -0,0 +1,13 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<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>Validators</b>: <ul><li><del>"not valid2" is not allowed</del></li>
<li>'"not valid1" is not allowed'</li>
<li><ins>"not valid3" is not allowed</ins></li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<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> |

View file

@ -8,7 +8,8 @@
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
var1 │ First variable. │ var1 │ First variable. │
 string   basic   mandatory  │ Validators: │  string   basic   mandatory  │ Validators: │
│ │ - "not valid2" is not allowed. │ │ │ - "not valid2" is not allowed
│ │ - "not valid1" is not allowed. │ │ - "not valid1" is not allowed
│ │ - "not valid3" is not allowed. │ │ │ - "not valid3" is not allowed
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -10,10 +10,10 @@
First variable. + First variable. +
**Validators**: **Validators**:
* +++"not valid1" is not allowed.+++ * +++"not valid1" is not allowed+++
* +++"not valid3" is not allowed.+++ * +++"not valid3" is not allowed+++
* '#"not valid4" is not allowed.#' * '#"not valid4" is not allowed#'
* '"not valid2" is not allowed.' * '"not valid2" is not allowed'
* '#"not valid5" is not allowed.#' * '#"not valid5" is not allowed#'
|==== |====

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| 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> |
</details>

View file

@ -0,0 +1,15 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<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>Validators</b>: <ul><li><del>"not valid1" is not allowed</del></li>
<li><del>"not valid3" is not allowed</del></li>
<li><ins>"not valid4" is not allowed</ins></li>
<li>'"not valid2" is not allowed'</li>
<li><ins>"not valid5" is not allowed</ins></li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<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> |

View file

@ -8,9 +8,10 @@
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
var1 │ First variable. │ var1 │ First variable. │
 string   basic   mandatory  │ Validators: │  string   basic   mandatory  │ Validators: │
│ │ - "not valid1" is not allowed. │ │ │ - "not valid1" is not allowed
│ │ - "not valid3" is not allowed. │ │ │ - "not valid3" is not allowed
│ │ - "not valid4" is not allowed. │ │ │ - "not valid4" is not allowed
│ │ - "not valid2" is not allowed. │ │ - "not valid2" is not allowed
│ │ - "not valid5" is not allowed. │ │ │ - "not valid5" is not allowed
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| 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> |
</details>

View file

@ -0,0 +1,12 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<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>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<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> |

View file

@ -11,3 +11,4 @@
│ │ - val1 ← (default) │ │ │ - val1 ← (default) │
│ │ - val2 ← (default) │ │ │ - val2 ← (default) │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -12,7 +12,7 @@ A variable. +
* +++val1 ← (default)+++ * +++val1 ← (default)+++
* +++val2+++ * +++val2+++
* '#the value of the variable "source_variable_1" **← (default)**#' * the value of the variable "source_variable_1" **← (default)**
* '#the value of the variable "source_variable_2"#' * the value of the variable "source_variable_2"
|==== |====

View file

@ -0,0 +1,8 @@
<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)" **← (default)**<br/>- the value of the variable "[`The second source variable`](#source_variable_2)" |
</details>

View file

@ -0,0 +1,14 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>my_variable</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>A variable.<br/><b>Choices</b>: <ul><li><del>val1 ← (default)</del></li>
<li><del>val2</del></li>
<li>the value of the variable "source_variable_1" <b>← (default)</b></li>
<li>the value of the variable "source_variable_2"</li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **my_variable**<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 "source_variable_1" **← (default)**<br/>- the value of the variable "source_variable_2" |

View file

@ -10,8 +10,9 @@
 choice   standard   mandatory  │ Choices: │  choice   standard   mandatory  │ Choices: │
│ │ - val1 ← (default) │ │ │ - val1 ← (default) │
│ │ - val2 │ │ │ - val2 │
│ │ - the value of the variable  │ │ - the value of the variable │
│ │ "source_variable_1" ← (default) │ │ │ "source_variable_1" ← (default) │
│ │ - the value of the variable  │ │ - the value of the variable │
│ │ "source_variable_2" │ │ "source_variable_2"
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -10,7 +10,7 @@
A variable. + A variable. +
**Choices**: **Choices**:
* +++the value of the variable "source_variable_1" ← (default)+++ * +++the value of the variable "source_variable_1"+++
* +++the value of the variable "source_variable_2"+++ * +++the value of the variable "source_variable_2"+++
* '#val1 **← (default)**#' * '#val1 **← (default)**#'
* '#val2#' * '#val2#'

View file

@ -0,0 +1,8 @@
<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)"~~<br/>- ~~the value of the variable "[`The second source variable`](#source_variable_2)"~~<br/>- <ins>val1 **← (default)**</ins><br/>- <ins>val2</ins> |
</details>

View file

@ -0,0 +1,14 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>my_variable</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>A variable.<br/><b>Choices</b>: <ul><li><del>the value of the variable "source_variable_1"</del></li>
<li><del>the value of the variable "source_variable_2"</del></li>
<li><ins>val1 <b>← (default)</b></ins></li>
<li><ins>val2</ins></li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **my_variable**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>- ~~the value of the variable "source_variable_1"~~<br/>- ~~the value of the variable "source_variable_2"~~<br/>- <ins>val1 **← (default)**</ins><br/>- <ins>val2</ins> |

View file

@ -9,9 +9,10 @@
my_variable │ A variable. │ my_variable │ A variable. │
 choice   standard   mandatory  │ Choices: │  choice   standard   mandatory  │ Choices: │
│ │ - the value of the variable  │ │ │ - the value of the variable  │
│ │ "source_variable_1"(default) │ │ │ "source_variable_1"
│ │ - the value of the variable  │ │ │ - the value of the variable  │
│ │ "source_variable_2" │ │ │ "source_variable_2" │
│ │ - val1 ← (default) │ │ │ - val1 ← (default) │
│ │ - val2 │ │ │ - val2 │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -12,6 +12,6 @@ A variable. +
* +++val1+++ * +++val1+++
* +++val2+++ * +++val2+++
* '#the value of the variable "source_variable_1".#' * the value of the variable "source_variable_1"
|==== |====

View file

@ -0,0 +1,8 @@
<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)" |
</details>

View file

@ -0,0 +1,13 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>my_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Choices</b>: <ul><li><del>val1</del></li>
<li><del>val2</del></li>
<li>the value of the variable "source_variable_1"</li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **my_variable**<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 "source_variable_1" |

View file

@ -10,6 +10,7 @@
 choice   basic   mandatory  │ Choices: │  choice   basic   mandatory  │ Choices: │
│ │ - val1 │ │ │ - val1 │
│ │ - val2 │ │ │ - val2 │
│ │ - the value of the variable  │ │ - the value of the variable │
│ │ "source_variable_1". │ │ "source_variable_1"
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -10,7 +10,7 @@
A variable. + A variable. +
**Choices**: **Choices**:
* +++the value of the variable "source_variable_1".+++ * +++the value of the variable "source_variable_1"+++
* '#val1#' * '#val1#'
* '#val2#' * '#val2#'
|==== |====

View file

@ -0,0 +1,8 @@
<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)"~~<br/>- <ins>val1</ins><br/>- <ins>val2</ins> |
</details>

View file

@ -0,0 +1,13 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>my_variable</b><br/><mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark>basic</mark> <mark>mandatory</mark></td><td>A variable.<br/><b>Choices</b>: <ul><li><del>the value of the variable "source_variable_1"</del></li>
<li><ins>val1</ins></li>
<li><ins>val2</ins></li></ul> </td></tr>
</tbody>
</table>

View file

@ -0,0 +1,6 @@
# Modified variable
| Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **my_variable**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable.<br/>**Choices**: <br/>- ~~the value of the variable "source_variable_1"~~<br/>- <ins>val1</ins><br/>- <ins>val2</ins> |

View file

@ -9,7 +9,8 @@
my_variable │ A variable. │ my_variable │ A variable. │
 choice   basic   mandatory  │ Choices: │  choice   basic   mandatory  │ Choices: │
│ │ - the value of the variable  │ │ │ - the value of the variable  │
│ │ "source_variable_1". │ │ │ "source_variable_1"
│ │ - val1 │ │ │ - val1 │
│ │ - val2 │ │ │ - val2 │
└───────────────────────────────────────┴──────────────────────────────────────┘ └───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,8 @@
<details><summary>Modified variable</summary>
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| **<a id="var1" name="var1">var1</a>**<br/>`~~basic~~` [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `<ins>standard</ins>` `mandatory` | First variable.<br/>**Choices**: <br/>- val1<br/>- val2 <ins>**← (default)**</ins> |
</details>

View file

@ -0,0 +1,12 @@
<h1>Modified variable</h1>
<table>
<thead>
<tr><th>Variable </th><th>Description </th></tr>
</thead>
<tbody>
<tr><td><b>var1</b><br/><mark><del>basic</del></mark> <mark><a href='https://rougail.readthedocs.io/en/latest/variable.html#variables-types'>choice</a></mark> <mark><ins>standard</ins></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>

Some files were not shown because too many files have changed in this diff Show more