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

kobezzza 05.09.2014 21:57

В SS 4.2 будут введены внешние вызываемые блоки, по аналогии с внешними прототипами:

- block foo->calc(a, b)
    - a + b

- template foo()
    - call blocks.calc(1, 2)


Также, как и внешние прототипы, такие блоки можно будет указывать до декларации самого шаблона.

kobezzza 14.09.2014 16:14

Опубликовал roadmap SS 5

ЗЫ: т.к. для версионирования используется semver, то цифра 5 просто означает внесение некоторых несовместимостей с версией 4.1, но они минимальны.

kobezzza 15.09.2014 11:50

Немного дополнил roadmap.

Вообще SS 5 практически не вводит новых фич, а улучшает старые, например, макросы можно будет задавать по шаблону регулярки, а не только простым текстом, а в функции замены будет передавать найденный шаблон - это позволит делать штуки вроде:

$D:%d.%m.%Y


->

15.09.2014


По сути, макросы - это упрощённые и облегчённые прототипы.

PS: Если есть какие хотелки, то не стесняйтесь :)

kobezzza 17.09.2014 23:37

Новости с полей :)

Сегодня в рамках работы над SS 5 сделал новый параметр компилятора и режим рендеринга, теперь вместо stringBuffer введён параметр renderMode:

*) stringConcat - шаблон возвращает строку, для конкатенации строк используется оператор +

*) stringBuffer - шаблон возвращает строку, для конкатенации строк используется класс Snakeskin.StringBuffer (из коробки простой Array с push / join)

*) dom - шаблон возвращает document fragment и рендерится как последовательность вызова DOM API, но есть некоторые ограничения:

1) Нельзя использовать директиву doctype (на самом деле я просто хз, как её императивно создать :D)
2) Для создания тегов обязательно использовать директиву tag (очень не хочется писать отдельный парсер самой разметки), т.е.

- template foo()
    <h1>Hello</h1>



отобразится как текст, а не разметка.

А вот так:

- template foo()
    < h1 :: Hello


уже как разметка.

Safort 19.09.2014 15:01

Начал подбираться к SS. Полез в доки и малясь подфигел - их там тонны! Довольно подробно)

Но есть пара вопросов:
1. как на клиенте использовать шаблоны хранящиеся в *.ss? В доках только про Ноду нашёл.
2. SS такой толстый, не отразится ли это на скорости компиляции? Фич-то всё больше и больше. SS уже не шаблонизатор, SS уже ЯП, нафиг! *Епифанцев.jpg*

kobezzza 19.09.2014 17:03

Цитата:

как на клиенте использовать шаблоны хранящиеся в *.ss? В доках только про Ноду нашёл.
https://github.com/kobezzza/Snakeski...%D 0%B8%D1%8F

http://www.youtube.com/watch?v=wVt_L...ature=youtu.be

Вообще кейзов использования несколько:

1) Runtime-компиляция шаблонов;
2) Прекомпиляция шаблонов и последующие использование как простого JS;
3) Генерация статических страниц, аля Github Pages.

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

Цитата:

SS такой толстый, не отразится ли это на скорости компиляции? Фич-то всё больше и больше. SS уже не шаблонизатор, SS уже ЯП, нафиг! *Епифанцев.jpg*
Да, ЯП, я уже писал об этом, но ЯП заточенный под написание шаблонов.

Не отразится, SS не только самый функциональный движок шаблонов, но и один из самых быстрых. К тому же трансляция делается только один раз.

Safort 19.09.2014 18:03

kobezzza,
Цитата:

Но компилить шаблоны на стороне клиента не стоит, т.к. придётся тащить 14к строк кода транслятора + дополнительная нагрузка на трансляцию
Вот блин, я именно так и хотел сделать -_-

Цитата:

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

спасибо за подробный ответ)


Кстати, как там плагин для Галпа поживает?)

kobezzza 19.09.2014 18:33

Цитата:

Вот блин, я именно так и хотел сделать -_-
Ну ты можешь так делать, но сам понимаешь, что это не очень эффективно :)

Цитата:

Про скомпилированный шаблон видел, просто, думал, что так тоже норм)
Ну прост зачем тащить дополнительные 30кб? А вообще: конечно так можно делать.

Цитата:

Кстати, как там плагин для Галпа поживает?)
Я думал сделать его вместе с релизом SS 5, пока не начинал, но если очень нужно, то могу завтра сделать, а сегодня я решил сделать выходной :)

Safort 19.09.2014 18:55

Вложений: 1
kobezzza,
Цитата:

Ну прост зачем тащить дополнительные 30кб?
30? В аттаче такого нет. Или ты про другое?

Цитата:

Я думал сделать его вместе с релизом SS 5, пока не начинал, но если очень нужно, то могу завтра сделать, а сегодня я решил сделать выходной
Нужно, но пока что не срочно. Я ведь только начал разбираться с SS, так что не тороплюсь)


А когда планируешь 5 релиз, не напомнишь?

kobezzza 19.09.2014 19:01

Цитата:

30? В аттаче такого нет. Или ты про другое?
Ну, вместе с GZIP же, но я всё равно наврал, сейчас посмотрел - уже 43кб, как jQuery в общем, а то и поболее.

Цитата:

Нужно, но пока что не срочно. Я ведь только начал разбираться с SS, так что не тороплюсь)
Оки, сделаю раньше.

Цитата:

А когда планируешь 5 релиз, не напомнишь?
Вообще хотел на этой недели, но затянул работу по доке Collection 5.2 + лень :) Так что на след недели, думаю ближе к концу.

Можно следить за этом разработки: https://github.com/kobezzza/Snakeskin/issues


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