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

Safort 19.09.2014 19:24

kobezzza,
Цитата:

сейчас посмотрел - уже 43кб, как jQuery в общем, а то и поболее.
Подумаешь! Это всего лишь на 43кб больше чем ванила)

Цитата:

Оки, сделаю раньше.
Мне кажется или ты куда-то спешишь?) Релизы SS довольно частые, Коллекшн и теперь вот ещё и плагины.

Цитата:

Можно следить за этом разработки: https://github.com/kobezzza/Snakeskin/issues
Ок. Что-то меня пугают 2 отмеченных чека из 12) Ты точно успеешь или там мелкие изменения?

kobezzza 19.09.2014 19:42

Цитата:

Подумаешь! Это всего лишь на 43кб больше чем ванила)
Мне на хабре за 15кб Collection руки гнули :D

Цитата:

Мне кажется или ты куда-то спешишь?) Релизы SS довольно частые, Коллекшн и теперь вот ещё и плагины.
Просто хочется довести до некоторой стадии очередной этап разработки и переключится на основную работу. Я думал, что SS 4 станет такой точкой, но не учёл некоторых вещей. Думаю, что это будет последний мажорный релиз SS в этом году.

Collection 5.2 вышел случайно, я просто хотел выпустить патч с фиксом багов на 5.1 и в общем то не думал возвращаться к серьёзной разработке этой либы, но как то вечером чисто ради любопытства попробовал с эмулировать потоки через генераторы и результат оказался настолько крутым и удобным, что я решил реализовать его на основе Collection.

Ну а плагины этож ерунда, меня попросили сделать для галпа, типо "официальный плагин" :)

Цитата:

Ок. Что-то меня пугают 2 отмеченных чека из 12) Ты точно успеешь или там мелкие изменения?
Ну, я буду стараться :) А вообще SS 5 практически не вводит нового, а просто доводит до ума фичи из SS 4, поэтому работа идёт довольно легко.

Safort 23.09.2014 20:59

Вижу, работа действительно легко идёт)

kobezzza 23.09.2014 21:04

Цитата:

Сообщение от Safort (Сообщение 331998)
Вижу, работа действительно легко идёт)

Угу, еще день-два нормальной работы и все:)

kobezzza 24.09.2014 14:48

Почти закончил работу, думаю в эту пятницу будет релиз.

kobezzza 25.09.2014 18:15

Пипец, весь день протрахался с багом... забыл что в Win перевод строки \r\n, а не \n :-E

melky 25.09.2014 19:30

Цитата:

Сообщение от kobezzza (Сообщение 332257)
Пипец, весь день протрахался с багом... забыл что в Win перевод строки \r\n, а не \n :-E

require('os').EOL
???

kobezzza 25.09.2014 19:35

Цитата:

Сообщение от melky (Сообщение 332260)
require('os').EOL
???

Не всё так просто :)

kobezzza 26.09.2014 14:59

Цитата:

Сообщение от kobezzza (Сообщение 332103)
Почти закончил работу, думаю в эту пятницу будет релиз.

Из-за нестабильности перенёс релиз на воскресение :(

kobezzza 28.09.2014 17:37

Цитата:

Сообщение от kobezzza (Сообщение 332356)
Из-за нестабильности перенёс релиз на воскресение :(

К сожалению всё ещё не поборол баги, надеюсь завтра закончу :(

Safort 28.09.2014 18:01

kobezzza,
В ишью: #2 opened 14 days ago by kobezzza 12 of 13
Смотрю, чека нет только на "Добавление плагина для Gulp".
Вспоминаю цитату:
Цитата:

Сообщение от kobezzza (Сообщение 330469)
Попросили, а вообще там делов на 10 минут :)

Ну вот, а говорил на 10 минут :)

kobezzza 28.09.2014 18:08

Safort, да не, просто там нет чека "баги-баги-баги" :D

Safort 28.09.2014 22:43

kobezzza,
а отменить уже чекнутые пункты нельзя?

kobezzza 29.09.2014 01:50

Цитата:

Сообщение от Safort (Сообщение 332595)
kobezzza,
а отменить уже чекнутые пункты нельзя?

Можно:)

kobezzza 29.09.2014 16:08

Вроде как закончил, но мержить с мастером решил завтра, на свежую голову так сказать :)

Safort 29.09.2014 18:36

