bem-md-renderer
Version:
The builder markdown to html with custom renderer, which generates the html headlines like github
34 lines (24 loc) • 2.71 kB
Markdown
# BEMHTML: шаблонизатор для БЭМ
[Youtube 1](https://youtu.be/1GWoMnYldYc)
**BEMHTML** — шаблонизатор (шаблонный движок) для тех, кто ведет веб-разработку в рамках [БЭМ-методологии](https://ru.bem.info/method).
BEMHTML — это:
* HTML-верстка в терминах блоков, элементов, модификаторов;
* поддержка CSS в стиле БЭМ;
## BEMHTML: картина мира
Этот принцип не специфичен для веб-разработки и вряд ли вызовет возражения. Тем не менее, технологические особенности многих шаблонизаторов нередко вынуждают дублировать код. Это проявляется во всех ситуациях, когда один и тот же элемент интерфейса (например, кнопка) используется многократно. В большинстве шаблонизаторов HTML-код, описывающий кнопку, придется повторить на всех страницах, где она используется. Когда кнопку потребуется усложнить, разработчику придется отредактировать шаблоны всех страниц, где она присутствует. Даже если шаблонизатор позволяет вынести код кнопки в общую функцию, на всех страницах нужно будет заменить код кнопки вызовом этой функции.
**Задача шаблонизатора: возможность создания гибких библиотек шаблонов**.
### «БЭМ головного мозга»
BEMHTML представляет собой распространение БЭМ-методологии на еще одну технологию — HTML. БЭМ предлагает дизайнеру, разработчику интерфейса, JavaScript-программисту работать в терминах единой предметной области — блоков, элементов, модификаторов. BEMHTML позволяет HTML-верстальщику присоединиться к ним.
#### Примеры
Данные (БЭМ-дерево), которые шаблонизатор принимает на вход:
```js
{
block: 'widgets',
content: [
{
elem: 'weather',
content: 4
}
]
}
```