我的新标记语言可能存在缺陷?

时间:2010-10-21 17:31:14

标签: html templates markup

一些让我对XHTML感到困扰的事情,以及XML一般是为什么需要指出你要关闭的标签。像<b>bold <i>bold and italic</b> just italic</i>这样的事情无论如何都不合法。因此,我认为使用{}更有意义。无论如何,这就是我想出的:

doctype;
html
{
head
{
  title "my webpage"
javascript '''
// code here
// single quotes do not allow variable substitution, like PHP
// triple quotes can be used like Python
'''
}
body
{
  table {
     tr {
        td "cell 1"
        td "cell 2"
        td @var|filter1|filter2:arg
     }
  }
  p "variable @var in a string"
  p "variable @{var|withfilter}"
  input(type=password, value=secret); // attributes are specified like this
  br; // semi-colons are used on elements that don't have content
  p { "strings are" "automatically" "concatenated together" @andvars "too" }
}
}

只包含一个元素的标签不需要括在大括号中(例如td "cell 1" td在文本后立即关闭)。字符串是直接输出的,除了双引号字符串允许变量替换,而单引号不允许。我正在采用类似于Django的过滤方案。我认为,我最关心的是双引号中的变量替换。我不希望人们必须在任何地方打开和关闭单引号,因为语法事物被视为不应该使用的变量。我不认为@字符在代码中非常常用。我打算像PHP一样使用$,但jQuery使用它,我想让人们也在他们的JS中进行替换(当然,如果他们不需要,他们应该使用单引号!)

模板将使用“词典”。默认情况下,它使用此HTML dict,使用熟悉的标记,但您可以轻松添加自己的标记。 “标签”不仅包含一个,而且包含多个HTML标签。

还需要决定如何进行循环并包含部分内容......

修改:为感兴趣的人启动an open source project

1 个答案:

答案 0 :(得分:4)

我相信你可以用TCL脚本语言的语法接近它。

我最喜欢你的想法是在SGML标记的结尾标记中删除(对我而言)冗余信息。

IMO的另一个清洁选择是使用缩进来指定范围,一起消除括号。假设有一点编辑支持,我可以想象会发生这种情况。

我认为可能会扼杀全球使用的规格,以满足使用VI或记事本输入标记的理论人员的需求......