Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #521 (permalink)  
Старый 20.02.2015, 01:04
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Gozar Посмотреть сообщение
Да, да, точно, так тоже завелось
Там если жмакнешь в настройках insert macro, то он покажет список возможных плейсхолдеров, это точно нужно в вики описать

Цитата:
Тоже бы в wiki стоило добавить, я полдня убил на переборы, пути подбирал.
Дык, ты пиши сразу сюда или на гитхаб, я отвечаю почти сразу всегда и всегда помогу.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 20.02.2015 в 01:11.
Ответить с цитированием
  #522 (permalink)  
Старый 21.02.2015, 15:49
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 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
code monkey

Последний раз редактировалось kobezzza, 21.02.2015 в 15:58.
Ответить с цитированием
  #523 (permalink)  
Старый 21.02.2015, 15:49
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Забыл сказать: если есть пожелания по фичами, то прошу не стесняться)
__________________
kobezzza
code monkey
Ответить с цитированием
  #524 (permalink)  
Старый 21.02.2015, 15:57
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 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 уже настолько много всего, что даже не знаю чего ещё придумать)
Ответить с цитированием
  #525 (permalink)  
Старый 21.02.2015, 16:00
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
А, собственно, почему пришлось ломать синтаксис?
Да я уже изменил концепт так, чтобы не сломать совместимость, т.е. логика такая:

// Параметр 1 будет установлен если foo == undefined или null (т.е. сейчас так и есть)
foo = 1

// Параметр 1 будет установлен если foo == undefined
?foo = 1


Цитата:
Ещё не поздно её на первое место поставить) Если сделаешь публичный анонс, то это только даст тебе мотивации меньше лениться и продуктивнее работать)
Я буду делать её параллельно, скорее она и выйдет раньше релиза. Да и сейчас дело не в лени: я немного устал от пиления своего проекта и решил сделать перерыв и устроился just for fun на работу на пол ставки (3 дня в неделю), но первый месяц я обещался отработать на полную, поэтому ща времени свободного оч мало.

И потом я решил таки полностью довести все свои разработки до масс, т.е. перевод док, статьи и т.д. А проект никуда не денется, подумаешь, закончу на пол года позже и хрен с ним
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 21.02.2015 в 16:04.
Ответить с цитированием
  #526 (permalink)  
Старый 21.02.2015, 16:09
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Ещё добавлю фичу, на которую меня натолкнул Gozar: при добавлении фильтра ему можно будет указать свойство unsafe, которое будет отменять фильтр html по умолчанию

Snakeskin.Filter.n2br = function (str) {
  str.replace(/\r?\n|\r/, '<br />');
};

Snakeskin.Filter.n2br.unsafe = true;
__________________
kobezzza
code monkey
Ответить с цитированием
  #527 (permalink)  
Старый 21.02.2015, 16:15
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Ещё есть интересная идея постфильтры, т.е. фильтры, которые применятся к результату шаблона, например,

{template foo() @= filter [Typograf(), Speller()]}


Т.е. к результату шаблона будут применятся сторонние либы для типографики, проверки опечаток и т.д.
__________________
kobezzza
code monkey
Ответить с цитированием
  #528 (permalink)  
Старый 21.02.2015, 16:27
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

https://github.com/kobezzza/Snakeskin/issues/24

Завёл темку на Гх, где буду складировать фичи для SS 7.

***

Буду рад помощи по работе с проектом: нужен человек, которой бы причесал имеющуюся доку в вики, т.е. я имею ввиду улучшение имеющих глав, возможно их реструктуризация и т.д.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 21.02.2015 в 16:30.
Ответить с цитированием
  #529 (permalink)  
Старый 21.02.2015, 20:24
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 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.
Ответить с цитированием
  #530 (permalink)  
Старый 21.02.2015, 20:43
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 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
code monkey

Последний раз редактировалось kobezzza, 21.02.2015 в 20:46.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
express-snakeskin - view через snakeskin для express melky Ваши сайты и скрипты 5 10.06.2014 11:35