Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time

API технологий

Пакет предоставляет следующие технологии:

bemhtml

Собирает bemhtml-файлы блоков в один файл — ?.bemhtml.js-бандл, который используется для работы как в браузере, так и в Node.js. Не требует подключения исходных файлов шаблонов.

Поддерживает YModules и частично CommonJS, так как в bemhtml.js-файлах функция require не будет работать корректно.

Если в исполняемой среде нет ни одной модульной системы, то модуль будет предоставлен в глобальную переменную BEMHTML.

Опции

Опции указываются в конфигурационном файле (.enb/make.js).

target

Тип: String. По умолчанию: ?.bemhtml.js.

Имя скомпилированного файла, куда будет записан результат сборки необходимых bemhtml-файлов проекта.

filesTarget

Тип: String. По умолчанию: ?.files.

Имя таргета, откуда будет доступен список исходных файлов для сборки. Список файлов предоставляет технология files пакета enb-bem-techs.

sourceSuffixes

Тип: String | String[]. По умолчанию: ['bemhtml'].

Суффиксы файлов, по которым отбираются файлы BEMHTML-шаблонов для дальнейшей сборки.

devMode

Тип: Boolean. По умолчанию: true.

Включает режим сборки для дальнейшей отладки. Код шаблонов не будет скомпилирован, а только обернут специальным XJST-кодом, включающим ядро XJST.

cache

Тип: Boolean. По умолчанию: false.

Включает кэширование при компиляции шаблонов.

requires

Тип: Object. По умолчанию: {}.

Задает имена или пути для подключения сторонних библиотек.

Принцип работы описан в разделе Подключение сторонних библиотек.

exportName

Тип: String. По умолчанию: BEMHTML.

Название, по которому будет доступен BEMHTML-модуль. Способы использования зависят от наличия модульной системы и ее типа. Модуль может применяться в следующих случаях:

  • Исполнение шаблонов в Node.js.

    var BEMHTML = require('bundle.bemhtml.js').BEMHTML;
    
    var html = BEMHTML.apply({ block: 'button' });
  • Исполнение шаблонов в браузере без модульной системы.

    var html = BEMHTML.apply({ block: 'button' });
  • Исполнение шаблонов в браузере c YModules.

    modules.require(['BEMHTML'], function(BEMHTML) {
        var html = BEMHTML.apply({ block: 'button' });
    });

applyFuncName

Тип: String. По умолчанию: apply.

Название функции, запускающей выполнение шаблонов.


Пример

