0

我正在编写一个允许用户使用模板配置输出的应用程序。例如:


变量:

name = "BoppreH"
language = "Python"

模板:

My name is {name} and I like {language}.

输出:

My name is BoppreH and I like Python.

这适用于简单数据,如字符串和数字,但我找不到列表的良好语法,更具体地说是它们的分隔符。

fruits = ["banana", "apple", "watermelon"]

I like {???}.

I like banana, apple, watermelon.

在这种情况下,所需的分隔符是逗号,但用户如何指定呢?是否有一些具有此功能的模板格式?

无论语言或库如何,我更关心使语法易于理解。

4

2 回答 2

1

Implement filters, and require their use for non-scalar types.

I like {fruits|join:", "}.
于 2013-07-06T21:20:14.673 回答
0

通常,列表包含未知数量的成员,有时还包含自己的变量/占位符。一个示例可能是列出一个人的姓名及其电话号码。所需的输出可能如下所示:

John Doe
555-1212
555-1234

在支持这一点的模板系统中,您需要两种类型的变量:一种指定值的占位符(如您现在使用的花括号),另一种表示列表的开始和结束。所以,像这样:

{name}
{{phone_numbers}}{phone}{{/phone_numbers}}

您的值数组可能如下所示:

值 = [名称:“John Doe”,电话号码:[电话:“555-1212”,电话:“555-1234”]]

“phone_numbers”数组中的每个值都会创建一个存在于 {{phone_numbers}} 和 {{/phone_numbers}} 之间的所有内容的新实例,并将这些值包含在这两个“标签”中。

于 2013-07-06T21:26:14.583 回答