一些让我对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。
答案 0 :(得分:4)
我相信你可以用TCL脚本语言的语法接近它。
我最喜欢你的想法是在SGML标记的结尾标记中删除(对我而言)冗余信息。
IMO的另一个清洁选择是使用缩进来指定范围,一起消除括号。假设有一点编辑支持,我可以想象会发生这种情况。
我认为可能会扼杀全球使用的规格,以满足使用VI或记事本输入标记的理论人员的需求......