Потенциальные ловушки с моим новым языком разметки? - PullRequest
3 голосов
/ 21 октября 2010

Что-то, что действительно беспокоило меня в 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.

Еще нужно решить, как делать циклы и в том числе частичные ...

Редактировать: Начат проект с открытым исходным кодом , для тех, кто заинтересован.

1 Ответ

4 голосов
/ 21 октября 2010

Я полагаю, что вы можете приблизиться к этому с помощью синтаксиса языка сценариев TCL.

В вашей идее мне нравится больше всего - удаление (для меня очень) избыточной информации в закрывающих тегахиз (имеет свои корни) разметки SGML.

Еще один чистый вариант IMO - пойти по пути использования отступов для указания области видимости, исключая все фигурные скобки.Предполагая небольшую поддержку редактора, я могу вообразить, что это происходит.

Я думаю, что, возможно, душит то, что глобально используемые спецификации предназначены для теоретического человека, использующего VI или Блокнот для ввода их разметки ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...