【问题标题】:Looking for good bracket characters for a template engines code blocks为模板引擎代码块寻找好的括号字符
【发布时间】:2011-01-27 09:12:12
【问题描述】:

我正在寻找一个好的字符对,用于在我们的内部模板引擎的下一版本的模板中包含模板代码。

当前使用纯 {},但这使得解析器非常复杂,无法区分真实代码块和模板中文字文本中的随机 {} 字符。

我认为像 asp.net 或 php 中使用的双字符组合是一种更好的方法,但问题是我应该使用 char 字符对还是有一些从未使用过且易于编写的完美单字符。

一些需要满足的条件:

  • 无法通过 HTMLEncode 更改,源将可通过基于 Web 的 HTML 编辑器和纯文本区域进行编辑,并且无论使用何种编辑器都需要保持不变。
  • 正则表达式将用于在 HTML 编辑器中编辑后清理代码部分,该编辑器可能已对代码块的内部部分(如 & 字符)进行了编码。
  • 在英语和瑞典语键盘布局上都应该很容易书写。
  • 应该是一个非常罕见的组合,模板将生成 HTML 和文本,并且可能包含带有 JSON 的 CSS 和 Javascript 文字文本,因此任何可能与它们发生冲突的组合都是不好的,除非非常罕见。这意味着 {{}} 已退出,因为它可能出现在 JSON 中。
  • 代码块中的代码将包含空格、下划线、美元和更多组合,不仅是字段名,还有 if/while 结构。
  • 解析器是用 Antlr 生成的

我正在寻找建议和反对意见,以找到一种或多种组合,以在尽可能多的情况下工作,可能针对不同情况使用多个替代组合。

【问题讨论】:

  • 我会等一两天再选择任何答案,因为我希望有机会获得更多建议,也让任何对建议的解决方案有异议的人有时间让自己听到。一旦我去一个,我会坚持很多年:P

标签: html templates template-engine brackets curly-braces


【解决方案1】:

Template-Toolkit 默认为[% template directives %],效果相当不错。

【讨论】:

    猜你喜欢
    • 2013-03-29
    • 2021-06-07
    • 2013-02-25
    • 2019-04-24
    • 2011-01-21
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多