2010-10-21 31 views
3

某些事情讓我對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字典,但您可以輕鬆添加自己的標籤。 「標籤」可能不僅包含一個,而且包含多個HTML標籤。

仍然需要決定如何做環路和包括諧音......

編輯:開始an open source project,對於那些有興趣。

+2

你提出的語言的許多功能是顯着的相似乳膠... – dmckee 2010-10-21 17:34:14

+0

@ dmckee:我只是簡單地使用過LaTeX,但那有什麼不對?我正在嘗試採取(我認爲是)來自各種語言的最佳創意。 – mpen 2010-10-21 17:37:39

+2

它根本沒有錯。我提到它,以防你不知道它,因爲它暗示尋找常見的「陷阱」的地方。 – dmckee 2010-10-21 17:39:35

回答

4

我相信你可以接近TCL腳本語言的語法。

我最喜歡你的想法的事情是刪除(在我的)非常冗餘的信息在SGML標記的(在它的根源)的結束標籤。

另一個乾淨的選擇IMO是去使用縮進的道路來指定範圍,一起消除括號。假設有一位編輯支持,我可以想象這發生了。

我認爲這是可能stiflling是全球使用規格滿足使用vi或記事本輸入他們的標記中的theorhetical人...

+0

好點...也許我應該把HTML規範作爲一個「基礎」,只允許加載項,但不能完全刪除或替換標籤?我會偷看一下TCL ..別以爲我聽說過這個。 – mpen 2010-10-21 17:50:01