kobezzza,
постой! А как же мой плагин для Галпа? Он одинёшенек не чекнутый остался(

kobezzza 29.09.2014 18:44

Цитата:

Сообщение от Safort (Сообщение 332693)
kobezzza,
постой! А как же мой плагин для Галпа? Он одинёшенек не чекнутый остался(

Не переживай, сразу после релиза я обновлю Grunt плагин, а вместе с ним Gulp :) Завтра всё будет


Safort 29.09.2014 18:48

kobezzza,
ух, прям от сердца отлегло)

Safort 29.09.2014 20:28

Возможно я что-то не понял, но у меня не компилится этот код из доки:

/// Классический синтаксис
{template index(name)}
  /// Конструкция будет показана как текст
  < h1
    {name}
{end}


Выкидывает такую ошибку:
SnakeskinError: invalid XML declaration, line: 12
-----------------------------------------------
  ...
  5    /// Конструкция будет показана как текст
  ...
  7    < h1
  ...
  9    {name.text}
  ...
  11 {end}
> 12
-----------------------------------------------



https://github.com/kobezzza/Snakeski...%D0%B8%D 1%81

Safort 29.09.2014 20:55

И ещё вопрос: как можно сделать так, чтобы SS не уничтожал мои любимые переносы между тегами?
На данный момент, я периодически проверяю себя, правильно ли я написал разметку, но SS по умолчанию делает всё в одну строку и я страдаю(

kobezzza 29.09.2014 21:22

Цитата:

Возможно я что-то не понял, но у меня не компилится этот код из доки
Это мой недочёт, дело в том, что по умолчанию включён флаг xml и он ругается, если вдруг скобка незакрытая или кривой атрибут задан.

Пример будет работать если отключить флаг xml, подправлю эту главу.

Но чтобы передать смысл того описания:

/// Классический синтаксис
{template index(name)}
  /// Конструкция будет показана как текст
  : a = 1
  {name}
{end}


Цитата:

И ещё вопрос: как можно сделать так, чтобы SS не уничтожал мои любимые переносы между тегами?
Поясни, что ты имеешь ввиду (лучше с примером).

Safort 29.09.2014 21:43

kobezzza,
Цитата:

Поясни, что ты имеешь ввиду (лучше с примером).
допустим у меня такой шаблон
- template index(name)
  <!DOCTYPE html>
  < html
    < head
      < title :: {name}
    < body
      < h1 
        контент


Он компилится в
<!DOCTYPE html> <html><head><title>_содержимое name_</title></head><body><h1>контент</h1></body></html>


а мне надо так

<!DOCTYPE html> 
<html>
  <head>
    <title>_содержимое name_</title>
  </head>
  <body>
    <h1>контент</h1>
  </body>
</html>

kobezzza 29.09.2014 21:51

Ты используешь что ли компиляцию с флагом --exec? Если да, то задай флаг --pretty-print.

А если компилишь в функцию, а потом вызываешь ее, то никак. А зачем это нужно? SS схлопывает смежные пробелы в 1. Я не понимаю твой кейз, опиши его целиком: как компилишь, во что сохраняешь и т.д.

Safort 29.09.2014 22:03

kobezzza,
не, без всяких флагов.
Делаю, например, так:
var fs = require('fs');
var snakeskin = require('snakeskin');

var tpl = fs.readFileSync('views/index.ss', 'utf-8');
var tpls = {};
snakeskin.compile(tpl, { context: tpls });

var content = tpls.index("_содержимое name_");




Цитата:

А если компилишь в функцию, а потом вызываешь ее, то никак.
Жаль ;(

Цитата:

А зачем это нужно?
Чтобы я мог посмотреть код в удобочитаемом виде)

kobezzza 29.09.2014 22:22

А почему ты не юзаешь SS node API?

var snakeskin = require('snakeskin');
var tpls = snakeskin.compileFile('views/index.ss');
var content = tpls.index('_содержимое name_');


Или

var snakeskin = require('snakeskin');
var content = snakeskin.execFile('views/index.ss')('_содержимое name_');


Чтобы сделать бьютифайл для своего HTML заюзай модуль

https://www.npmjs.org/package/js-beautify

var beautify = require('js-beautify').html;
var content = beautify(tpls.index("_содержимое name_"));


***

Почему это не нужно в SS: бьютифайлинг - это отдельная задача (причём довольно объёмная) и решает её отдельный инструмент, поэтому глупо будет пихать его в SS (unix way таки :)), однако в CLI API такая фича из коробки есть, но там в рамках параметра --exec для для использования SS как движка для статичных сайтов.

