From a79a420ba5d98e18a7afcfe6fab756d6c089ee1b Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Tue, 14 Oct 2025 13:50:02 +0200 Subject: [PATCH] feat: add html output --- src/rougail/output_doc/changelog.py | 2 +- src/rougail/output_doc/doc.py | 4 +- src/rougail/output_doc/output/html.py | 131 ++++++++++++++++++ src/rougail/output_doc/utils.py | 3 +- tests/results/test/00_0empty.html | 0 tests/results/test/00_0no_variable.html | 0 .../test/00_0no_variable_default_version.html | 0 .../test/00_0no_variable_remove_version.html | 0 .../results/test/00_0version_underscore.html | 9 ++ tests/results/test/00_1empty_variable.html | 9 ++ .../results/test/00_2default_calculated.html | 10 ++ .../test/00_2default_calculated_multi.html | 12 ++ ...2default_calculated_params_permissive.html | 9 ++ .../test/00_2default_calculated_variable.html | 10 ++ ...fault_calculated_variable_description.html | 10 ++ ...lated_variable_description_multi_line.html | 14 ++ ...efault_calculated_variable_transitive.html | 10 ++ tests/results/test/00_4load_subfolder.html | 10 ++ tests/results/test/00_5load_notype.html | 9 ++ tests/results/test/00_6boolean.html | 14 ++ .../test/00_6boolean_no_mandatory.html | 9 ++ tests/results/test/00_6choice.html | 27 ++++ .../results/test/00_6choice_calculation.html | 9 ++ tests/results/test/00_6choice_link.html | 14 ++ tests/results/test/00_6choice_variable.html | 12 ++ .../test/00_6choice_variable_link.html | 13 ++ .../test/00_6choice_variable_link2.html | 27 ++++ tests/results/test/00_6custom.html | 10 ++ tests/results/test/00_6domainname.html | 9 ++ tests/results/test/00_6domainname_params.html | 9 ++ tests/results/test/00_6float.html | 14 ++ tests/results/test/00_6integer.html | 14 ++ tests/results/test/00_6ip.html | 12 ++ tests/results/test/00_6network.html | 11 ++ tests/results/test/00_6number.html | 14 ++ tests/results/test/00_6port.html | 17 +++ tests/results/test/00_6regexp.html | 10 ++ tests/results/test/00_6regexp_link.html | 12 ++ tests/results/test/00_6secret.html | 10 ++ tests/results/test/00_6secret_param.html | 13 ++ tests/results/test/00_6string.html | 16 +++ tests/results/test/00_7choice_quote.html | 11 ++ tests/results/test/00_7help.html | 16 +++ tests/results/test/00_7help_quote.html | 10 ++ tests/results/test/00_7help_sup.html | 16 +++ tests/results/test/00_7value_doublequote.html | 9 ++ .../results/test/00_7value_doublequote2.html | 9 ++ .../results/test/00_7value_doublequote3.html | 9 ++ tests/results/test/00_7value_quote.html | 9 ++ .../test/00_8calculation_information.html | 9 ++ tests/results/test/00_8test.html | 18 +++ .../test/00_9choice_variable_multi.html | 12 ++ tests/results/test/00_9choice_variables.html | 12 ++ .../results/test/00_9default_calculation.html | 9 ++ .../00_9default_calculation_information.html | 9 ++ ...alculation_information_other_variable.html | 10 ++ ...0_9default_calculation_multi_optional.html | 10 ++ ..._9default_calculation_multi_optional2.html | 10 ++ ...lt_calculation_multi_optional_default.html | 10 ++ .../00_9default_calculation_optional.html | 9 ++ ..._9default_calculation_optional_exists.html | 11 ++ ...0_9default_calculation_param_optional.html | 10 ++ ...0_9default_information_other_variable.html | 10 ++ ..._9default_information_other_variable2.html | 10 ++ tests/results/test/00_9default_integer.html | 9 ++ tests/results/test/00_9default_number.html | 9 ++ tests/results/test/01_6boolean_multi.html | 16 +++ tests/results/test/01_6custom_multi.html | 10 ++ tests/results/test/01_6float_multi.html | 16 +++ tests/results/test/01_6integer_multi.html | 16 +++ tests/results/test/01_6string_empty.html | 10 ++ tests/results/test/01_6string_multi.html | 16 +++ .../test/01_7value_multi_doublequote.html | 9 ++ .../test/01_7value_multi_doublequote2.html | 9 ++ tests/results/test/01_7value_multi_quote.html | 9 ++ .../01_8calculation_information_multi.html | 9 ++ .../test/01_9choice_variable_multi.html | 12 ++ .../test/01_9choice_variable_optional.html | 11 ++ tests/results/test/04_0type_param.html | 10 ++ .../results/test/04_0type_param_integer.html | 10 ++ tests/results/test/04_1auto_save.html | 9 ++ .../test/04_1auto_save_and_calculated.html | 10 ++ .../04_1auto_save_and_calculated_hidden.html | 10 ++ .../test/04_1auto_save_and_hidden.html | 0 .../test/04_1default_calculation_hidden.html | 11 ++ .../04_1default_calculation_hidden_2.html | 11 ++ .../04_1default_calculation_hidden_3.html | 9 ++ .../04_1default_calculation_hidden_4.html | 10 ++ .../04_1default_calculation_hidden_5.html | 10 ++ .../04_1default_calculation_hidden_6.html | 10 ++ .../04_5disabled_calculation_boolean.html | 11 ++ .../04_5disabled_calculation_optional.html | 11 ++ ...disabled_calculation_optional_default.html | 12 ++ .../04_5disabled_calculation_variable.html | 10 ++ .../04_5disabled_calculation_variable10.html | 10 ++ .../04_5disabled_calculation_variable2.html | 10 ++ .../04_5disabled_calculation_variable3.html | 10 ++ .../04_5disabled_calculation_variable4.html | 10 ++ .../04_5disabled_calculation_variable5.html | 9 ++ .../04_5disabled_calculation_variable6.html | 9 ++ .../04_5disabled_calculation_variable7.html | 10 ++ .../04_5disabled_calculation_variable8.html | 0 .../04_5disabled_calculation_variable9.html | 9 ++ ..._5disabled_calculation_variable_multi.html | 10 ++ tests/results/test/04_5validators.html | 9 ++ tests/results/test/04_5validators_differ.html | 10 ++ tests/results/test/04_5validators_multi.html | 10 ++ tests/results/test/04_5validators_multi2.html | 11 ++ tests/results/test/04_5validators_multi3.html | 11 ++ tests/results/test/05_0multi_not_uniq.html | 9 ++ tests/results/test/05_0multi_uniq.html | 9 ++ tests/results/test/12_1auto_save_expert.html | 9 ++ .../test/16_0redefine_description.html | 9 ++ .../test/16_2family_redefine_calculation.html | 17 +++ .../test/16_2family_redefine_disabled.html | 0 .../test/16_3family_empty_at_ends.html | 15 ++ tests/results/test/16_5exists_nonexists.html | 10 ++ tests/results/test/16_5exists_redefine.html | 0 .../test/16_5redefine_calculation.html | 9 ++ tests/results/test/16_5redefine_choice.html | 10 ++ tests/results/test/16_5redefine_default.html | 9 ++ .../16_5redefine_default_calculation.html | 9 ++ tests/results/test/16_5redefine_family.html | 15 ++ tests/results/test/16_5redefine_help.html | 17 +++ tests/results/test/16_5redefine_hidden.html | 0 tests/results/test/16_5redefine_multi.html | 9 ++ ..._5redefine_remove_disable_calculation.html | 10 ++ tests/results/test/16_5test_redefine.html | 11 ++ tests/results/test/16_6choice_redefine.html | 10 ++ tests/results/test/16_6exists_family.html | 0 .../test/16_6exists_redefine_family.html | 30 ++++ tests/results/test/16exists_exists.html | 9 ++ .../results/test/17_5redefine_leadership.html | 0 tests/results/test/20_0empty_family.html | 0 tests/results/test/20_0family_append.html | 16 +++ tests/results/test/20_0family_underscore.html | 0 tests/results/test/20_0multi_family.html | 21 +++ .../results/test/20_0multi_family_basic.html | 21 +++ .../results/test/20_0multi_family_expert.html | 21 +++ .../results/test/20_0multi_family_order.html | 48 +++++++ .../test/20_0validators_differ_redefine.html | 11 ++ tests/results/test/20_1empty_subfamily.html | 0 .../test/20_2family_looks_like_dynamic.html | 17 +++ .../test/20_2family_looks_like_variable.html | 15 ++ .../test/20_9default_information_parent.html | 16 +++ tests/results/test/20_9family_absolute.html | 73 ++++++++++ ...4_0family_hidden_condition_sub_family.html | 32 +++++ ..._hidden_condition_variable_sub_family.html | 32 +++++ ...ily_hidden_param_condition_sub_family.html | 32 +++++ .../test/24_0family_mandatory_condition.html | 10 ++ ..._0family_mandatory_condition_variable.html | 10 ++ .../24_7validators_variable_optional.html | 17 +++ .../test/24_family_disabled_var_hidden.html | 0 tests/results/test/40_0leadership.html | 19 +++ .../test/40_0leadership_diff_name.html | 19 +++ tests/results/test/40_0leadership_empty.html | 0 ...adership_follower_default_calculation.html | 19 +++ ...40_0leadership_follower_default_value.html | 18 +++ .../test/40_0leadership_leader_follower.html | 19 +++ .../test/40_0leadership_leader_not_multi.html | 40 ++++++ tests/results/test/40_0leadership_reduce.html | 21 +++ .../test/40_1leadership_append_follower.html | 20 +++ .../40_2leadership_calculation_index.html | 20 +++ .../40_2leadership_calculation_index_2.html | 20 +++ .../test/40_6leadership_follower_multi.html | 19 +++ ...eadership_follower_multi_no_mandatory.html | 19 +++ .../results/test/40_8calculation_boolean.html | 11 ++ .../test/40_8calculation_multi_variable.html | 12 ++ ...40_8calculation_multi_variable_parent.html | 24 ++++ ...0_8calculation_multi_variable_parent2.html | 30 ++++ ...variable_leader_follower_multi_inside.html | 19 +++ ...ip-calculation-outside-follower-first.html | 29 ++++ ...hip-calculation-outside-follower-last.html | 29 ++++ ...ulation-outside-follower-no-mandatory.html | 28 ++++ ...adership-calculation-outside-follower.html | 29 ++++ ...ship-calculation-outside-leader-first.html | 29 ++++ ...rship-calculation-outside-leader-last.html | 29 ++++ ...leadership-calculation-outside-leader.html | 29 ++++ .../40_9leadership-calculation-variable.html | 29 ++++ ...-calculation-variable_leader_follower.html | 37 +++++ ...ion-variable_leader_follower_not_same.html | 38 +++++ tests/results/test/41_0choice_leader.html | 20 +++ tests/results/test/44_0leadership_hidden.html | 0 .../test/44_0leadership_leader_hidden.html | 0 ...44_1leadership_append_hidden_follower.html | 0 ...4_4disabled_calcultion_follower_index.html | 19 +++ .../test/44_4leadership_mandatory.html | 18 +++ .../44_4leadership_mandatory_follower.html | 18 +++ ...5leadership_leader_hidden_calculation.html | 29 ++++ ...dership_follower_disabled_calculation.html | 27 ++++ tests/results/test/60_0family_dynamic.html | 29 ++++ .../results/test/60_0family_dynamic_1_1.html | 29 ++++ .../test/60_0family_dynamic_1_1_empty.html | 29 ++++ .../test/60_0family_dynamic_empty.html | 28 ++++ .../60_0family_dynamic_forbidden_char.html | 30 ++++ .../60_0family_dynamic_no_description.html | 29 ++++ ..._0family_dynamic_no_description_empty.html | 29 ++++ .../test/60_0family_dynamic_static.html | 20 +++ .../results/test/60_0family_dynamic_test.html | 29 ++++ .../test/60_0family_dynamic_upper_char.html | 29 ++++ .../60_0family_dynamic_variable_empty.html | 28 ++++ .../60_0family_dynamic_variable_optional.html | 20 +++ .../60_0family_dynamic_variable_suffix.html | 29 ++++ ...0family_dynamic_variable_suffix_empty.html | 29 ++++ tests/results/test/60_0family_empty.html | 0 tests/results/test/60_0family_hidden.html | 0 tests/results/test/60_0family_mode.html | 15 ++ .../test/60_1family_dynamic_jinja.html | 29 ++++ ..._2family_dynamic_jinja_fill_sub_group.html | 44 ++++++ ...family_dynamic_jinja_fill_sub_group_2.html | 44 ++++++ ..._dynamic_jinja_fill_sub_group_2_empty.html | 44 ++++++ ...ly_dynamic_jinja_fill_sub_group_empty.html | 44 ++++++ .../test/60_2family_dynamic_outside_calc.html | 38 +++++ ...60_2family_dynamic_outside_calc_empty.html | 38 +++++ .../test/60_5family_dynamic_calc_suffix2.html | 29 ++++ ...60_5family_dynamic_calc_suffix2_empty.html | 29 ++++ .../60_5family_dynamic_calc_suffix_param.html | 29 ++++ ...amily_dynamic_calc_suffix_param_empty.html | 29 ++++ .../60_5family_dynamic_calc_variable.html | 38 +++++ ...0_5family_dynamic_calc_variable_empty.html | 38 +++++ .../60_5family_dynamic_hidden_suffix.html | 37 +++++ ...amily_dynamic_variable_outside_suffix.html | 38 +++++ ...dynamic_variable_outside_suffix_empty.html | 38 +++++ .../test/60_6family_dynamic_leadership.html | 39 ++++++ .../60_6family_dynamic_leadership_empty.html | 39 ++++++ .../test/60_9family_dynamic_calc_both.html | 29 ++++ .../test/68_0family_leadership_mode.html | 19 +++ .../test_namespace/00_0empty.changelog.html | 0 tests/results/test_namespace/00_0empty.html | 0 .../test_namespace/00_0no_variable.html | 0 .../00_0no_variable_default_version.html | 0 .../00_0no_variable_remove_version.html | 0 .../00_0version_underscore.html | 15 ++ .../test_namespace/00_1empty_variable.html | 15 ++ .../00_2default_calculated.html | 16 +++ .../00_2default_calculated_multi.html | 18 +++ ...2default_calculated_params_permissive.html | 15 ++ .../00_2default_calculated_variable.html | 16 +++ ...fault_calculated_variable_description.html | 16 +++ ...lated_variable_description_multi_line.html | 20 +++ ...efault_calculated_variable_transitive.html | 16 +++ .../test_namespace/00_4load_subfolder.html | 16 +++ .../test_namespace/00_5load_notype.html | 15 ++ tests/results/test_namespace/00_6boolean.html | 20 +++ .../00_6boolean_no_mandatory.html | 15 ++ tests/results/test_namespace/00_6choice.html | 33 +++++ .../00_6choice_calculation.html | 15 ++ .../test_namespace/00_6choice_link.html | 20 +++ .../test_namespace/00_6choice_variable.html | 18 +++ .../00_6choice_variable_link.html | 19 +++ .../00_6choice_variable_link2.html | 33 +++++ tests/results/test_namespace/00_6custom.html | 16 +++ .../test_namespace/00_6domainname.html | 15 ++ .../test_namespace/00_6domainname_params.html | 15 ++ tests/results/test_namespace/00_6float.html | 20 +++ tests/results/test_namespace/00_6integer.html | 20 +++ tests/results/test_namespace/00_6ip.html | 18 +++ tests/results/test_namespace/00_6network.html | 17 +++ tests/results/test_namespace/00_6number.html | 20 +++ tests/results/test_namespace/00_6port.html | 23 +++ tests/results/test_namespace/00_6regexp.html | 16 +++ .../test_namespace/00_6regexp_link.html | 18 +++ tests/results/test_namespace/00_6secret.html | 16 +++ .../test_namespace/00_6secret_param.html | 19 +++ tests/results/test_namespace/00_6string.html | 22 +++ .../test_namespace/00_7choice_quote.html | 17 +++ tests/results/test_namespace/00_7help.html | 22 +++ .../test_namespace/00_7help_quote.html | 16 +++ .../results/test_namespace/00_7help_sup.html | 22 +++ .../test_namespace/00_7value_doublequote.html | 15 ++ .../00_7value_doublequote2.html | 15 ++ .../00_7value_doublequote3.html | 15 ++ .../test_namespace/00_7value_quote.html | 15 ++ .../00_8calculation_information.html | 15 ++ .../00_8calculation_namespace.html | 15 ++ .../00_8calculation_param_namespace.html | 15 ++ tests/results/test_namespace/00_8test.html | 24 ++++ .../00_9choice_variable_multi.html | 18 +++ .../test_namespace/00_9choice_variables.html | 18 +++ .../00_9default_calculation.html | 15 ++ .../00_9default_calculation_information.html | 15 ++ ...alculation_information_other_variable.html | 16 +++ ...0_9default_calculation_multi_optional.html | 16 +++ ..._9default_calculation_multi_optional2.html | 16 +++ ...lt_calculation_multi_optional_default.html | 16 +++ .../00_9default_calculation_optional.html | 15 ++ ..._9default_calculation_optional_exists.html | 17 +++ ...0_9default_calculation_param_optional.html | 16 +++ ...0_9default_information_other_variable.html | 16 +++ ..._9default_information_other_variable2.html | 16 +++ .../test_namespace/00_9default_integer.html | 15 ++ .../test_namespace/00_9default_number.html | 15 ++ tests/results/test_namespace/00_9extra.html | 30 ++++ .../test_namespace/00_9extra_calculation.html | 32 +++++ .../test_namespace/00_9extra_ouside.html | 30 ++++ .../test_namespace/01_6boolean_multi.html | 22 +++ .../test_namespace/01_6custom_multi.html | 16 +++ .../test_namespace/01_6float_multi.html | 22 +++ .../test_namespace/01_6integer_multi.html | 22 +++ .../test_namespace/01_6string_empty.html | 16 +++ .../test_namespace/01_6string_multi.html | 22 +++ .../01_7value_multi_doublequote.html | 15 ++ .../01_7value_multi_doublequote2.html | 15 ++ .../test_namespace/01_7value_multi_quote.html | 15 ++ .../01_8calculation_information_multi.html | 15 ++ .../01_9choice_variable_multi.html | 18 +++ .../01_9choice_variable_optional.html | 17 +++ .../test_namespace/04_0type_param.html | 16 +++ .../04_0type_param_integer.html | 16 +++ .../results/test_namespace/04_1auto_save.html | 15 ++ .../04_1auto_save_and_calculated.html | 16 +++ .../04_1auto_save_and_calculated_hidden.html | 16 +++ .../04_1auto_save_and_hidden.html | 0 .../04_1default_calculation_hidden.html | 17 +++ .../04_1default_calculation_hidden_2.html | 17 +++ .../04_1default_calculation_hidden_3.html | 15 ++ .../04_1default_calculation_hidden_4.html | 16 +++ .../04_1default_calculation_hidden_5.html | 16 +++ .../04_1default_calculation_hidden_6.html | 16 +++ .../04_5disabled_calculation.html | 17 +++ .../04_5disabled_calculation_boolean.html | 17 +++ .../04_5disabled_calculation_default.html | 17 +++ .../04_5disabled_calculation_multi.html | 17 +++ .../04_5disabled_calculation_optional.html | 17 +++ ...disabled_calculation_optional_default.html | 18 +++ .../04_5disabled_calculation_variable.html | 16 +++ .../04_5disabled_calculation_variable10.html | 16 +++ .../04_5disabled_calculation_variable2.html | 16 +++ .../04_5disabled_calculation_variable3.html | 16 +++ .../04_5disabled_calculation_variable4.html | 16 +++ .../04_5disabled_calculation_variable5.html | 15 ++ .../04_5disabled_calculation_variable6.html | 15 ++ .../04_5disabled_calculation_variable7.html | 16 +++ .../04_5disabled_calculation_variable8.html | 0 .../04_5disabled_calculation_variable9.html | 15 ++ ..._5disabled_calculation_variable_multi.html | 16 +++ .../04_5hidden_calculation.html | 17 +++ .../04_5hidden_calculation2.html | 17 +++ ...idden_calculation_default_calculation.html | 17 +++ .../test_namespace/04_5validators.html | 15 ++ .../test_namespace/04_5validators_differ.html | 16 +++ .../test_namespace/04_5validators_multi.html | 16 +++ .../test_namespace/04_5validators_multi2.html | 17 +++ .../test_namespace/04_5validators_multi3.html | 17 +++ .../test_namespace/05_0multi_not_uniq.html | 15 ++ .../test_namespace/05_0multi_uniq.html | 15 ++ .../test_namespace/12_1auto_save_expert.html | 15 ++ .../16_0redefine_description.html | 15 ++ .../16_2family_redefine_calculation.html | 23 +++ .../16_2family_redefine_disabled.html | 0 .../16_3family_empty_at_ends.html | 21 +++ .../test_namespace/16_5exists_nonexists.html | 16 +++ .../test_namespace/16_5exists_redefine.html | 0 .../16_5redefine_calculation.html | 15 ++ .../test_namespace/16_5redefine_choice.html | 16 +++ .../test_namespace/16_5redefine_default.html | 15 ++ .../16_5redefine_default_calculation.html | 15 ++ .../test_namespace/16_5redefine_family.html | 21 +++ .../test_namespace/16_5redefine_help.html | 23 +++ .../test_namespace/16_5redefine_hidden.html | 0 .../test_namespace/16_5redefine_multi.html | 15 ++ ..._5redefine_remove_disable_calculation.html | 16 +++ .../test_namespace/16_5test_redefine.html | 17 +++ .../test_namespace/16_6choice_redefine.html | 16 +++ .../test_namespace/16_6exists_family.html | 0 .../16_6exists_redefine_family.html | 36 +++++ .../test_namespace/16exists_exists.html | 15 ++ .../17_5redefine_leadership.html | 0 .../test_namespace/20_0empty_family.html | 0 .../test_namespace/20_0family_append.html | 22 +++ .../test_namespace/20_0family_underscore.html | 0 .../test_namespace/20_0multi_family.html | 27 ++++ .../20_0multi_family_basic.html | 27 ++++ .../20_0multi_family_expert.html | 27 ++++ .../20_0multi_family_order.html | 54 ++++++++ .../20_0validators_differ_redefine.html | 17 +++ .../test_namespace/20_1empty_subfamily.html | 0 .../20_2family_looks_like_dynamic.html | 23 +++ .../20_2family_looks_like_variable.html | 21 +++ .../20_9default_information_parent.html | 22 +++ .../24_0family_hidden_condition.html | 32 +++++ .../24_0family_hidden_condition_boolean.html | 32 +++++ ...4_0family_hidden_condition_sub_family.html | 38 +++++ ..._hidden_condition_variable_sub_family.html | 38 +++++ ...family_hidden_condition_with_variable.html | 33 +++++ ...ily_hidden_param_condition_sub_family.html | 38 +++++ .../24_0family_mandatory_condition.html | 16 +++ ..._0family_mandatory_condition_variable.html | 16 +++ .../24_7validators_variable_optional.html | 23 +++ .../24_family_disabled_var_hidden.html | 0 .../test_namespace/40_0leadership.html | 25 ++++ .../40_0leadership_diff_name.html | 25 ++++ .../test_namespace/40_0leadership_empty.html | 0 ...adership_follower_default_calculation.html | 25 ++++ ...0leadership_follower_default_submulti.html | 26 ++++ ...follower_default_submulti_calculation.html | 25 ++++ ...40_0leadership_follower_default_value.html | 24 ++++ .../40_0leadership_leader_follower.html | 25 ++++ .../40_0leadership_leader_not_multi.html | 46 ++++++ .../test_namespace/40_0leadership_reduce.html | 27 ++++ .../40_1leadership_append_follower.html | 26 ++++ .../40_2leadership_calculation_index.html | 26 ++++ .../40_2leadership_calculation_index_2.html | 26 ++++ ...0_2leadership_calculation_param_index.html | 26 ++++ .../40_2leadership_leader_calculation.html | 25 ++++ .../40_6leadership_follower_multi.html | 25 ++++ ...eadership_follower_multi_no_mandatory.html | 25 ++++ .../40_8calculation_boolean.html | 17 +++ .../40_8calculation_boolean_return_none.html | 16 +++ .../40_8calculation_integer.html | 17 +++ .../40_8calculation_multi_variable.html | 18 +++ ...40_8calculation_multi_variable_parent.html | 30 ++++ ...0_8calculation_multi_variable_parent2.html | 36 +++++ ...variable_leader_follower_multi_inside.html | 25 ++++ ...ip-calculation-outside-follower-first.html | 35 +++++ ...hip-calculation-outside-follower-last.html | 35 +++++ ...ulation-outside-follower-no-mandatory.html | 34 +++++ ...adership-calculation-outside-follower.html | 35 +++++ ...ship-calculation-outside-leader-first.html | 35 +++++ ...rship-calculation-outside-leader-last.html | 35 +++++ ...leadership-calculation-outside-leader.html | 35 +++++ .../40_9leadership-calculation-variable.html | 35 +++++ ...-calculation-variable_leader_follower.html | 43 ++++++ ...ion-variable_leader_follower_not_same.html | 44 ++++++ .../test_namespace/41_0choice_leader.html | 26 ++++ .../test_namespace/44_0leadership_hidden.html | 0 .../44_0leadership_leader_hidden.html | 0 ...44_1leadership_append_hidden_follower.html | 0 .../44_4disabled_calcultion_follower.html | 33 +++++ ...4_4disabled_calcultion_follower_index.html | 25 ++++ .../44_4leadership_mandatory.html | 24 ++++ .../44_4leadership_mandatory_follower.html | 24 ++++ ...5leadership_leader_hidden_calculation.html | 35 +++++ ...dership_follower_disabled_calculation.html | 33 +++++ ...9calculated_default_leadership_leader.html | 25 ++++ .../test_namespace/60_0family_dynamic.html | 35 +++++ .../60_0family_dynamic_1_0.html | 35 +++++ .../60_0family_dynamic_1_0_empty.html | 35 +++++ .../60_0family_dynamic_1_0_type.html | 35 +++++ .../60_0family_dynamic_1_0_type_empty.html | 35 +++++ .../60_0family_dynamic_1_1.html | 35 +++++ .../60_0family_dynamic_1_1_empty.html | 35 +++++ .../60_0family_dynamic_empty.html | 34 +++++ .../60_0family_dynamic_forbidden_char.html | 36 +++++ ...0_0family_dynamic_jinja_integer_empty.html | 44 ++++++ .../60_0family_dynamic_jinja_number.html | 44 ++++++ .../60_0family_dynamic_no_description.html | 35 +++++ ..._0family_dynamic_no_description_empty.html | 35 +++++ .../60_0family_dynamic_static.html | 26 ++++ .../60_0family_dynamic_test.html | 35 +++++ .../60_0family_dynamic_upper_char.html | 35 +++++ .../60_0family_dynamic_variable_empty.html | 34 +++++ .../60_0family_dynamic_variable_optional.html | 26 ++++ .../60_0family_dynamic_variable_suffix.html | 35 +++++ ...0family_dynamic_variable_suffix_empty.html | 35 +++++ .../test_namespace/60_0family_empty.html | 0 .../test_namespace/60_0family_hidden.html | 0 .../test_namespace/60_0family_mode.html | 21 +++ .../60_1family_dynamic_jinja.html | 35 +++++ ..._2family_dynamic_jinja_fill_sub_group.html | 50 +++++++ ...family_dynamic_jinja_fill_sub_group_2.html | 50 +++++++ ..._dynamic_jinja_fill_sub_group_2_empty.html | 50 +++++++ ...ly_dynamic_jinja_fill_sub_group_empty.html | 50 +++++++ .../60_2family_dynamic_outside_calc.html | 44 ++++++ ...60_2family_dynamic_outside_calc_empty.html | 44 ++++++ .../60_5family_dynamic_calc2.html | 38 +++++ .../60_5family_dynamic_calc2_empty.html | 38 +++++ .../60_5family_dynamic_calc_suffix.html | 44 ++++++ .../60_5family_dynamic_calc_suffix2.html | 35 +++++ ...60_5family_dynamic_calc_suffix2_empty.html | 35 +++++ ..._5family_dynamic_calc_suffix_disabled.html | 26 ++++ ...5family_dynamic_calc_suffix_disabled2.html | 17 +++ .../60_5family_dynamic_calc_suffix_empty.html | 44 ++++++ ...0_5family_dynamic_calc_suffix_empty_2.html | 43 ++++++ ...0_5family_dynamic_calc_suffix_empty_3.html | 36 +++++ ...60_5family_dynamic_calc_suffix_hidden.html | 17 +++ ...ly_dynamic_calc_suffix_hidden_boolean.html | 17 +++ ...mily_dynamic_calc_suffix_hidden_multi.html | 18 +++ .../60_5family_dynamic_calc_suffix_param.html | 35 +++++ ...amily_dynamic_calc_suffix_param_empty.html | 35 +++++ .../60_5family_dynamic_calc_variable.html | 44 ++++++ ...0_5family_dynamic_calc_variable_empty.html | 44 ++++++ .../60_5family_dynamic_hidden_suffix.html | 43 ++++++ ..._5family_dynamic_unknown_suffix_empty.html | 40 ++++++ .../60_5family_dynamic_variable_outside.html | 45 ++++++ .../60_5family_dynamic_variable_outside2.html | 37 +++++ ...amily_dynamic_variable_outside2_empty.html | 37 +++++ ..._5family_dynamic_variable_outside_1_0.html | 45 ++++++ ...family_dynamic_variable_outside_empty.html | 45 ++++++ ...family_dynamic_variable_outside_jinja.html | 44 ++++++ ..._dynamic_variable_outside_jinja_empty.html | 44 ++++++ ...mic_variable_outside_sub_suffix_empty.html | 57 ++++++++ ...amily_dynamic_variable_outside_suffix.html | 44 ++++++ ...dynamic_variable_outside_suffix_empty.html | 44 ++++++ .../60_6family_dynamic_inside.html | 38 +++++ .../60_6family_dynamic_inside_empty.html | 38 +++++ .../60_6family_dynamic_leadership.html | 45 ++++++ .../60_6family_dynamic_leadership_empty.html | 45 ++++++ .../60_6family_dynamic_sub_dynamic.html | 57 ++++++++ .../60_6family_dynamic_sub_dynamic_1_0.html | 57 ++++++++ .../60_6family_dynamic_sub_dynamic_1_0_2.html | 45 ++++++ .../60_6family_dynamic_sub_dynamic_empty.html | 57 ++++++++ ...60_6family_dynamic_sub_dynamic_empty2.html | 57 ++++++++ .../60_6family_dynamic_suffix_auto_multi.html | 55 ++++++++ ...60_6family_dynamic_suffix_auto_multi2.html | 55 ++++++++ .../test_namespace/60_9extra_dynamic.html | 40 ++++++ .../60_9extra_dynamic_extra.html | 55 ++++++++ .../60_9family_dynamic_calc_both.html | 35 +++++ .../68_0family_leadership_mode.html | 25 ++++ tests/test_load.py | 11 +- 510 files changed, 10560 insertions(+), 6 deletions(-) create mode 100644 src/rougail/output_doc/output/html.py create mode 100644 tests/results/test/00_0empty.html create mode 100644 tests/results/test/00_0no_variable.html create mode 100644 tests/results/test/00_0no_variable_default_version.html create mode 100644 tests/results/test/00_0no_variable_remove_version.html create mode 100644 tests/results/test/00_0version_underscore.html create mode 100644 tests/results/test/00_1empty_variable.html create mode 100644 tests/results/test/00_2default_calculated.html create mode 100644 tests/results/test/00_2default_calculated_multi.html create mode 100644 tests/results/test/00_2default_calculated_params_permissive.html create mode 100644 tests/results/test/00_2default_calculated_variable.html create mode 100644 tests/results/test/00_2default_calculated_variable_description.html create mode 100644 tests/results/test/00_2default_calculated_variable_description_multi_line.html create mode 100644 tests/results/test/00_2default_calculated_variable_transitive.html create mode 100644 tests/results/test/00_4load_subfolder.html create mode 100644 tests/results/test/00_5load_notype.html create mode 100644 tests/results/test/00_6boolean.html create mode 100644 tests/results/test/00_6boolean_no_mandatory.html create mode 100644 tests/results/test/00_6choice.html create mode 100644 tests/results/test/00_6choice_calculation.html create mode 100644 tests/results/test/00_6choice_link.html create mode 100644 tests/results/test/00_6choice_variable.html create mode 100644 tests/results/test/00_6choice_variable_link.html create mode 100644 tests/results/test/00_6choice_variable_link2.html create mode 100644 tests/results/test/00_6custom.html create mode 100644 tests/results/test/00_6domainname.html create mode 100644 tests/results/test/00_6domainname_params.html create mode 100644 tests/results/test/00_6float.html create mode 100644 tests/results/test/00_6integer.html create mode 100644 tests/results/test/00_6ip.html create mode 100644 tests/results/test/00_6network.html create mode 100644 tests/results/test/00_6number.html create mode 100644 tests/results/test/00_6port.html create mode 100644 tests/results/test/00_6regexp.html create mode 100644 tests/results/test/00_6regexp_link.html create mode 100644 tests/results/test/00_6secret.html create mode 100644 tests/results/test/00_6secret_param.html create mode 100644 tests/results/test/00_6string.html create mode 100644 tests/results/test/00_7choice_quote.html create mode 100644 tests/results/test/00_7help.html create mode 100644 tests/results/test/00_7help_quote.html create mode 100644 tests/results/test/00_7help_sup.html create mode 100644 tests/results/test/00_7value_doublequote.html create mode 100644 tests/results/test/00_7value_doublequote2.html create mode 100644 tests/results/test/00_7value_doublequote3.html create mode 100644 tests/results/test/00_7value_quote.html create mode 100644 tests/results/test/00_8calculation_information.html create mode 100644 tests/results/test/00_8test.html create mode 100644 tests/results/test/00_9choice_variable_multi.html create mode 100644 tests/results/test/00_9choice_variables.html create mode 100644 tests/results/test/00_9default_calculation.html create mode 100644 tests/results/test/00_9default_calculation_information.html create mode 100644 tests/results/test/00_9default_calculation_information_other_variable.html create mode 100644 tests/results/test/00_9default_calculation_multi_optional.html create mode 100644 tests/results/test/00_9default_calculation_multi_optional2.html create mode 100644 tests/results/test/00_9default_calculation_multi_optional_default.html create mode 100644 tests/results/test/00_9default_calculation_optional.html create mode 100644 tests/results/test/00_9default_calculation_optional_exists.html create mode 100644 tests/results/test/00_9default_calculation_param_optional.html create mode 100644 tests/results/test/00_9default_information_other_variable.html create mode 100644 tests/results/test/00_9default_information_other_variable2.html create mode 100644 tests/results/test/00_9default_integer.html create mode 100644 tests/results/test/00_9default_number.html create mode 100644 tests/results/test/01_6boolean_multi.html create mode 100644 tests/results/test/01_6custom_multi.html create mode 100644 tests/results/test/01_6float_multi.html create mode 100644 tests/results/test/01_6integer_multi.html create mode 100644 tests/results/test/01_6string_empty.html create mode 100644 tests/results/test/01_6string_multi.html create mode 100644 tests/results/test/01_7value_multi_doublequote.html create mode 100644 tests/results/test/01_7value_multi_doublequote2.html create mode 100644 tests/results/test/01_7value_multi_quote.html create mode 100644 tests/results/test/01_8calculation_information_multi.html create mode 100644 tests/results/test/01_9choice_variable_multi.html create mode 100644 tests/results/test/01_9choice_variable_optional.html create mode 100644 tests/results/test/04_0type_param.html create mode 100644 tests/results/test/04_0type_param_integer.html create mode 100644 tests/results/test/04_1auto_save.html create mode 100644 tests/results/test/04_1auto_save_and_calculated.html create mode 100644 tests/results/test/04_1auto_save_and_calculated_hidden.html create mode 100644 tests/results/test/04_1auto_save_and_hidden.html create mode 100644 tests/results/test/04_1default_calculation_hidden.html create mode 100644 tests/results/test/04_1default_calculation_hidden_2.html create mode 100644 tests/results/test/04_1default_calculation_hidden_3.html create mode 100644 tests/results/test/04_1default_calculation_hidden_4.html create mode 100644 tests/results/test/04_1default_calculation_hidden_5.html create mode 100644 tests/results/test/04_1default_calculation_hidden_6.html create mode 100644 tests/results/test/04_5disabled_calculation_boolean.html create mode 100644 tests/results/test/04_5disabled_calculation_optional.html create mode 100644 tests/results/test/04_5disabled_calculation_optional_default.html create mode 100644 tests/results/test/04_5disabled_calculation_variable.html create mode 100644 tests/results/test/04_5disabled_calculation_variable10.html create mode 100644 tests/results/test/04_5disabled_calculation_variable2.html create mode 100644 tests/results/test/04_5disabled_calculation_variable3.html create mode 100644 tests/results/test/04_5disabled_calculation_variable4.html create mode 100644 tests/results/test/04_5disabled_calculation_variable5.html create mode 100644 tests/results/test/04_5disabled_calculation_variable6.html create mode 100644 tests/results/test/04_5disabled_calculation_variable7.html create mode 100644 tests/results/test/04_5disabled_calculation_variable8.html create mode 100644 tests/results/test/04_5disabled_calculation_variable9.html create mode 100644 tests/results/test/04_5disabled_calculation_variable_multi.html create mode 100644 tests/results/test/04_5validators.html create mode 100644 tests/results/test/04_5validators_differ.html create mode 100644 tests/results/test/04_5validators_multi.html create mode 100644 tests/results/test/04_5validators_multi2.html create mode 100644 tests/results/test/04_5validators_multi3.html create mode 100644 tests/results/test/05_0multi_not_uniq.html create mode 100644 tests/results/test/05_0multi_uniq.html create mode 100644 tests/results/test/12_1auto_save_expert.html create mode 100644 tests/results/test/16_0redefine_description.html create mode 100644 tests/results/test/16_2family_redefine_calculation.html create mode 100644 tests/results/test/16_2family_redefine_disabled.html create mode 100644 tests/results/test/16_3family_empty_at_ends.html create mode 100644 tests/results/test/16_5exists_nonexists.html create mode 100644 tests/results/test/16_5exists_redefine.html create mode 100644 tests/results/test/16_5redefine_calculation.html create mode 100644 tests/results/test/16_5redefine_choice.html create mode 100644 tests/results/test/16_5redefine_default.html create mode 100644 tests/results/test/16_5redefine_default_calculation.html create mode 100644 tests/results/test/16_5redefine_family.html create mode 100644 tests/results/test/16_5redefine_help.html create mode 100644 tests/results/test/16_5redefine_hidden.html create mode 100644 tests/results/test/16_5redefine_multi.html create mode 100644 tests/results/test/16_5redefine_remove_disable_calculation.html create mode 100644 tests/results/test/16_5test_redefine.html create mode 100644 tests/results/test/16_6choice_redefine.html create mode 100644 tests/results/test/16_6exists_family.html create mode 100644 tests/results/test/16_6exists_redefine_family.html create mode 100644 tests/results/test/16exists_exists.html create mode 100644 tests/results/test/17_5redefine_leadership.html create mode 100644 tests/results/test/20_0empty_family.html create mode 100644 tests/results/test/20_0family_append.html create mode 100644 tests/results/test/20_0family_underscore.html create mode 100644 tests/results/test/20_0multi_family.html create mode 100644 tests/results/test/20_0multi_family_basic.html create mode 100644 tests/results/test/20_0multi_family_expert.html create mode 100644 tests/results/test/20_0multi_family_order.html create mode 100644 tests/results/test/20_0validators_differ_redefine.html create mode 100644 tests/results/test/20_1empty_subfamily.html create mode 100644 tests/results/test/20_2family_looks_like_dynamic.html create mode 100644 tests/results/test/20_2family_looks_like_variable.html create mode 100644 tests/results/test/20_9default_information_parent.html create mode 100644 tests/results/test/20_9family_absolute.html create mode 100644 tests/results/test/24_0family_hidden_condition_sub_family.html create mode 100644 tests/results/test/24_0family_hidden_condition_variable_sub_family.html create mode 100644 tests/results/test/24_0family_hidden_param_condition_sub_family.html create mode 100644 tests/results/test/24_0family_mandatory_condition.html create mode 100644 tests/results/test/24_0family_mandatory_condition_variable.html create mode 100644 tests/results/test/24_7validators_variable_optional.html create mode 100644 tests/results/test/24_family_disabled_var_hidden.html create mode 100644 tests/results/test/40_0leadership.html create mode 100644 tests/results/test/40_0leadership_diff_name.html create mode 100644 tests/results/test/40_0leadership_empty.html create mode 100644 tests/results/test/40_0leadership_follower_default_calculation.html create mode 100644 tests/results/test/40_0leadership_follower_default_value.html create mode 100644 tests/results/test/40_0leadership_leader_follower.html create mode 100644 tests/results/test/40_0leadership_leader_not_multi.html create mode 100644 tests/results/test/40_0leadership_reduce.html create mode 100644 tests/results/test/40_1leadership_append_follower.html create mode 100644 tests/results/test/40_2leadership_calculation_index.html create mode 100644 tests/results/test/40_2leadership_calculation_index_2.html create mode 100644 tests/results/test/40_6leadership_follower_multi.html create mode 100644 tests/results/test/40_6leadership_follower_multi_no_mandatory.html create mode 100644 tests/results/test/40_8calculation_boolean.html create mode 100644 tests/results/test/40_8calculation_multi_variable.html create mode 100644 tests/results/test/40_8calculation_multi_variable_parent.html create mode 100644 tests/results/test/40_8calculation_multi_variable_parent2.html create mode 100644 tests/results/test/40_9calculation_variable_leader_follower_multi_inside.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-follower-first.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-follower-last.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-follower-no-mandatory.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-follower.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-leader-first.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-leader-last.html create mode 100644 tests/results/test/40_9leadership-calculation-outside-leader.html create mode 100644 tests/results/test/40_9leadership-calculation-variable.html create mode 100644 tests/results/test/40_9leadership-calculation-variable_leader_follower.html create mode 100644 tests/results/test/40_9leadership-calculation-variable_leader_follower_not_same.html create mode 100644 tests/results/test/41_0choice_leader.html create mode 100644 tests/results/test/44_0leadership_hidden.html create mode 100644 tests/results/test/44_0leadership_leader_hidden.html create mode 100644 tests/results/test/44_1leadership_append_hidden_follower.html create mode 100644 tests/results/test/44_4disabled_calcultion_follower_index.html create mode 100644 tests/results/test/44_4leadership_mandatory.html create mode 100644 tests/results/test/44_4leadership_mandatory_follower.html create mode 100644 tests/results/test/44_5leadership_leader_hidden_calculation.html create mode 100644 tests/results/test/44_6leadership_follower_disabled_calculation.html create mode 100644 tests/results/test/60_0family_dynamic.html create mode 100644 tests/results/test/60_0family_dynamic_1_1.html create mode 100644 tests/results/test/60_0family_dynamic_1_1_empty.html create mode 100644 tests/results/test/60_0family_dynamic_empty.html create mode 100644 tests/results/test/60_0family_dynamic_forbidden_char.html create mode 100644 tests/results/test/60_0family_dynamic_no_description.html create mode 100644 tests/results/test/60_0family_dynamic_no_description_empty.html create mode 100644 tests/results/test/60_0family_dynamic_static.html create mode 100644 tests/results/test/60_0family_dynamic_test.html create mode 100644 tests/results/test/60_0family_dynamic_upper_char.html create mode 100644 tests/results/test/60_0family_dynamic_variable_empty.html create mode 100644 tests/results/test/60_0family_dynamic_variable_optional.html create mode 100644 tests/results/test/60_0family_dynamic_variable_suffix.html create mode 100644 tests/results/test/60_0family_dynamic_variable_suffix_empty.html create mode 100644 tests/results/test/60_0family_empty.html create mode 100644 tests/results/test/60_0family_hidden.html create mode 100644 tests/results/test/60_0family_mode.html create mode 100644 tests/results/test/60_1family_dynamic_jinja.html create mode 100644 tests/results/test/60_2family_dynamic_jinja_fill_sub_group.html create mode 100644 tests/results/test/60_2family_dynamic_jinja_fill_sub_group_2.html create mode 100644 tests/results/test/60_2family_dynamic_jinja_fill_sub_group_2_empty.html create mode 100644 tests/results/test/60_2family_dynamic_jinja_fill_sub_group_empty.html create mode 100644 tests/results/test/60_2family_dynamic_outside_calc.html create mode 100644 tests/results/test/60_2family_dynamic_outside_calc_empty.html create mode 100644 tests/results/test/60_5family_dynamic_calc_suffix2.html create mode 100644 tests/results/test/60_5family_dynamic_calc_suffix2_empty.html create mode 100644 tests/results/test/60_5family_dynamic_calc_suffix_param.html create mode 100644 tests/results/test/60_5family_dynamic_calc_suffix_param_empty.html create mode 100644 tests/results/test/60_5family_dynamic_calc_variable.html create mode 100644 tests/results/test/60_5family_dynamic_calc_variable_empty.html create mode 100644 tests/results/test/60_5family_dynamic_hidden_suffix.html create mode 100644 tests/results/test/60_5family_dynamic_variable_outside_suffix.html create mode 100644 tests/results/test/60_5family_dynamic_variable_outside_suffix_empty.html create mode 100644 tests/results/test/60_6family_dynamic_leadership.html create mode 100644 tests/results/test/60_6family_dynamic_leadership_empty.html create mode 100644 tests/results/test/60_9family_dynamic_calc_both.html create mode 100644 tests/results/test/68_0family_leadership_mode.html create mode 100644 tests/results/test_namespace/00_0empty.changelog.html create mode 100644 tests/results/test_namespace/00_0empty.html create mode 100644 tests/results/test_namespace/00_0no_variable.html create mode 100644 tests/results/test_namespace/00_0no_variable_default_version.html create mode 100644 tests/results/test_namespace/00_0no_variable_remove_version.html create mode 100644 tests/results/test_namespace/00_0version_underscore.html create mode 100644 tests/results/test_namespace/00_1empty_variable.html create mode 100644 tests/results/test_namespace/00_2default_calculated.html create mode 100644 tests/results/test_namespace/00_2default_calculated_multi.html create mode 100644 tests/results/test_namespace/00_2default_calculated_params_permissive.html create mode 100644 tests/results/test_namespace/00_2default_calculated_variable.html create mode 100644 tests/results/test_namespace/00_2default_calculated_variable_description.html create mode 100644 tests/results/test_namespace/00_2default_calculated_variable_description_multi_line.html create mode 100644 tests/results/test_namespace/00_2default_calculated_variable_transitive.html create mode 100644 tests/results/test_namespace/00_4load_subfolder.html create mode 100644 tests/results/test_namespace/00_5load_notype.html create mode 100644 tests/results/test_namespace/00_6boolean.html create mode 100644 tests/results/test_namespace/00_6boolean_no_mandatory.html create mode 100644 tests/results/test_namespace/00_6choice.html create mode 100644 tests/results/test_namespace/00_6choice_calculation.html create mode 100644 tests/results/test_namespace/00_6choice_link.html create mode 100644 tests/results/test_namespace/00_6choice_variable.html create mode 100644 tests/results/test_namespace/00_6choice_variable_link.html create mode 100644 tests/results/test_namespace/00_6choice_variable_link2.html create mode 100644 tests/results/test_namespace/00_6custom.html create mode 100644 tests/results/test_namespace/00_6domainname.html create mode 100644 tests/results/test_namespace/00_6domainname_params.html create mode 100644 tests/results/test_namespace/00_6float.html create mode 100644 tests/results/test_namespace/00_6integer.html create mode 100644 tests/results/test_namespace/00_6ip.html create mode 100644 tests/results/test_namespace/00_6network.html create mode 100644 tests/results/test_namespace/00_6number.html create mode 100644 tests/results/test_namespace/00_6port.html create mode 100644 tests/results/test_namespace/00_6regexp.html create mode 100644 tests/results/test_namespace/00_6regexp_link.html create mode 100644 tests/results/test_namespace/00_6secret.html create mode 100644 tests/results/test_namespace/00_6secret_param.html create mode 100644 tests/results/test_namespace/00_6string.html create mode 100644 tests/results/test_namespace/00_7choice_quote.html create mode 100644 tests/results/test_namespace/00_7help.html create mode 100644 tests/results/test_namespace/00_7help_quote.html create mode 100644 tests/results/test_namespace/00_7help_sup.html create mode 100644 tests/results/test_namespace/00_7value_doublequote.html create mode 100644 tests/results/test_namespace/00_7value_doublequote2.html create mode 100644 tests/results/test_namespace/00_7value_doublequote3.html create mode 100644 tests/results/test_namespace/00_7value_quote.html create mode 100644 tests/results/test_namespace/00_8calculation_information.html create mode 100644 tests/results/test_namespace/00_8calculation_namespace.html create mode 100644 tests/results/test_namespace/00_8calculation_param_namespace.html create mode 100644 tests/results/test_namespace/00_8test.html create mode 100644 tests/results/test_namespace/00_9choice_variable_multi.html create mode 100644 tests/results/test_namespace/00_9choice_variables.html create mode 100644 tests/results/test_namespace/00_9default_calculation.html create mode 100644 tests/results/test_namespace/00_9default_calculation_information.html create mode 100644 tests/results/test_namespace/00_9default_calculation_information_other_variable.html create mode 100644 tests/results/test_namespace/00_9default_calculation_multi_optional.html create mode 100644 tests/results/test_namespace/00_9default_calculation_multi_optional2.html create mode 100644 tests/results/test_namespace/00_9default_calculation_multi_optional_default.html create mode 100644 tests/results/test_namespace/00_9default_calculation_optional.html create mode 100644 tests/results/test_namespace/00_9default_calculation_optional_exists.html create mode 100644 tests/results/test_namespace/00_9default_calculation_param_optional.html create mode 100644 tests/results/test_namespace/00_9default_information_other_variable.html create mode 100644 tests/results/test_namespace/00_9default_information_other_variable2.html create mode 100644 tests/results/test_namespace/00_9default_integer.html create mode 100644 tests/results/test_namespace/00_9default_number.html create mode 100644 tests/results/test_namespace/00_9extra.html create mode 100644 tests/results/test_namespace/00_9extra_calculation.html create mode 100644 tests/results/test_namespace/00_9extra_ouside.html create mode 100644 tests/results/test_namespace/01_6boolean_multi.html create mode 100644 tests/results/test_namespace/01_6custom_multi.html create mode 100644 tests/results/test_namespace/01_6float_multi.html create mode 100644 tests/results/test_namespace/01_6integer_multi.html create mode 100644 tests/results/test_namespace/01_6string_empty.html create mode 100644 tests/results/test_namespace/01_6string_multi.html create mode 100644 tests/results/test_namespace/01_7value_multi_doublequote.html create mode 100644 tests/results/test_namespace/01_7value_multi_doublequote2.html create mode 100644 tests/results/test_namespace/01_7value_multi_quote.html create mode 100644 tests/results/test_namespace/01_8calculation_information_multi.html create mode 100644 tests/results/test_namespace/01_9choice_variable_multi.html create mode 100644 tests/results/test_namespace/01_9choice_variable_optional.html create mode 100644 tests/results/test_namespace/04_0type_param.html create mode 100644 tests/results/test_namespace/04_0type_param_integer.html create mode 100644 tests/results/test_namespace/04_1auto_save.html create mode 100644 tests/results/test_namespace/04_1auto_save_and_calculated.html create mode 100644 tests/results/test_namespace/04_1auto_save_and_calculated_hidden.html create mode 100644 tests/results/test_namespace/04_1auto_save_and_hidden.html create mode 100644 tests/results/test_namespace/04_1default_calculation_hidden.html create mode 100644 tests/results/test_namespace/04_1default_calculation_hidden_2.html create mode 100644 tests/results/test_namespace/04_1default_calculation_hidden_3.html create mode 100644 tests/results/test_namespace/04_1default_calculation_hidden_4.html create mode 100644 tests/results/test_namespace/04_1default_calculation_hidden_5.html create mode 100644 tests/results/test_namespace/04_1default_calculation_hidden_6.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_boolean.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_default.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_multi.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_optional.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_optional_default.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable10.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable2.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable3.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable4.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable5.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable6.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable7.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable8.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable9.html create mode 100644 tests/results/test_namespace/04_5disabled_calculation_variable_multi.html create mode 100644 tests/results/test_namespace/04_5hidden_calculation.html create mode 100644 tests/results/test_namespace/04_5hidden_calculation2.html create mode 100644 tests/results/test_namespace/04_5hidden_calculation_default_calculation.html create mode 100644 tests/results/test_namespace/04_5validators.html create mode 100644 tests/results/test_namespace/04_5validators_differ.html create mode 100644 tests/results/test_namespace/04_5validators_multi.html create mode 100644 tests/results/test_namespace/04_5validators_multi2.html create mode 100644 tests/results/test_namespace/04_5validators_multi3.html create mode 100644 tests/results/test_namespace/05_0multi_not_uniq.html create mode 100644 tests/results/test_namespace/05_0multi_uniq.html create mode 100644 tests/results/test_namespace/12_1auto_save_expert.html create mode 100644 tests/results/test_namespace/16_0redefine_description.html create mode 100644 tests/results/test_namespace/16_2family_redefine_calculation.html create mode 100644 tests/results/test_namespace/16_2family_redefine_disabled.html create mode 100644 tests/results/test_namespace/16_3family_empty_at_ends.html create mode 100644 tests/results/test_namespace/16_5exists_nonexists.html create mode 100644 tests/results/test_namespace/16_5exists_redefine.html create mode 100644 tests/results/test_namespace/16_5redefine_calculation.html create mode 100644 tests/results/test_namespace/16_5redefine_choice.html create mode 100644 tests/results/test_namespace/16_5redefine_default.html create mode 100644 tests/results/test_namespace/16_5redefine_default_calculation.html create mode 100644 tests/results/test_namespace/16_5redefine_family.html create mode 100644 tests/results/test_namespace/16_5redefine_help.html create mode 100644 tests/results/test_namespace/16_5redefine_hidden.html create mode 100644 tests/results/test_namespace/16_5redefine_multi.html create mode 100644 tests/results/test_namespace/16_5redefine_remove_disable_calculation.html create mode 100644 tests/results/test_namespace/16_5test_redefine.html create mode 100644 tests/results/test_namespace/16_6choice_redefine.html create mode 100644 tests/results/test_namespace/16_6exists_family.html create mode 100644 tests/results/test_namespace/16_6exists_redefine_family.html create mode 100644 tests/results/test_namespace/16exists_exists.html create mode 100644 tests/results/test_namespace/17_5redefine_leadership.html create mode 100644 tests/results/test_namespace/20_0empty_family.html create mode 100644 tests/results/test_namespace/20_0family_append.html create mode 100644 tests/results/test_namespace/20_0family_underscore.html create mode 100644 tests/results/test_namespace/20_0multi_family.html create mode 100644 tests/results/test_namespace/20_0multi_family_basic.html create mode 100644 tests/results/test_namespace/20_0multi_family_expert.html create mode 100644 tests/results/test_namespace/20_0multi_family_order.html create mode 100644 tests/results/test_namespace/20_0validators_differ_redefine.html create mode 100644 tests/results/test_namespace/20_1empty_subfamily.html create mode 100644 tests/results/test_namespace/20_2family_looks_like_dynamic.html create mode 100644 tests/results/test_namespace/20_2family_looks_like_variable.html create mode 100644 tests/results/test_namespace/20_9default_information_parent.html create mode 100644 tests/results/test_namespace/24_0family_hidden_condition.html create mode 100644 tests/results/test_namespace/24_0family_hidden_condition_boolean.html create mode 100644 tests/results/test_namespace/24_0family_hidden_condition_sub_family.html create mode 100644 tests/results/test_namespace/24_0family_hidden_condition_variable_sub_family.html create mode 100644 tests/results/test_namespace/24_0family_hidden_condition_with_variable.html create mode 100644 tests/results/test_namespace/24_0family_hidden_param_condition_sub_family.html create mode 100644 tests/results/test_namespace/24_0family_mandatory_condition.html create mode 100644 tests/results/test_namespace/24_0family_mandatory_condition_variable.html create mode 100644 tests/results/test_namespace/24_7validators_variable_optional.html create mode 100644 tests/results/test_namespace/24_family_disabled_var_hidden.html create mode 100644 tests/results/test_namespace/40_0leadership.html create mode 100644 tests/results/test_namespace/40_0leadership_diff_name.html create mode 100644 tests/results/test_namespace/40_0leadership_empty.html create mode 100644 tests/results/test_namespace/40_0leadership_follower_default_calculation.html create mode 100644 tests/results/test_namespace/40_0leadership_follower_default_submulti.html create mode 100644 tests/results/test_namespace/40_0leadership_follower_default_submulti_calculation.html create mode 100644 tests/results/test_namespace/40_0leadership_follower_default_value.html create mode 100644 tests/results/test_namespace/40_0leadership_leader_follower.html create mode 100644 tests/results/test_namespace/40_0leadership_leader_not_multi.html create mode 100644 tests/results/test_namespace/40_0leadership_reduce.html create mode 100644 tests/results/test_namespace/40_1leadership_append_follower.html create mode 100644 tests/results/test_namespace/40_2leadership_calculation_index.html create mode 100644 tests/results/test_namespace/40_2leadership_calculation_index_2.html create mode 100644 tests/results/test_namespace/40_2leadership_calculation_param_index.html create mode 100644 tests/results/test_namespace/40_2leadership_leader_calculation.html create mode 100644 tests/results/test_namespace/40_6leadership_follower_multi.html create mode 100644 tests/results/test_namespace/40_6leadership_follower_multi_no_mandatory.html create mode 100644 tests/results/test_namespace/40_8calculation_boolean.html create mode 100644 tests/results/test_namespace/40_8calculation_boolean_return_none.html create mode 100644 tests/results/test_namespace/40_8calculation_integer.html create mode 100644 tests/results/test_namespace/40_8calculation_multi_variable.html create mode 100644 tests/results/test_namespace/40_8calculation_multi_variable_parent.html create mode 100644 tests/results/test_namespace/40_8calculation_multi_variable_parent2.html create mode 100644 tests/results/test_namespace/40_9calculation_variable_leader_follower_multi_inside.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-follower-first.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-follower-last.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-follower-no-mandatory.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-follower.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-leader-first.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-leader-last.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-outside-leader.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-variable.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-variable_leader_follower.html create mode 100644 tests/results/test_namespace/40_9leadership-calculation-variable_leader_follower_not_same.html create mode 100644 tests/results/test_namespace/41_0choice_leader.html create mode 100644 tests/results/test_namespace/44_0leadership_hidden.html create mode 100644 tests/results/test_namespace/44_0leadership_leader_hidden.html create mode 100644 tests/results/test_namespace/44_1leadership_append_hidden_follower.html create mode 100644 tests/results/test_namespace/44_4disabled_calcultion_follower.html create mode 100644 tests/results/test_namespace/44_4disabled_calcultion_follower_index.html create mode 100644 tests/results/test_namespace/44_4leadership_mandatory.html create mode 100644 tests/results/test_namespace/44_4leadership_mandatory_follower.html create mode 100644 tests/results/test_namespace/44_5leadership_leader_hidden_calculation.html create mode 100644 tests/results/test_namespace/44_6leadership_follower_disabled_calculation.html create mode 100644 tests/results/test_namespace/44_9calculated_default_leadership_leader.html create mode 100644 tests/results/test_namespace/60_0family_dynamic.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_1_0.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_1_0_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_1_0_type.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_1_0_type_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_1_1.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_1_1_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_forbidden_char.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_jinja_integer_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_jinja_number.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_no_description.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_no_description_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_static.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_test.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_upper_char.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_variable_empty.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_variable_optional.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_variable_suffix.html create mode 100644 tests/results/test_namespace/60_0family_dynamic_variable_suffix_empty.html create mode 100644 tests/results/test_namespace/60_0family_empty.html create mode 100644 tests/results/test_namespace/60_0family_hidden.html create mode 100644 tests/results/test_namespace/60_0family_mode.html create mode 100644 tests/results/test_namespace/60_1family_dynamic_jinja.html create mode 100644 tests/results/test_namespace/60_2family_dynamic_jinja_fill_sub_group.html create mode 100644 tests/results/test_namespace/60_2family_dynamic_jinja_fill_sub_group_2.html create mode 100644 tests/results/test_namespace/60_2family_dynamic_jinja_fill_sub_group_2_empty.html create mode 100644 tests/results/test_namespace/60_2family_dynamic_jinja_fill_sub_group_empty.html create mode 100644 tests/results/test_namespace/60_2family_dynamic_outside_calc.html create mode 100644 tests/results/test_namespace/60_2family_dynamic_outside_calc_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc2.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc2_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix2.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix2_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_disabled.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_disabled2.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_empty_2.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_empty_3.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_hidden.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_hidden_boolean.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_hidden_multi.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_param.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_suffix_param_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_variable.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_calc_variable_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_hidden_suffix.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_unknown_suffix_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside2.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside2_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_1_0.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_jinja.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_jinja_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_sub_suffix_empty.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_suffix.html create mode 100644 tests/results/test_namespace/60_5family_dynamic_variable_outside_suffix_empty.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_inside.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_inside_empty.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_leadership.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_leadership_empty.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_sub_dynamic.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_sub_dynamic_1_0.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_sub_dynamic_1_0_2.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_sub_dynamic_empty.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_sub_dynamic_empty2.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_suffix_auto_multi.html create mode 100644 tests/results/test_namespace/60_6family_dynamic_suffix_auto_multi2.html create mode 100644 tests/results/test_namespace/60_9extra_dynamic.html create mode 100644 tests/results/test_namespace/60_9extra_dynamic_extra.html create mode 100644 tests/results/test_namespace/60_9family_dynamic_calc_both.html create mode 100644 tests/results/test_namespace/68_0family_leadership_mode.html diff --git a/src/rougail/output_doc/changelog.py b/src/rougail/output_doc/changelog.py index 56f26a92b..396557c61 100644 --- a/src/rougail/output_doc/changelog.py +++ b/src/rougail/output_doc/changelog.py @@ -29,7 +29,7 @@ class Changelog: # pylint: disable=no-member,too-few-public-methods """Return changelog""" with Path(self.previous_json_file).open() as outfh: previous_doc = loads(outfh.read()) - self._tiramisu_to_internal_object() + self.load() self._added_variables = [] self._modified_variables = [] self._removed_variables = [] diff --git a/src/rougail/output_doc/doc.py b/src/rougail/output_doc/doc.py index 88a379646..7225e1fae 100644 --- a/src/rougail/output_doc/doc.py +++ b/src/rougail/output_doc/doc.py @@ -104,7 +104,7 @@ class RougailOutputDoc(Examples, Changelog): def run(self) -> str: """Print documentation in stdout""" - self._tiramisu_to_internal_object() + self.load() return_string = '' if "variables" in self.contents: return_string += self.formater.run(self.informations, self.level) @@ -119,7 +119,7 @@ class RougailOutputDoc(Examples, Changelog): print(data) return ret - def _tiramisu_to_internal_object(self): + def load(self): self.dynamic_paths = {} config = self.conf.unrestraint self._populate_dynamics(config) diff --git a/src/rougail/output_doc/output/html.py b/src/rougail/output_doc/output/html.py new file mode 100644 index 000000000..6fddc1cce --- /dev/null +++ b/src/rougail/output_doc/output/html.py @@ -0,0 +1,131 @@ +""" +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 . +""" + +from typing import List +from html import escape +from ..utils import CommonFormater, dump + + +class Formater(CommonFormater): + """The asciidoc formater""" + + name = "html" + _table_name = "unsafehtml" + level = 45 + + def title( + self, + title: str, + level: int, + ) -> str: + """Display family name as a title""" + return f"{title}\n\n" + + def join( + self, + lst: List[str], + ) -> str: + """Display line in table from a list""" + string = "" + previous = "" + for line in lst: + if string: +# if self.is_list(previous.split("\n", 1)[-1]): +# string += "

" +# else: + string += "
" + string += line + + previous = line + return string + + def bold( + self, + msg: str, + ) -> str: + """Set a text to bold""" + return f"{msg}" + + def italic( + self, + msg: str, + ) -> str: + """Set a text to italic""" + return f"{msg}" + + def delete( + self, + msg: str, + ) -> str: + """Set a text to deleted""" + return f"{msg}" + + def underline( + self, + msg: str, + ) -> str: + """Set a text to underline""" + return f"{msg}" + + def stripped( + self, + text: str, + ) -> str: + """Return stripped text (as help)""" + return text.strip() + + def list( + self, + choices: list, + ) -> str: + """Display a liste of element""" + prefix = "