Что-то, что действительно беспокоило меня в 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"
тд закрывается сразу после текста). Строки выводятся напрямую, за исключением того, что строки в двойных кавычках допускают подстановку переменных, а одинарные кавычки - нет. Я использую схему фильтрации, похожую на схему Джанго. Я думаю, что меня больше всего беспокоит замена переменных в двойных кавычках ... Я не хочу, чтобы люди везде открывали и закрывали одинарные кавычки, потому что синтаксические вещи рассматриваются как переменные, которые не должны. Я не думаю, что символ @
очень часто используется в коде. Я собирался использовать $
как PHP, но jQuery использует это, и я хочу позволить людям делать замены и в их JS (конечно, если им это не нужно, им следует использовать одинарные кавычки!) *
В шаблонах будут использоваться "словари". По умолчанию он использует этот HTML-диктант со знакомыми тегами, но вы можете легко добавить свой собственный. «Теги» могут состоять не только из одного, но из нескольких тегов HTML.
Еще нужно решить, как делать циклы и в том числе частичные ...
Редактировать: Начат проект с открытым исходным кодом , для тех, кто заинтересован.