Safort 01.10.2014 00:18

kobezzza,
Цитата:

А почему ты не юзаешь SS node API?
1. Потому, что ночь и я дурак.
2. Потому, что как-то забыл про него.
3. Потому, что пока не знаю, как с его помощью взять исходник шаблона из одной папки и создать компилированную версию в другой.

Как-то так :)


Цитата:

Чтобы сделать бьютифайл для своего HTML заюзай модуль
О! Спасибо, совсем забыл про бьютифаи)

kobezzza 03.10.2014 12:33

Фух, давно не писал о новостях:

1) Выпустил апдейт 5.1.3.

В версии 5.1 была улучшена работа с пробельными символами: добавлен параметр tolerateWhitespace, при котором SS вставляет символы "как есть".

Также в директиве tag добавлена возможность явной декларации инлайн тегов, т.е. тех, которые сразу закрываются.

< my-tag:inline /// <my-tag/>


2) Обновил плагин для Grunt, сделал плагин для Gulp.

***

В ближайшее время обновлю доку.

kobezzza 03.10.2014 12:43

Цитата:

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

Safort 03.10.2014 21:24

kobezzza,
да я уже решил проблему) Тем более, что теперь ты выпустил плагин для Галпа)

kobezzza 04.10.2014 11:10

Выпустил патч 5.1.7.

PS: когда же кончаться баги :(

kobezzza 06.10.2014 17:31

Выпустил патч 5.1.10.
Обновил доку.

kobezzza 09.10.2014 14:27

Готовится к релизу SS 6.0:

1) Параметр .xml заменён на .doctype, для которого можно задать 'html' или 'xhtml';
2) Параметр .commonJS заменён на .exports = 'commonJS', т.к. помимо commonJS будет global и requirejs;
3) Добавлен параметр .replaceUndef;
4) Добавлен параметр .lineSeparator.

В остальном исправления ошибок и небольшие доработки.

Safort 09.10.2014 19:15

kobezzza,
Цитата:

Готовится к релизу SS 6.0
Воу-воу, тебя разрабы Хома не покусали часом?)
//как я понимаю, это всё из-за semver'а?

kobezzza 09.10.2014 19:25

Цитата:

Сообщение от Safort (Сообщение 334471)
kobezzza,

Воу-воу, тебя разрабы Хома не покусали часом?)

:D

Цитата:

Сообщение от Safort (Сообщение 334471)
//как я понимаю, это всё из-за semver'а?

Угу, просто вносятся несовместимости с прошлой версией, поэтому нужно обновить мажорную цифру, а вообще это будет просто большой патч с исправлениями багов.

kobezzza 10.10.2014 16:36

Закончил работу над 6-й версией SS, завтра обновлю доку.

ЗЫ: тока ща обратил внимание, что исходный код уже 17k, жесть :)

kobezzza 11.10.2014 11:43

Выпустил патч 6.0.3.
Обновил доку.

nerv_ 11.10.2014 12:13

Цитата:

Сообщение от kobezzza
Выпустил патч 6.0.3.
Обновил доку.

Знаю, что надоел это ссылкой, но, есть у меня самоиграйка. Так вот, проблема мажорной версии для меня в том, что надо писать migrate и быть готовым к куче вопросов на этот счет.

Ты хоть ссылки кидай на релизы, а то ходить далеко =)

kobezzza 11.10.2014 12:20

Ну с недавнего времени для всех своих проектов я веду лог изменений, например,
https://github.com/kobezzza/Snakeski...ter/HISTORY.md

Цитата:

Ты хоть ссылки кидай на релизы, а то ходить далеко =)
Оки

ЗЫ: думаю, что 6-я версия будет последней мажорной, т.к. вроде шаблонка за 2 года разработки полностью состоялась (для меня это был колоссальный опыт) и теперь разве что будут делать патчи и добавлять фичи по мере надобности.

Safort 11.10.2014 12:32

kobezzza,
Цитата:

ЗЫ: тока ща обратил внимание, что исходный код уже 17k, жесть
Как ты управляешься с таким объёмом кода в одиночку?

kobezzza 11.10.2014 12:36

Цитата:

Сообщение от Safort (Сообщение 334829)
kobezzza,

Как ты управляешься с таким объёмом кода в одиночку?

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


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