Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Templating System for Node.JS. (https://javascript.ru/forum/project/27690-templating-system-node-js.html)

devote 22.06.2012 13:22

Цитата:

Сообщение от B~Vladi
Как пиздато самим с собой разговаривать

и не говори, главное тебя слышат :D

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

B~Vladi 22.06.2012 13:39

Цитата:

Сообщение от devote
А вообще я наблюдаю за развитием твоего проекта

:thanks:
Из последнего: закончил реализацию тега script, буквально пару часов назад. Пара примеров:
<tsn:script>
<[CDATA[
  // Код выполняется в глобальной области видимости шаблона.
  // Созданные переменные будут доступны в других JS-выражениях и тегах script.
  var data = {
    key: 'value'
  };
]]>
</tsn:script>
<tsn:echo data="data.key" />

Выведет: "value".

Или так:
<tsn:script type="local">
<[CDATA[
  // Код выполняется в локальной области видимости анониймной функции.
  // Тег этого типа может выводить текстовые данные в результат через return:
  return 'Text';
]]>
</tsn:script>

На выходе: "Text".

Ещё есть атрибут context в теге типа local, работает так же как и в других тегах.

Вообще раньше я был против подобных возможностей в шаблоне, но потом понял, что раз шаблон реализует view-логику, то такой тег необходим для написания костылей или упрощения преобразования данных. Как вариант, в нем можно создавать функции-модификаторы, что бы потом использовать в JS-выражениях в других шаблонах.

Gozar 22.06.2012 21:33

Цитата:

Сообщение от B~Vladi (Сообщение 183189)
Как пиздато самим с собой разговаривать

Я успеваю только иногда просматривать тему. Я даже бы взял шаблонизатор и прикрутил его, но останется только заставить всех хостеров поддерживать node.js.

B~Vladi 22.06.2012 23:06

Цитата:

Сообщение от Gozar
но останется только заставить всех хостеров поддерживать node.js.

Вопрос времени. Да и хостеров хватает. Немного погодя будет версия, не привязанная к NodeJS, нужен будет только интерпретатор JS. На работе собираемся внедрить. Вы бы писали что требуется, я же не в курсе всего...

B~Vladi 24.06.2012 14:11

В примере есть одно некрасивое решение с переопределением блока CONTENT. Сейчас, что бы обернуть существующий блок в разметку и заменить его, нужно изъебываться с сохранением в хранилище данных результат рендеринга блока. Для такой ситуации я реализовал новый тип блока wrapper:
<tsn:block name="CONTENT" type="wrapper">
	<div class="service">
		<tsn:render block="CONTENT" />
	</div>
</tsn:block>


Этот блок сначала сохраняет глобальный блок с именем name как локальный, а затем заменяет глобальный блок собой. Это позволяет вызывать оригинальный блок CONTENT внутри блока типа wrapper, потому как локальные блоки имеют больший приоритет при использовании тега render.
Если смотреть на код шаблона, не должно возникать двусмысленностей с именами блоков, если знать про тип wrapper.

Как вам такое решение? Пока не пушил на гитхаб.

devote 02.08.2012 20:18

B~Vladi,
вот сижу выбираю шаблонизатор какой нить, но нужен что бы работал c PHP а не NodeJS, есть идеи? Твой реально на PHP переписать? И как ты на это смотришь?

B~Vladi 02.08.2012 22:01

Цитата:

Сообщение от devote
нужен что бы работал c PHP

Пэхапэ отстой, юзай ноду :D

Цитата:

Сообщение от devote
есть идеи?

PHP?! smarty?

Цитата:

Сообщение от devote
Твой реально на PHP переписать?

Конечно реально, там нет ничего магического. Особенно если найдется подходящий SAX-парсер.

Цитата:

Сообщение от devote
И как ты на это смотришь?

Вообще я не против, даже буду всячески способствовать, но сам писать не буду, ибо см. первый ответ.

devote 02.08.2012 22:07

Цитата:

Сообщение от B~Vladi
Пэхапэ отстой, юзай ноду

я бы с удовольствием, но увы не везде есть нода.

Цитата:

Сообщение от B~Vladi
Вообще я не против, даже буду всячески способствовать, но сам писать не буду, ибо см. первый ответ.

ясно.. Тогда сам перепишу его на пыху. Отпишусь сюда.

B~Vladi 02.08.2012 22:34

Цитата:

Сообщение от devote
Тогда сам перепишу его на пыху.

Он будет компилировать шаблон в PHP-код?

devote 02.08.2012 22:42

Цитата:

Сообщение от B~Vladi
Он будет компилировать шаблон в PHP-код?

зачем, в JS конечно же.. или не? или у тебя во что-то другое компилит?


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