Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   TrueTemplates - самый быстрый или безопасный шаблонизатор (https://javascript.ru/forum/project/10649-truetemplates-samyjj-bystryjj-ili-bezopasnyjj-shablonizator.html)

tenshi 14.07.2010 01:42

TrueTemplates - самый быстрый или безопасный шаблонизатор
 
использовать так:

var wrongField= TT.string( 'field "{0}" is not found' )
..
throw wrongField([ 'xxx' ])

var makeUserTagLink= TT.uri( '/user/{user}/tag/{tag}' )
..
location.href= makeUserTagLink({ user: 'tenshi', tag: 'xxx' })

var makeContent= TT.dom( '<h1>{title}</h1><p>{text}</p>' )
..
contentNode.appendChild( makeContent({ ttle: 'xxx', text: 'xxx not found' }) )

скачать: http://bca07c6c88b166729f9741ef748fc...oject/tt/tt.js - 2.5кило

Octane 14.07.2010 01:49

Какой-то API неудобный, почему бы не сделать так:
var wrongField = new TrueTemplate("field “{0}” is not found");
throw wrongField.match(["xxx"])

?

--------
а… там разные типы, ну все равно не очевидно, что string, uri или dom вернут функцию.


--------
Даже если от new избавится:
var wrongField = TrueTemplate("field “{0}” is not found");
throw wrongField.match(["xxx"])
было бы удобнее, чем возвращать фукнцию.

А необходимость автоматического encodeURIComponent и парсинга HTML в функционале шаблонизатора сомнительна.

tenshi 14.07.2010 02:16

а что нужно вызвать match - это очевидно? х)

Octane 14.07.2010 02:31

Да. Все эти func(…)(…)(…)(…)(…)… только чтобы поиграться, показать насколько JS крутой, а в скриптах массового использования, думаю, лучше применять привычную всем схему:
var object = new Constructor(…);
object.method(…)

tenshi 14.07.2010 09:16

"привычная всем схема" не удобна в использовании

B~Vladi 14.07.2010 09:55

Цитата:

Сообщение от tenshi
"привычная всем схема" не удобна в использовании

Вчера прочитал статью по этому шаблонизатору. Код пугает немного. Например:
var link= TT.dom( '<a href="{uri}">{title}</a>' )({ uri: '/', title: 'на старт' })

Это же можно сделать проще, выполняя одну функцию вместо двух.

Насколько я понял, шаблонизатор не умеет использовать в качестве шаблона DOM-ноды?

B~Vladi 14.07.2010 14:37

Цитата:

Сообщение от tenshi
TrueTemplates

:)

По мне так это не шаблонизатор, а навороченый sprintf.

Gvozd 14.07.2010 15:15

Цитата:

Сообщение от B~Vladi
По мне так это не шаблонизатор, а навороченый sprintf.

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

Kolyaj 14.07.2010 15:17

Цитата:

Сообщение от Gvozd
и идея разделения контента и логики рушится

Нет такой идеи. Есть идея разделения бизнес-логики и логики отображения. В обоих случаях нужна логика. Просто одна не должна вмешиваться в другую.

x-yuri 14.07.2010 15:24

Цитата:

Сообщение от B~Vladi
Это же можно сделать проще, выполняя одну функцию вместо двух.

проще - не всегда лучше, один - не всегда лучше, чем два ;)


Часовой пояс GMT +3, время: 08:38.