diff --git a/Options.py b/Options.py index 2d3ef99d649..cec6b054938 100644 --- a/Options.py +++ b/Options.py @@ -1432,14 +1432,18 @@ def dictify_range(option: Range): return data, notes + def yaml_dump_scalar(scalar) -> str: + # yaml dump may add end of document marker and newlines. + return yaml.dump(scalar).replace("...\n", "").strip() + for game_name, world in AutoWorldRegister.world_types.items(): if not world.hidden or generate_hidden: - grouped_options = get_option_groups(world) + option_groups = get_option_groups(world) with open(local_path("data", "options.yaml")) as f: file_data = f.read() res = Template(file_data).render( - option_groups=grouped_options, - __version__=__version__, game=game_name, yaml_dump=yaml.dump, + option_groups=option_groups, + __version__=__version__, game=game_name, yaml_dump=yaml_dump_scalar, dictify_range=dictify_range, ) diff --git a/data/options.yaml b/data/options.yaml index 8eea75a7cb0..ee8866627d5 100644 --- a/data/options.yaml +++ b/data/options.yaml @@ -68,21 +68,21 @@ requires: {%- elif option.options -%} {%- for suboption_option_id, sub_option_name in option.name_lookup.items() %} - {{ sub_option_name }}: {% if suboption_option_id == option.default %}50{% else %}0{% endif %} + {{ yaml_dump(sub_option_name) }}: {% if suboption_option_id == option.default %}50{% else %}0{% endif %} {%- endfor -%} {%- if option.name_lookup[option.default] not in option.options %} - {{ option.default }}: 50 + {{ yaml_dump(option.default) }}: 50 {%- endif -%} {%- elif option.default is string %} - {{ option.default }}: 50 + {{ yaml_dump(option.default) }}: 50 {%- elif option.default is iterable and option.default is not mapping %} {{ option.default | list }} {%- else %} - {{ yaml_dump(option.default) | trim | indent(4, first=false) }} + {{ yaml_dump(option.default) | indent(4, first=false) }} {%- endif -%} {{ "\n" }} {%- endfor %}