Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2011, 01:52
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Шаблонный движок
Привет.

Интересно узнать мнение людей по поводу парсера для шаблонов. Писал для себя, поскольку существующие варианты по ряду причин не устраивали.

Посмотреть можно на github, или поэкспериментировать на jsfiddle.

Буду признателен за замечания и мнения.
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2011, 12:31
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

}} могут конфликтовать со скриптом в шаблонах.

сделайте какой-нибудь простенький тест. без тестов скучно )
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2011, 13:19
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

потестировать можно на jsFiddle. ну а вообще, такой конфликт невозможен, исходя из логики разбора шаблона, которую я использую.
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2011, 13:39
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

<td>{{ '<b onclick="if(...){if(...){...}}">Test</b>' }} {{ '<b>Test</b>'|stripTags }}</td>
а так ?

тесты на скорость
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 29.06.2011 в 13:43.
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2011, 14:34
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Ага, я понял, о чем вы. Да, действительно, такая проблема возможна. Если внутри маркера встретится последовательность }} она будет воспринята, как правый разделитель. Можно, конечно использовать } } вместо }}, но согласен - косяк.
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2011, 19:33
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

у меня шаблоны рисуются одинарными { } а для экранирования используется удвоение {{ }}. и в яваскрипте и в хслт единообразно и наглядно.
__________________
.ня
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2011, 23:28
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

да, я что-нибудь придумаю для экранирования.
я изначально хотел, чтобы маркеры были как в twig и django, это тот стиль, который я предпочитаю. и, строго говоря, проблем у меня пока не было, поскольку ситуации, когда нужно экранировать, сравнительно редки.
Ответить с цитированием
  #8 (permalink)  
Старый 30.06.2011, 01:04
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

да можно не экранировать. ситуация редкая.

а как из шаблона вызвать другой шаблон ?
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 30.06.2011 в 01:11.
Ответить с цитированием
  #9 (permalink)  
Старый 30.06.2011, 01:22
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

такого нельзя сделать. вообще, мне требовалось максимально легкое решение. не больше пары kb, с базовой логикой.
однако, вы меня навели на размышление: это вполне можно сделать используя модификаторы.

что-то типа такого:

{{ 'tpl_inner_block'|tpl(user) }}


user тут объект, который будет доступен в шаблоне tpl_inner_block. ну и tpl - модификатор, который будет возвращать отпаршеный подшаблон.
Ответить с цитированием
  #10 (permalink)  
Старый 30.06.2011, 12:00
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

если это строчка то экранировать можно обратным слешем. уже работает.
но правельнее былобы следить за открытыми скобками
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 30.06.2011 в 12:08.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сколько времени нужно одному типу, чтобы написать движок форума? Alex455 Оффтопик 17 22.05.2011 11:14
Легкий движок блога FINoM Оффтопик 2 15.05.2011 10:10
движок этого форума igrok Оффтопик 14 25.09.2010 10:07
Простой графический движок: SVG vs Canvas stryaponoff Общие вопросы Javascript 5 29.06.2010 16:59
Бесплатный движок для сайта greatilya Ваши сайты и скрипты 9 03.05.2009 15:28