Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Snakeskin (https://javascript.ru/forum/project/35057-snakeskin.html)

yazonnile 02.03.2016 19:28

- namespace demo

- template myButton(@params)
 < .button
   {@value}

#{template myJS(foo)}
var a = {
  foo: 'bar'
  bla: #{1 + 2},
  baz: '#{foo ? "baz" : "bla"}'
};
#{/}


Вооооот! Вот это я искал. Спасибо. Пока решил на свой страх и риск начать его использовать в новом продже. И пока все классно :)
Ну, с вашими подсказками само собой.:lol:

Если вдруг нужна будет помощь в переводе на английский документации - рад буду помочь в меру времени

kobezzza 02.03.2016 19:41

Цитата:

Ну, с вашими подсказками само собой.
Без проблем :)

Цитата:

Если вдруг нужна будет помощь в переводе на английский документации
Это было бы шикарно :)

kobezzza 04.03.2016 17:03

Выпустил SS 7 beta 25. По мимо исправления ошибок также добавлен новый параметр pack, при включении которого шаблоны будут генерироваться для standalone сборки через WebPack, чтобы не прописывать дополнительные алиасы.

kobezzza 06.03.2016 20:50

Выпустил SS beta 27.

kobezzza 08.03.2016 21:38

Выпустил beta28.

Изменено поведение include: теперь если путь не глобальный и не начинается с указания контекста (./ или ../), то путь резолвится с node_modules. Также теперь если путь окончается на слеш или обратный слеш, то к пути подставляется правило: ?(dirname|main|index).ss

Добавлен плейсхоледер %dirName%. Принцип такой же как и у %fileName%.

foo/bar.ss
- namespace [%dirName%]

- template [%fileName%]()
  Hello!

yazonnile 10.03.2016 18:48

Задача.
Получить объект темплеитов из шаблона.

Решение 1.
SS.compileFile(fileSrc)
Все как надо, но создается файл с расширением js, который нужно постояно удалять.

Решение 2.
SS.compile(fileContent)
Возвращается string
Евалить, чтоли?) Или записывать в файл, который экспортирует обьект?

Есть вариант с объектом и чтобы файлы не создавались лишние?

yazonnile 10.03.2016 18:59

SS.exec(fileContent) возвращает только 1 метод.

kobezzza 10.03.2016 19:13

Цитата:

SS.compileFile(fileSrc)
Все как надо, но создается файл с расширением js, который нужно постояно удалять.
Дык файл создаётся для удобной отладки и как кеш, чтобы если шаблон не изменился при следующем запуске сразу взять скомпиленый. Ну да ладно.

Как я понял, ты хочешь получить просто объект со всеми шаблонами и с парсингом текста, а не файла.

Цитата:

SS.exec(fileContent) возвращает только 1 метод.
exec это просто надстройка над compile, которая всегда возвращает ссылку на главный шаблон. Поэтому смотрим исходный код https://github.com/SnakeskinTpl/Snak...keskin.js#L272

И то, что ты хочешь сделается вот так:

var ss = require('snakeskin');

var tpls = {};
ss.sompile('исходный шаблон', {context: tpls});

console.log(tpls); // Тут наши шаблоны :)


Но лично я предпочитаю юзать вебпак, чтобы просто рекваерить шаблоны.

yazonnile 10.03.2016 19:18

Цитата:

Сообщение от kobezzza (Сообщение 410591)
Дык файл создаётся для удобной отладки и как кеш, чтобы если шаблон не изменился при следующем запуске сразу взять скомпиленый

Наверное. Но сейчас именно такой кеис.


Цитата:

Сообщение от kobezzza (Сообщение 410591)
Но лично я предпочитаю юзать вебпак, чтобы просто рекваерить шаблоны.

Это уже внеконтекста вебпака. Просто на ноде решил посмотреть, сколько нужно телодвижений, чтобы получить объект шаблонов.

Спасибо)

yazonnile 14.03.2016 17:54

Привет!
Столкнулся с проблемой.

Есть такой шаблон

- namespace lalala

#{ template parent(@params) }
parent
#{/}

#{ template child(@params) extends parent }
child
#{/}


Ошибка
SnakeskinError: the specified template "parent" for inheritance is not defined;


Пример из документации тоже не работает
Вот этот

Вызываю через
const templates = ss.compileFile(
	path.resolve(__dirname, './../templates/index.ss')
);


В чем проблема, подскажите?
Доки под новый синтаксис не сделали или я что-то не так делаю?:-?


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