{"action":"created","comment":{"url":"https://api.github.com/repos/bem/bem-xjst/pulls/comments/54264942","id":54264942,"diff_hunk":"@@ -0,0 +1,450 @@\n+# Синтаксис шаблонов\n+Пользовательские шаблоны — основная часть программы на bem-xjst. Шаблон состоит из [предиката](#predicate) и [тела](#body).\n+\n+\n+## <a name=\"predicate\"></a>Предикат шаблона\n+\n+Для каждого узла входного дерева, шаблонизатор проверяет условия, указанные в шаблонах. Эти условия называются подпредикатами и составляют предикат шаблона. Условия могут быть простыми — проверка имени блока/элемента или более сложными и составными — проверка значений произвольных полей в текущем узле BEMJSON.\n+\n+## <a name=\"list-of-predicates\"></a>Список подпредикатов\n+* [block](#block)\n+* [elem](#elem)\n+* [mod](#mod)\n+* [elemMod](#elemmod)\n+* [match](#match)\n+\n+### block\n+```js\n+/**\n+ * @param {String} name имя блока\n+ */\n+block(name)\n+```\n+В качестве blockName можно использовать [`'*'`](https://github.com/bem/bem-xjst/blob/master/docs/ru/7-runtime.md#wildcard-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B).\n+\n+Каждый шаблон должен содержать подпредикат имени блока, иначе шаблонизатор бросит ошибку: `BEMHTML error: block('…') not found in one of the templates`.\n+\n+Пример. Подпредикат блока `link`:\n+```js\n+block('link')\n+```\n+Входные данные:\n+```js\n+[\n+    // на этот блок предикат вернет `true` и шаблон будет применен\n+    { block: 'link' },\n+\n+    // на все следующие сущности предикат вернет `false` и шаблон не будет применен\n+    { block: 'para' },\n+    'link',\n+    { block: 'link', elem: 'text' }\n+]\n+```\n+\n+### elem\n+```js\n+/**\n+ * @param {String} name имя элемента\n+ */\n+elem(name)\n+```\n+Проверка элемента. В качестве elemName можно использовать [`'*'`](https://github.com/bem/bem-xjst/blob/master/docs/ru/7-runtime.md#wildcard-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B).\n+\n+\n+### mod\n+```js\n+/**\n+ * @param {String} modName имя модификатора блока\n+ * @param {String|Boolean} modVal значение модификатора блока\n+ */\n+mod(modName, modVal)\n+```\n+Проверка значения модификатора блока.\n+\n+На узел, в котором описан блок с модификатором будут применены шаблоны и на этот блок и шаблоны на этот блок с подходящими модификаторами:\n+Пример:\n+```js\n+{ block: 'page', mods: { type: 'index' } }\n+```\n+Шаблоны:\n+```js\n+block('page').tag()('body');\n+block('page').mod('type', 'index').mix()({ block: 'mixed' });\n+```\n+Оба шаблона будут применены. Результат будет:\n+```html\n+<body class=\"page page_type_index mixed\"></body>\n+```\n+\n+\n+### elemMod\n+```js\n+/**\n+ * @param {String} elemModName имя модификатора элемента\n+ * @param {String|Boolean} elemModVal значение модификатора элемента\n+ */\n+elemMod(elemModName, elemModVal)\n+```\n+Проверка значения модификатора элемента.\n+\n+На узел, в котором описан элемент с модификатором будут применены шаблоны и на этот элемент и шаблоны на этот элемент с подходящими модификаторами:\n+Пример:\n+```js\n+{ block: 'page', elem: 'content', mods: { type: 'index' } }\n+```\n+Шаблоны:\n+```js\n+block('page').elem('content').tag()('body');\n+block('page').elem('content').mod('type', 'index').mix()({ block: 'mixed' });\n+```\n+Оба шаблона будут применены. Результат будет:\n+```html\n+<body class=\"page__content page__content_type_index mixed\"></body>\n+```\n+\n+\n+### match\n+```js\n+/**\n+ * @param {Function} функция возвращающая Boolean\n+ */\n+match(function() { return … })\n+```\n+Проверка произвольного условия. В контексте функции будут доступны все [поля доступные в теле шаблона](https://github.com/bem/bem-xjst/blob/master/docs/ru/6-templates-context.md). Функция должна возвращать `Boolean`, любой другой тип будет приведен к `Boolean`.\n+\n+Порядок проверки `match` гарантируется. Порядок проверки остальных предикатов не важен.\n+\n+```js\n+block('*').match(function() { return false; })(\n+    // Тело этого шаблона не будет вызвано, потому что условие возвратило `false`\n+    ...\n+);\n+```\n+\n+### Цепочки подпредикатов\n+\n+Подпредикаты можно выстраивать в цепочки:\n+```js\n+block('page')\n+    .mod('theme', 'white')\n+    .elem('content')\n+    .match(function() {\n+        return this.ctx.weather === 'hot';\n+    })(тело_шаблона_1);\n+```\n+\n+Следующие два шаблона эквивалентны с точки зрения bem-xjst:\n+```js\n+block('link').elem('icon')(тело_шаблона);\n+elem('icon').block('link')(тело_шаблона);\n+```\n+\n+### Вложенные подпредикаты\n+Чтобы не повторять одинаковые подпредикаты, например, для блока `link`:\n+\n+```js\n+block('link').elem('icon')(тело_шаблона_1);\n+block('link').elem('text')(тело_шаблона_2);\n+```\n+\n+…можно использовать вложенную структуру: подпредикаты помещаются в тело общего подпредиката и отделяются друг от друга запятыми.\n+```js\n+block('link')(\n+    elem('icon')(тело_шаблона_1),\n+    elem('text')(тело_шаблона_2)\n+);\n+```\n+Уровень вложенности подпредикатов не ограничен.\n+\n+\n+## <a name=\"body\"></a>Тело шаблона\n+Тело шаблона — инструкции по генерации результата работы шаблонизатора над текущим узлом BEMJSON-а.\n+\n+Шаблонизация каждого узла входных данных состоит из фаз, называемых режимами. Каждый режим отвечает за генерацию отдельного фрагмента результата. Например, для BEMHTML это может быть HTML-тег, HTML-класс, HTML-атрибуты, содержание тега и т.д.\n+\n+```html\n+<!-- Режим `def` -->\n+<div <!-- открывающий и закрывающий элемент HTML-тега зависит от режима `tag` -->\n+    class=\"\n+        link   <!-- имя БЭМ-cущности строится из полей block, mods, elem, elemMods -->\n+        mixed  <!-- режим `mix` -->\n+        cls    <!-- режим `cls` -->\n+        i-bem  <!-- режим `js` -->\n+    \"\n+\n+    <!-- режим `bem` -->\n+    data-bem='{\"link\":{}}'\n+\n+    <!-- режим `attr` -->\n+    id=\"my-dom-node\"\n+>\n+    Содержимое тега <!-- режим `content` -->\n+</div> <!-- закрывающий элемент тега тоже зависит от режим `tag` -->\n+```\n+\n+Подробное описание каждой режим мы рассмотрим ниже. А пока, уделим внимание их синтаксису.\n+\n+Каждый режим это вызов функции. Нельзя передавать аргументы в сам режим. Тело шаблона это отдельный вызов функции, которая ожидает аргумент.\n+\n+```js\n+// Неправильно:\n+block('b').content('test');\n+// Будет брошена ошибка BEMHTML error: Predicate should not have arguments\n+\n+// Правильно:\n+block('b').content()('test');\n+```\n+\n+Для входных данных:\n+```js\n+{ block: 'link', url: 'https://yandex.ru', content: 'Яндекс' }\n+```\n+И шаблона:\n+```js\n+block('link')(\n+    tag()('a'),\n+    attrs()(function() {\n+        return { href: this.ctx.url };\n+    })\n+);\n+```\n+Результат шаблонизации BEMHTML будет:\n+```html\n+<a class=\"link\" href=\"https://yandex.ru\">Яндекс</a>\n+```\n+\n+### Описание стандартных режимов\n+\n+* [def](#def)\n+* [tag](#tag)\n+* [attrs](#attrs)\n+* [content](#content)\n+* [mix](#mix)\n+* [js](#js)\n+* [bem](#bem)\n+* [cls](#cls)\n+* [once](#once)\n+* [replace](#replace)\n+* [wrap](#wrap)\n+* [Пользовательские режимы](#%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B4%D1%8B)\n+\n+#### `def`\n+\n+```js\n+/**\n+ * @param {function|Array|Object[]} value\n+ */\n+def()(value)\n+```\n+Особый статус имеет режим `def` (сокращение от default), которая отвечает за генерацию результата в целом. В рамках этого режима задан набор и порядок прохождения остальных режимов, а также определена процедура сборки финального представления HTML-элемента или BEMJSON из фрагментов, сгенерированных в остальных режимах.\n+\n+Режим является особым и не стоит использовать его без особой надобности. Пользовательский шаблон переопределяющий `def` отключает вызовы остальных режимов по умолчанию.\n+\n+#### `tag`\n+```js\n+/**\n+ * @param {Function|String} name\n+ */\n+tag()(name)\n+```\n+HTML-тег. `false` или `''` укажет движку BEMHTML пропустить этап генерации HTML-тега. По умолчанию `div`.\n+\n+\n+#### `attrs`\n+```js\n+/**\n+ * @param {function|Object} value\n+ */\n+attrs()(value)\n+```\n+Хеш с HTML-атрибутами. Значения атрибутов [будут экранированны функцией attrEscape](https://github.com/bem/bem-xjst/blob/master/docs/ru/6-templates-context.md#attrescape).\n+\n+\n+#### `content`\n+```js\n+/**\n+ * @param {*} value\n+ */\n+content()(value)\n+```\n+Дочерние узлы. По умолчанию будет взято из поля content текущего узла BEMJSON.\n+\n+#### `mix`\n+```js\n+/**\n+ * @param {function|Object|Object[]} mixed\n+ */\n+mix()(mixed)\n+```\n+БЭМ-сущности, которые нужно [примиксовать](https://ru.bem.info/method/key-concepts/#Микс) к текущей.\n+\n+Пример использования:\n+```\n+block('link').mix()({ block: 'mixed' });\n+block('button').mix()([ { block: 'mixed' }, { block: 'control' } ]);\n+block('header').mix()(function() { return { block: 'mixed' }; });\n+```\n+\n+#### `js`\n+```js\n+/**\n+ * @param {function|Boolean|Object} value\n+ */\n+js()(value)\n+```\n+JS-параметры. Если значение не falsy, то миксует `i-bem` и добавляет содержимое в JS-параметры. [Подробнее про i-bem и JS-параметры](https://ru.bem.info/technology/i-bem/v2/i-bem-js-params/#Синтаксис-передачи-параметров).  Данные [будут экранированны функцией jsAttrEscape](https://github.com/bem/bem-xjst/blob/master/docs/ru/6-templates-context.md#jsattrescape).\n+\n+\n+#### `bem`\n+```js\n+/**\n+ * @param {function|Boolean} value\n+ */\n+bem()(value)\n+```\n+Указывает шаблонизатору нужно ли добавлять классы и js-параметры для самой БЭМ-сущности и её миксов. По умолчанию `true`.\n+\n+#### `cls`\n+```js\n+/**\n+ * @param {function|String} value\n+ */\n+cls()(value)\n+```\n+Добавить произвольный HTML-класс не относящийся к предметной области БЭМ.\n+\n+\n+### Режимы-хелперы\n+\n+#### `once`\n+Для одноразового применения шаблонов. Если шаблон выполнился один раз, то он больше не будет вызван в рамках одного вызова [apply](https://github.com/bem/bem-xjst/blob/master/docs/ru/7-runtime.md#apply). Пример:\n+\n+```js\n+// BEMJSON\n+[ { block: 'b' }, { block: 'b' }, { block: 'b' } ]\n+```\n+Шаблоны:\n+```js\n+block('a').once().def()('a');\n+block('b').replace()(function(){\n+    return { block: 'a' };\n+});\n+```\n+\n+Результат шаблонизации BEMHTML:\n+```html\n+a\n+<div class=\"a\"></div>\n+<div class=\"a\"></div>\n+```\n+\n+`this.reapply(BEMJSON)` сбрасывает поведение `once`. Пример:\n+\n+```js\n+// BEMJSON\n+[ { block: 'b' }, { block: 'b' }, { block: 'b' } ]\n+```\n+Шаблоны:\n+```js\n+block('a').once().def()('a');\n+block('b').replace()(function(){\n+    return this.reapply({ block: 'a' });\n+});\n+```\n+\n+Результат шаблонизации BEMHTML:\n+```html\n+aaa\n+```\n+\n+#### `replace`\n+Для подмены текущего узла (сматчились на узел, а рендерим произвольную сущность). Пример:\n+```js\n+// BEMJSON\n+{ block: 'resource' }\n+```\n+Шаблоны:\n+```js\n+block('link').tag()('a');\n+block('resource').replace()({ block: 'link' });\n+```\n+Результат шаблонизации BEMHTML:\n+```html\n+<a class=\"link\"></a>\n+```\n+`replace` нельзя использовать для замены себя с оберткой, иначе будет бесконечный цикл.\n+\n+#### `wrap`\n+Обернуть текущий узел в экстра разметку в целях HTML-верстки.\n+\n+Пример:\n+```js\n+// BEMJSON\n+{\n+    block: 'quote',\n+    content: 'Docendo discimus'\n+}\n+```\n+Шаблон:\n+```js\n+block('quote').wrap()(function() {\n+    return {\n+        block: 'wrap',\n+        content: this.ctx\n+    };\n+});\n+```\n+Результат шаблонизации BEMHTML:\n+```html\n+<div class=\"wrap\">\n+    <div class=\"quote\">Docendo discimus</div>\n+</div>\n+```\n+\n+## <a name=\"user-defined\"></a>Пользовательские режимы\n+Вы можете определить свой режим и использовать её в теле шаблона. Пример:\n+```js\n+// BEMJSON\n+{ block: 'control', name: 'username', value: 'miripiruni' }\n+```\n+Шаблон:\n+```js\n+block('control')(\n+    mode('id')('username-control'), // Пользовательский режим с именем id\n+    content()(function() {\n+        return [\n+            {\n+                elem: 'label',\n+                attrs: { for: apply('id') } // Вызов пользовательского режима\n+            },\n+            {\n+                elem: 'input',\n+                attrs: {\n+                    name: this.ctx.name,\n+                    value: this.ctx.value,\n+                    id: apply('id'),  // Вызов пользовательского режима\n+                }\n+            }\n+        ];\n+    }),\n+    elem('input').tag()('input'),\n+    elem('label').tag()('label')\n+);\n+```\n+\n+Результат шаблонизации BEMHTML:\n+```html\n+<div class=\"control\">\n+    <label class=\"control__label\" for=\"username-control\"></label>\n+    <input class=\"control__input\" name=\"username\"\n+        value=\"miripiruni\" id=\"username-control\" />\n+</div>\n+```\n+\n+Подробнее про [apply()](https://github.com/bem/bem-xjst/blob/master/docs/ru/7-runtime.md#apply).\n+\n+## BEMTREE\n+\n+Движком BEMTREE используются только пользовательские режимы, а так же [def](#def), [content](#content). Остальные режимы описанные в документации выше применимы только к BEMHTML.","path":"docs/ru/5-templates-syntax.md","position":448,"original_position":448,"commit_id":"e5c94fbf46297a342bf576d9a6fee675a9effdb7","original_commit_id":"e5c94fbf46297a342bf576d9a6fee675a9effdb7","user":{"login":"tadatuta","id":475746,"avatar_url":"https://avatars.githubusercontent.com/u/475746?v=3","gravatar_id":"","url":"https://api.github.com/users/tadatuta","html_url":"https://github.com/tadatuta","followers_url":"https://api.github.com/users/tadatuta/followers","following_url":"https://api.github.com/users/tadatuta/following{/other_user}","gists_url":"https://api.github.com/users/tadatuta/gists{/gist_id}","starred_url":"https://api.github.com/users/tadatuta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tadatuta/subscriptions","organizations_url":"https://api.github.com/users/tadatuta/orgs","repos_url":"https://api.github.com/users/tadatuta/repos","events_url":"https://api.github.com/users/tadatuta/events{/privacy}","received_events_url":"https://api.github.com/users/tadatuta/received_events","type":"User","site_admin":false},"body":"так же -> также, но я бы перефразировал, т.к. сейчас складывается впечатление, что использование пользовательских режимов поощряется, а нужно наоборот подчеркнуть, что `def` и `content` в целом хватает.","created_at":"2016-02-26T16:24:53Z","updated_at":"2016-02-26T16:24:53Z","html_url":"https://github.com/bem/bem-xjst/pull/198#discussion_r54264942","pull_request_url":"https://api.github.com/repos/bem/bem-xjst/pulls/198","_links":{"self":{"href":"https://api.github.com/repos/bem/bem-xjst/pulls/comments/54264942"},"html":{"href":"https://github.com/bem/bem-xjst/pull/198#discussion_r54264942"},"pull_request":{"href":"https://api.github.com/repos/bem/bem-xjst/pulls/198"}}},"pull_request":{"url":"https://api.github.com/repos/bem/bem-xjst/pulls/198","id":60603967,"html_url":"https://github.com/bem/bem-xjst/pull/198","diff_url":"https://github.com/bem/bem-xjst/pull/198.diff","patch_url":"https://github.com/bem/bem-xjst/pull/198.patch","issue_url":"https://api.github.com/repos/bem/bem-xjst/issues/198","number":198,"state":"open","locked":false,"title":"New docs (russian)","user":{"login":"miripiruni","id":144537,"avatar_url":"https://avatars.githubusercontent.com/u/144537?v=3","gravatar_id":"","url":"https://api.github.com/users/miripiruni","html_url":"https://github.com/miripiruni","followers_url":"https://api.github.com/users/miripiruni/followers","following_url":"https://api.github.com/users/miripiruni/following{/other_user}","gists_url":"https://api.github.com/users/miripiruni/gists{/gist_id}","starred_url":"https://api.github.com/users/miripiruni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miripiruni/subscriptions","organizations_url":"https://api.github.com/users/miripiruni/orgs","repos_url":"https://api.github.com/users/miripiruni/repos","events_url":"https://api.github.com/users/miripiruni/events{/privacy}","received_events_url":"https://api.github.com/users/miripiruni/received_events","type":"User","site_admin":false},"body":"Here is my [log about comments and corrections](https://gist.github.com/miripiruni/8616976d40f280b20313). Most of these corrections are done. But some are not. I will do it ASAP.\r\n\r\n//cc @vithar @veged @zxqfox \r\n\r\n@tadatuta we agreed that I would do it for bem.info.","created_at":"2016-02-25T00:23:40Z","updated_at":"2016-02-26T16:24:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ca8fc4f4c04aede51268f700a288a653ab487f82","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bem/bem-xjst/pulls/198/commits","review_comments_url":"https://api.github.com/repos/bem/bem-xjst/pulls/198/comments","review_comment_url":"https://api.github.com/repos/bem/bem-xjst/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bem/bem-xjst/issues/198/comments","statuses_url":"https://api.github.com/repos/bem/bem-xjst/statuses/e5c94fbf46297a342bf576d9a6fee675a9effdb7","head":{"label":"bem:new-docs","ref":"new-docs","sha":"e5c94fbf46297a342bf576d9a6fee675a9effdb7","user":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"repo":{"id":10028367,"name":"bem-xjst","full_name":"bem/bem-xjst","owner":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bem/bem-xjst","description":"XJST Compiler extensions for BEM","fork":false,"url":"https://api.github.com/repos/bem/bem-xjst","forks_url":"https://api.github.com/repos/bem/bem-xjst/forks","keys_url":"https://api.github.com/repos/bem/bem-xjst/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bem/bem-xjst/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bem/bem-xjst/teams","hooks_url":"https://api.github.com/repos/bem/bem-xjst/hooks","issue_events_url":"https://api.github.com/repos/bem/bem-xjst/issues/events{/number}","events_url":"https://api.github.com/repos/bem/bem-xjst/events","assignees_url":"https://api.github.com/repos/bem/bem-xjst/assignees{/user}","branches_url":"https://api.github.com/repos/bem/bem-xjst/branches{/branch}","tags_url":"https://api.github.com/repos/bem/bem-xjst/tags","blobs_url":"https://api.github.com/repos/bem/bem-xjst/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bem/bem-xjst/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bem/bem-xjst/git/refs{/sha}","trees_url":"https://api.github.com/repos/bem/bem-xjst/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bem/bem-xjst/statuses/{sha}","languages_url":"https://api.github.com/repos/bem/bem-xjst/languages","stargazers_url":"https://api.github.com/repos/bem/bem-xjst/stargazers","contributors_url":"https://api.github.com/repos/bem/bem-xjst/contributors","subscribers_url":"https://api.github.com/repos/bem/bem-xjst/subscribers","subscription_url":"https://api.github.com/repos/bem/bem-xjst/subscription","commits_url":"https://api.github.com/repos/bem/bem-xjst/commits{/sha}","git_commits_url":"https://api.github.com/repos/bem/bem-xjst/git/commits{/sha}","comments_url":"https://api.github.com/repos/bem/bem-xjst/comments{/number}","issue_comment_url":"https://api.github.com/repos/bem/bem-xjst/issues/comments{/number}","contents_url":"https://api.github.com/repos/bem/bem-xjst/contents/{+path}","compare_url":"https://api.github.com/repos/bem/bem-xjst/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bem/bem-xjst/merges","archive_url":"https://api.github.com/repos/bem/bem-xjst/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bem/bem-xjst/downloads","issues_url":"https://api.github.com/repos/bem/bem-xjst/issues{/number}","pulls_url":"https://api.github.com/repos/bem/bem-xjst/pulls{/number}","milestones_url":"https://api.github.com/repos/bem/bem-xjst/milestones{/number}","notifications_url":"https://api.github.com/repos/bem/bem-xjst/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bem/bem-xjst/labels{/name}","releases_url":"https://api.github.com/repos/bem/bem-xjst/releases{/id}","deployments_url":"https://api.github.com/repos/bem/bem-xjst/deployments","created_at":"2013-05-13T09:22:05Z","updated_at":"2016-02-24T11:31:33Z","pushed_at":"2016-02-26T09:06:11Z","git_url":"git://github.com/bem/bem-xjst.git","ssh_url":"git@github.com:bem/bem-xjst.git","clone_url":"https://github.com/bem/bem-xjst.git","svn_url":"https://github.com/bem/bem-xjst","homepage":"https://bem.github.io/bem-xjst","size":876,"stargazers_count":30,"watchers_count":30,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":12,"mirror_url":null,"open_issues_count":33,"forks":12,"open_issues":33,"watchers":30,"default_branch":"master"}},"base":{"label":"bem:master","ref":"master","sha":"4118f278177824cd141d3730b204608b26bfd97e","user":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"repo":{"id":10028367,"name":"bem-xjst","full_name":"bem/bem-xjst","owner":{"login":"bem","id":223412,"avatar_url":"https://avatars.githubusercontent.com/u/223412?v=3","gravatar_id":"","url":"https://api.github.com/users/bem","html_url":"https://github.com/bem","followers_url":"https://api.github.com/users/bem/followers","following_url":"https://api.github.com/users/bem/following{/other_user}","gists_url":"https://api.github.com/users/bem/gists{/gist_id}","starred_url":"https://api.github.com/users/bem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bem/subscriptions","organizations_url":"https://api.github.com/users/bem/orgs","repos_url":"https://api.github.com/users/bem/repos","events_url":"https://api.github.com/users/bem/events{/privacy}","received_events_url":"https://api.github.com/users/bem/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bem/bem-xjst","description":"XJST Compiler extensions for BEM","fork":false,"url":"https://api.github.com/repos/bem/bem-xjst","forks_url":"https://api.github.com/repos/bem/bem-xjst/forks","keys_url":"https://api.github.com/repos/bem/bem-xjst/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bem/bem-xjst/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bem/bem-xjst/teams","hooks_url":"https://api.github.com/repos/bem/bem-xjst/hooks","issue_events_url":"https://api.github.com/repos/bem/bem-xjst/issues/events{/number}","events_url":"https://api.github.com/repos/bem/bem-xjst/events","assignees_url":"https://api.github.com/repos/bem/bem-xjst/assignees{/user}","branches_url":"https://api.github.com/repos/bem/bem-xjst/branches{/branch}","tags_url":"https://api.github.com/repos/bem/bem-xjst/tags","blobs_url":"https://api.github.com/repos/bem/bem-xjst/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bem/bem-xjst/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bem/bem-xjst/git/refs{/sha}","trees_url":"https://api.github.com/repos/bem/bem-xjst/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bem/bem-xjst/statuses/{sha}","languages_url":"https://api.github.com/repos/bem/bem-xjst/languages","stargazers_url":"https://api.github.com/repos/bem/bem-xjst/stargazers","contributors_url":"https://api.github.com/repos/bem/bem-xjst/contributors","subscribers_url":"https://api.github.com/repos/bem/bem-xjst/subscribers","subscription_url":"https://api.github.com/repos/bem/bem-xjst/subscription","commits_url":"https://api.github.com/repos/bem/bem-xjst/commits{/sha}","git_commits_url":"https://api.github.com/repos/bem/bem-xjst/git/commits{/sha}","comments_url":"https://api.github.com/repos/bem/bem-xjst/comments{/number}","issue_comment_url":"https://api.github.com/repos/bem/bem-xjst/issues/comments{/number}","contents_url":"https://api.github.com/repos/bem/bem-xjst/contents/{+path}","compare_url":"https://api.github.com/repos/bem/bem-xjst/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bem/bem-xjst/merges","archive_url":"https://api.github.com/repos/bem/bem-xjst/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bem/bem-xjst/downloads","issues_url":"https://api.github.com/repos/bem/bem-xjst/issues{/number}","pulls_url":"https://api.github.com/repos/bem/bem-xjst/pulls{/number}","milestones_url":"https://api.github.com/repos/bem/bem-xjst/milestones{/number}","notifications_url":"https://api.github.com/repos/bem/bem-xjst/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bem/bem-xjst/labels{/name}","releases_url":"https://api.github.com/repos/bem/bem-xjst/releases{/id}","deployments_url":"https://api.github.com/repos/bem/bem-xjst/deployments","created_at":"2013-05-13T09:22:05Z","updated_at":"2016-02-24T11:31:33Z","pushed_at":"2016-02-26T09:06:11Z","git_url":"git://github.com/bem/bem-xjst.git","ssh_url":"git@github.com:bem/bem-xjst.git","clone_url":"https://github.com/bem/bem-xjst.git","svn_url":"https://github.com/bem/bem-xjst","homepage":"https://bem.github.io/bem-xjst","size":876,"stargazers_count":30,"watchers_count":30,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":12,"mirror_url":null,"open_issues_count":33,"forks":12,"open_issues":33,"watchers":30,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bem/bem-xjst/pulls/198"},"html":{"href":"https://github.com/bem/bem-xjst/pull/198"},"issue":{"href":"https://api.github.com/repos/bem/bem-xjst/issues/198"},"comments":{"href":"https://api.github.com/repos/bem/bem-xjst/issues/198/comments"},"review_comments":{"href":"https://api.github.com/repos/bem/bem-xjst/pulls/198/comments"},"review_comment":{"href":"https://api.github.com/repos/bem/bem-xjst/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bem/bem-xjst/pulls/198/commits"},"statuses":{"href":"https://api.github.com/repos/bem/bem-xjst/statuses/e5c94fbf46297a342bf576d9a6fee675a9effdb7"}}}}