Compare commits

...

5 commits

1523 changed files with 17473 additions and 1394 deletions

View file

@ -1,3 +1,20 @@
## 0.2.0a29 (2025-10-02)
### Fix
- property for namespace
## 0.2.0a28 (2025-10-02)
### Feat
- add gitlab plugin
### Fix
- tests for formatter
- update translation
## 0.2.0a27 (2025-09-29)
### Fix

View file

@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2025-09-30 06:12+0200\n"
"PO-Revision-Date: 2025-09-30 06:14+0200\n"
"POT-Creation-Date: 2025-10-02 08:30+0200\n"
"PO-Revision-Date: 2025-10-02 08:31+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
@ -140,63 +140,63 @@ msgstr "(défaut)"
msgid "Choices"
msgstr "Choix"
#: src/rougail/output_doc/doc.py:642
#: src/rougail/output_doc/doc.py:640
msgid "depends on a calculation"
msgstr "dépend d'un calcul"
#: src/rougail/output_doc/doc.py:648
#: src/rougail/output_doc/doc.py:646
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
msgstr "\"{0}\" est un calcul pour {1} mais n'a pas de description dans {2}"
#: src/rougail/output_doc/doc.py:671 src/rougail/output_doc/doc.py:771
#: src/rougail/output_doc/doc.py:669 src/rougail/output_doc/doc.py:767
msgid "depends on an undocumented variable"
msgstr "dépends d'une variable non documentée"
#: src/rougail/output_doc/doc.py:674
#: src/rougail/output_doc/doc.py:672
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:676
#: src/rougail/output_doc/doc.py:674
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:679
#: src/rougail/output_doc/doc.py:677
msgid "when the variable \"{0}\" has the value \"{1}\""
msgstr "lorsque la variable \"{0}\" a la valeur \"{1}\""
#: src/rougail/output_doc/doc.py:681
#: src/rougail/output_doc/doc.py:679
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:697
#: src/rougail/output_doc/doc.py:695
msgid "the value of the variable \"{0}\""
msgstr "la valeur de la variable \"{0}\""
#: src/rougail/output_doc/doc.py:699
#: src/rougail/output_doc/doc.py:697
msgid "the value of the variable \"{0}\" if it is defined"
msgstr "la valeur de la variable \"{0}\" si elle est définie"
#: src/rougail/output_doc/doc.py:701
#: src/rougail/output_doc/doc.py:699
msgid "the value of an undocumented variable"
msgstr "la valeur d'une variable non documentée"
#: src/rougail/output_doc/doc.py:740
#: src/rougail/output_doc/doc.py:737
msgid "the values of undocumented variables"
msgstr "les valeurs de variables non documentées"
#: src/rougail/output_doc/doc.py:761
#: src/rougail/output_doc/doc.py:757
msgid "(from an undocumented variable){0}"
msgstr "(issue d'une variable non documentée){0}"
#: src/rougail/output_doc/doc.py:767
#: src/rougail/output_doc/doc.py:763
msgid "{0} (from an undocumented variable)"
msgstr "{0} (issue d'une variable non documentée)"
#: src/rougail/output_doc/doc.py:780
#: src/rougail/output_doc/doc.py:776
msgid "the value of the identifier"
msgstr "la valeur de l'identifiant"
#: src/rougail/output_doc/doc.py:784
#: src/rougail/output_doc/doc.py:780
msgid "the value of the {0}"
msgstr "la valeur de l'{0}"
@ -209,15 +209,19 @@ msgid "Example with all variables modifiable"
msgstr "Exemple avec toutes les variables modifiable"
#: src/rougail/output_doc/output/console.py:145
#: src/rougail/output_doc/utils.py:393
#: src/rougail/output_doc/utils.py:437
msgid "Variable"
msgstr "Variable"
#: src/rougail/output_doc/output/console.py:146
#: src/rougail/output_doc/utils.py:393
#: src/rougail/output_doc/utils.py:437
msgid "Description"
msgstr "Description"
#: src/rougail/output_doc/output/gitlab.py:51
msgid "Informations"
msgstr "Informations"
#: src/rougail/output_doc/utils.py:41
msgid "the domain name can starts by a dot"
msgstr "le nom de domaine peut commencer par un point"
@ -318,15 +322,15 @@ msgstr "ce fichier doit exister"
msgid "file type allowed: {0}"
msgstr "type de fichier autorisé : {0}"
#: src/rougail/output_doc/utils.py:251
#: src/rougail/output_doc/utils.py:277
msgid "Variables for \"{0}\""
msgstr "Variables pour \"{0}\""
#: src/rougail/output_doc/utils.py:268
#: src/rougail/output_doc/utils.py:305
msgid "Identifiers"
msgstr "Identifiants"
#: src/rougail/output_doc/utils.py:414
#: src/rougail/output_doc/utils.py:458
msgid "{0}: {1}"
msgstr "{0} : {1}"

