bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

API bemhtml/bemtree #1486

Closed Kundin closed 6 years ago

Kundin commented 6 years ago

Два вопроса:

  1. Очень интересует где я могу включить доп. опции для шаблонов, такие как закрытие одиночных элементов, аттрибуты без кавычек - читал тут https://ru.bem.info/platform/bem-xjst/8/api/ Использую bem express и я должен это делать в файле .enb/techs.js, (?) так как шаблоны подключаются там

    module.exports = {
    bemtree: require('enb-bemxjst/techs/bemtree'),
    bemhtml: require('enb-bemxjst/techs/bemhtml')
    }

    Можно какой-то элементарный пример?

  2. Как убрать стандартную обработку текста, например, мне иногда важно чтобы сохранялись переносы строк в тексте.

Realetive commented 6 years ago
  1. Почти. Конфиг задаётся уже в сборщике, т. е. в случае с bem-express — в .enb/make.js:
// .enb/make.js (xjst/bemhtml@)
// …
  node.addTechs([
    // …
    [techs.bemhtml, {
      sourceSuffixes: ['bemhtml', 'bemhtml.js'],
      forceBaseTemplates: true,
      engineOptions: {
        elemJsInstances: true,
        xhtml: false,
        omitOptionalEndTags: true,
        unquotedAttrs: true,
        runtimeLint: true
      },
    }],
    // …
  ]);
// …
  1. https://ru.bem.info/platform/bem-xjst/8/api/#%D0%AD%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 P. S. вместо изменения лучше использовать специальную директиву (как описано в доке по ссылке):
{
  content: {
    html: 'Не­раз­рыв­ный про­бел'
  }
}
Kundin commented 6 years ago

@Realetive

  1. Все работает.
  2. Как раз использовал свойство html, но переносы строк все равно съедались, сейчас решил проблему совершенно случайно - добавив white-space: pre-line; тексту. Спасибо за помощь.