2009-04-05 9 views
8

Tumblr использует очень простой язык шаблонов для его темы:Какой язык шаблонов используется Tumblr?

{block:Text} 
    <li class="post text"> 
     {block:Title} 
      <h3><a href="{Permalink}">{Title}</a></h3> 
     {/block:Title} 

     {Body} 
    </li> 
{/block:Text} 

Start.io также использует тот же формат:

<html> 
    <head> 
    <title>{Name} @ start.io</title> 
    </head> 
    <body> 
    {Groups} 
     <h1>{Name}</h1> 
     <ul> 
     {Links} 
     <li><a href="{Permalink}">{Title}</a></li> 
     {/Links} 
     </ul> 
    {/Groups} 
    </body> 
</html> 

ли она сделана на заказ, или не использует существующий язык шаблонов?

Если это заказ, можете ли вы предложить некоторые рекомендации по созданию чего-то подобного?

ответ

2

Хм ... Я думаю, что это выполнено на заказ, так как не упоминается in the tumblr docs, и я полагаю, что если бы они использовали существующий язык шаблонов.

JSON Template, похоже, довольно похожий язык шаблонов. Попробуйте это :)

+0

+1 для шаблона JSON –

3

Эти шаблонные двигатели отображаются на заказ, хотя они выглядят очень похожими на Smarty.

+1

Я думаю, что язык шаблонов Tumbler сильно отличается от Smarty, поскольку он использует блоки вместо операторов if/else и практически не имеет логики программирования (в отличие от Smarty). Я думаю, что язык шаблонов больше похож на упрощенную версию языка шаблонов [ExpressionEngine] (http://expressionengine.com/user_guide/overview/tags.html) и [CodeIgniter] (http://codeigniter.com/user_guide /libraries/parser.html), который также выполнен на заказ и довольно ограничен. – Blaise

1

Недавно я опубликовал механизм шаблонов PHP, который делает именно это. Получите это от: https://www.ohloh.net/p/pheme

+0

Я думаю, что это превосходит идею языка шаблонов на стороне клиента. Я не думаю, что Tumblr хочет запустить сгенерированный пользователями код на своих серверах. – Deviljho

1

У Tumblr, конечно же, есть собственный парсер. Посмотрите my answer on Quora на пару примеров, почему это так.

В то время как JSONTemplate и Smarty используют одинаковые фигурные скобки для переменных, они несовместимы. Кроме того, можно сказать, что Start.io использует другой парсер, так как он допускает custom conditionals. Условный формат Start.io равен {if:Var} или {if:Var < Num}. В Tumblr это будет записано как один элементный блок, если переменная является официальной ({block:Var}) else, если переменная указана пользователем в теге <meta>, она будет использовать синтаксис {block:IfUserVar}.