Вот мой код YAML:
Код: Выделить всё
names:
- Bob
- Jason
- James
Код: Выделить всё
{% macro print_name(data)%}
{{ data }}
{% endmacro %}
People {
{% for name in names %}
Name {
{{ print_name(name) }}
}
{% endfor %}
}
Код: Выделить всё
import yaml
from jinja2 import Environment, FileSystemLoader
def main():
data = yaml.load(open('config_files/test.yml'), Loader=yaml.FullLoader)
env = Environment(loader = FileSystemLoader('.'), trim_blocks=True, lstrip_blocks=True)
template = env.get_template('templates/test.j2')
print(template.render(data))
if __name__ == '__main__':
main()
Я хочу, чтобы это печаталось так:
Код: Выделить всё
People {
Name {
Bob
}
Name {
Jason
}
Name {
James
}
}
Код: Выделить всё
People {
Name {
Bob
}
Name {
Jason
}
Name {
James
}
}
Если я добавлю тире в тег вызова макроса, чтобы попытаться удалить лишнюю новую строку, например: { { print_name(name) -}}, то он портит отступ следующей строки и печатает вот так:
Код: Выделить всё
People {
Name {
Bob
}
Name {
Jason
}
Name {
James
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-macros
Мобильная версия