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

kobezzza 19.12.2015 14:19

Mаxmaxmаximus, я уже давно использую подход, когда шаблонка генерит HTML для либы биндинга, вот например код из моего проекта (Snakeskin + Vue)

- include '../i-data/i-data' as placeholder

- template [%fileName%](params) extends ['i-data']
  - block body
    - super
    - block button
      < button.&__button :type = type | :form = form
        < span.&__wrapper
          < span.&__cell.&__pre-icon v-if = preIcon
            < b-icon :value = preIcon
            &nbsp;

          < span.&__cell.&__value
            <slot></slot>

          < span.&__cell.&__icon v-if = icon
            /// Вызов другого компонента Vue с параметром value
            < b-icon :value = icon

          < span.&__cell.&__progress-bar
            - wrap callBlock progress()
              < b-icon :value = 'cog'


А вообще, коль уж ты удумал велосипедить, то глянул бы https://github.com/SnakeskinTpl/Snakeskin, я уже 3 года пилю этот движок, так что многое можешь у меня подсмотреть, тем более дока на вики весьма подробна.

Mаxmaxmаximus 19.12.2015 18:42

Цитата:

Сообщение от kobezzza
коль уж ты удумал велосипедить

Никогда непонимал почему люди часто ошибочно назывюат новые разработки велосипедами) Это же так тупо, типа был велосипед, потом люди начали делать тачку, разрабатывают испытывают, идет старикашка мимо и такой "хех, тот же велосипед тока с мотором) нет чтобы готовое использовать, от молодеж" )) хотя я понимаю что ты пошутил но ситуация распространена) быдло это вообще от зависти говорит или че? или релаьно тупят и не понмиают значение слова "изобретать велосипед"? это же имеется ввиду писать то что уже есть просто не знать об этом, а кога новое пишешь то что лучше существующего это не называется велосипедом.

Или быдло типа думает что если пишешь допустим игровой движок, а уже до этого существовали движки, и ну РАЗ И ТУТ ДВИЖОК И ТАМ ДВИЖОК ТО ЗНАЧИТ ВЕЛОСИПЕД)) и пофиг что ты пишешь лучше и таким образом развиваешь индустрию, типа раз там название "Движок" и там "движок" то мозг быдла не анализирует сами движки, а думает приметивно "ну раз чел делает движок, а движок до этого уже был, значит он делает то что до этого уже было, значит надо испольозвать поговорку про велосипед" типа того)?

Цитата:

Сообщение от kobezzza
https://github.com/SnakeskinTpl/Snakeskin

фу какой он некрасивый) я за один час придумал движок красивее чем твой) не в обиду но это так
меня интересует чисто истетическя красота кода для пользователя (то есть программиста) это примерно 90% важости для меня)

а зачем ты пишешь < если и так очевидно что слово это тег? люди гораздо чаще именно теги пишут чем какой то текстовый контент, по этиому я бы ДЛЯ ТЕКСТА придумал какой то спец символ типа | а для тегов не должно быть ничего, просто слово и все, это более логично чем у тебя) ужасный шаблонизатор просто, просто непродуманый, ты уж извини но я правду говорю. вот именно из за такого бреда на рынке я и пилю свои решения, и удивляюсь когда кто то выдает стайлус и кофескрипт или джейд, которые сделаны такими какими бы их сделал Я. элементарные логические вычисления произведены разрабоичиком. это чувствуется. а у тебя нет.

вот зачем теги выделять < если они чаще чем текст пишутся? значит надо было выделитель текста придумать а не тегов. вот пример логической непродумки. и такое сплош и рядом) ну как тут не пилить свой шаблонизатор?

кстати надо у джейда тырить тогда уж раз я под него кошу

kobezzza 19.12.2015 18:53

Цитата:

а зачем ты пишешь < если и так очевидно что слово это тег?
Не очевидно, особенно если я генерирую XML (например, SVG), а не HTML. К тому же я могу генерить любой текст, а не HTML впринципе, поэтому за создание тегов отвечает директива tag.

Цитата:

фу какой он некрасивый) я за один час придумал движок красивее чем твой) не в обиду но это так
Меня интересует чисто истетическя красота кода для пользователя (то есть программиста) это примерно 90% важости для меня)
Для меня важное гибкость и сахарные коробочные механизмы code-reuse. К тому же красота понятие относительное.

Цитата:

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

Mаxmaxmаximus 19.12.2015 19:00

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





Кстати я не вижу ни одной причины логику в препроцессинг добавлять, она вообще есть? Я же чисто для юишки делаю шаблоны а там хочется чтобы логика динамическая была

kobezzza 19.12.2015 19:04

Цитата:

оо слушай, я у тебя тогда много других штук подчерпну всякие наследования миксины и прочее
Поэтому я и дал тебе ссылку. Там очень много интересных фич, которых ты не найдёшь в других движках, я объективно могу доказать, что SS самый функциональный движок для JS, а синтаксис дело вкуса - я делаю под свои взгляды и для себя и мне он нравится.

Цитата:

Кстати я не вижу ни одной причины логику в препроцессинг добавлять, она вообще есть? Я же чисто для юишки делаю шаблоны а там хочется чтобы логика динамическая была
У меня SS движок общего назначения, поэтому я использую его на сервере, на клиенте, как препроцессор для других либ (Angular, React, Vue), поэтому для меня кейзы есть.

Mаxmaxmаximus 19.12.2015 19:08

Цитата:

Сообщение от kobezzza
я объективно могу доказать, что SS самый функциональный движок для JS

Я с тобой согласен, пригляделся, оч круто (синтаксис говнище лютейщее просто я когда посмотрел сгенереный html даже он мне показался КРАСИВЕЕ КАРЛ, это повод задуматься над синтаксисом серьезно если шаблонизатор выглядит корявее того что он билдит), но я вот думаю, по скольку я пишу шаблонизатор чисто под юишку а в юишке логика динамическая, то имеет ли смысл логику в препроцессинг включать? Я думаю нет, ибо это меня сильно беист всегда. Я хочу использовать синтаксис логики джейда но сделать его динамическим рантаймовым.

Имеет ли смысл делать логику препроцессинга? Например может это нужно при наследованиях всяких? типа тут див подцепи если у родителя не спан. но тогда логику надо будет делать на основе имено html разметки а не на основе яваскрипт данных. Ну то есть я могу напистаь логику в стиле посмотреть есть ли тег, если атрибут меньше то.. и.т.п. но ни какие яваскрипт данные в шаблонизатор мы передавать не должны ибо только в рантайме это будет происходить.

Ну вот я и думаю. Имеет ли смысл делать логику препроцессинга?

kobezzza 19.12.2015 19:10

Цитата:

Ну вот я и думаю. Имеет ли смысл делать логику препроцессинга?
Для лексического наследования императивщина не нужна, а вот для других типов наследования - примеси, композиция, декораторы - нужна. Почитай доку SS и пойми, что тебе нужно.

Mаxmaxmаximus 19.12.2015 19:11




чет проиграл))))

Mаxmaxmаximus 19.12.2015 19:12

О, а вот щас уже не смешно


kobezzza 19.12.2015 19:14

А что тебе тут не нравится, кроме того, что теги нужно создавать директивой? & (как в Stylus) - это ссылка на родительский класс, для БЭМ, а так больше я ничего и не вижу.

Кстати, СС (как и Стилус) поддерживает 2 синтаксиса:

- template hello(name = 'world')
  < .hello
    Hello {name}!


{template hello(name = 'world')}
  <div class="hello">
    Hello {name}!
  </div>
{/template}


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