Возможна ли жизнь без шаблонизатора?

  • Tutorial
Правильный ответ — да, легко!

Практически всегда описывая устройство CleverStyle CMS у кого-то возникал вопрос, а как же настраивать внешний вид, ведь нет никаких шаблонов.
Нужно признаться, я немного лукавил, говоря, что внешний вид можно изменить с помощью CSS. Изменить-то можно, но не кардинально.
Шаблонизатора как не было, так и нет, и даже не планируется. Вместо этого для генерации простого HTML используется BananaHTML, а сам интерфейс ложится на плечи веб-компонентов и Polymer в частности.

Как я докатился до такой жизни


Шаблонизаторы по разным причинам мне не нравились всегда. В связи с этим в CleverStyle CMS есть понятие темы оформления, которая отвечает за общий облик сайта, но нет шаблонов отдельных страниц.
Во-первых если делать шаблоны отдельных страниц — вы не будете поддерживать всевозможные модули созданные сторонними разработчиками, потому будут использоваться стандартные шаблоны.
Во-вторых шаблоны не позволяют так легко наследовать, и при этом радикально менять внешний вид при необходимости (об этом речь далее).

Первоклассная поддержка веб-компонентов


Веб-компоненты появились не так давно, и есть достаточно много нюансов с их использованием, тем не менее, их удалось решить.
В связи с этим изначально было потрачено достаточно много времени на то, чтобы понять кто виноват — я, как разработчик, полифиллы, или вообще сторонние библиотеки.
Оказалось, что периодически были виноваты все.
В текущей версии CleverStyle CMS, наверное, самая надежная и в связи с этим удобная среда для использования веб компонентов.
В поставку (на момент написания статьи) входят патченные версии:

  • jQuery: исправлено поведение $.fn.offset() для элементов внутри теневого дерева (pull request), исправляет работу всплывающих подсказок и целой кучи других jQuery плагинов
  • WebComponents.js: исправлена обработка относительных путей в css файлах при наличии (pull request)
    UIkit: модифицированы стили для работы внутри теневого дерева (Скрипт для конвертации, подходит к любым стилям)
    Polymer: патч, позволяющий наследовать компоненты с теми же именами (обсуждение)

  • Используете вы CleverStyle CMS или нет, все патчи открыты и доступны, так что я рекомендую всем попробовать и выразить свое мнение в комментариях.
    За веб-компонентами будущее!

Only registered users can participate in poll. Log in, please.

Веб-компонентами пользуетесь?

  • +2
  • 10.2k
  • 5
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 5

    +1
    Шаблонизация никуда не делась: она переместилась с сервера на клиента.
      0
      Нет ни одной причины называть веб-компоненты «Веб-Компонентами», когда вы пишете по-русски.
        0
        Наследование компонента от компонента с тем же названием выглядит заманчиво. Типа как один и тот же компонент — несколько его представлений на разных страницах.

        Но есть мнение, что использование в сложных проектах такое будет порождать хаос.
          0
          Это не предполагается использовать как основной инструмент. То есть при условии что вы разрабатываете что-то и контролируете все его части такое не нужно. С другой стороны, если вы делаете компоненты, но хотите чтобы их можно было хакать — тогда это для вас.
          Если использовать это как основной инструмент при начальной разработке — получится каша, вы потеряетесь в том, кто и кого наследует, а если у вас будет только одно переопределение и вы будете точно знать где его сделали (при этом компонент написал кто-то другой и исходный вариант редактировать вы не хотите) — это мощный инструмент, вместо которого иначе придется городить ещё те костыли.
            0
            Если в библиотеке/спеке есть возможность выстрелить в ногу, в ногу будут стрелять.

            Polymer — полифилл для веб-компонентов. По определению он не должен содержать что-то нарушающее спеку (или каноничную реализацию).

        Only users with full accounts can post comments. Log in, please.