View file

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-09-30 06:14+0200\n"
"POT-Creation-Date: 2025-10-02 08:31+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -139,63 +139,63 @@ msgstr ""
msgid "Choices"
msgstr ""
#: src/rougail/output_doc/doc.py:642
#: src/rougail/output_doc/doc.py:640
msgid "depends on a calculation"
msgstr ""
#: src/rougail/output_doc/doc.py:648
#: src/rougail/output_doc/doc.py:646
msgid "\"{0}\" is a calculation for {1} but has no description in {2}"
msgstr ""
#: src/rougail/output_doc/doc.py:671 src/rougail/output_doc/doc.py:771
#: src/rougail/output_doc/doc.py:669 src/rougail/output_doc/doc.py:767
msgid "depends on an undocumented variable"
msgstr ""
#: src/rougail/output_doc/doc.py:674
#: src/rougail/output_doc/doc.py:672
msgid "when the variable \"{0}\" hasn't the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:676
#: src/rougail/output_doc/doc.py:674
msgid "when the variable \"{0}\" is defined and hasn't the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:679
#: src/rougail/output_doc/doc.py:677
msgid "when the variable \"{0}\" has the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:681
#: src/rougail/output_doc/doc.py:679
msgid "when the variable \"{0}\" is defined and has the value \"{1}\""
msgstr ""
#: src/rougail/output_doc/doc.py:697
#: src/rougail/output_doc/doc.py:695
msgid "the value of the variable \"{0}\""
msgstr ""
#: src/rougail/output_doc/doc.py:699
#: src/rougail/output_doc/doc.py:697
msgid "the value of the variable \"{0}\" if it is defined"
msgstr ""
#: src/rougail/output_doc/doc.py:701
#: src/rougail/output_doc/doc.py:699
msgid "the value of an undocumented variable"
msgstr ""
#: src/rougail/output_doc/doc.py:740
#: src/rougail/output_doc/doc.py:737
msgid "the values of undocumented variables"
msgstr ""
#: src/rougail/output_doc/doc.py:761
#: src/rougail/output_doc/doc.py:757
msgid "(from an undocumented variable){0}"
msgstr ""
#: src/rougail/output_doc/doc.py:767
#: src/rougail/output_doc/doc.py:763
msgid "{0} (from an undocumented variable)"
msgstr ""
#: src/rougail/output_doc/doc.py:780
#: src/rougail/output_doc/doc.py:776
msgid "the value of the identifier"
msgstr ""
#: src/rougail/output_doc/doc.py:784
#: src/rougail/output_doc/doc.py:780
msgid "the value of the {0}"
msgstr ""
@ -208,15 +208,19 @@ msgid "Example with all variables modifiable"
msgstr ""
#: src/rougail/output_doc/output/console.py:145
#: src/rougail/output_doc/utils.py:393
#: src/rougail/output_doc/utils.py:437
msgid "Variable"
msgstr ""
#: src/rougail/output_doc/output/console.py:146
#: src/rougail/output_doc/utils.py:393
#: src/rougail/output_doc/utils.py:437
msgid "Description"
msgstr ""
#: src/rougail/output_doc/output/gitlab.py:51
msgid "Informations"
msgstr ""
#: src/rougail/output_doc/utils.py:41
msgid "the domain name can starts by a dot"
msgstr ""
@ -317,15 +321,15 @@ msgstr ""
msgid "file type allowed: {0}"
msgstr ""
#: src/rougail/output_doc/utils.py:251
#: src/rougail/output_doc/utils.py:277
msgid "Variables for \"{0}\""
msgstr ""
#: src/rougail/output_doc/utils.py:268
#: src/rougail/output_doc/utils.py:305
msgid "Identifiers"
msgstr ""
#: src/rougail/output_doc/utils.py:414
#: src/rougail/output_doc/utils.py:458
msgid "{0}: {1}"
msgstr ""

View file

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

View file

@ -1 +1 @@
__version__ = "0.2.0a27"
__version__ = "0.2.0a29"

View file

