Open yuri-karadzhov opened 11 years ago
Hello Yuri!
View source: https://github.com/lampaa/NodeSmarty/blob/master/others/express.example.js
Is it possible to use NodeSmarty in more usual for express way like view engine. Smth like this
app = express()
smarty = NodeSmarty()
viewsDir = '../views/templates'
app.configure ->
app.set 'views', viewsDir
app.engine 'smarty', smarty(
cache: true
watch: true
template: viewsDir
compile: './view/compile'
cache: './view/cache'
).render
app.set 'view engine', 'smarty'
...
And then call res.render(view) as usual
app.get '/', (req, res, next) ->
...
#Get some db calls
...
return res.render 'index', template: 'shop/main', data: dbQueryResult
I use coffe-script but I think you catch the idea.
I understand your idea, and I wanted to use it, but then i change my code. In the future, we can expect the following initialization library:
var Template = NodeSmarty({
'templateDir': './views/templates/',
'cacheDir': './views/cache/',
'compileDir': './views/compile/',
///...
});
В общем, библиотека будет развиваться. Сам же люблю минимализм и простоту. По этому упрощаю: меньше настроек, всё должно быть как можно прозрачней :) Тогда и использовать шаблонизатор будет не определенный круг лиц, а уже больше.
You should implement renderer for exppress and these are all changes which should be done.
P.S.: Для меня этот проект - очень удобное средство для портирования готовых проектов с php на node. Остальные, которые я нашёл выглядят заброшенными http://code.google.com/p/jsmart/ https://github.com/stepofweb/nsmarty https://github.com/kudige/transformer В целом подогнать его под стандарты экспресса не сложно - код
Template.assign({
'values':fields
});
var Final = Template.fetchSync('data.html');
нужно переместить в рендерер для экспресса (можно глянуть например готовые рендеры для ect или ejs).
Желаю удачи с проектом, буду за ним наблюдать.
Ок, пожелание понял :)
Как появиться система плагинов, так сразу будут разные удобные фичи. Но пока всё равно нужно нарастить основной функционал, тот же тег {selection}, его пока нет.
Если будет время попробую поучавствовать. Сейчас навалилось много всего - рук не хватает =)
Бро, незабивай на проект, хочу потдержку
@xxxalz на сайте http://nodesmarty.com 4ая версия стоит, я её полностью перебрал еще пол года назад, но документацию написать руки не дошли. Надо будет как-нибудь собраться и доделать.
@lampaa у меня такой вопрос как делать инклуд файла название которго в переменной? .... content:'index.tpl' .... {include file=$content} не работает, как быть?
upd: документации правдо мало иной раз просто преходиться лезть в код модуля и смотерть как все работает. А вообще jade неудобен для больших проектов где много верстики, у меня после ста строк начинаються галюцинации с табом) Ждем документации!
Горю, инклуд нужен срочно, срочно
@xxxalz ты мне скажи для начала, какую ты версию используешь?
@xxxalz В общем смотри, вот 4ая версия, но альфа, пробуй аккуратно: http://nodesmarty.com/styles/scripts/nodesmarty.4.0.js
@lampaa версия с npm
@xxxalz на npm еще не заливал обновленную. Сегодня в обед будет, сейчас загружен по работе
@lampaa скачал 4. так всеже как делать инклуд на файл из переменной?
@xxxalz
{include file=$variable}
Вчера пробовал, всё работает.
@lampaa {include file=$content}
обработчик ошибок возращает 400 { [Error: ENOENT, stat '/home/protected/views/$content'] errno: 34, code: 'ENOENT', path: '/home/protected/views/$content' } 8
@xxxalz посмотри пример http://lampaa.github.io/nodesmarty/nodesmarty.html у меня всё работает.
@xxxalz lampaa.github.io/blob/master/nodesmarty/nodesmarty.html
@lampaa я на nodejs пробую, может дело в этом?
@xxxalz нет, не в этом. Держи архив, тут рабочий пример. Скорее всего так и не обновил библиотеку: https://github.com/lampaa/lampaa.github.io/blob/master/nodesmarty/test.rar
Can you add some examples how can NodeSmarty be used with ExpressJs framework?