Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #161 (permalink)  
Старый 03.08.2014, 15:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

Хотя конечно, я бы мог писать roadmap при начале работы над новой версией.
да) просто , чтобы понимать, что ты хочешь из него сделать.

например, было бы интересно узнать про jade-like синтаксис и инкрементальную сборку шаблонов, ну и про переменные, и layout'ы, и про React и про подсветку синтаксиса ....

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

Цитата:
было бы интересно узнать про jade-like синтаксис
Скоро закончу видео по этой части

Цитата:
инкрементальную сборку шаблонов
Ну, я сделаю ручку, которая будет говорить соотвествует ли JS файл с SS по версии, а дальше уже нужно колдовать в отдельных плагинах сборщиков.

UPD: сейчас подумал, что можно придумать логику для {include}, чтобы он не инклудил файл, который может быть взят из кеша.

Цитата:
ну и про переменные, и layout'ы
Тоже будет в видео.

Цитата:
и про React
Тут не понятно: у меня нет биндинга Я склоняюсь к тому, что если и делать его, то как отдельная клиентская либа, которая будет юзать Snakeskin, но пока не планируется.

Цитата:
про подсветку синтаксиса
Дык. Я уже про это снял самое первое видео, где рассказывается как её можно добавить. Что качается обработки ошибок, то вывод в терминал от вотчера: snakeskin в 90% случаев ловит ошибку на этапе трансляции и скажет точно где произошла ошибка.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 03.08.2014 в 15:34.
Ответить с цитированием
  #163 (permalink)  
Старый 03.08.2014, 15:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от kobezzza
Дык. Я уже про это снял самое первое видео, где рассказывается как её можно добавить.
о, я этот момент прослакал) для sublime text придется плагин фигачить
Ответить с цитированием
  #164 (permalink)  
Старый 03.08.2014, 15:52
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от melky Посмотреть сообщение
о, я этот момент прослакал) для sublime text придется плагин фигачить
Если делать честную поддержку в WebStorm, то тоже плагин писать, но чёто ради этого Жабу курить лень
__________________
kobezzza
code monkey
Ответить с цитированием
  #165 (permalink)  
Старый 05.08.2014, 16:55
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Добавил метод, который компилирует заданный файл (если нужно), кеширует результат и возвращает ссылку на главную функцию: https://github.com/kobezzza/Snakeski...keskin.es6#L67

Главная функция определяется по правилу:

return tpl[path.basename(src, '.ss')] || tpl.main || tpl[Object.keys(tpl)[0]] || null;


Пример использования:

profile.ss

- template %fileName%(@params)
    Hello {@name}!


var snakeskin = require('snakeskin');
snakeskin.execFile('./profile.ss')({name: 'Вася'}) // Hello Вася!


ЗЫ: количество коммитов в версию 4 превысило общее количество коммитов всех предыдущих версий
__________________
kobezzza
code monkey

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

Перед сном пришла идейка:

- template foo(a|trim, b|parse)
    ...


Тоже самое, что и

- template foo(a, b)
    ? a = (a|trim)
    ? b = (b|parse)


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

- template foo(a|trim = 'foo')
    ...


<=>

- template foo(a)
    ? a = a != null ? (a|trim) : 'foo'


И самое-вызываемые прототипы

- template foo(a|trim, b|parse)
    - proto bar(a, b) => 1, 2
        ...


Тоже самое, что и

- template foo(a|trim, b|parse)
    - proto bar(a, b)
        ...
    - apply bar(1, 2)


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

Добавил перегрузку директивы else

{if 1}
    ...
{else 2} /// тоже самое, что и elseIf
    ...
{/}

{if 1}
    ...
{else if 2} /// тоже самое, что и elseIf
    ...
{/}

{if 1}
    ...
{else unless 2} /// тоже самое, что и elseUnless
    ...
{/}


ЗЫ: странно, что я с самого начала так не сделал, а ввёл новую директиву elseIf, но оставил её для совместимости.
__________________
kobezzza
code monkey

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

Сделал демку RC версии Snakeskin 4, можно поиграться.

http://jsfiddle.net/kobezzza/NAPWB/10/

Описание Jade-Like синтаксиса

Резюме:

В Snakeskin директивы размещаются в { ... }

{template foo()}
    ...
{/}


В некоторых случаях использовать такую форму не удобно (например для генерации JS-скрипта), поэтому была введена расширенная форма #{ ... }, которая работает по принципу: все вложенные директивы также должны использовать такую форму.

{template foo()}
    #{script js}
        var a = {b: #{1 + 2}};
    #{/}
{/}


В Jade-Like вместо юзает - и #

- template foo()
    # script js
        var a = {b: #{1 + 2}};


Но также у некоторых директив есть короткая форма, например, у void (?), tag(<) и т.д.

{template foo()}
    {?alert(1)} /// тоже самое, что и {void alert(1)}
{/}


В JadeLike можно использовать эти сокращения и не писать -

- template foo()
    ? alert(1) /// вместо - void alert(1) или - ? alert(1)
    #? alert(1) /// расширенная форма


Чтобы юзать Jade-Like вне шаблона, то просто берём и пишем

- var a = 1
- if a
    - global b = 2


Синтаксис можно совмещать

- var a = 1
{if a}
    - global b = 2
{/}


Но при декларации шаблона, чтобы юзать Jade-Like необходимо саму декларацию также заюзать в таком синтаксисе

- template foo()
    - var a = 1
    |- var a = 1 /// специальный символ | означает, что это текст, а не начало директивы

{template foo()}
    - var a = 1 /// просто текст
{/}
__________________
kobezzza
code monkey

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

Сам релиз 4-й версии намечен на вечер воскресения.
__________________
kobezzza
code monkey
Ответить с цитированием
  #170 (permalink)  
Старый 08.08.2014, 15:48
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

kobezzza,
нам ждать статейку на Хабре?)
Ответить с цитированием
Ответ



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

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


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