TBS 小而强:如何递归填充数据

TBS tiny but strong: how to recursively fill in data

我使用 openTBS 来解析发票模板。发票地址是通过自定义函数提供的。我想有条件地向填写的数据提供更多信息。

我正在考虑允许发票地址(填写的数据)包含另一个 TBS 字段,例如一个人说话,并让 TBS 重新解析表格。换句话说,如果第一个 运行 提供了一个新的 TBS 字段,我可以让 TBS 解析模板两次吗?

示例:

[abk.invoiceaddress]

--- 替换为 -->

ACME inc.
[abk.person]
Somestreet 123
Somecity 54321

--- 应替换为 -->

ACME inc.
Mr. Knowitall
Somestreet 123
Somecity 54321

似乎没有递归替换的选项,调用MergeField()两次没有达到预期的效果。

默认情况下,TBS在合并数据时防止TBS字段注入。 否则可能是安全问题。

默认情况下,如果数据是:

ACME inc. [abk.person] Somestreet 123 Somecity 54321

则合并为:

ACME inc. &#91abk.person] Somestreet 123 Somecity 54321

字符串 &#91[ 的 unicode,因此对于很多模板来说这是不可见的。

但是你可以使用参数protect=no解除这个保护

https://www.tinybutstrong.com/manual.php#html_field_prm_protect