模板中列表分隔符的语法

时间:2013-07-06 21:18:53

标签: templates language-agnostic delimiter

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


变量:

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.

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

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

2 个答案:

答案 0 :(得分:1)

实现过滤器,并要求将它们用于非标量类型。

I like {fruits|join:", "}.

答案 1 :(得分:0)

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

John Doe
555-1212
555-1234

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

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

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

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

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