@ -25,6 +25,7 @@ from tiramisu import Calculation, groups
from tiramisu.error import ConfigError, display_list, PropertiesOptionError
from rougail.tiramisu import display_xmlfiles, normalize_family
from rougail.utils import undefined, PROPERTY_ATTRIBUTE
from rougail.error import VariableCalculationDependencyError
from .config import OutPuts
from .i18n import _
@ -32,6 +33,12 @@ from .utils import DocTypes, get_display_path, dump
from .example import Examples
HIDDEN_PROPERTIES = [
"hidden",
"disabled",
]
class RougailOutputDoc(Examples):
"""Rougail Output Doc:
Generate documentation from rougail description files
@ -162,10 +169,7 @@ class RougailOutputDoc(Examples):
do not comment this family
"""
properties = child.property.get(uncalculated=True)
for hidden_property in [
"hidden",
"disabled",
]: # chain(["hidden", "disabled"], self.disabled_modes):
for hidden_property in HIDDEN_PROPERTIES:
if hidden_property in properties:
return True
@ -201,14 +205,16 @@ class RougailOutputDoc(Examples):
if not sub_informations:
return
if self.with_family:
informations[name] = {
"type": self._get_family_type(family),
"informations": self._populate_family(
family_informations = self._populate_family(
family,
path,
),
"children": sub_informations,
}
)
if family_informations is not False:
informations[name] = {
"type": self._get_family_type(family),
"informations": family_informations,
"children": sub_informations,
}
else:
informations.update(sub_informations)
@ -245,14 +251,15 @@ class RougailOutputDoc(Examples):
) -> Optional[dict]:
if variable.isdynamic():
sub_informations = self.dynamic_paths[path]
elif variable.isfollower() and variable.index():
elif variable.isfollower() and path in informations: # variable.index():
sub_informations = informations[path]
else:
sub_informations = {}
self._populate_variable(
if not self._populate_variable(
variable,
sub_informations,
)
):
return None
if self.example:
self._add_examples(variable, sub_informations, leader)
informations[path] = sub_informations
@ -326,7 +333,8 @@ class RougailOutputDoc(Examples):
informations = self.dynamic_paths[path]
else:
informations = {}
self._populate(family, informations)
if not self._populate(family, informations):
return False
if family.isleadership():
informations.setdefault("help", []).append(
_("This family contains lists of variable blocks.")
@ -356,7 +364,8 @@ class RougailOutputDoc(Examples):
variable,
informations,
)
self._populate(variable, informations)
if not self._populate(variable, informations):
return False
if "description" in informations:
informations["descriptions"] = [
self.formater.to_phrase(informations.pop("description"))
@ -383,35 +392,40 @@ class RougailOutputDoc(Examples):
"name": _("Examples"),
"values": list(examples),
}
return True
def _populate(
self,
obj,
child,
informations: dict,
):
if not obj.isdynamic():
informations["paths"] = [obj.path(uncalculated=True)]
informations["names"] = [obj.name()]
description = obj.description(uncalculated=True)
if obj.name(uncalculated=True) == description and (
not obj.isoptiondescription()
or (self.support_namespace and obj.group_type() is not groups.namespace)
need_disabled, properties = self._parse_properties(child)
if not need_disabled:
return False
if not child.isdynamic():
informations["paths"] = [child.path(uncalculated=True)]
informations["names"] = [child.name()]
description = child.description(uncalculated=True)
if child.name(uncalculated=True) == description and (
not child.isoptiondescription()
or (self.support_namespace and child.group_type() is not groups.namespace)
):
if obj.isoptiondescription() or not obj.isfollower() or not obj.index():
if child.isoptiondescription() or not child.isfollower() or not child.index():
warning = _('No attribute "description" for "{0}" in {1}').format(
obj.path(uncalculated=True),
display_xmlfiles(obj.information.get("ymlfiles")),
child.path(uncalculated=True),
display_xmlfiles(child.information.get("ymlfiles")),
)
warn(warning)
else:
informations["description"] = self._convert_description(description, obj)
help_ = obj.information.get("help", None)
informations["description"] = self._convert_description(description, child)
help_ = child.information.get("help", None)
if help_:
informations["help"] = [self.formater.to_phrase(help_)]
self._parse_properties(
obj,
informations,
)
if "properties" in informations:
informations["properties"].extend(properties)
else:
informations["properties"] = properties
return True
def _convert_description(self, description, obj):
if "{{ identifier }}" in description:
@ -483,10 +497,10 @@ class RougailOutputDoc(Examples):
def _parse_type(
self,
variable,
child,
informations,
):
variable_type = variable.information.get("type")
variable_type = child.information.get("type")
doc_type = DocTypes.get(variable_type, {"params": {}})
informations["properties"] = [
{
@ -495,7 +509,7 @@ class RougailOutputDoc(Examples):
}
]
# extra parameters for types
option = variable.get()
option = child.get()
validators = []
for param, msg in doc_type["params"].items():
value = option.impl_get_extra(f"_{param}")
@ -509,20 +523,20 @@ class RougailOutputDoc(Examples):
validators.append(msg.format(value))
# get validation information from annotator
for name in variable.information.list():
for name in child.information.list():
if not name.startswith("validators_calculation"):
continue
validators.extend(
self._to_string(
variable,
child,
"validators",
)
)
break
if variable.information.get("type") == "regexp":
if child.information.get("type") == "regexp":
validators.append(
_('text based with regular expressions "{0}"').format(
variable.pattern()
child.pattern()
)
)
if validators:
@ -532,10 +546,10 @@ class RougailOutputDoc(Examples):
else:
key = _("Validators")
informations["validators"] = {"name": key, "values": validators}
if variable.information.get("type") == "choice":
choices = self._to_string(variable, "choice", do_not_raise=True)
if child.information.get("type") == "choice":
choices = self._to_string(child, "choice", do_not_raise=True)
if choices is None:
choices = variable.value.list()
choices = child.value.list()
for idx, val in enumerate(choices):
if not isinstance(val, Calculation):
default = informations.get("default", {}).get("values")
@ -547,43 +561,53 @@ class RougailOutputDoc(Examples):
)
informations["default_is_already_set"] = True
continue
choices[idx] = self._to_string(variable, "choice", f"_{idx}")
choices[idx] = self._to_string(child, "choice", f"_{idx}")
informations["choices"] = {"name": _("Choices"), "values": choices}
def _parse_properties(
self,
variable,
informations,
):
informations = []
properties = variable.property.get(uncalculated=True)
for mode in self.modes_level:
if mode not in properties:
continue
informations.setdefault("properties", []).append(
informations.append(
{
"type": "mode",
"name": mode,
}
)
break
for prop, msg in self.property_to_string:
for prop, translated_prop in self.property_to_string:
if prop in properties:
prop_obj = {
"type": "property",
"name": msg,
"name": translated_prop,
}
elif variable.information.get(f"{prop}_calculation", False):
annotation = self._to_string(variable, prop)
if not annotation:
continue
prop_obj = {
"type": "property",
"name": msg,
"annotation": annotation,
}
if annotation is None or isinstance(annotation, bool):
if annotation is None and prop in HIDDEN_PROPERTIES:
return False, {}
if not annotation:
continue
prop_obj = {
"type": "property",
"name": translated_prop,
}
else:
prop_obj = {
"type": "property",
"name": translated_prop,
"annotation": annotation,
}
else:
# this property is not in the variable so, do not comment it
continue
informations.setdefault("properties", []).append(prop_obj)
informations.append(prop_obj)
return True, informations
def _get_default(
self,
@ -604,11 +628,11 @@ class RougailOutputDoc(Examples):
def _to_string(
self,
variable,
child,
prop,
do_not_raise=False,
):
calculation = variable.information.get(f"{prop}_calculation", None)
calculation = child.information.get(f"{prop}_calculation", None)
if not calculation:
if do_not_raise:
return None
@ -616,16 +640,14 @@ class RougailOutputDoc(Examples):
f'cannot find "{prop}_calculation" information, '
"do you have declare doc has a plugins?"
)
# if do_not_raise and calculation.get('optional', False):
# return None
if isinstance(calculation, list):
values = []
for cal in calculation:
value = self._calculation_to_string(variable, cal, prop)
value = self._calculation_to_string(child, cal, prop)
if value is not None:
values.append(value)
return values
return self._calculation_to_string(variable, calculation, prop)
return self._calculation_to_string(child, calculation, prop)
def _calculation_to_string(self, child, calculation, prop):
if "description" in calculation:
@ -636,143 +658,9 @@ class RougailOutputDoc(Examples):
if "type" not in calculation:
return calculation["value"]
if calculation["type"] == "jinja":
if calculation["value"] is not True:
values = calculation["value"]
else:
values = _("depends on a calculation")
if (
child.isoptiondescription()
or not child.isfollower()
or not child.index()
):
warning = _(
'"{0}" is a calculation for {1} but has no description in {2}'
).format(
prop,
child.path(),
display_xmlfiles(child.information.get("ymlfiles")),
)
warn(warning)
values = self._calculation_jinja_to_string(child, calculation, prop)
elif calculation["type"] == "variable":
if prop in PROPERTY_ATTRIBUTE:
variable_path, value, condition = calculation["value"]
variable = self.conf.forcepermissive.option(variable_path)
try:
variable.value.get()
except AttributeError as err:
variable = None
else:
uncalculated = variable.value.get(uncalculated=True)
if not isinstance(
uncalculated, Calculation
) and self._is_inaccessible_user_data(variable):
return None
if variable and self._is_inaccessible_user_data(variable):
msg = _("depends on an undocumented variable")
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:
if calculation["optional"]:
path = calculation["value"]
if "{{ identifier }}" in path:
if path not in self.dynamic_paths:
return None
else:
try:
self.conf.forcepermissive.option(path).get()
except AttributeError:
return None
if not calculation["optional"]:
true_msg = _('the value of the variable "{0}"')
else:
true_msg = _('the value of the variable "{0}" if it is defined')
print('connard ben lan ...')
hidden_msg = _("the value of an undocumented variable")
# if "{{ identifier }}" in calculation["value"] and calculation["value"] in self.dynamic_paths:
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 = []
all_is_undocumented = None
for information in informations:
for idx, path in enumerate(information["paths"]):
if regexp and not regexp.search(path):
continue
if self._is_inaccessible_user_data(self.conf.option(path)):
if all_is_undocumented is None:
all_is_undocumented = True
msg = hidden_msg
else:
if regexp:
display_path = calculation["ori_path"]
for identifier in regexp.findall(path):
display_path = display_path.replace(
"{{ identifier }}",
self.formater.italic(identifier),
1,
)
else:
display_path = get_display_path(information, idx)
msg = true_msg.format(display_path)
all_is_undocumented = False
values.append(msg)
if all_is_undocumented and len(values) > 1:
values = _("the values of undocumented variables")
else:
variable_path = calculation["ori_path"]
variable = self.conf.forcepermissive.option(variable_path)
try:
isfollower = variable.isfollower()
except AttributeError as err:
pass
else:
if not isfollower and self._is_inaccessible_user_data(variable):
try:
uncalculated = variable.value.get(uncalculated=True)
except PropertiesOptionError:
true_msg = None
# true_msg = _("depends on an undocumented variable")
else:
if uncalculated and not isinstance(
uncalculated, Calculation
):
if isinstance(uncalculated, list):
uncalculated = self.formater.list(uncalculated)
true_msg = _(
"(from an undocumented variable){0}"
).format(uncalculated)
else:
if not isinstance(uncalculated, str):
uncalculated = dump(uncalculated)
true_msg = _(
"{0} (from an undocumented variable)"
).format(uncalculated)
else:
true_msg = _("depends on an undocumented variable")
if true_msg:
values = true_msg.format(calculation["ori_path"])
else:
values = None
values = self._calculation_variable_to_string(child, calculation, prop)
elif calculation["type"] == "identifier":
if prop in PROPERTY_ATTRIBUTE:
values = calculation["value"]
@ -785,3 +673,166 @@ class RougailOutputDoc(Examples):
if isinstance(values, str) and not values.endswith("."):
values += "."
return values
def _calculation_jinja_to_string(self, child, calculation, prop):
if calculation["value"] is not True:
values = calculation["value"]
else:
values = _("depends on a calculation")
if (
child.isoptiondescription()
or not child.isfollower()
or not child.index()
):
warning = _(
'"{0}" is a calculation for {1} but has no description in {2}'
).format(
prop,
child.path(),
display_xmlfiles(child.information.get("ymlfiles")),
)
# FIXME should be able to desactivate warn with cli
warn(warning)
return values
def _calculation_variable_to_string(self, child, calculation, prop):
if prop in PROPERTY_ATTRIBUTE:
variable_path, value, condition = calculation["value"]
variable = self.conf.forcepermissive.option(variable_path)
try:
variable.value.get()
except AttributeError as err:
variable = None
# else:
# uncalculated = variable.value.get(uncalculated=True)
# if child.name() == 'datasource':
# print(child, variable, prop, uncalculated, variable)
# if not isinstance(
# uncalculated, Calculation
# ) and self._is_inaccessible_user_data(variable):
# return 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:
if calculation["optional"]:
path = calculation["value"]
if "{{ identifier }}" in path:
if path not in self.dynamic_paths:
return None
else:
try:
self.conf.forcepermissive.option(path).get()
except AttributeError:
return None
if not calculation["optional"]:
true_msg = _('the value of the variable "{0}"')
else:
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 calculation["value"] == calculation["ori_path"]:
regexp = None
else:
regexp = compile(
"^"
+ calculation["ori_path"].replace(
"{{ identifier }}", "(.*)"
)
+ "$"
)
informations = [self.dynamic_paths[calculation["value"]]]
values = []
all_is_undocumented = None
for information in informations:
for idx, path in enumerate(information["paths"]):
if regexp and not regexp.search(path):
continue
if self._is_inaccessible_user_data(self.conf.option(path)):
if all_is_undocumented is None:
all_is_undocumented = True
msg = hidden_msg
else:
if regexp:
display_path = calculation["ori_path"]
for identifier in regexp.findall(path):
display_path = display_path.replace(
"{{ identifier }}",
self.formater.italic(identifier),
1,
)
else:
display_path = get_display_path(information, idx)
msg = true_msg.format(display_path)
all_is_undocumented = False
values.append(msg)
if all_is_undocumented and len(values) > 1:
values = _("the values of undocumented variables")
else:
variable_path = calculation["ori_path"]
variable = self.conf.forcepermissive.option(variable_path)
try:
isfollower = variable.isfollower()
except AttributeError as err:
pass
else:
if not isfollower and self._is_inaccessible_user_data(variable):
try:
uncalculated = variable.value.get(uncalculated=True)
except PropertiesOptionError:
true_msg = None
else:
if uncalculated and not isinstance(
uncalculated, Calculation
):
if isinstance(uncalculated, list):
uncalculated = self.formater.list(uncalculated)
true_msg = _(
"(from an undocumented variable){0}"
).format(uncalculated)
else:
if not isinstance(uncalculated, str):
uncalculated = dump(uncalculated)
true_msg = _(
"{0} (from an undocumented variable)"
).format(uncalculated)
else:
true_msg = _("depends on an undocumented variable")
if true_msg:
values = true_msg.format(calculation["ori_path"])
else:
values = None
return values
def _get_unmodified_default_value(self, child):
calculation = child.information.get(f"default_calculation", None)
if not calculation:
return child.value.get()
if calculation["type"] == "variable":
variable = self.conf.forcepermissive.option(calculation["value"])
if variable and self._is_inaccessible_user_data(variable):
return self._get_unmodified_default_value(variable)
raise VariableCalculationDependencyError()

View file

@ -31,7 +31,8 @@ class Formater(CommonFormater):
enter_table = "<br/>"
def __init__(self) -> None:
self.max_line = 0
self.max_line_variable = 0
self.max_line_description = 0
super().__init__()
def title(
@ -97,8 +98,8 @@ class Formater(CommonFormater):
def table_header(self, lst):
"""Manage the header of a table"""
return lst[0] + "&nbsp;" * (self.max_line - len(lst[0])), lst[1] + "&nbsp;" * (
self.max_line - len(lst[1])
return lst[0] + "&nbsp;" * (self.max_line_variable - len(lst[0])), lst[1] + "&nbsp;" * (
self.max_line_description - len(lst[1])
)
def yaml(self, _dump):
@ -120,7 +121,8 @@ class Formater(CommonFormater):
"""count columns length"""
for line in col:
for l in line.split(self.enter_table):
self.max_line = max(self.max_line, len(l) + 1)
self.max_line_variable = max(self.max_line_variable, len(l) + 1)
self.max_line_description = self.max_line_variable
def to_phrase(self, text: str) -> str:
return escape(to_phrase(text))

View file

@ -0,0 +1,63 @@
"""
Silique (https://www.silique.fr)
Copyright (C) 2025
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.
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/>.
"""
from typing import List
from .github import Formater as GithubFormater
from ..i18n import _
class Formater(GithubFormater):
name = "gitlab"
level = 51
def namespace_to_title(self, informations: dict, level: int) -> str:
"""manage namespace family"""
return self.title(
self.family_description(informations),
level,
)
def title(self, title: str, level: int) -> str:
# self.max_line_variable = 0
return " " * level + '<details><summary>' + title + '</summary>\n\n'
def end_family(self, level):
return " " * level + '</details>\n\n'
def columns(
self,
col: List[str],
) -> None:
pass
def family_informations(self) -> str:
return f">>> [!note] {_('Informations')}\n"
def end_family_informations(self) -> str:
return f"\n>>>\n"
def after_family_paths(self) -> str:
return "<br>"
def after_family_properties(self) -> str:
return ""
def table_header(self, lst):
"""Manage the header of a table"""
return lst

View file

@ -202,6 +202,24 @@ class CommonFormater:
##################
def family_informations(self) -> str:
return ''
def end_family_informations(self) -> str:
return ''
def display_path(
self,
path: str,
) -> str:
return self.bold(path)
def after_family_paths(self) -> str:
return ENTER
def after_family_properties(self) -> str:
return ENTER
def table_header(
self,
lst: list,
@ -225,8 +243,15 @@ class CommonFormater:
if ori_level is None:
ori_level = level
level += 1
msg.append(self.namespace_to_title(value["informations"], ori_level))
informations = value["informations"]
msg.append(self.namespace_to_title(informations, ori_level))
msg.append(self.family_informations())
msg.append(self.display_path(get_display_path(informations, 0)))
msg.append(self.after_family_paths())
msg.append(self.property_to_string(informations, {}) + ENTER)
msg.append(self.end_family_informations())
msg.extend(self.dict_to_dict(value["children"], level))
msg.append(self.end_namespace(ori_level))
else:
if value["type"] == "variable":
self.variable_to_string(value, table_datas)
@ -236,6 +261,7 @@ class CommonFormater:
table_datas = []
msg.extend(self.family_to_string(value["informations"], level))
msg.extend(self.dict_to_dict(value["children"], level + 1))
msg.append(self.end_family(level))
if table_datas:
msg.append(self.table(table_datas))
return msg
@ -252,23 +278,38 @@ class CommonFormater:
level,
)
def end_namespace(self, level: int) -> str:
return self.end_family(level)
def family_to_string(self, informations: dict, level: int) -> str:
"""manage other family type"""
msg = [self.title(self.family_description(informations), level)]
calculated_properties = []
msg.append(self.property_to_string(informations, calculated_properties) + ENTER)
if calculated_properties:
msg.append(self.join(calculated_properties) + ENTER)
helps = informations.get("help")
if helps:
for help_ in helps:
msg.append(help_.strip() + ENTER)
msg.append(self.display_family_help(help_.strip()))
msg.append(self.family_informations())
msg.append(self.join(
[
self.display_path(get_display_path(informations, index))
for index in range(len(informations["paths"]))
]
) + self.after_family_paths()
)
calculated_properties = []
msg.append(self.property_to_string(informations, calculated_properties) + ENTER)
if calculated_properties:
msg.append(self.join(calculated_properties) + self.after_family_properties())
if "identifiers" in informations:
msg.append(
self.section(_("Identifiers"), informations["identifiers"]) + ENTER
self.section(_("Identifiers"), informations["identifiers"]) + self.after_family_properties()
)
msg.append(self.end_family_informations())
return msg
def end_family(self, level: int) -> str:
return ''
def family_description(self, informations: dict) -> str():
"""Get family name"""
if "description" in informations:
@ -303,7 +344,7 @@ class CommonFormater:
first_col = [
self.join(
[
self.bold(get_display_path(informations, index))
self.display_path(get_display_path(informations, index))
for index in range(len(informations["paths"]))
]
),
@ -356,6 +397,9 @@ class CommonFormater:
return second_col
# OTHERs
def display_family_help(self, help_):
return help_ + ENTER
def property_to_string(
self, informations: dict, calculated_properties: list
) -> str:

View file

@ -56,10 +56,13 @@ My var8. +
== my var9
This family builds families dynamically.
**var___example__**
**Identifiers**: the value of the variable "a.unknown.variable".
[cols="1a,1a"]

View file

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|---------------|
| **version**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------|---------------|
| **empty**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | Empty. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: no |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Default**: the value of var1. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A first variable.<br/>**Default**: <br/>- no<br/>- yes<br/>- maybe |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Default**: the value of _.var1. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: depends on a calculation. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| **var1**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | A first variable.<br/>**Validator**: the domain name can be an IP |
| **var2**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Default**: the value of the variable "var1". |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: value of a variable!. |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: value
of
a
variable!. |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A new variable. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | A first variable.<br/>**Validator**: the domain name can be an IP |
| **var2**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Validator**: the domain name can be an IP<br/>**Default**: the value of the variable "var1". |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------|---------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A variable. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
| **without_type**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: non |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|
| **var1**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The first variable.<br/>**Default**: true |
| **var2**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Default**: true |
| **var3**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The third variable.<br/>**Default**: true |
| **var4**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The forth variable.<br/>**Default**: false |
| **var5**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Default**: false |
| **var6**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The sixth variable.<br/>**Default**: false |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------|-----------------------------------|
| **variable**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | A variable.<br/>**Default**: true |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|
| **var1**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable.<br/>**Choices**: <br/>- a<br/>- b<br/>- c |
| **var2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The second variable.<br/>**Choices**: <br/>- a<br/>- b<br/>- c |
| **var3**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | The third variable.<br/>**Choices**: <br/>- a<br/>- b<br/>- c<br/>- null |
| **var4**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | The forth variable.<br/>**Choices**: <br/>- null<br/>- b<br/>- c |
| **var5**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Choices**: <br/>- a **← (default)**<br/>- b<br/>- c |
| **var6**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The sixth variable.<br/>**Choices**: <br/>- 1 **← (default)**<br/>- 2<br/>- 3 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| **var**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: choices is 0 to 9.<br/>**Default**: 9 |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable.<br/>**Choices**: <br/>- a<br/>- b<br/>- c |
| **var2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Choices**: <br/>- a<br/>- b<br/>- c<br/>**Default**: the value of the variable "var1". |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Default**: <br/>- a<br/>- b<br/>- c |
| **var2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Choices**: the value of the variable "var1".<br/>**Default**: a |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Default**: <br/>- a<br/>- b<br/>- c |
| **var2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Choices**: the value of the variable "var1".<br/>**Default**: a |
| **var3**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Choices**: the value of the variable "var1".<br/>**Default**: the value of the variable "var2". |

View file

@ -22,6 +22,9 @@ A first variable. +
== family
**family**
`standard`
[cols="1a,1a"]

View file

@ -0,0 +1,18 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second variable.<br/>**Default**: <br/>- a<br/>- b<br/>- c |
| **var2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Choices**: the value of the variable "var1".<br/>**Default**: a |
<details><summary>family</summary>
>>> [!note] Informations
**family**<br>`standard`
>>>
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| **family.var3**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Choices**: the value of the variable "family.var1".<br/>**Default**: the value of the variable "var2". |
</details>

View file

@ -5,6 +5,8 @@
# family
**family**
`standard`
| 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; |

View file

@ -17,9 +17,14 @@
family
family
 standard 
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 Variable  ┃ Description  ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
@ -29,3 +34,4 @@
│ │ Default: the value of the variable │
│ │ "var2". │
└───────────────────────────────────────┴──────────────────────────────────────┘

View file

@ -0,0 +1,5 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| **custom1**<br/>[`custom`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable. |
| **custom2**<br/>[`custom`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The seconf variable.<br/>**Default**: value |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| **variable**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A domain name variable.<br/>**Default**: my.domain.name |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| **variable**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A domain name variable.<br/>**Validator**: the domain name can be an IP<br/>**Default**: my.domain.name |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| **var1**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The first variable.<br/>**Default**: 0.0 |
| **var2**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Default**: 0.0 |
| **var3**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The third variable.<br/>**Default**: 0.0 |
| **var4**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The forth variable.<br/>**Default**: 10.1 |
| **var5**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Default**: 10.1 |
| **var6**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The sixth variable.<br/>**Default**: 10.1 |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| **var1**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The first variable.<br/>**Default**: 0 |
| **var2**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Default**: 0 |
| **var3**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The third variable.<br/>**Default**: 0 |
| **var4**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | This forth variable.<br/>**Default**: 10 |
| **var5**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Default**: 10 |
| **var6**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The sixth variable.<br/>**Default**: 10 |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`IP`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | An IP.<br/>**Validator**: reserved IP are allowed<br/>**Default**: 1.1.1.1 |
| **var2**<br/>[`IP`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | An IP in CIDR format.<br/>**Validators**: <br/>- IP must be in CIDR format<br/>- reserved IP are allowed<br/>**Default**: 1.1.1.1/24<br/>**Example**: 192.168.0.128/25 |
| **var3**<br/>[`cidr`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | An IP in CIDR format with obsolete CIDR type.<br/>**Default**: 1.1.1.1/24 |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`network`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | An network.<br/>**Default**: 1.1.1.0 |
| **var2**<br/>[`network`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | An network in CIDR format.<br/>**Validator**: network must be in CIDR format<br/>**Default**: 1.1.1.0/24 |
| **var3**<br/>[`network_cidr`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | An network in CIDR format with obsolete CIDR type.<br/>**Default**: 1.1.1.0/24 |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| **var1**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The first variable.<br/>**Default**: 0 |
| **var2**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Default**: 0 |
| **var3**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The third variable.<br/>**Default**: 0 |
| **var4**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | This forth variable.<br/>**Default**: 10 |
| **var5**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Default**: 10 |
| **var6**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The sixth variable.<br/>**Default**: 10 |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **variable1**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A port variable.<br/>**Validators**: <br/>- well-known ports (1 to 1023) are allowed<br/>- registred ports (1024 to 49151) are allowed<br/>- private ports (greater than 49152) are allowed |
| **variable2**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A port variable with default value.<br/>**Validators**: <br/>- well-known ports (1 to 1023) are allowed<br/>- registred ports (1024 to 49151) are allowed<br/>- private ports (greater than 49152) are allowed<br/>**Default**: 8080 |
| **variable3**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A port variable with integer default value.<br/>**Validators**: <br/>- well-known ports (1 to 1023) are allowed<br/>- registred ports (1024 to 49151) are allowed<br/>- private ports (greater than 49152) are allowed<br/>**Default**: 8080 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var**<br/>[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"<br/>**Default**: #a1a1a1<br/>**Examples**: <br/>- #b1b1b1<br/>- #b2b2b2 |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"<br/>**Default**: #a1a1a1<br/>**Examples**: <br/>- #b1b1b1<br/>- #b2b2b2 |
| **var2**<br/>[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"<br/>**Default**: the value of the variable "var1".<br/>**Examples**: <br/>- #b2b1b1<br/>- #b3b2b2 |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| **secret1**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable. |
| **secret2**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Default**: value |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **secret1**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable.<br/>**Validator**: minimum length for the secret is 10 characters |
| **secret2**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Validators**: <br/>- maximum length for the secret is 10 characters<br/>- forbidden characters: "$" and "^"<br/>**Default**: value |
| **secret3**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The third variable.<br/>**Validators**: <br/>- maximum length for the secret is 10 characters<br/>- forbidden characters: "$"<br/>**Default**: value |

View file

@ -0,0 +1,11 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The second variable. |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The third variable. |
| **var4**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The forth variable.<br/>**Default**: value |
| **var5**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Default**: value |
| **var6**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The sixth variable.<br/>**Default**: value |
| **var7**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The seventh variable.<br/>**Default**: 8080 |
| **var8**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The height variable.<br/>**Default**: true |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| **var**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A choice.<br/>**Choices**: <br/>- quote' **← (default)**<br/>- quote"<br/>- quote"' |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable.<br/>Multi line<br/><br/>Help<br/><br/>With useful information. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The second variable.<br/>Multi line<br/>Help<br/>With useful information. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable.<br/>Message with &#x27;. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The second variable.<br/>Message with &quot;. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first &lt;variable&gt;.<br/>Multi line<br/><br/>&lt;Help&gt;<br/><br/>With useful information. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The second &lt;variable&gt;.<br/>Multi line<br/>&lt;Help&gt;<br/>With useful information. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: quote" |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: quote'" |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: quote\"\' |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: quote' |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: get information test_information. |

View file

@ -0,0 +1,9 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The first variable.<br/>**Example**: test |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second variable.<br/>**Default**: value<br/>**Example**: test |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | The third variable.<br/>**Examples**: <br/>- test1<br/>- test2 |
| **var4**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | The forth variable.<br/>**Examples**: <br/>- null<br/>- test1<br/>- test2 |
| **var5**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The fifth variable.<br/>**Default**: true<br/>**Example**: false |
| **var6**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | The sixth variable.<br/>**Examples**: <br/>- test1<br/>- test2 |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|
| **variable1**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | A first variable.<br/>**Choices**: <br/>- val1<br/>- val2 |
| **variable2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `unique` `multiple` | A second variable.<br/>**Choices**: <br/>- val1<br/>- val2 |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **source_variable_1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The first source variable.<br/>**Default**: val1 |
| **source_variable_2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | The second source variable.<br/>**Default**: val2 |
| **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/>**Default**: val1 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: concat all parameters. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|
| **var**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Default**: returns the information. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: depends on a calculation. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| **my_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | My_variable.<br/>**Default**: val1 |
| **my_calculated_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | My_calculated_variable.<br/>**Default**: the value of the variable "my_variable" if it is defined. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| **my_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | My_variable.<br/>**Default**: val1 |
| **my_calculated_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | My_calculated_variable.<br/>**Default**: the value of the variable "my_variable" if it is defined. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| **my_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | My_variable.<br/>**Default**: val1 |
| **my_calculated_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | My_calculated_variable.<br/>**Default**: the value of the variable "my_variable" if it is defined. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------|
| **my_calculated_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | My_calculated_variable. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| **my_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | My_variable.<br/>**Default**: <br/>- val1<br/>- val2 |
| **my_calculated_variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | My_calculated_variable.<br/>**Default**: the value of the variable "my_variable" if it is defined. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` | A first variable.<br/>**Default**: returns a value. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: no |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: the value of the information "test_information" of the variable "var1". |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A second variable.<br/>**Default**: the value of the information "test_information" of the variable "var1". |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| **var**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: choice for 0 to 9.<br/>**Default**: 9 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| **var**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: choice for 0 to 9.<br/>**Default**: 9 |

View file

@ -0,0 +1,11 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| **var1**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The first variable.<br/>**Default**: true |
| **var2**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The second variable.<br/>**Default**: true |
| **var3**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The third variable.<br/>**Default**: true |
| **var4**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The forth variable.<br/>**Default**: false |
| **var5**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The fifth variable.<br/>**Default**: false |
| **var6**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The sixth variable.<br/>**Default**: false |
| **var7**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The seventh variable.<br/>**Default**: true |
| **var8**<br/>[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The eighth variable.<br/>**Default**: true |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
| **custom1**<br/>[`custom`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | A first custom variable. |
| **custom2**<br/>[`custom`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A second custom variable.<br/>**Default**: value |

View file

@ -0,0 +1,11 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|
| **var1**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The first variable.<br/>**Default**: 0.0 |
| **var2**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The second variable.<br/>**Default**: 0.0 |
| **var3**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The third variable.<br/>**Default**: 0.0 |
| **var4**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The forth variable.<br/>**Default**: 10.1 |
| **var5**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The fifth variable.<br/>**Default**: 10.1 |
| **var6**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The sixth variable.<br/>**Default**: 10.1 |
| **var7**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The seventh variable.<br/>**Default**: 0.0 |
| **var8**<br/>[`float`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The eighth variable.<br/>**Default**: 0.0 |

View file

@ -0,0 +1,11 @@
| Variable | Description |
|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| **var1**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The first variable.<br/>**Default**: 0 |
| **var2**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The second variable.<br/>**Default**: 0 |
| **var3**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The third variable.<br/>**Default**: 0 |
| **var4**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The forth variable.<br/>**Default**: 10 |
| **var5**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The fifth variable.<br/>**Default**: 10 |
| **var6**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The sixth variable.<br/>**Default**: 10 |
| **var7**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The seventh variable.<br/>**Default**: 0 |
| **var8**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The eighth variable.<br/>**Default**: 0 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The second variable.<br/>**Default**: <br/>- value<br/>- null |

View file

@ -0,0 +1,11 @@
| Variable | Description |
|--------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | The first variable. |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | The second variable. |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `unique` `multiple` | The third variable. |
| **var4**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The forth variable.<br/>**Default**: value |
| **var5**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The fifth variable.<br/>**Default**: value |
| **var6**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The sixth variable.<br/>**Default**: value |
| **var7**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The seventh variable.<br/>**Default**: value |
| **var8**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | The eighth variable.<br/>**Default**: value |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A variable.<br/>**Default**: quote" |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A variable.<br/>**Default**: quote'" |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A variable.<br/>**Default**: quote' |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A variable.<br/>**Default**: get information test_information. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|
| **variable1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` `unique` `multiple` | A first variable.<br/>**Default**: <br/>- a<br/>- b<br/>- c |
| **variable2**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A second variable.<br/>**Choices**: the value of the variable "variable1". |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| **variable**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A variable.<br/>**Choices**: <br/>- a<br/>- b<br/>- c **← (default)** |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| **int**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A limited number.<br/>**Validators**: <br/>- the minimum value is 0<br/>- the maximum value is 100<br/>**Default**: 10 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| **int**<br/>[`integer`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A limited integer.<br/>**Validators**: <br/>- the minimum value is 0<br/>- the maximum value is 100<br/>**Default**: 10 |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|-----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|
| **variable**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | An auto save variable.<br/>**Default**: no |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: no |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | A second variable.<br/>**Default**: the value of the variable "var1". |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: no |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`hidden`* `auto modified` | A second variable.<br/>**Default**: the value is always yes.<br/>**Hidden**: only if the variable var1 has value "yes". |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: value |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | A second variable.<br/>**Disabled**: when the variable "var1" has the value "value". |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: depends on a calculation. |

View file

@ -0,0 +1,6 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: value |
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | A second variable.<br/>**Disabled**: when the variable "var1" has the value "value". |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: depends on a calculation. |

View file

@ -0,0 +1,4 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------|
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: depends on a calculation. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------|
| **var2**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | A second variable. |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A third variable.<br/>**Default**: depends on a calculation. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: value |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | A third variable.<br/>**Disabled**: depends on an undocumented variable. |

View file

@ -0,0 +1,5 @@
| Variable | Description |
|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| **var1**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | A first variable.<br/>**Default**: value |
| **var3**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | A third variable.<br/>**Disabled**: depends on an undocumented variable. |

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