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

yazonnile 22.03.2016 13:31

Привет. А есть возможность как-то задать путь для дефолтного ресолва модулей?
- include './templates/*.ss'
- include './../../__base/layouts'


Вторую строчку хотелось бы как-то красиво написать. Тк вложенность файла, что использует layout может быть разная.

kobezzza 22.03.2016 13:43

Привет!

Если такой кейз, то тут лучше всего использовать те же практике, что и в ноде: т.е. подключаем модуль path и вводим суперглобальные переменные (о них в доке можно почитать).

- import path from 'path'

/// .ss можно не писать - подставится автоматом
- include './templates/*' 
- include path.resolve(@@base, 'layouts')


Суперглобальную переменную можно задать как из самого СС файла:

- @@base = '...'


Так и из JS: параметр vars метода компиляции или просто

const ss = require('ss');
ss.Vars.base = '...';

kobezzza 22.03.2016 13:52

Можно сделать изящнее, заюзав фильтры:

const 
  ss = require('ss'),
  path = require('path');

ss.Filters.from = function (src, base) {
  return path.resolve(src, base);
};


- include './templates/*' 
- include './layouts'|from @@base

yazonnile 22.03.2016 14:38

Так и знал, что что-то есть. Спасибо в который раз :)

kobezzza 13.04.2016 18:24

Закончил раздел "учебник".

http://snakeskintpl.github.io/docs/guide.html#intro

kobezzza 13.04.2016 20:40

Выпустил beta.33

kobezzza 27.04.2016 23:28

Почти закончил документацию, думаю на майских праздниках добью.

kobezzza 14.05.2016 21:33

Закончил раздел документация, завтра буду собирать релиз СС7

kobezzza 15.05.2016 13:50

Свершилось! После 1.5 лет разработки, 2к+ коммитов, 35 бета релизов, множества сдвигов даты релиза :) и т.д. таки докатился до стейбла Snakeskin 7!

Было внесено огромное количество изменений, которые затронули как дизайн языка, так и его внутренности. Скажу откровенно: я очень горжусь этой работой :)

По своей сути, СС7 является результатом реинжиниринга СС6: многие вещи были сильно упрощены, например, больше нет прототипов, т.к. они полностью слились с вызываемыми блоками или больше нет костылей, чтобы передать при вызове функции ей подшаблон - теперь это делается с помощью всё тоже директивы call и т.д. Разрабатывая СС7 я стремился сделать его с одной стороны максимально простым, а с другой защитить пользователя от досадных ошибок, например, по этому были введены обязательные пространства имён и запрет на переопределение шаблона.

Кодовая база была значительно модифицирована: многие вещи переписаны с нуля, многие улучшены, а сам код полностью (включая модули) переписан на ES6, но по прежнему проходит максимально строгую проверку Google Closure Compiler. Также была улучшена интеграция JS и SS, теперь шаблоны полностью поддерживают: umd, amd, global, commonjs и native декларации, а для подключения JS в шаблоны введена директива import, которая повторяет функционал одноименного оператора в JS. Большое внимание уделено улучшениям отладчика, т.е. теперь сообщениями об ошибках более точные и подробные.

Также следует остановится на документации: она была полностью переписана, значительно расширена и выведена в отдельный проект для Github Pages. Сама документация написана на самом SS и это ещё одно доказательство зрелости и стабильности продукта. Но конечно работа по документации ещё не закончена и постепенно я буду дополнять разделы, примеры и переводить на английский.

Изменений очень много, поэтому проще читать доку, чем перечислять их тут :)

Но надо отметить, что CLI SS был вынесен в отдельный проект (snakeskin-cli) и пока не зарелизился (сегодня вечером планирую).

В общем поделился с вами радостной новостью :)

kobezzza 15.05.2016 16:32

Зарелизил https://github.com/SnakeskinTpl/snakeskin-cli


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