Мы вынесли в open source первые блоки библиотеки блоков bem-bl. Вместе с блоками теперь доступен JS-шаблонизатор bemhtml для разработки в терминах БЭМ, обновлённые bem-tools и клиентский JS-фреймворк i-bem.js.
- Библиотека блоков: https://github.com/bem/bem-bl
- Инструменты: https://github.com/bem/bem-tools
- Демонстрационный проект: https://github.com/bem/bem-bl-test
Среда разработки
Для работы с библиотекой блоков, нужно подготовить среду разработки:
- Node.js: https://github.com/joyent/node/wiki/Installation
- npm: http://npmjs.org/
После установки сконфигурируйте NODE_PATH:echo 'export NODE_PATH="'$(npm root -g):$NODE_PATH'"'>> ~/.bashrc && . ~/.bashrc - sudo npm install -g bem xjst ometajs
Инструменты и технологии
Опубликованные технологии создают среду для разработки блоков. Блоки, реализованные на проектах Яндекса, мы будем постепенно выкладывать в публичный репозиторий. Но главное, что уже сейчас доступно всё для самостоятельной разработки согласно методологии БЭМ (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
- deps.js
- Блок 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)
- bemhtml.js
Подробнее о технологиях можно узнать из опубликованных внутренних докладов:
- bemhtml — bem js-шаблонизатор
- xjst — низкоуровневый js-шаблонизатор
- i-bem.js — javascript блок, помогающий-делать-другие-блоки
Hello, world!
Посмотреть, как страницы собираются из блоков, можно на тестовом проекте: https://github.com/bem/bem-bl-test. Что для этого нужно сделать:
- Счекаутить проект
У проекта есть собственный уровень переопределения blocks, где лежит кастомизация ссылки. Также у него есть папка pages для страниц.
Страница example описана на bemjson: на ней должна быть кликабельная псевдоссылка. - Запустить в корнеmake
Эта команда счекаутит библиотеку блоков в корень проекта и построит html, js и css-файлы страниц по их декларативному описанию.
Забавно, фреймворк на основе гибрида JSON и XSLT
http://blog.nodejs.org/2011/07/22/node-v0-5-2/
#1348 remove require.paths (isaacs)
https://github.com/bem/be
А тут https://github.com/bem/bem-method/wiki дальше ничего нет,
при попытке зайти по ссылке
Документ одной страницей
получаешь Page does not exist!
Правильная ссылка теперь: http://bem.github.com/bem-method/html/all.ru.html
Я исправила
Конфигурация NODE_PATH в windows (7):
"Панель управления" => "Система" = "Дополнительные параметры системы" = "Дополнительно" = "Переменные среды"
В разделе "Системные переменные" надо создать переменную "NODE_PATH" со значением, которое выдаст консольная (cmd.exe) команда "npm root -g"
Проверить установку переменной можно командой echo %NODE_PATH%
Картинка-пояснялка: