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

clecar 12.02.2016 23:13

А почему, сообщения не все проходят?

kobezzza 13.02.2016 00:06

Цитата:

Сообщение от clecar (Сообщение 407523)
уж то жто делать, как душе угодно я как то сразу ещё год назад понял, лиш бы работало и некого не трогать, не суваться в редакторры любого типа. Читаю ВАС второй год пользы 0, пониммания дай бог 50%. Но интересно, может прозрею?

wat?

***

Выпустил очередной патч - beta13.

kobezzza 21.02.2016 17:28

Выпустил beta18 с исправлением 4-х критических багов.

kobezzza 02.03.2016 01:13

Выпустил beta23 (думаю скоро уже будет стейбл релиз), к сожалению документацию ещё не готова и наверное будет делать еще где то месяц, т.к. в этом месяце ушло слишком много времени и сил на стабилизацию релиза, тесты и т.д.

nerv_ 02.03.2016 10:56

Цитата:

Сообщение от kobezzza
т.к. в этом месяце ушло слишком много времени и сил на стабилизацию релиза

Откуда у тебя вообще столько времени :)

kobezzza 02.03.2016 12:44

Цитата:

Сообщение от nerv_ (Сообщение 409726)
Откуда у тебя вообще столько времени :)

Я робот которого построил Максимус, тока тссс :D

yazonnile 02.03.2016 16:10

О, привет! Вчера как раз наткнулся на вас на гите. Долго вспоминал, где же я уже видел такое.

Вы мне помогали запустить loader. Спасибо, кстати.

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


Теперь, если разрешите, к сути.
Думаю вы и без меня это знаете, но очень не хватает документации.
Сейчас начинаю новый достаточно крупный проект. И система темплеитов в неимспеисе мне очень нравится.
Т.е в одном файле можно описать шаблоном весь модуль. И функциями дергать нужную часть. Замечательно же!
Но вот не могу ничего стоящего сделать. Все-время натыкаюсь на проблемы. Лезу в тесты, чтобы посмотреть хотя бы примеры кода. Но выручают слабо(

Первый же пример. Создал тестовый темплеит
import { testModule } from './template.ss';

console.log(
	testModule.markup({
		buttonText: 'Кнопка'
	}),

	testModule.mainCode({
		toggleClass: 'active'
	})
);


- namespace testModule

- template markup(@params)
	< button
		{ @buttonText }

- template mainCode()
	# op
		$('.button').on('click', function() {
			$(this).toggleClass('activsssse');
		});


Все работает. Но если темплеит mainCode будет большой, то очень неудобен отступ слева в два таба.

Я пошел дальше. Обнаружил такое
Темплеит можно обьявить так
{ template mainCode() }
{/ template }

Но тут возникла другая проблема. Фигурные скобки вырезает из шаблона. А вот эту вот опцию "op" я не придумал куда ставить :)..

В общем, спасибо за интересный инструмент. Ждем доки. А пока что-то другое придется использовать.

kobezzza 02.03.2016 17:03

Цитата:

Думаю вы и без меня это знаете, но очень не хватает документации.
Угу, всё конечно будет.

Цитата:

то очень неудобен отступ слева в два таба.
Можно настроить отображение таба как 2 пробела, или да же один, или просто использовать пробелы :)

Цитата:

Темплеит можно обьявить так
Да, SS поддерживает 2 вида синтаксиса.

Цитата:

Но тут возникла другая проблема. Фигурные скобки вырезает из шаблона.
Самый простой способ - это использование расширенного синтаксиса, он специально для этого создан. Его механизм не изменился с 6-й версии, поэтому инфа в доке по нему актуальна, но вообще там всё просто:

{template foo()}
  /// Допустим нам нужно объявить какой то JS:
  /// просто декларируем директиву в синтаксисе #{ ... }
  /// и все вложенные директивы будут работать с таким же синтаксисом
  #{script}
    var a = {a: 1, b: #{1 + 2}};
  #{/}
{/}


Также можно использовать универсальный символ экранирования - \. Но в данном кейзе он не оч удобен.

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


Цитата:

В общем, спасибо за интересный инструмент. Ждем доки. А пока что-то другое придется использовать.
Спасибо за интерес к проекту. Дока, гайд и примеры обязательно будут.

yazonnile 02.03.2016 18:07

Цитата:

Сообщение от kobezzza (Сообщение 409748)
Можно настроить отображение таба как 2 пробела, или да же один, или просто использовать пробелы :)

Но задача в том, чтобы отступа не было в принципе, а не в размере :)

Цитата:

Сообщение от kobezzza (Сообщение 409748)
Самый простой способ - это использование расширенного синтаксиса, он специально для этого создан. Его механизм не изменился с 6-й версии, поэтому инфа в доке по нему актуальна, но вообще там всё просто:

{template foo()}
  /// Допустим нам нужно объявить какой то JS:
  /// просто декларируем директиву в синтаксисе #{ ... }
  /// и все вложенные директивы будут работать с таким же синтаксисом
  #{script}
    var a = {a: 1, b: #{1 + 2}};
  #{/}
{/}
.

Такое я тоже пробовал. Но задача другая :)
Получить через темплеит в некоторых случаях html разметку. В других JS код.

К примеру вот руки просятся написать что-то типа такого
- namespace testModule

{ template markup(@params) }
<button>{ @buttonText }</button> // Обычная разметка
{/ template }


{ template mainCode() @= tolerateWhitespaces true @= renderMode 'raw' } // отображать как есть. Правда я не понимаю, как тогда здесь ставить переменные :)
var a = { 1: 2 };
{/ template }

kobezzza 02.03.2016 18:40

Цитата:

Но задача в том, чтобы отступа не было в принципе, а не в размере
Хозяин - барин, используй классический синтаксис :)

Цитата:

Получить через темплеит в некоторых случаях html разметку. В других JS код.
- namespace demo

- template myButton(@params)
 < .button
   {@value}

#{template myJS(foo)}
var a = {
  foo: 'bar'
  bla: #{1 + 2},
  baz: '#{foo ? "baz" : "bla"}'
};
#{/}


Цитата:

@= tolerateWhitespaces true
Для генерации JS этот флаг не нужен, это актуально если мы генерируем какой-нибудь формат, который основан на управляющих пробелах, например markdown.

Цитата:

@= renderMode 'raw'
По умолчанию шаблоны возвращают просто строки, причём их содержимое может быть любым, доступны из коробки следующие форматы:

stringConcat - по умолчанию, строки получаются через конкатенацию;
stringBuffer - также строка, но строки создаёются через класс Snakeskin.StringBuffer;
dom - шаблон возвращает DocumentFragment.


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