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

kobezzza 29.08.2014 11:26

Пример использования макросов
http://jsfiddle.net/NAPWB/12/

melky 29.08.2014 11:34

kobezzza, операторы "-" "<" обязательны ?

kobezzza 29.08.2014 11:35

Цитата:

Сообщение от melky (Сообщение 328060)
kobezzza, операторы "-" "<" обязательны ?

Всмысле?

melky 29.08.2014 11:38

Цитата:

Сообщение от kobezzza (Сообщение 328062)
Всмысле?

намёк на то, что трудно у каждой конструкции писать префиксы :)

kobezzza 29.08.2014 11:40

Цитата:

Сообщение от melky (Сообщение 328063)
намёк на то, что трудно у каждой конструкции писать префиксы :)

Опять не понял, скажи подробно :)

UPD: кажется понял о чём ты. https://github.com/kobezzza/Snakeski...%D0%B8%D 1%81 - непонятно зачем я вообще писал документацию :(

Касаемо необходимости явной декларации директив - это обязательное условие, ибо иначе мы получаем дорогу в ад.

template foo()
    if i want


В Jade предлагается использовать | в таких случаях, мол экранируй строку, но это бред: представь ты скопировал текст из ворда вставил в шаблонку и ничего не работает, и ты думаешь "ой наверное где-то в тексте есть if который нужно проэкранировать".

Поэтому в SS есть строгий набор для декларации директивы (- и #), а для директив, которые поддерживают короткое сокращение можно писать сразу его.

Также в Jade считается, что первое слово - это имя тега, но по причине озвученной выше в SS это нужно также декларировать явно (директива tag, поддерживает короткое сокращение < ).

В отличии от Jade в SS нет никакой синтаксической магии и всё подчиняется строгому набору правил в рамках движка.

***

Блин тока сделал релиз, вроде всё проверил, прогнал тесты ... и теперь нашёл баг :(

melky 29.08.2014 14:19

Цитата:

Сообщение от kobezzza
UPD: кажется понял о чём ты. https://github.com/kobezzza/Snakeski...%D0%B8%D 1%81 - непонятно зачем я вообще писал документацию

я её прочитал раньше. там нет ничего об этом (короткая форма записи чутка не то)

Цитата:

Сообщение от kobezzza
Касаемо необходимости явной декларации директив - это обязательное условие, ибо иначе мы получаем дорогу в ад.

теперь понятно! спасибо. можно с уверенностью сказать, что это заложено в основе и никуда не денется

... Snakeskin.addDirective нет в документации, он не предназначен для использования извне?

kobezzza 29.08.2014 14:37

Цитата:

я её прочитал раньше. там нет ничего об этом (короткая форма записи чутка не то)
Ок, улучшу эту часть.

Цитата:

Snakeskin.addDirective нет в документации, он не предназначен для использования извне?
В принципе можно, но я подумал, что возможность расширять шаблонку мало кому нужна, если есть кейзы, то опиши их и тогда можно будет подумать над вынесением в вики инфы.

kobezzza 29.08.2014 15:17

Фух, выпустил 4.1.1 с исправлением 2-х серьёзных багов.

upd: блин... опять нашёл баг сразу после релиза, кароче 4.1.2 :)

***

Обращаю внимание на полезный макрос %lorem% - он генерит текст

"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor dolores error facilis iusto magnam nisi praesentium voluptas. Delectus laudantium minus quia sapiente sunt temporibus voluptates! Explicabo iusto molestias quis voluptatibus."

который уже по старой традиции используется как "рыба" в макетах.

kobezzza 29.08.2014 15:44

Нашёл интересное поведение директивы attr, которое я не закладывал и по сути - это баг, но больно похож на фичу и наверно я оставлю его :)

{attr ng(foo = 1)}
{attr ng-(foo = 1)}


Даст один и тот же результат :)

Т.е. если явно не задан символ разделитель (допускается - : и _), то используется - и его можно не задавать :)

kobezzza 30.08.2014 11:27

Приснилась замечательная директива cdn, которая будет содержать снипеты для подключения популярных модулей js, css и т.д. из популярных CDN google, yandex и т.д.

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

{cdn google jquery}
{cdn yandex jquery 1.8}

/// Если не задать явно CDN, то берётся первый имеющийся
{cdn fontawesome}


/// Уставновка CDN по умолчанию
{set cdn yandex}
{cdn jquery}


***

Развивая тему снипетов подумал, что было бы здорово создать снипеты для подключения метрик, вроде Яндекс.Метрика или Google Analytics.

{metrika google номерСчётчика}

Это избавило бы разработчики от необходимости следить за изменениями в коде счётчика, да и просто - это удобно.

---

Как считаете?


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