Войти с помощью github
Форум /

Мы вынесли в open source первые блоки библиотеки блоков bem-bl. Вместе с блоками теперь доступен JS-шаблонизатор bemhtml  для разработки в терминах БЭМ, обновлённые bem-tools и клиентский JS-фреймворк i-bem.js.

Среда разработки

Для работы с библиотекой блоков, нужно подготовить среду разработки:

Инструменты и технологии

Опубликованные технологии создают среду для разработки блоков. Блоки, реализованные на проектах Яндекса, мы будем постепенно выкладывать в публичный репозиторий. Но главное, что уже сейчас доступно всё для самостоятельной разработки согласно методологии БЭМ (http://bem.github.com/bem-method/html/all.ru.html) :

bem-tools
Набор инструментов для работы с файлами по БЭМ-методу.
  • bem create
    Команда, позволяющая создавать файлы блоков, элементов и их модификаторов по заданным шаблонам. В bem-tools реализованы шаблоны для создания файлов в технологиях:
    • css
    • js
    • bemdecl.js
      Создаёт описание страницы в формате bemdecl.js на основе её bemjson.js
  • bem build
    Команда, собирающая файлы для страниц по их декларациям. Для сборки в  bem tools реализованы следующие технологии:
    • deps.js
      Создаёт файл, описывающий все, нужные для работы страницы блоки, основываясь на информации о зависимостях между блоками.
    • css
    • js
i-bem
      Блок i-bem — основной блок библиотеки. В нем реализовано следующее:

    • bemhtml
      JS-шаблонизатор, оперирующий терминами БЭМ. Позволяет писать шаблоны для блоков на псевдо-языке, который затем компилируется в plain JavaScript. При помощи низкоуровненого шаблонизатора xjst bemhtml-шаблоны превращаются в обычный JavaScript.
    • i-bem.js
      Фреймворк для программирования клиентского JavaScript в БЭМ-терминах.
      Реализует множество хелперов для быстрой и удобной разработки
    • Шаблоны технологии для создания через bem create и сборки через bem build файлов:
      • bemhtml.js
        Позволяет получить конечный  plain JavaSript-шаблон на основе bemhtml-шаблонов блоков страницы.
      • html
        Позволяет получить конечный html страницы путём наложения шаблонов страницы (bemhtml.js) на исходные данные (bemjson.js)

Подробнее о технологиях можно узнать из опубликованных внутренних докладов:

Hello, world!

Посмотреть, как страницы собираются из блоков, можно на тестовом проекте: https://github.com/bem/bem-bl-test. Что для этого нужно сделать:

  • Счекаутить проект
    У проекта есть собственный уровень переопределения blocks, где лежит кастомизация ссылки. Также у него есть папка pages для страниц.
    Страница example описана на bemjson: на ней должна быть кликабельная псевдоссылка.
  • Запустить в корне
    make

    Эта команда счекаутит библиотеку блоков в корень проекта и построит html, js и css-файлы страниц по их декларативному описанию.