20.02.2015, 01:04
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Gozar
|
Да, да, точно, так тоже завелось
|
Там если жмакнешь в настройках insert macro, то он покажет список возможных плейсхолдеров, это точно нужно в вики описать
Цитата:
|
Тоже бы в wiki стоило добавить, я полдня убил на переборы, пути подбирал.
|
Дык, ты пиши сразу сюда или на гитхаб, я отвечаю почти сразу всегда и всегда помогу.
Последний раз редактировалось kobezzza, 20.02.2015 в 01:11.
|
|
21.02.2015, 15:49
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Начал работу над 7-й версией SS.
Из планируемых фич:
1) Поддержка потоков Collection;
{forEach [realBigArray] => {thread: true} => el, i}
...
{onChunk => data}
...
{onIterationEnd => data}
...
{onComplete => data}
...
{/}
2) Улучшена поддержка Angular;
3) Поддержка React;
4) Поддержка сорспамов;
5) Поддержка фильтров для входных параметров шаблонов и подшаблонов:
{template foo((param1|trim), (param2|round = 1.3|round))}
6) Поддержка async / await;
{template-async foo()}
{await getFile()}
{/}
7) Поддержка задания атрибутов в директиве tag через массив;
8) Будет улучшен способ установки параметров по умолчанию:
// param = param == null ? 1 : param
{template foo(param = 1)}
// param = param === undefined ? 1 : param
{template foo2(?param = 1)}
9) Полный перевод доки на инглишь (русская версия разумеется останется) и общая доработка доки;
10) Статья на хабр
Ломающие изменения:
1) Будет немного изменён синтаксис tag для работы XML неймспейсами: изменния будт очень незначительны и скорее всего ничего и не сломают в большинстве случаев.
***
Скорее всего работа займёт несколько месяцев.
Последний раз редактировалось kobezzza, 21.02.2015 в 15:58.
|
|
21.02.2015, 15:49
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Забыл сказать: если есть пожелания по фичами, то прошу не стесняться)
|
|
21.02.2015, 15:57
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
kobezzza,
Цитата:
|
9) Статья на хабр
|
Ещё не поздно её на первое место поставить) Если сделаешь публичный анонс, то это только даст тебе мотивации меньше лениться и продуктивнее работать)
Цитата:
|
1) Будет изменён способ установки параметров по умолчанию:
// param = param === undefined ? 1 : param
{template foo(param = 1)}
// param = param == null ? 1 : param
{template foo2(?param = 1)}
|
О, нет! А, собственно, почему пришлось ломать синтаксис?
Цитата:
|
Забыл сказать: если есть пожелания по фичами, то прошу не стесняться)
|
В SS уже настолько много всего, что даже не знаю чего ещё придумать)
|
|
21.02.2015, 16:00
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
А, собственно, почему пришлось ломать синтаксис?
|
Да я уже изменил концепт так, чтобы не сломать совместимость, т.е. логика такая:
// Параметр 1 будет установлен если foo == undefined или null (т.е. сейчас так и есть)
foo = 1
// Параметр 1 будет установлен если foo == undefined
?foo = 1
Цитата:
|
Ещё не поздно её на первое место поставить) Если сделаешь публичный анонс, то это только даст тебе мотивации меньше лениться и продуктивнее работать)
|
Я буду делать её параллельно, скорее она и выйдет раньше релиза. Да и сейчас дело не в лени: я немного устал от пиления своего проекта и решил сделать перерыв и устроился just for fun на работу на пол ставки (3 дня в неделю), но первый месяц я обещался отработать на полную, поэтому ща времени свободного оч мало.
И потом я решил таки полностью довести все свои разработки до масс, т.е. перевод док, статьи и т.д. А проект никуда не денется, подумаешь, закончу на пол года позже и хрен с ним
Последний раз редактировалось kobezzza, 21.02.2015 в 16:04.
|
|
21.02.2015, 16:09
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Ещё добавлю фичу, на которую меня натолкнул Gozar: при добавлении фильтра ему можно будет указать свойство unsafe, которое будет отменять фильтр html по умолчанию
Snakeskin.Filter.n2br = function (str) {
str.replace(/\r?\n|\r/, '<br />');
};
Snakeskin.Filter.n2br.unsafe = true;
|
|
21.02.2015, 16:15
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Ещё есть интересная идея постфильтры, т.е. фильтры, которые применятся к результату шаблона, например,
{template foo() @= filter [Typograf(), Speller()]}
Т.е. к результату шаблона будут применятся сторонние либы для типографики, проверки опечаток и т.д.
|
|
21.02.2015, 16:27
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
https://github.com/kobezzza/Snakeskin/issues/24
Завёл темку на Гх, где буду складировать фичи для SS 7.
***
Буду рад помощи по работе с проектом: нужен человек, которой бы причесал имеющуюся доку в вики, т.е. я имею ввиду улучшение имеющих глав, возможно их реструктуризация и т.д.
Последний раз редактировалось kobezzza, 21.02.2015 в 16:30.
|
|
21.02.2015, 20:24
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от kobezzza
|
Буду рад помощи по работе с проектом: нужен человек, которой бы причесал имеющуюся доку в вики, т.е. я имею ввиду улучшение имеющих глав, возможно их реструктуризация и т.д.
|
В доке лично для меня были не очевидны следующие вещи.
1. Подключение множества вложенных шаблонов.
2. Передача параметров при наследовании во вложенные
{call myContent(param)}
. Где надо ставить
@
, а где нет. Где надо передавать
param
, а где нет. Почему называть надо
param
, обязательно нужно ли называть
param
.
3. Отсутствие вызова шаблона, только код шаблона(это очень важно, когда начинаешь).
4. Примеры слишком простые, нужны ещё и сложные примеры(объявление двух шаблонов в одном, подключение и наследование в другой трех и т.п.)
5. Применение фильтров было не очевидно.
{el.des|br|!html}
особенно в каком-нибудь
{forEach @city => el}
Сейчас вроде все понятно и работает, но когда начинал было довольно тяжело разобраться в этих вопросах. Даже если они и описаны где-то, то я это не увидел, по крайней мере сразу или было не очевидно.
Ещё раз спасибо за такую гибкую шаблонку. По скорости пока претензий нет. Попозже попробую под нагрузкой.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
21.02.2015, 20:43
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
, а где нет. Где надо передавать
param
, а где нет. Почему называть надо
param
, обязательно нужно ли называть
param
|
О, я даже не думал, что тут могут проблемы, т.к. написал в одной из первых глав, что template == function и думал, что логично что параметры могу называться как угодно (тоже самое касается и всех "функциональных" директив, типа block, proto, forEach, callback и т.д.) и их может сколько угодно много.
[1, 2, 3].forEach(function (el, i, data) {
...
});
[1, 2, 3].forEach(function (elem, key, self) {
...
});
{forEach [1, 2, 3] => el, i, data}
...
{/}
{forEach [1, 2, 3] => elem, key, self}
...
{/}
{forEach [1, 2, 3] => elem, key, self, isFirst, isLast, length}
...
{/}
{forEach {a: 1, b: 2} => elem, key, self, i, isFirst, isLast, length}
...
{/}
Спс за наводки, я сейчас подумал, что нужно добавить часть "Быстрый старт", где описать такие вещи.
Цитата:
|
Ещё раз спасибо за такую гибкую шаблонку.
|
SS7 будет ещё гибче
Последний раз редактировалось kobezzza, 21.02.2015 в 20:46.
|
|
|
|