diff --git a/src/rougail/output_formatter/__init__.py b/src/rougail/output_formatter/__init__.py index 66db8e3..312abfc 100644 --- a/src/rougail/output_formatter/__init__.py +++ b/src/rougail/output_formatter/__init__.py @@ -256,9 +256,9 @@ class RougailOutputFormatter: path_len -= 1 column = path_len * 2 + len(name) + add_column if self.remaining: - description = family["description"] + "\n\n" + description = family["description"].strip() + "\n\n" else: - description = family["description"] + description = family["description"].strip() ret.yaml_add_eol_comment(description, name, column=column) else: self.add_space(family) @@ -354,7 +354,7 @@ class RougailOutputFormatter: ret[name] = default add_column += len(str(default)) + 1 if "description" in variable: - description = variable["description"] + description = variable["description"].strip() if self.remaining and (not multi or not default): description += "\n\n" path_len = path.count(".") @@ -383,11 +383,11 @@ class RougailOutputFormatter: return typ, parent, param param = list(obj)[-1] - if isinstance(obj[param], ScalarString): + typ, parent, param = _get_last_obj(obj[param], obj, param, "map") + if isinstance(parent[param], ScalarString): enter = "\n" else: enter = "\n\n" - typ, parent, param = _get_last_obj(obj[param], obj, param, "map") if typ == "seq": func = parent.yaml_key_comment_extend else: @@ -430,9 +430,9 @@ class RougailOutputFormatter: jinja["return_type"] = value.return_type if value.description: if "\n" in value.description: - jinja["description"] = LiteralScalarString(value.description) + jinja["description"] = LiteralScalarString(value.description.strip()) else: - jinja["description"] = value.description + jinja["description"] = value.description.strip() if value.params: jinja["params"] = self.object_to_yaml( "params", type_, value.params, multi, object_path @@ -471,9 +471,9 @@ class RougailOutputFormatter: del variable["type"] if value.description: if "\n" in value.description: - variable["description"] = LiteralScalarString(value.description) + variable["description"] = LiteralScalarString(value.description.strip()) else: - variable["description"] = value.description + variable["description"] = value.description.strip() return variable elif isinstance(value, Param): param_attributes = self.get_attributes( @@ -503,7 +503,7 @@ class RougailOutputFormatter: elif type_ == "port" and isinstance(value, str) and value.isnumeric(): return int(value) elif key == "help" and "\n" in value: - return LiteralScalarString(value) + return LiteralScalarString(value.strip()) return value def calc_variable_path(self, object_path, variable_path): diff --git a/tests/results/00_2default_calculated_variable_description_multi_line/rougail/00-base.yml b/tests/results/00_2default_calculated_variable_description_multi_line/rougail/00-base.yml new file mode 100644 index 0000000..4cc8223 --- /dev/null +++ b/tests/results/00_2default_calculated_variable_description_multi_line/rougail/00-base.yml @@ -0,0 +1,18 @@ +%YAML 1.2 +--- +version: 1.1 + +var1: # a first variable + +var2: + description: a second variable + default: + variable: _.var1 + description: |- + value + of + a + variable! + +var3: # a new variable +... diff --git a/tests/results/40_0leadership_reduce/rougail/00-base.yml b/tests/results/40_0leadership_reduce/rougail/00-base.yml new file mode 100644 index 0000000..204e7b8 --- /dev/null +++ b/tests/results/40_0leadership_reduce/rougail/00-base.yml @@ -0,0 +1,20 @@ +%YAML 1.2 +--- +version: 1.1 + +leadership: + description: a leadership + type: leadership + + leader: + description: a leader + test: + - val1 + - val2 + default: + - value_1 + - value_2 + - value_3 + + follower: # a follower +...