Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

kobezzza 06.07.2015 01:04

Цитата:

Если я не туплю, to SS на сервере генерит html а на клиенте его подхватывает ангуляр?)
Или я как обычно туплю?)
SS - это язык описания шаблонов транслируемый в JS, сахар, такой же как CoffeeScript / TypeScript. Поэтому ему пофиг где исполняться. У меня на работе SS крутиться на этапе сборки как gulp таск.

- template helloWorld(name = 'world')
  < h1 :: Hello {name}!


После трансляции превратится в

/* Snakeskin v6.5.21, key <default,false,\n,xml,false,false,,stringConcat,true,true,true,,false,true,i18n,bem,true>, label <1420975710654>, includes <>, generated at <1421479907753>.
   This code is generated automatically, don't alter it. */
(function() {
    'use strict';
    var __IS_NODE__ = false,
        __AMD__ = typeof define === 'function' && define.amd,
        __HAS_EXPORTS__ = typeof exports !== 'undefined',
        __EXPORTS__ = __HAS_EXPORTS__ ? exports : __AMD__ ? {} : this;

   try {
        __IS_NODE__ = typeof process === 'object' && Object.prototype.toString.call(process) === '[object process]';
    } catch (ignore) {}

    var Snakeskin = (__IS_NODE__ ? global : this).Snakeskin;

    function __INIT__(obj) {
        Snakeskin = Snakeskin || (obj instanceof Object ? obj : void 0);
        if (__HAS_EXPORTS__) {
            delete __EXPORTS__.init;
        }
        if (__AMD__) {
            define(['Snakeskin'], function(ss) {
                Snakeskin = Snakeskin || ss;
                __EXEC__.call(__EXPORTS__);
                return __EXPORTS__;
            });

        } else {
            if (__IS_NODE__) {
                Snakeskin = Snakeskin || require(obj);
            }
            __EXEC__.call(__EXPORTS__);
            return __EXPORTS__;
        }
    }

    if (__HAS_EXPORTS__) {
        __EXPORTS__.init = __INIT__;
    }

    function __EXEC__() {
        var __ROOT__ = this,
            self = this;
 
       var __APPEND__ = Snakeskin.appendChild,
            __FILTERS__ = Snakeskin.Filters,
            __VARS__ = Snakeskin.Vars,
            __LOCAL__ = Snakeskin.LocalVars;
        __LOCAL__.$__0_4806f = void 0; /* Snakeskin template: helloWorld; name  */

        var helloWorld = this.helloWorld = function helloWorld(name) {
            var __THIS__ = this,
                __CALLEE__ = __ROOT__.helloWorld,
                callee = __CALLEE__;
 
           if (!callee.Blocks) {
                var __BLOCKS__ = __CALLEE__.Blocks = {},
                    blocks = __BLOCKS__;
            }
 
           var __RESULT__ = '',
                __COMMENT_RESULT__, __NODE__, $0;

            function getTplResult(opt_clear) {
                var res = __RESULT__;
                if (opt_clear) {
                    __RESULT__ = '';
                }
                return res;
            }

            function clearTplResult() {
                __RESULT__ = '';
            }
 
           var __RETURN__ = false,
                __RETURN_VAL__;

            var TPL_NAME = "helloWorld",
                PARENT_TPL_NAME;
 
           name = name != null ? name : 'world';
            __RESULT__ += '<h1>Hello ';
            __RESULT__ += __FILTERS__.html(__FILTERS__.undef(name), false, false);
            __RESULT__ += '!</h1> ';
            return __RESULT__;
        };
 
       Snakeskin.cache["helloWorld"] = this.helloWorld; /* Snakeskin template. */
    }

    if (!__IS_NODE__ && !__HAS_EXPORTS__) {
        __INIT__();
    }
}).call(this);

Gozar 06.07.2015 02:05

Цитата:

Сообщение от cyber
SS на сервере генерит html а на клиенте его подхватывает ангуляр?

ss обычно состоит из двух файлов .ss и ss.js. В ss шаблон, в ss.js javascript. Типа как stylus .styl и .css

Я на клиенте подключаю сгенеренные шаблоны в <header
<script src="tpl/menu.ss.js


а вызываю конструктором:
Snakeskin.cache[name](data); //например: Snakeskin.cache['menu'](data)


kobezzza не описал это подробно, наверное думает, что это и так ясно :)

kobezzza 06.07.2015 13:08

Цитата:

kobezzza не описал это подробно, наверное думает, что это и так ясно
Ну, я просто думал, что все будет удобнее юзать явный экспорт по имени, а cache добавил для своих нужд, но раз есть кейзы где удобнее юзать его, то я опишу это в доке + в SS7 будет поддержка ES6 модулей.

Zend 06.07.2015 18:02

Цитата:

Сообщение от kobezzza
как gulp

а как же вебпак? я думал такими динозаврами один я пользуюсь

kobezzza 06.07.2015 18:12

Цитата:

Сообщение от Zend (Сообщение 377896)
а как же вебпак? я думал такими динозаврами один я пользуюсь

Будет плагинчик, но gulp и webpack разные вещи и я юзаю их одновременно.

cyber 06.07.2015 23:51

kobezzza, ты говорил что юзаешь аналог jsdoc ? Не могу найти как называется

kobezzza 07.07.2015 00:09

Цитата:

Сообщение от cyber (Сообщение 377954)
kobezzza, ты говорил что юзаешь аналог jsdoc ? Не могу найти как называется

Эмммм, даже не знаю, о чём ты :)

Мб про Flow? Но это говнище.

Gozar 07.07.2015 00:21

Цитата:

Сообщение от cyber
ты говорил что юзаешь аналог jsdoc ?

Наверное TypeScript :D

Safort 07.07.2015 08:13

Gozar,
лол))

nerv_ 09.07.2015 23:23

Цитата:

Сообщение от Gozar
https://www.jetbrains.com/phpstorm/whatsnew/

спасибо, перешел на девятую версию :)

Цитата:

Сообщение от Gozar
Я под линем использую phpstorm, grunt+babel. Про эклипс забыл где-то года 2-3 назад, посматриваю на Atom как на текстовый редактор, но он ещё сыроват, подумываю о gulp т.к. grunt затуплять потихоньку начинает.

сам сегодня поставил галп, ибо грант:
1. надоел тупить
2. не нравился с самого начала

---

upd:
Кто-нибудь пишет на node.js es6? Сегодня поставил 0.12.6 модули не заработали...
es5 достал уже)


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