var BemhtmlTech = require('enb-xjst/techs/bemhtml'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

 module.exports = function(config) {
     config.node('bundle', function(node) {
         // Получаем FileList
         node.addTechs([
             [FileProvideTech, { target: '?.bemdecl.js' }],
             [bemTechs.levels, levels: ['blocks']],
             bemTechs.deps,
             bemTechs.files
         ]);

         // Создаем BEMHTML-файл
         node.addTech(BemhtmlTech);
         node.addTarget('?.bemhtml.js');
     });
 };

bemtree

Собирает bemtree.xjst-файлы блоков в один файл — ?.bemtree.xjst.js-бандл, который используется для работы как в браузере, так и в Node.js. Не требует подключения исходных файлов шаблонов.

Поддерживает YModules и частично CommonJS, так как в bemtree.xjst.js-файлах функция require не будет работать корректно.

Если в исполняемой среде нет ни одной модульной системы, то модуль будет предоставлен в глобальную переменную BEMTREE.

Опции

Опции указываются в конфигурационном файле (.enb/make.js).

target

Тип: String. По умолчанию: ?.bemtree.xjst.js.

Имя скомпилированного файла, куда будет записан результат сборки необходимых bemtree.xjst.js-файлов проекта.

filesTarget

Тип: String. По умолчанию: ?.files.

Имя таргета, откуда будет доступен список исходных файлов для сборки. Список файлов предоставляет технология files пакета enb-bem-techs.

sourceSuffixes

Тип: String | String[]. По умолчанию: ['bemtree.xjst'].

Суффиксы файлов, по которым отбираются файлы BEMTREE-шаблонов для дальнейшей сборки.

devMode

Тип: Boolean. По умолчанию: true.

Включает режим сборки для дальнейшей отладки. Код шаблонов не будет скомпилирован, а только обернут специальным BEM-XJST-кодом, включающим ядро BEM-XJST.

cache

Тип: Boolean. По умолчанию: false.

Включает кэширование при компиляции шаблонов.

requires

Тип: Object. По умолчанию: {}.

Задает имена или пути для подключения сторонних библиотек.

Принцип работы описан в разделе Подключение сторонних библиотек.

exportName

Тип: String. По умолчанию: BEMHTML.

Название, по которому будет доступен BEMHTML-модуль. Способы использования зависят от наличия модульной системы и ее типа. Модуль может применяться в следующих случаях:

  • Исполнение шаблонов в Node.js.

    var BEMTREE = require('bundle.bemtree.js').BEMTREE;
    
    BEMTREE.apply({ block: 'page' })
        .then(function (bemjson) { /* ... */ });
  • Исполнение шаблонов в браузере без модульной системы.

    BEMTREE.apply({ block: 'page' })
      .then(function (bemjson) { /* ... */ });
  • Исполнение шаблонов в браузере c YModules.

    modules.require(['BEMTREE'], function(BEMTREE) {
        BEMTREE.apply({ block: 'page' })
            .then(function (bemjson) { /* ... */ });
    });

applyFuncName

Тип: String. По умолчанию: apply.

Название функции, запускающей выполнение шаблонов.

includeVow

Тип: Boolean. По умолчанию: true.

Добавляет код модуля vow версии 0.4.10 в скомпилированный файл.

Причины использования модуля vow описаны в разделе Асинхронная шаблонизация.


Пример

var BemtreeTech = require('enb-xjst/techs/bemtree'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

 module.exports = function(config) {
     config.node('bundle', function(node) {
         // Получаем FileList
         node.addTechs([
             [FileProvideTech, { target: '?.bemdecl.js' }],
             [bemTechs.levels, levels: ['blocks']],
             bemTechs.deps,
             bemTechs.files
         ]);

         // Создаем BEMTREE-файл
         node.addTech(BemtreeTech);
         node.addTarget('?.bemtree.xjst.js');
     });
 };

bemjson-to-html

Предназначен для сборки HTML-файла. Принимает на вход BEMJSON и скомпилированный ?.bemhtml.js-файл (результат работы технологий bemhtml), возвращает HTML (файл ?.html).

Опции

Опции указываются в конфигурационном файле (.enb/make.js).

target

Тип: String. По умолчанию: ?.html.

?.html-файл — результат применения скомпилированных шаблонов к указанному BEMJSON-файлу.

bemhtmlFile

Тип: String. По умолчанию: ?.bemhtml.js.

Имя файла, в котором содержатся шаблоны, скомпилированные технологией bemhtml. Используется для преобразования BEMJSON в HTML.

bemjsonFile

Тип: String. По умолчанию: ?.bemjson.js.

Имя BEMJSON-файла, к которому применится скомпилированный шаблон ?.bemhtml.js (результат работы технологии bemhtml) для получения HTML.


Пример

var BemjsonToHtmlTech = require('enb-xjst/techs/bemjson-to-html'),
    BemhtmlTech = require('enb-xjst/techs/bemhtml'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

module.exports = function(config) {
    config.node('bundle', function(node) {
        // Получает BEMJSON-файл
        node.addTech([FileProvideTech, { target: '?.bemjson.js' }]);

        // Получает FileList
        node.addTechs([
            [bemTechs.levels, levels: ['blocks']],
            bemTechs.bemjsonToBemdecl,
            bemTechs.deps,
            bemTechs.files
        ]);

        // Собирает BEMHTML-файл
        node.addTech(BemhtmlTech);
        node.addTarget('?.bemhtml.js');

        // Создает HTML-файл
        node.addTech(BemjsonToHtmlTech);
        node.addTarget('?.html');
    });
};