Комментарии 33
Можете добавить графики сравнения производительности с dustjs и handlebars?
0
Скажу честно, графики я добавил лишь потому, что попросили. А так не вижу смысла сейчас сравнивать производительность. Но приму ваше сообщение на заметку. Просто еще в разных шаблонизаторах разные методы, по этому вывод переменной или обычных условий по скорости будут одинаковые, а вот, например, в одном шаблонизаторе вывод цикла через стандартные способы (forEach, for), а в других, как у меня, через специальный тег — тут уже неправильно сравнивать.
0
Что, серьезно? Мало шаблонизаторов для ноды?
0
Если не затруднит, покажите мне шаблонизатор, у которого синтаксис похож на синтаксис smarty? Я вот что-то не нашел. Спросите, почему именно синтаксис smarty? Отвечу: допустим, у меня много проектов с использованием smarty, и я хочу их портировать на node.js. Что лучше: использовать движок с другим синтаксисом и потом заморачиваться с шаблонами, или взять мой?
0
В мире php многие переехали на Twig, есть две реализации на js:
github.com/schmittjoh/twig.js
github.com/justjohn/twig.js
Случай портирования проектов php+smarty на node.js очень редки, и да, в этих ситуациях выгодно.
В любом случае придется переписывать все фильтры, функции и блоки. У вас, кстати, есть такое API?
А раз нужно переписывать все фильтры, почему не воспользоваться новыми шаблонизаторами?
github.com/schmittjoh/twig.js
github.com/justjohn/twig.js
Случай портирования проектов php+smarty на node.js очень редки, и да, в этих ситуациях выгодно.
В любом случае придется переписывать все фильтры, функции и блоки. У вас, кстати, есть такое API?
А раз нужно переписывать все фильтры, почему не воспользоваться новыми шаблонизаторами?
+2
Сейчас есть то, что есть. Фильтры и прочие вкусные штуки также будут. Этот шаблонизатор далеко не «Ну что, опять?». Он не похож на другие, и у него свои фичи.
0
А какие, если не секрет, в отличие от уже упомянутых dot, twig, handlebars, dustjs, jade и прочих? Ну, кроме синтаксиса «как в smarty», который отличается от twig, похоже, в основном наличием знака "$" перед переменными?
0
И, кстати, я правильно понимаю, что этот шаблонизатор нельзя использовать на клиенте?
0
Синтаксис, считаю, одно из самых главных различий между шаблонизаторами. Потом сам код довольно шустрый и не требует каких-либо компонентов. И да, шаблонизатор нельзя использовать на клиенте. Раз язык серверный, то и шаблонизатор серверный.
0
Оооо, батенька, да вас понесло :]
И какой серверный язык, вы используете, если не секрет?
И какой серверный язык, вы используете, если не секрет?
+1
Вы о чем сейчас? Я о node.js
0
Как я ошибался в своих суждениях :D
+1
Подскажите, а заработает ли он вместе с express.js и например nap (https://github.com/craigspaeth/nap)? К сожалению, сложно заставить express.js работать нормально НЕ с дефолтным jade и в тоже время, что бы он не кофликтовал с различным аддонами, которые встраиваются в jade
0
Был вопрос на github.com о примерах работы NodeSmarty и express.js в паре: github.com/lampaa/NodeSmarty/issues/2 Больше пока ничего не могу сказать.
0
Вот уже не первая статья о создание шаблонизатора на NodeJS и все совершают одну и туже ошибку, никто не заботиться о разработчике, который этим будет пользоваться, где вывод ошибок compile & run-time (file, line) и юнит тесты?
P.S. Но желаю удачи :]
P.S. Но желаю удачи :]
+2
Главный вопрос — зачем?
Ведь от смарти нафталином несет за милю, есть гараздо более удобные и современные шаблонизаторы с поддержкой наследования и приятным глазу синтаксисом например мусташ или джейд.
Ведь от смарти нафталином несет за милю, есть гараздо более удобные и современные шаблонизаторы с поддержкой наследования и приятным глазу синтаксисом например мусташ или джейд.
+3
Мне вот больше синтаксис smarty нравится. Приятный, легкий (как для разработчика, так и дизайнера).
0
Вот про приятный, легкий для дизайнера можно подробнее? :)
+3
Понятный синтаксис, море различных ситуаций, изъеденных вдоль и поперек. Под дизайнером имелось ввиду верстальщика, перепутал :)
0
Попробуйте дня три поверстать под Jade, передумаете.
0
я ждал подобного комментария :)
Наткнулся на jade когда мне нужно было сверстать кучку статичных страниц (его было проще всего прикрутить к PhpStorm как «компилятор» для статики, да и плагин поддержки jade тоже вестма сносный имеется). в общем с тех пор не могу смотреть на верстку plain html без боли, jade удобен и отказаться от него мне будет сложно. Короче, я уже фанат jade с первой ложки, а ведь я его еще даже не распробовал толком, дай бог чтобы 10% возможностей освоил…
P.S.: naltatis.github.com/jade-syntax-docs/ первая доза бесплатно :D
Наткнулся на jade когда мне нужно было сверстать кучку статичных страниц (его было проще всего прикрутить к PhpStorm как «компилятор» для статики, да и плагин поддержки jade тоже вестма сносный имеется). в общем с тех пор не могу смотреть на верстку plain html без боли, jade удобен и отказаться от него мне будет сложно. Короче, я уже фанат jade с первой ложки, а ведь я его еще даже не распробовал толком, дай бог чтобы 10% возможностей освоил…
P.S.: naltatis.github.com/jade-syntax-docs/ первая доза бесплатно :D
+3
+2
Для быстрого портирования проектов php на node.js.
0
Немного придирок
сейчас в мастере это: github.com/lampaa/NodeSmarty/blob/ba6fc41e61a9b1edd09b44df0e8ab1f9726ae811/index.js
строка 714 — нет var (возможен баг в разных объектах)
строка 729 — аналогично 714
В циклах вида for key in obj нет проверок obj.hasOwnProperty(key). Может привести к неожиданным багам
Ну и в конце концов — что за практика пошла писать все в одном файле? Попробуйте разделить логику (отдельно парсер, отдельно компилятор, отдельно рендерер и т.п.)
сейчас в мастере это: github.com/lampaa/NodeSmarty/blob/ba6fc41e61a9b1edd09b44df0e8ab1f9726ae811/index.js
строка 714 — нет var (возможен баг в разных объектах)
строка 729 — аналогично 714
В циклах вида for key in obj нет проверок obj.hasOwnProperty(key). Может привести к неожиданным багам
Ну и в конце концов — что за практика пошла писать все в одном файле? Попробуйте разделить логику (отдельно парсер, отдельно компилятор, отдельно рендерер и т.п.)
0
Из документации:
JUST и EJS, а тем более Jade не являются самыми быстрыми шаблонизаторами. JUST это попытка сделать улучшенный EJS, однако она зашла в тупик из-за невозможности сделать доступ к переменный без which или префиксов типа this.varName. Для такого случая нужна прекомпилция всего кода. Поэтому родился ECT. Он наследуют синтаксис eco но намного быстрее и предлагает широкий функционал и язык изобретать/учить не надо т.к. используется CoffeeScript. Попробуйте протестировать скорость этим бенчмарком. Там учтен приближенный к среднему объем текста и тестируются отдельно варианты с эскейпингом и без.
Все шаблоны при использовании проходят дополнительную обработку — компиляцию. Шаблон компилируется в чистый (native) JavaScript код, причем как компиляция, так и исполнение кода являются самыми быстрыми при сравнении с остальными шаблонизаторами!
JUST и EJS, а тем более Jade не являются самыми быстрыми шаблонизаторами. JUST это попытка сделать улучшенный EJS, однако она зашла в тупик из-за невозможности сделать доступ к переменный без which или префиксов типа this.varName. Для такого случая нужна прекомпилция всего кода. Поэтому родился ECT. Он наследуют синтаксис eco но намного быстрее и предлагает широкий функционал и язык изобретать/учить не надо т.к. используется CoffeeScript. Попробуйте протестировать скорость этим бенчмарком. Там учтен приближенный к среднему объем текста и тестируются отдельно варианты с эскейпингом и без.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
NodeSmarty новый шаблонизатор для node.js (3.beta)