Визуализация объекта в стиле строки шаблона Python с использованием jinja - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь использовать jinja2 для рендеринга объекта, подобного этому:

{
    "template": "It was the {{foo}} of times, it was the {{bar}} of times.",
    "params": {
        "foo" : "best"
        "bar" : "worst"
    },
    "styling": {
        "params": {
            "foo": {
                "classes": ["my_css_class_A"],
            }
            "bar": {
                "classes": ["my_css_class_B"],
            }
        }
    }
}

к этому:

It was the <span class="my_css_class_A">best</span> of times, it was the <span class="my_css_class_B">worst</span> of times.

Есть ли элегантный способ сделать это в шаблоне jinjaИли мне нужно написать свои собственные функции Python?


История вопроса, которая может / не может быть полезна: Ранее я использовал шаблоны строк Python для рендеринга таких объектов:

my_bullet_point = {
    "template": "It was the {{foo}} of times, it was the {{bar}} of times.",
    "params": {
        "foo" : "best"
        "bar" : "worst"
    },
}

Строка, которая отображает (в пределах большего шаблона jinja), выглядела следующим образом:

<li>{{ my_bullet_point | render_template }}</li> 

Где render_template:

from string import Template as pTemplate

def render_template(template):
    return pTemplate(template["template"]).substitute(template["params"])

Теперь мне нужно добавитьстиль и до сих пор рендеринг в дзиндзя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...