snakeskin
Version:
Компилятор блочных шаблонов c поддержкой наследования.
213 lines (137 loc) • 7.17 kB
Markdown
## v6.4.0
- [x] [Упрощение вызова шаблонов в шаблоне](https://github.com/kobezzza/Snakeskin/issues/14);
- [x] [Добавлена поддержка анонимных самовызываемых прототипов](https://github.com/kobezzza/Snakeskin/issues/13);
```
- template foo(myData)
- proto (data) => myData
...
- if data.children
- apply &(data.children)
```
- [x] [Добавлена поддержка анонимных липких ссылок](https://github.com/kobezzza/Snakeskin/issues/12);
- [x] [Реализован механизм замыканий для экспорта глобальных переменных из вложенных файлов при наследовании](https://github.com/kobezzza/Snakeskin/issues/10);
- [x] Доработан механизм наследования параметров трансляции: общие параметры теперь наследуются тоже;
**base.ss**
```
@= localization false
- template base()
`foo`
```
**index.ss**
```
- include './base.ss'
- template index() extends base
```
```
`foo`
```
- [x] Добавлена новая директива `callBlock`, которая является сахаром для `call blocks.`;
- [x] Новые короткие формы записи:
* `apply` — `+=`;
* `call` — `^=`;
* `callBlock` — `~=`.
- [x] Добавлена ссылка `$0`, которая указывает на активный DOM элемент (только для `renderMode = 'dom'`);
```
< .b-foo
< .&__cell
? console.log($0) /// <div class="b-foo__cell"> (HTMLDivElement)
? console.log($0.parentNode) /// <div class="b-foo"> (HTMLDivElement)
? console.log($0) /// <div class="b-foo"> (HTMLDivElement)
? console.log($0) /// undefined
```
- [x] Фильтр `bem` теперь принимает 3-й параметр `node`, который ссылается на активный DOM узел (если таковой есть);
- [x] Добавлен параметр `bemFilter`;
- [x] Исправление ошибок и рефакторинг.
## v6.3.2
- [x] Исправление ошибки и рефакторинг.
## v6.3.1
- [x] Исправление ошибки.
## v6.3.0
- [x] Интерполяция тега:
```
< .b-foo.&_${isActive ? 'active_true': ''}
```
```html
<div class="b-foo b-foo_active_true"></div>
```
- [x] Липкие ссылки:
```
< .b-button
< .&__content[.&_focus_true]
```
```html
<div class="b-button">
<div class="b-button__content b-button__content_focus_true"></div>
</div>
```
- [x] Единый формат экспорта;
- [x] Сортировка имён шаблонов при слепом запуске;
- [x] Исправление ошибок и рефакторинг.
## v6.2.0
- [x] Исправление ошибок и рефакторинг;
- [x] Доработка механизма макросов;
- [x] Папка `build` переименована в `dist`.
## v6.1.3
- [x] Исправление ошибки.
## v6.1.2
- [x] Различные исправления ошибок.
## v6.1.1
- [x] Исправление ошибки.
## v6.1.0
- [x] Добавлена поддержка маски для директивы `include`.
## v6.0.6
- [x] В конце сгенерированного текста всегда ставится символ переноса строки.
## v6.0.5
- [x] Различные исправления ошибок.
## v6.0.4
- [x] Различные исправления ошибок.
## v6.0.3
- [x] Различные исправления ошибок.
## v6.0.2
- [x] Исправление ошибок в CLI API.
## v6.0.1
- [x] Различные исправления ошибок.
## v6.0.0
- [x] Параметр `.commonJS` заменён на `.exports = 'commonJS'`;
- [x] Параметр `.xml` заменён на `.doctype`;
- [x] Добавлен параметр `.lineSeparator`;
- [x] Добавлен параметр `.replaceUndef`.
## v5.1.10
- [x] Различные исправления ошибок.
## v5.1.9
- [x] Исправлена ошибка при переопределении параметров трансляции в дочернем шаблоне.
## v5.1.8
- [x] Обновлена версия `Escaper` в сборке.
## v5.1.7
- [x] Исправлена ошибка с генерацией `:inline` узла в `renderMode = 'dom'`.
## v5.1.6
- [x] Исправление ошибок в механизме экранирования спецсимволов.
## v5.1.5
- [x] Исправлена ошибка node.js кеша при подключении файлов.
## v5.1.4
- [x] Изменено сообщение об успешной операции в CLI API.
## v5.1.3
- [x] Исправлена ошибка при удалении файла в режиме `--watch`.
## v5.1.2
- [x] Исправления мелких ошибок.
## v5.1.1
- [x] Исправлена ошибка в методе `returnMainTpl`.
## v5.1.0
- [x] Добавлен новый флаг трансляции `tolerateWhitespace`;
- [x] Добавлен псевдокласс `:inline` для директивы `tag`;
- [x] Переработан механизм обработки пробельных символов.
## v5.0.0
- [x] Удалена директива `ignore`, а функциональность вынесена в настройки трансляции;
- [x] Добавлена директива `setSSFlag` для управления настройками трансляции из шаблона;
- [x] Доработка системы модулей;
- [x] Добавлена поддержка внешних блоков;
- [x] Добавлен режим трансляции в императивный DOM;
- [x] Удалён флаг `stringBuffer`, добавлен флаг `renderMode` с параметрами: `stringConcat`, `stringBuffer`, `dom`;
- [x] Удалён флаг `interface`, добавлен флаг `renderAs` с параметрами: `placeholder`, `interface`, `template`;
- [x] Доработка директивы include: добавлена поддержка модификаторов `as interface` и `as placeholder`;
- [x] Добавлена поддержка функций в качестве замены строк-локализации;
- [x] Добавлена директива `cdn`;
- [x] Добавлена поддержка `arguments` для прототипов;
- [X] Доработано CLI API:
* добавлена поддержка работы с папками;
* добавлен флаг `--watch` для автоматической перекомпиляции шаблонов.