(ВОЗМОЖНЫЕ) ПРЕРЫВАЮЩИЕ ИЗМЕНЕНИЯ:
Поэтому мы увеличиваем только версию патча, несмотря на упоминание прерывающих изменений.
Улучшение/Поддержка:- #1672 - Переключение парсера команд на последнюю версию minimist (@dougwilson)
Примечания по совместимости:
Улучшение/Поддержка:
Примечания по совместимости:
Улучшение/Поддержка:
Примечания по совместимости:
Улучшения/Поддержка:
Исправления ошибок:
Примечания о совместимости:
Коммиты## v4.7.2 - 13 января 2020 года
Исправления ошибок:
Улучшения/Сборка:
Примечания о совместимости:
Исправления ошибок:
Примечания о совместимости:
Новые возможности:
Примечания о совместимости:
Новые возможности:
Исправления ошибок:
fix(runtime.js): компиляция частей не кэшируется (#1600) - 23d58e7Улучшения, документация:
различные улучшения и рефакторинг тестов - d7f0dcf, 187d611, d337f40
модернизация процесса сборки
изменения правил eslint - ac4655e, dc54952
обновление года (C) в LICENSE файле - d1fb07b
chore: попытка исправить учетные данные saucelabs (#1627) -
обновление readme.md с обновленными ссылками (#1620) - edcc84f
Полный запрет на доступ к свойствам прототипа по умолчанию, конкретные свойства или методы могут быть разрешены через runtime-options. Подробности см. в #1633. Если вы используете Handlebars в соответствии с документацией, вы, вероятно, не используете свойства прототипа в своих шаблонах, поэтому изменения не должны вызвать проблем. Только использование неотокументированных функций может сломать сборку.
Именно поэтому мы увеличиваем только мажорную версию, несмотря на упоминание критических изменений.
Исправления ошибок:
fix: добавлено правило "no-prototype-builtins" eslint и исправлены все случаи - f7f05d7
fix: добавлены дополнительные свойства, которые должны быть перечислены - 1988878Задачи построения:
fix: использование !== 0 вместо != 0 - c02b05f
добавлены chai и dirty-chai и sinon для более чистых утверждений и шпионов, устаревшие методы утверждений - 93e284e, 886ba86, 0817dad, 93516a0
Безопасность:
__proto__
, __defineGetter__
, __defineSetter__
и __lookupGetter__
добавлены в список "свойств, которые должны быть перечислены".
Если свойство с таким именем найдено и не перечислено на родительском объекте, оно будет тихо оцениваться как undefined
. Это делается как в скомпилированном шаблоне, так и в помощнике "lookup".
Это предотвратит новые уязвимости для удаленного выполнения кода, которые были опубликованы недавно.Примечания по совместимости:
__proto__
, __defineGetter__
, __defineSetter__
и __lookupGetter__
изменилась так, что эти выражения теперь возвращают undefined
вместо их фактического значения из прототипа.{
__proto__: 'some string';
}
Соответствующие примечания:
Исправления ошибок:
Соответствующие примечания:
Новые возможности / Улучшения:
Исправления ошибок:
Утилиты:
Соответствующие примечания:
Исправления ошибок:
Исправления ошибок:
Утилиты:
Соответствующие примечания:
Исправления ошибок:
Типы:
Исправление: упрочение проверки "propertyIsEnumerable" - ff4d827Примечания по совместимости:
Нет известных несовместимостей.
Примечания по совместимости:
Исправления:
Исправления:
Новые возможности:
allowCallsToHelperMissing
для разрешения вызова blockHelperMissing
и helperMissing
.Разрушающие изменения:
Примечания по совместимости:
{{blockHelperMissing}}
) никогда не был задуман и был частью уязвимостей, которые были обнаружены в начале 2019 года
(см. https://github.com/handlebars-lang/handlebars.js/issues/1495). Это также часть новой уязвимости, которая не была захвачена ранним исправлением. Чтобы усилить защиту Handlebars от таких уязвимостей, прямое вызов этих помощников больше невозможен. Переопределение этих помощников по-прежнему возможно.allowCallsToHelperMissing
на true
, и вызовы снова станут возможными. Оба пункта указывают на то, что Handlebars не является 100% совместимым с версией 4.2.0, несмотря на небольшой номер версии.Мы считаем более важным решить серьезную проблему безопасности, чем поддерживать 100% совместимость.Исправления ошибок:
Примечания о совместимости:
Улучшения/тестирование:
grunt-saucelab
с текущим прокси-сервером sauce-connect - f119497Исправления ошибок:
knownHelpers
не позволяет использовать пользовательские помощники (@NickCis)Новые возможности:
#1540 - Добавление свойства "browser" в package.json, решение проблемы #1102 (@ouijan)Примечания о совместимости:
Новое свойство "browser" не должно вызвать проблем, но вы никогда не можете быть полностью уверены. Интеграционный тест для webpack показывает, что это работает, но если нет, пожалуйста, откройте проблему.
#1540 - Добавление свойства browser в package.json, решение проблемы #1102 (@ouijan)
Примечания о совместимости:
Задачи/Тесты:
Исправления ошибок:
Примечания о совместимости:
Доступ к конструктору класса через {{lookup obj "constructor" }}
теперь запрещён. Это закрывает утечку, которая была частично закрыта в версиях 4.0.13 и 4.1.0, но это небольшая несовместимость.Такой доступ не является намеренным использованием Handlebars и приводит к уязвимости, описанной в #1495. Мы не увеличим основную версию, так как такое использование не предусмотрено или не документировано, и из-за потенциального воздействия проблемы (мы опасаемся, что большинство людей не перейдут на новую основную версию, и проблема может не быть решена на многих системах).Коммиты
Исправления ошибок:
Переработки:
Примечания по совместимости:
Новые функции:
Исправления безопасности:
Обслуживание:
Примечания по совместимости:
Доступ к конструкторам классов (например, ({}).constructor
) теперь запрещён для предотвращения выполнения удалённого кода. Это означает, что следующий код больше не будет работать:
class SomeClass {
}
SomeClass.staticProperty = 'static'
```var template = Handlebars.compile('{{constructor.staticProperty}}');
document.getElementById('output').innerHTML = template(new SomeClass());
// ожидаемый результат: 'static', но теперь это пустое значение.
```Такой тип доступа не является намеренным использованием Handlebars и приводит к уязвимости, описанной в #1495. Мы **не** увеличим основную версию, так как такое использование не является намеренным или документированным, и из-за потенциального воздействия проблемы (мы опасаемся, что большинство людей не будут использовать новую основную версию, и проблема может не быть решена на многих системах).```[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.12...v4.1.0)
## v4.0.12 - 4 сентября 2018 года
Новые функции:
- отсутствуют
Различные обновления зависимостей:
- [#1464](https://github.com/handlebars-lang/handlebars.js/pull/1464) - Обновление версий grunt-plugins до 1.x
- [#1398](https://github.com/handlebars-lang/handlebars.js/pull/1398) - Управление зависимостями: обновление различных dev-зависимостей
- обновление uglify-js - d3d3942
- Обновление grunt-eslint до 20.1.0 - 7729aa9
- Обновление зависимостей "async" до 2.5.0 и "source-map" до 0.6.1 (73d5637)
Исправления ошибок:
- [components/handlebars.js#24](https://github.com/components/handlebars.js#24) Добавление package.json в components shim
- Обновленный пакет `source-map` должен работать лучше с `rollup`[#1463](https://github.com/handlebars-lang/handlebars.js/issues/1463)
Удаление устаревшего кода:
- избыточная проверка - 0ddff8b
- Использование поля `files` - 69c6ca5
- Обновление jsfiddle до 4.0.11 - 8947dd0
Примечания по совместимости:
- Не предвидено совместимых проблем
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.11...v4.0.12)
## v4.0.11 - 17 октября 2017 года
- [#1391](https://github.com/handlebars-lang/handlebars.js/issues/1391) - `uglify-js` импортируется безусловно, но указан как опциональная зависимость ([@Turbo87](https://github.com/Turbo87))
- [#1233](https://github.com/handlebars-lang/handlebars.js/issues/1233) - Невозможно собрать под Windows - ошибка в тесте:bin задаче ([@blikblum](https://github.com/blikblum))
- Обновление года (C) в LICENSE файле - 21386b6
Примечания по совместимости:
- Это исправляющий выпуск. Нет разрушительных изменений и новых функций.[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.10...v4.0.11)
## v4.0.10 - 21 мая 2017 года
- Исправление регрессии в 4.0.9: замена "Object.assign" (не поддерживается в IE) на "util/extend" - 0e953d1
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.9...v4.0.10)
## v4.0.9 - 21 мая 2017 года
- [#1327](https://github.com/handlebars-lang/handlebars.js/issues/1327) Handlebars.compile() больше не изменяет "options"
- [#1331](https://github.com/handlebars-lang/handlebars.js/issues/1331) Попытки сборки Handlebars в окружении Windows
- Исправление сборки в Windows - cc554a5
- Убедиться в использовании LF для завершения строк в файлах фикстур handlebars-template (\*.hbs) - ed879a6
- Запуск интеграционных тестов с помощью `node handlebars -a ...` в Windows - 2e21e2b
- Убедиться в использовании LF для завершения строк в файлах lexer (\*.l) - bdfdbea
- Принудительное использование LF для завершения строк в спецификациях и артефактах - b50ef03
- Использование istanbul/lib/cli.js вместо node_modules/.bin/istanbul - 6e6269f
- TravisCI: Публикация валидных тегов semver независимо от ветки - 7378f85
Примечания по совместимости:
- Не ожидается проблем совместимости.
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.8...v4.0.9)
## v4.0.8 - 2 мая 2017 года
- [#1341](https://github.com/handlebars-lang/handlebars.js/issues/1341) [#1342](https://github.com/handlebars-lang/handlebars.js/issues/1342) Разрешение выполнения блоков частей без "options" ([@nknapp](https://github.com/nknapp)) - a00c598
Примечания по совместимости:
- Отсутствуют разрушительные изменения
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.7...v4.0.8)## v4.0.7 - 29 апреля 2017 - [#1319](https://github.com/handlebars-lang/handlebars.js/issues/1319): Исправление контекст-стека при вызове блок-хелперов на null значениях ([@nknapp](https://github.com/nknapp)) - c8f4b57
- [#1315](https://github.com/handlebars-lang/handlebars.js/pull/1315) Парсер: Изменение суффикса для использования ES6 по умолчанию ([@Turbo87](https://github.com/Turbo87)) - b617375
- [#1290](https://github.com/handlebars-lang/handlebars.js/pull/1290) [#1252](https://github.com/handlebars-lang/handlebars.js/issue/1290) Добавление дополнительных тестов для частичных блоков и встроенных частичных ([@nknapp](https://github.com/nknapp)) - 63a8e0c
- [#1252](https://github.com/handlebars-lang/handlebars.js/issue/1290) Использование @partial-block дважды в шаблоне невозможно ([@nknapp](https://github.com/nknapp)) - 5a164d0
- [#1310](https://github.com/handlebars-lang/handlebars.js/pull/1310) Предотвращение дублирования строк sourceMappingURL= ([@joonas-lahtinen](https://github.com/joonas-lahtinen)) - 01b0f65
- [#1275](https://github.com/handlebars-lang/handlebars.js/pull/1275) require('sys') устарел, использование 'util' вместо ([@travnels](https://github.com/travnels)) - 406f2ee
- [#1285](https://github.com/handlebars-lang/handlebars.js/pull/1285) [#1284](https://github.com/handlebars-lang/handlebars.js/issues/1284) Делает "column"-свойство ошибок перечисляемым ([@nknapp](https://github.com/nknapp)) - a023cb4
- [#1285](https://github.com/handlebars-lang/handlebars.js/pull/1285) Тестовый случай для проверки, что ошибки компиляции имеют свойство "column" ([@nknapp](https://github.com/nknapp)) - c7dc353[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.6...v4.0.7)## v4.0.6 - 12 ноября 2016 года - [#1243](https://github.com/handlebars-lang/handlebars.js/pull/1243) - Проход по верхним данным для вложенных @partial-block ([@lawnsea](https://github.com/lawnsea))
- [#1210](https://github.com/handlebars-lang/handlebars.js/pull/1210) - Добавление нового легковесного пакета на основе handlebars в README ([@kabirbaidhya](https://github.com/kabirbaidhya))
- [#1187](https://github.com/handlebars-lang/handlebars.js/pull/1187) - Убедитесь, что существующие blockParams и глубины уважаются в дубликатных программах ([@charleso](https://github.com/charleso))
- [#1191](https://github.com/handlebars-lang/handlebars.js/pull/1191) - Добавлен Cory ([@leo](https://github.com/leo))
- [#1177](https://github.com/handlebars-lang/handlebars.js/pull/1177) - Сохранение информации о лицензии в Closure Compiler ([@gennadiylitvinyuk](https://github.com/gennadiylitvinyuk))
- [#1171](https://github.com/handlebars-lang/handlebars.js/pull/1171) - Исправление документации CONTRIBUTING: failing thats -> failing tests ([@paulfalgout](https://github.com/paulfalgout))
- [#1166](https://github.com/handlebars-lang/handlebars.js/pull/1166) - Обновление даты лицензии ([@timwangdev](https://github.com/timwangdev))
- Обновление jsfiddle для указания на последнюю версию - 959ee55 (оригинально dfc7554 от [@kpdecker](https://github.com/kpdecker))
- [#1163](https://github.com/handlebars-lang/handlebars.js/pull/1163) - Исправление опечаток в decorators-api.md ([@adjohnson916](https://github.com/adjohnson916))
- Удаление дополнительных параметров ошибки - 8c19874 (оригинально 63fdb92 от [@kpdecker](https://github.com/kpdecker))
- [#1153](https://github.com/handlebars-lang/handlebars.js/pull/1153) - Добавление документации по запуску тестов в contributing.md ([@ryanmurakami](https://github.com/ryanmurakami))
- Избегание ошибок в более старых браузерах в тестах - 400916c (оригинально a6121ca от [@kpdecker](https://github.com/kpdecker))- Обновление версий тестов для целевых браузеров - fee2334 (оригинально 871c32a от [@kpdecker](https://github.com/kpdecker))
- Исключение проверки охвата в условии исключения - 32d6363 (оригинально 326734b от [@kpdecker](https://github.com/kpdecker))
- Исправление выброса при создании объекта исключения в Safari - 20c965c (оригинально 2ea6119 от [@kpdecker](https://github.com/kpdecker))
- Обновление сборки для современных версий Node.js - 6c9f98c (оригинально 8289c0b от [@kpdecker](https://github.com/kpdecker))
- [#1135](https://github.com/handlebars-lang/handlebars.js/issues/1135) - Смягчение проверки глубины для контекста push - c393c81 (оригинально 25458fd от [@kpdecker](https://github.com/kpdecker))[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.5...v4.0.6)## v4.0.5 - 19 ноября 2015
- [#1132](https://github.com/handlebars-lang/handlebars.js/pull/1132) - Обновление uglify-js для избежания уязвимости ([@plynchnlm](https://github.com/plynchnlm))
- [#1129](https://github.com/handlebars-lang/handlebars.js/issues/1129) - Минифицированная библиотека возвращает пустую строку ([@bricss](https://github.com/bricss))
- Возврат текущего экземпляра handlebars из noConflict - 685cf92
- Добавление webpack в список зависимостей для поддержки npm 3 - 7a6c228
- Дальнейшее ослабление зависимости от uglify - 0a3b3c2
- Включение тестов для минифицированных артефактов - c21118d
- Исправление ошибок линтера под последней версией eslint - 9f59de9
- Добавление скрипта print-script - 98a6717
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.4...v4.0.5)
## v4.0.4 - 29 октября 2015
- [#1121](https://github.com/handlebars-lang/handlebars.js/pull/1121) - Включение имени частичного в сообщение исключения "undefined partial" ([@shinypb](https://github.com/shinypb))
- [#1125](https://github.com/handlebars-lang/handlebars.js/pull/1125) - Добавление promised-handlebars в список "in-the-wild" ([@nknapp](https://github.com/nknapp))
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.3...v4.0.4)
## v4.0.3 - 23 сентября 2015- [#1099](https://github.com/handlebars-lang/handlebars.js/issues/1099) - @partial-block перезаписывается ([@btmorex](https://github.com/btmorex))
- [#1093](https://github.com/handlebars-lang/handlebars.js/issues/1093) - #each пропускает итерацию при неопределенных значениях ([@florianpilz](https://github.com/florianpilz))
- [#1092](https://github.com/handlebars-lang/handlebars.js/issues/1092) - Квадратные скобки в имени ключа ([@distantnative](https://github.com/distantnative))
- [#1091](https://github.com/handlebars-lang/handlebars.js/pull/1091) - Исправление опечатки в заметках о выпуске ([@nikolas](https://github.com/nikolas))
- [#1090](https://github.com/handlebars-lang/handlebars.js/pull/1090) - Исправление грамматики в заметках о выпуске 4.0.0 ([@nikolas](https://github.com/nikolas))Примечания о совместимости:
- Итерация `each` с неопределенными значениями восстановлена до поведения версии 3.0. Вызовы помощников с неопределенными значениями контекста теперь будут выполняться против произвольного пустого объекта для избежания выполнения против глобального объекта в режиме без строгого режима.
- `]` теперь может быть включено в идентификаторы, заключенные в `[]`, путем экранирования с помощью `\`. Любые идентификаторы `[]`, которые включают `\`, теперь должны правильно экранировать эти значения. [Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.2...v4.0.3)
## v4.0.2 - 4 сентября 2015
- [#1089](https://github.com/handlebars-lang/handlebars.js/issues/1089) - "Содержимое резервного варианта" не работает на нескольких уровнях встроенных частей ([@michaellopez](https://github.com/michaellopez))
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.1...v4.0.2)
## v4.0.1 - 2 сентября 2015
- Исправление ошибки при использовании декораторов в частях - 05b82a2
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v4.0.0...v4.0.1)## v4.0.0 - 1 сентября 2015 - [#1082](https://github.com/handlebars-lang/handlebars.js/pull/1082) - Декораторы и встроенные частичные шаблоны ([@kpdecker](https://github.com/kpdecker))
- [#1076](https://github.com/handlebars-lang/handlebars.js/pull/1076) - Реализация блоков частичных шаблонов ([@kpdecker](https://github.com/kpdecker))
- [#1087](https://github.com/handlebars-lang/handlebars.js/pull/1087) - Исправление #each при последнем объекте с пустым ключом ([@denniskuczynski](https://github.com/denniskuczynski))
- [#1084](https://github.com/handlebars-lang/handlebars.js/pull/1084) - Обновление версии uglify для исправления уязвимости ([@John-Steidley](https://github.com/John-Steidley))
- [#1068](https://github.com/handlebars-lang/handlebars.js/pull/1068) - Исправление опечатки ([@0xack13](https://github.com/0xack13))
- [#1060](https://github.com/handlebars-lang/handlebars.js/pull/1060) - Исправление грамматики для вложенных блоков raw ([@ericbn](https://github.com/ericbn))
- [#1052](https://github.com/handlebars-lang/handlebars.js/pull/1052) - Обновление года в лицензии ([@maqnouch](https://github.com/maqnouch))
- [#1037](https://github.com/handlebars-lang/handlebars.js/pull/1037) - Исправление мелких опечаток в README ([@tomxtobin](https://github.com/tomxtobin))
- [#1032](https://github.com/handlebars-lang/handlebars.js/issues/1032) - Возможно ли отрисовывать частичный шаблон без родительского контекста? ([@aputinski](https://github.com/aputinski))
- [#1019](https://github.com/handlebars-lang/handlebars.js/pull/1019) - Исправление опечатки в тестах ([@aymerick](https://github.com/aymerick))
- [#1016](https://github.com/handlebars-lang/handlebars.js/issues/1016) - Несоответствие версий ([@mayankdedhia](https://github.com/mayankdedhia))
- [#1023](https://github.com/handlebars-lang/handlebars.js/issues/1023) - Возможно ли взаимодействие между вложенными пользовательскими помощниками?
- [#893](https://github.com/handlebars-lang/handlebars.js/issues/893) - [Предложение] Блоки секций.
- [#792](https://github.com/handlebars-lang/handlebars.js/issues/792) - Запрос на добавление определений частичных шаблонов в строку.
- [#583](https://github.com/handlebars-lang/handlebars.js/issues/583) - Путь родителя продолжает просматривать глубину при нескольких условиях.
- [#404](https://github.com/handlebars-lang/handlebars.js/issues/404) - Добавление именованных дочерних помощников, которые могут быть ссылками для блоковых помощников.
- Экранирование = в HTML-контенте - [83b8e84](https://github.com/handlebars-lang/handlebars.js/commit/83b8e84) - Заменить конструкторы AST на JSON - [95d84ba](https://github.com/handlebars-lang/handlebars.js/commit/95d84ba)
- Передать контейнер вместо exec в качестве контекста - [9a2d1d6](https://github.com/handlebars-lang/handlebars.js/commit/9a2d1d6)
- Добавить опцию компилятора ignoreStandalone - [ea3a5a1](https://github.com/handlebars-lang/handlebars.js/commit/ea3a5a1)
- Игнорировать пустые значения при итерации по разреженным массивам - [06d515a](https://github.com/handlebars-lang/handlebars.js/commit/06d515a)
- Добавить поддержку предкомпиляции строк и stdin - [0de8dac](https://github.com/handlebars-lang/handlebars.js/commit/0de8dac)
- Упростить логику генерации присваивания объектов - [77e6bfc](https://github.com/handlebars-lang/handlebars.js/commit/77e6bfc)
- Улучшить надежность AST. helpers. helperExpression - [93b0760](https://github.com/handlebars-lang/handlebars.js/commit/93b0760)
- Всегда возвращать строковые ответы - [8e868ab](https://github.com/handlebars-lang/handlebars.js/commit/8e868ab)
- Передавать неопределенные поля в помощники в строгом режиме - [5d4b8da](https://github.com/handlebars-lang/handlebars.js/commit/5d4b8da)- Избегать создания глубины, когда контекст остаётся неизменным - [279e038](https://github.com/handlebars-lang/handlebars.js/commit/279e038)
- Улучшить API журналирования - [9a49d35](https://github.com/handlebars-lang/handlebars.js/commit/9a49d35)
- Исправить оператор with в режиме без @data - [231a8d7](https://github.com/handlebars-lang/handlebars.js/commit/231a8d7)
- Разрешить пустое имя ключа при каждой итерации - [1bb640b](https://github.com/handlebars-lang/handlebars.js/commit/1bb640b)
- Добавить поддержку параметров блока with - [2a85106](https://github.com/handlebars-lang/handlebars.js/commit/2a85106)
- Исправить экранирование не-идентификаторов JavaScript - [410141c](https://github.com/handlebars-lang/handlebars.js/commit/410141c)
- Исправить информацию о расположении для программ - [93faffa](https://github.com/handlebars-lang/handlebars.js/commit/93faffa)
Примечания по совместимости:- Глубокие пути теперь условно добавляются на стек. Если помощник использует тот же контекст, новый стек не создаётся. Это приводит к поведению, которое лучше соответствует ожиданиям для помощников, таких как `if`, которые не кажутся изменяющими контекст. Любые экземпляры `../` в шаблонах потребуют проверки для правильного поведения в версии 4.0.0. В общем, шаблоны либо уменьшат количество экземпляров `../`, либо оставят их без изменений. См. [#1028](https://github.com/handlebars-lang/handlebars.js/issues/1028).
- Символ `=` теперь экранируется как HTML. Это закрывает потенциальный случай эксплуатации при использовании неустановленных атрибутов, например, `<div foo={{bar}}>`. В общем рекомендуется всегда кавычить атрибуты, когда их значения генерируются из mustache, чтобы избежать любых потенциальных уязвимостей.
- Конструкторы AST были отменены в пользу простых объектов JavaScript.
- Версия runtime была увеличена. Предварительно скомпилированные шаблоны должны использовать runtime версии 4.0.0 или выше.
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.3...v4.0.0)
## v3.0.3 - 28 апреля 2015 года
- [#1004](https://github.com/handlebars-lang/handlebars.js/issues/1004) - Последняя версия не работает с RequireJS (global не определён) ([@boskee](https://github.com/boskee))
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.2...v3.0.3)
## v3.0.2 - 20 апреля 2015 года- [#998](https://github.com/handlebars-lang/handlebars.js/pull/998) - Добавлена полная поддержка ES6 ([@kpdecker](https://github.com/kpdecker))
- [#994](https://github.com/handlebars-lang/handlebars.js/issues/994) - Доступ к Handlebars.Visitor в браузере ([@tamlyn](https://github.com/tamlyn))
- [#990](https://github.com/handlebars-lang/handlebars.js/issues/990) - Разрешено передавать литералы null/undefined в подвыражения ([@blimmer](https://github.com/blimmer))
- [#989](https://github.com/handlebars-lang/handlebars.js/issues/989) - Ошибка source-map с requirejs ([@SteppeEagle](https://github.com/SteppeEagle))
- [#967](https://github.com/handlebars-lang/handlebars.js/issues/967) - Невозможно получить доступ к свойству "this" ([@75lb](https://github.com/75lb))
- Использование captureStackTrace для обработчика ошибок - a009a97
- Игнорирование веток, тестировавшихся без мониторинга покрытия - 37a664b[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.1...v3.0.2)## v3.0.1 - 24 марта 2015
- [#984](https://github.com/handlebars-lang/handlebars.js/pull/984) - Добавление документации по передаче аргументов в частичные шаблоны ([@johneke](https://github.com/johneke))
- [#973](https://github.com/handlebars-lang/handlebars.js/issues/973) - Версия 3 работает медленнее, чем версия 2 ([@elover](https://github.com/elover))
- [#966](https://github.com/handlebars-lang/handlebars.js/issues/966) - Команда `handlebars --version` не работает с версией v3.0.0 ([@abloomston](https://github.com/abloomston))
- [#964](https://github.com/handlebars-lang/handlebars.js/pull/964) - Слово `default` является зарезервированным ([@grassick](https://github.com/grassick))
- [#962](https://github.com/handlebars-lang/handlebars.js/pull/962) - Добавление ссылки на dashbars в README ([@pismute](https://github.com/pismute))
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v3.0.0...v3.0.1)## v3.0.0 - 10 февраля 2015 - [#941](https://github.com/handlebars-lang/handlebars.js/pull/941) - Добавлена поддержка динамических имен частей ([@kpdecker](https://github.com/kpdecker))
- [#940](https://github.com/handlebars-lang/handlebars.js/pull/940) - Добавлены недостающие зарезервированные слова, чтобы компилятор знал использовать синтаксис массива: ([@mattflaschen](https://github.com/mattflaschen))
- [#938](https://github.com/handlebars-lang/handlebars.js/pull/938) - Исправлен пример использования помощника #with ([@diwo](https://github.com/diwo))
- [#930](https://github.com/handlebars-lang/handlebars.js/pull/930) - Добавлена отслеживание родителей и мутация для посещателей AST ([@kpdecker](https://github.com/kpdecker))
- [#926](https://github.com/handlebars-lang/handlebars.js/issues/926) - Поиск по глубине не работает, когда запускается дубликатор программы ([@kpdecker](https://github.com/kpdecker))
- [#918](https://github.com/handlebars-lang/handlebars.js/pull/918) - Добавлены инструкции для 'spec/mustache' в CONTRIBUTING.md, исправлены несколько опечаток ([@oneeman](https://github.com/oneeman))
- [#915](https://github.com/handlebars-lang/handlebars.js/pull/915) - Обновление AST ([@kpdecker](https://github.com/kpdecker))
- [#910](https://github.com/handlebars-lang/handlebars.js/issues/910) - Разное поведение {{@last}} при {{#each}} в {{#each}} ([@zordius](https://github.com/zordius))
- [#907](https://github.com/handlebars-lang/handlebars.js/issues/907) - Реализация ссылок на именованные помощники ([@kpdecker](https://github.com/kpdecker))
- [#906](https://github.com/handlebars-lang/handlebars.js/pull/906) - Добавлено поддержка парсера для параметров блока ([@mmun](https://github.com/mmun))
- [#903](https://github.com/handlebars-lang/handlebars.js/issues/903) - Предоставляются псевдонимы только для повторных вызовов ([@kpdecker](https://github.com/kpdecker))
- [#902](https://github.com/handlebars-lang/handlebars.js/issues/902) -com/handlebars-lang/handlebars.js/pull/902) - Генерация карт источников ([@kpdecker](https://github.com/kpdecker))
- [#901](https://github.com/handlebars-lang/handlebars.js/issues/901) - Все еще экранируется, когда включен noEscape в изолированной среде Handlebars ([@zedknight](https://github.com/zedknight))
- [#896](https://github.com/handlebars-lang/handlebars.js/pull/896) - Упрощение BlockNode путем удаления промежуточного MustacheNode ([@mmun](https://github.com/mmun))
- [#892](https://github.com/handlebars-lang/handlebars.js/pull/892) - Реализация парсера для цепочки else помощников ([@kpdecker](https://github.com/kpdecker))
- [#889](https://github.com/handlebars-lang/handlebars.js/pull/889) - [#889](https://github.com/handlebars-lang/handlebars.js/issues/889) - Рассмотреть расширяемый API парсера ([@kpdecker](https://github.com/kpdecker))
- [#887](https://github.com/handlebars-lang/handlebars.js/issues/887) - Опция Handlebars.noConflict()? ([@bradvogel](https://github.com/bradvogel))
- [#886](https://github.com/handlebars-lang/handlebars.js/issues/886) - Добавить SafeString в контекст (или использовать duck-typing) ([@dominicbarnes](https://github.com/dominicbarnes))
- [#870](https://github.com/handlebars-lang/handlebars.js/pull/870) - Регистрация неопределенного частичного шаблона вызывает исключение. ([@max-b](https://github.com/max-b))
- [#866](https://github.com/handlebars-lang/handlebars.js/issues/866) - Комментарии не уважают контроль пробелов ([@75lb](https://github.com/75lb))
- [#863](https://github.com/handlebars-lang/handlebars.js/pull/863) - + jsDelivr CDN информация ([@tomByrer](https://github.com/tomByrer))
- [#858](https://github.com/handlebars-lang/handlebars.js/issues/858) - Отключить новую по умолчанию автоматическую отступацию в включенных частичных шаблонах ([@majodev](https://github.com/majodev))
- [#856](https://github.com/handlebars-lang/handlebars.js/pull/856) - Совместимость с jspm ([@MajorBreakfast](https://github.com/MajorBreakfast))
- [#805](https://github.com/handlebars-lang/handlebars.js/issues/805)com/handlebars-lang/handlebars.js/issues/805) - Запрос: "строгие" поиски ([@nzakas](https://github.com/nzakas))- Экспорт по умолчанию объекта для handlebars/runtime - 5594416
- Поиск частей при неопределенности - 617dd57Примечания по совместимости:
- Порушенные изменения в runtime. Должно соответствовать runtime и precompiler версии 3.x.
- AST был обновлен до публичного API.
- В нем произошло множество изменений, но формат теперь документирован в docs/compiler-api.md
- API посещения был расширен для поддержки мутаций и предоставления базовой реализации
- API `JavaScriptCompiler` были формализованы и документированы. В рамках обработки карты источников эти API должны быть обновлены для возврата массивов для конкатенации.
- `JavaScriptCompiler.namespace` был удален, так как он не использовался.
- `SafeString` теперь является утиным типом для `toHTML`
Новые возможности:
- noConflict
- Карта источников
- Параметры блока
- Режим строгого соответствия
- @last и другие изменения в each
- Цепочки блоков else
- Методы @data теперь могут принимать параметры помощников
- Динамические части
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0...v3.0.0)
## v2.0.0 - 1 сентября 2014 года
- Обновление jsfiddle до версии 2.0.0-beta.1 - 0670f65
- Добавление примечания для вкладчиков относительно документации handlebarsjs.com - 4d17e3c
- Совместимость с номерами версий gemspec - 64d5481
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-beta.1...v2.0.0)## v2.0.0-beta.1 - 26 августа 2014 года - [#787](https://github.com/handlebars-lang/handlebars.js/pull/787) - Удаление пробелов вокруг самостоятельных выражений ([@kpdecker](https://github.com/kpdecker))
- [#827](https://github.com/handlebars-lang/handlebars.js/issues/827) - Отображение ложного литерала как "false" ([@scoot557](https://github.com/scoot557))
- [#767](https://github.com/handlebars-lang/handlebars.js/issues/767) - Ошибка субвыражений с хэшем и контекстом ([@evensoul](https://github.com/evensoul))
- Изменения в обработке 0/undefined
- [#731](https://github.com/handlebars-lang/handlebars.js/pull/731) - Неправильное поведение для {{#foo}} {{bar}} {{/foo}} при foo = 0 ([@kpdecker](https://github.com/kpdecker))
- [#820](https://github.com/handlebars-lang/handlebars.js/issues/820) - Неправильное поведение для {{foo.bar}} при foo = 0 или null или false ([@zordius](https://github.com/zordius))
- [#837](https://github.com/handlebars-lang/handlebars.js/issues/837) - Неправильное поведение для пользовательского помощника (foo.bar == false при foo = undefined) ([@zordius](https://github.com/zordius))
- [#819](https://github.com/handlebars-lang/handlebars.js/pull/819) - Реализация рекурсивного поиска полей ([@kpdecker](https://github.com/kpdecker))
- [#764](https://github.com/handlebars-lang/handlebars.js/issues/764) - Ссылка "this" не работает для помощников ([@kpdecker](https://github.com/kpdecker))
- [#773](https://github.com/handlebars-lang/handlebars.js/issues/773) - Неявные параметры в {{#each}} вносят особенности в соглашение о вызовах помощников ([@Bertrand](https://github.com/Bertrand))
- [#783](https://github.com/handlebars-lang/handlebars.js/issues/783) - helperMissing и согласованность для различных типов выражений ([@ErisDS](https://github.com/ErisDS))
- [#795](https://github.com/handlebars-lang/handlebars.js/pull/795) - Преобразование скрипта precompile в обертку вокруг модуля ([@jwietelmann](https://github.com/jwietelmann)) - [#823](https://github.com/handlebars-lang/handlebars.js/pull/823) - Поддержка обратных секций в помощнике with ([@dan-manges](https://github.com/dan-manges))
- [#834](https://github.com/handlebars-lang/handlebars.js/pull/834) - Переработка блоков, программ и обратных секций ([@mmun](https://github.com/mmun))
- [#852](https://github.com/handlebars-lang/handlebars.js/issues/852) - Поведение управления пробелами {{foo~}} отличается от старой версии ([@zordius](https://github.com/zordius))
- [#835](https://github.com/handlebars-lang/handlebars.js/issues/835) - Шаблоны перезаписываются, если файл загружается дважды - Expose escapeExpression на корневом объекте - 980c38c
- Удаление вложенной функции eval в blockHelperMissing - 6f22ec1
- Исправление компиляции программы для удаления дубликатов - 9e3f824Примечания по совместимости:
- По умолчанию сборка теперь выдает общий UMD обёртку. Это должно быть прозрачным изменением, но может вызвать проблемы в некоторых окружениях.
- Совместимость на уровне выполнения нарушается в обоих направлениях. Убедитесь, что как компилятор, так и клиент были обновлены до версии OnClickListener 2.0.0-beta.1 или выше одновременно.
- `programWithDepth` был удалён, и вместо него передаётся массив значений контекста для полей, требующих поиска на глубину.
- Значения `false` теперь выводятся в выходные данные, а не игнорируются.
- Строчки, содержащие только блочные выражения и пробелы, теперь удаляются. Это соответствует спецификации Mustache, но может вызвать проблемы с кодом, который ожидает, что пробелы будут существовать, но не требует их иначе.
- Отдельные частичные шаблоны теперь отступают отрендеренный контент.
- Подпись метода `AST.ProgramNode` изменилась.
- Множество методов/функций удалены из псевдо-API классов
- `JavaScriptCompiler.register`
- `JavaScriptCompiler.replaceStack` больше не поддерживает замену вне строки
- `Compiler.disassemble`
- `DECLARE` оператор
- `strip` оператор
- `lookup` оператор
- Значения узлов контента могут изменяться со временем. Поле `original` предоставляет неизменённое значение.
- Удалён неиспользуемый параметр `inverse` в `Handlebars.registerHelper`
- Помощник `each` теперь требует параметра итератора[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.4...v2.0.0-beta.1)
## v2.0.0-alpha.4 - 19 мая 2014
- Expose setup wrappers for compiled templates - 3638874
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.3...v2.0.0-alpha.4)
## v2.0.0-alpha.3 - 19 мая 2014
- [#797](https://github.com/handlebars-lang/handlebars.js/pull/797) - Передача полного ID помощника в helperMissing при наличии опций ([@tomdale](https://github.com/tomdale))
- [#793](https://github.com/handlebars-lang/handlebars.js/pull/793) - Убедитесь, что isHelper приведён к булевому типу ([@mmun](https://github.com/mmun))
- Переработка логики инициализации шаблона - 085e5e1
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.2...v2.0.0-alpha.3)
## v2.0.0-alpha.2 - 6 марта 2014
- [#756](https://github.com/handlebars-lang/handlebars.js/pull/756) - Исправление ошибки в IE<=8 (нет Array::map), закрывает #751 ([@jenseng](https://github.com/jenseng))
- [#749](https://github.com/handlebars-lang/handlebars.js/pull/749) - Правильная обработка нескольких подвыражений в одном хэше, исправляет #748 ([@jenseng](https://github.com/jenseng))
- [#743](https://github.com/handlebars-lang/handlebars.js/issues/743) - Путаница или проблема с подвыражениями? ([@waynedpj](https://github.com/waynedpj))
- [#746](https://github.com/handlebars-lang/handlebars.js/issues/746) - [CLI] Поддержка `handlebars --version` ([@apfelbox](https://github.com/apfelbox))
- [#747](https://github.com/handlebars-lang/handlebars.js/pull/747) - Обновлен grunt-saucelabs, выявлены не проходящие тесты ([@Jonahss](https://github.com/Jonahss))
- Требование JSON для компилятора. - 058c0fb
- Временное отключение шага публикации AWS в CI - 8347ee2
Примечания по совместимости:
- Требуется полифил JSON для запуска компилятора в IE8 и ниже. Рекомендуется использовать предкомпилятор вместо запуска компилятора в этих устаревших окружениях.[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v2.0.0-alpha.1...v2.0.0-alpha.2)## v2.0.0-alpha.1 - 10 февраля 2014 года - [#182](https://github.com/handlebars-lang/handlebars.js/pull/182) - Разрешение передачи параметров хэша в частичные шаблоны ([@kpdecker](https://github.com/kpdecker))
- [#392](https://github.com/handlebars-lang/handlebars.js/pull/392) - Доступ к корневому контексту в частичных шаблонах и помощниках ([@kpdecker](https://github.com/kpdecker))
- [#472](https://github.com/handlebars-lang/handlebars.js/issues/472) - Помощники не могут иметь десятичные параметры ([@kayleg](https://github.com/kayleg))
- [#569](https://github.com/handlebars-lang/handlebars.js/pull/569) - Невозможно найти значения массива с помощью @index ([@kpdecker](https://github.com/kpdecker))
- [#491](https://github.com/handlebars-lang/handlebars.js/pull/491) - Для вложенных помощников: получить переменные @ внешнего помощника из внутреннего ([@kpdecker](https://github.com/kpdecker))
- [#669](https://github.com/handlebars-lang/handlebars.js/issues/669) - Возможность отменить регистрацию помощника ([@dbachrach](https://github.com/dbachrach))
- [#730](https://github.com/handlebars-lang/handlebars.js/pull/730) - Чистые блочные помощники ([@kpdecker](https://github.com/kpdecker))
- [#634](https://github.com/handlebars-lang/handlebars.js/pull/634) - Было бы здорово передавать имя помощника в `blockHelperMissing` ([@kpdecker](https://github.com/kpdecker))
- [#729](https://github.com/handlebars-lang/handlebars.js/pull/729) - Преобразование спецификации шаблона в литерал объекта ([@kpdecker](https://github.com/kpdecker))
- [#658](https://github.com/handlebars-lang/handlebars.js/issues/658) - Глубокие помощники не работают после обновления с версии 1.0.0 ([@xibxor](https://github.com/xibxor))
- [#671](https://github.com/handlebars-lang/handlebars.js/issues/671) - Ошибка при использовании {{#each}} без параметров ([@stepancheg](https://github.com/stepancheg))
- [#689](https://github.com/handlebars-lang/handlebars.js/issues/689)js/issues/689) - Поврежденная предварительная компиляция шаблона ([@AAS](https://github.com/AAS))
- [#698](https://github.com/handlebars-lang/handlebars.js/pull/698) - Исправление генерации парсера под Windows ([@osiris43](https://github.com/osiris43))
- [#699](https://github.com/handlebars-lang/handlebars.js/issues/699) - @DATA не компилируется в недействительный JS в режиме stringParams ([@kpdecker](https://github.com/kpdecker))
- [#705](https://github.com/handlebars-lang/handlebars.js/issues/705) - 1.3.0 не может быть обернут в IIFE ([@craigteegarden](https://github.com/craigteegarden))
- [#706](https://github.com/handlebars-lang/handlebars.js/pull/706) - README: Использование помощника with вместо зависимости от blockHelperMissing ([@scottgonzalez](https://github.com/scottgonzalez))- [#700](https://github.com/handlebars-lang/handlebars.js/pull/700) - Удаление избыточных условий ([@blakeembrey](https://github.com/blakeembrey))
- [#704](https://github.com/handlebars-lang/handlebars.js/pull/704) - Очистка JavaScript Compiler ([@blakeembrey](https://github.com/blakeembrey))
Примечания по совместимости:
- Помощник `helperMissing` больше не имеет индексированного аргумента имени. Имя помощника теперь доступно через `options.name`.
- Выходные данные предкомпилятора изменились, что нарушает совместимость с предыдущими версиями времени выполнения и предкомпилированными выходными данными.
- `JavaScriptCompiler.compilerInfo` теперь возвращает общие объекты вместо исходного кода JavaScript.
- Изменения AST
- INTEGER -> NUMBER
- Дополнительный параметр hash PartialNode
- Новый тип RawBlockNode
- Фреймы данных теперь имеют поле `_parent`. Это внутреннее поле, но оно перечисляемо для целей производительности/совместимости.
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.3.0...v2.0.0-alpha.1)## v1.3.0 - 1 января 2014 года - [#690](https://github.com/handlebars-lang/handlebars.js/pull/690) - Добавлена поддержка подвыражений ([@machty](https://github.com/machty))
- [#696](https://github.com/handlebars-lang/handlebars.js/pull/696) - Исправлено использование зарезервированного ключевого слова "default" ([@nateirwin](https://github.com/nateirwin))
- [#692](https://github.com/handlebars-lang/handlebars.js/pull/692) - Добавлены номера строк к узлам при парсинге ([@fivetanley](https://github.com/fivetanley))
- [#695](https://github.com/handlebars-lang/handlebars.js/pull/695) - Извлечены опции из настройки параметров для более простого расширения ([@blakeembrey](https://github.com/blakeembrey))
- [#694](https://github.com/handlebars-lang/handlebars.js/pull/694) - Делает окружение переиспользуемым ([@blakeembrey](https://github.com/blakeembrey))
- [#636](https://github.com/handlebars-lang/handlebars.js/issues/636) - Вывод строки и столбца ошибок ([@sgronblo](https://github.com/sgronblo))
- Использование литерала для поиска данных - c1a93d3
- Добавлены проверки целостности обработки стека - cd885bf
- Исправлено утечка идентификатора стека при замене стека - ddfe457
- Исправлено неправильное удаление стека при замене литералов - f4d337d[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.2.1...v1.3.0)## v1.2.1 - 26 декабря 2013
- [#684](https://github.com/handlebars-lang/handlebars.js/pull/684) - Разрешить любое количество завершающих символов для допустимой JavaScript переменной ([@blakeembrey](https://github.com/blakeembrey))
- [#686](https://github.com/handlebars-lang/handlebars.js/pull/686) - Ложные имена модулей AMD в версии 1.2.0 ([@kpdecker](https://github.com/kpdecker))
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.2.0...v1.2.1)## v1.2.0 - 23 декабря 2013 - [#675](https://github.com/handlebars-lang/handlebars.js/issues/675) - Невозможно скомпилировать пустой шаблон для частичного ([@erwinw](https://github.com/erwinw))
- [#677](https://github.com/handlebars-lang/handlebars.js/issues/677) - Утроенные фигурные скобки не работают в IE ([@hamzaCM](https://github.com/hamzaCM))
- [#655](https://github.com/handlebars-lang/handlebars.js/issues/655) - Загрузка Handlebars с помощью bower ([@niki4810](https://github.com/niki4810))
- [#657](https://github.com/handlebars-lang/handlebars.js/pull/657) - Исправление проблемы с компиляцией не-Handlebars шаблонов через CLI ([@chrishoage](https://github.com/chrishoage))
- [#681](https://github.com/handlebars-lang/handlebars.js/pull/681) - Добавление тестирования в браузере и CI Saucelabs ([@kpdecker](https://github.com/kpdecker))
- [#661](https://github.com/handlebars-lang/handlebars.js/pull/661) - Добавление @first и @index к #each объектному итерированию ([@cgp](https://github.com/cgp))
- [#650](https://github.com/handlebars-lang/handlebars.js/pull/650) - Handlebars имеет лицензию MIT ([@thomasboyt](https://github.com/thomasboyt))
- [#641](https://github.com/handlebars-lang/handlebars.js/pull/641) - Документация процесса тестирования Ember ([@kpdecker](https://github.com/kpdecker))
- [#662](https://github.com/handlebars-lang/handlebars.js/issues/662) - handlebars-source 1.1.2 отсутствует в RubyGems.
- [#656](https://github.com/handlebars-lang/handlebars.js/issues/656) - Expose COMPILER_REVISION проверки как хук ([@machty](https://github.com/machty))
- [#668](https://github.com/handlebars-lang/handlebars.js/issues/668) - Рассмотрение публикации handlebars-runtime как отдельного модуля в npm ([@dlmanning](https://github.com/dlmanning))
- [#679](https://github.com/handlebars-lang/handlebars.js/issues/679) - Невозможно переопределить invokePartial ([@mattbrailsford](https://github.com/mattbrailsford))
- [#646](https://github.com/handlebars-lang/handlebars.js/pull/646) - Исправление "\\{{" сразу после "\{{" ([@dmarcotte](https://github.com/dmarcotte))
- Разрешить extend работать с непрототипированными объектами - eb53f2e
- Добавить публичные API тесты для JavascriptCompiler - 1a751b2
- Добавить тестовое покрытие AST для более сложных путей - ddea5be
- Исправить обработку логического экранирования в MustacheNode - b4968bb
Соответствующие примечания:- `@index` и `@first` теперь поддерживаются для итерации `each` по объектам
- `Handlebars.VM.checkRevision` и `Handlebars.JavaScriptCompiler.prototype.compilerInfo` теперь доступны для изменения поведения проверки версий.
- Пользователи Browserify могут ссылаться на библиотеку времени выполнения через `require('handlebars/runtime')`
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.1.2...v1.2.0)
## v1.1.2 - 5 ноября 2013 года
- [#645](https://github.com/handlebars-lang/handlebars.js/issues/645) - 1.1.1 не работает под IE8 ([@kpdecker](https://github.com/kpdecker))
- [#644](https://github.com/handlebars-lang/handlebars.js/issues/644) - Использование предкомпилированных шаблонов (режим AMD) с handlebars.runtime 1.1.1 ([@fddima](https://github.com/fddima))
- Добавлены простые двоичные утилитные тесты - 96a45a4
- Исправлено компилирование пустой строки - eea708a
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.1.1...v1.1.2)
## v1.1.1 - 4 ноября 2013 года
- [#642](https://github.com/handlebars-lang/handlebars.js/issues/642) - handlebars 1.1.0 не работают с nodejs
- Исправлены ссылки на заметки выпуска - 17ba258
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.1.0...v1.1.1)
## v1.1.0 - 3 ноября 2013 года- [#628](https://github.com/handlebars-lang/handlebars.js/pull/628) - Преобразование кода в модули ES6 ([@kpdecker](https://github.com/kpdecker))
- [#336](https://github.com/handlebars-lang/handlebars.js/pull/336) - Добавление синтаксиса управления пробелами ([@kpdecker](https://github.com/kpdecker))
- [#535](https://github.com/handlebars-lang/handlebars.js/pull/535) - Исправление вероятной ошибки JIT под Safari ([@sorentwo](https://github.com/sorentwo))
- [#483](https://github.com/handlebars-lang/handlebars.js/issues/483) - Добавление переменных @first и @last к помощнику each ([@denniskuczynski](https://github.com/denniskuczynski))
- [#557](https://github.com/handlebars-lang/handlebars.js/pull/557) - Экранирование `\\{{foo}}` работает только в некоторых ситуациях ([@dmarcotte](https://github.com/dmarcotte))
- [#552](https://github.com/handlebars-lang/handlebars.js/pull/552) - Добавлен флаг удаления BOM. ([@blessenm](https://github.com/blessenm))
- [#543](https://github.com/handlebars-lang/handlebars.js/pull/543) - Публикация проходящих сборок master на s3 ([@fivetanley](https://github.com/fivetanley))
- [#608](https://github.com/handlebars-lang/handlebars.js/issues/608) - Добавить флаг `includeZero` к условию `if`
- [#498](https://github.com/handlebars-lang/handlebars.js/issues/498) - `Handlebars.compile` завершает работу с ошибкой при пустой строке, хотя использование одного пробела работает корректно
- [#599](https://github.com/handlebars-lang/handlebars.js/issues/599) - lambda-помощники получают параметры `options` только при использовании с аргументами
- [#592](https://github.com/handlebars-lang/handlebars.js/issues/592) - Оптимизация производительности массивов и подпрограмм
- [#571](https://github.com/handlebars-lang/handlebars.js/issues/571) - Обновление uglify нарушает совместимость с более старыми версиями node
- [#587](https://github.com/handlebars-lang/handlebars.js/issues/587)js/issues/587) - Вложенная частичная шаблонизация приводит к ошибке?Примечания по совместимости:
- Проект теперь включает отдельные артефакты для AMD, CommonJS и глобальных объектов.
- AMD: Пользователи могут загрузить упакованный файл `handlebars.amd.js` или `handlebars.runtime.amd.js` или загрузить отдельные модули напрямую. Пользователи AMD должны также отметить, что объект handlebars доступен через поле `default` загруженного объекта. Этот [gist](https://gist.github.com/wycats/7417be0dc361a69d5916) предоставляет некоторое обсуждение возможных совместимых обёрток.
- CommonJS/Node: Загрузка в Node происходит как обычно через `require`
- Глобальные: Файлы `handlebars.js` и `handlebars.runtime.js` должны работать так же, как версия 1.0.12 / 1.0.0.
- Артефакты сборки были удалены из репозитория. [npm][npm], [components/handlebars.js][components], [cdnjs][cdnjs] или страница [builds](builds-page) должны использоваться как источник собранных артефактов.
- Помощники, хранящиеся в контексте, теперь всегда получают хэш `options`. Ранее помощники без аргументов не получали этот аргумент.
[Изменения](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.12...v1.1.0)## v1.0.12 / 1.0.0 - 31 мая 2013 года - [#515](https://github.com/handlebars-lang/handlebars.js/issues/515) - Добавить поддержку расширений require для node ([@jjclark1982](https://github.com/jjclark1982))
- [#517](https://github.com/handlebars-lang/handlebars.js/issues/517) - Исправить вывод предкомпилятора amd с директориями ([@blessenm](https://github.com/blessenm))
- [#433](https://github.com/handlebars-lang/handlebars.js/issues/433) - Добавить поддержку unicode идентификаторов
- [#469](https://github.com/handlebars-lang/handlebars.js/issues/469) - Добавить поддержку `?` в идентификаторах
- [#534](https://github.com/handlebars-lang/handlebars.js/issues/534) - Обеспечить защиту от изменений прототипа объекта
- [#519](https://github.com/handlebars-lang/handlebars.js/issues/519) - Исправить частичные шаблоны с именем `.` ([@jamesgorrie](https://github.com/jamesgorrie))
- [#519](https://github.com/handlebars-lang/handlebars.js/issues/519) - Разрешить ID или строки в именах частичных шаблонов
- [#437](https://github.com/handlebars-lang/handlebars.js/issues/437) - Требовать соответствующее количество скобок в экранированных выражениях
- Объединить переданные частичные шаблоны и помощники с глобальным пространством имен
- Добавить поддержку сложных идентификаторов в ссылках @data
- Обновления документации
Примечания по совместимости:- Парсер теперь строже проверяет `{{{`, требуя, чтобы заключительный токен был `}}}`. Шаблоны, которые не следуют этой конвенции, должны добавить дополнительное значение скобки.
- Код, который зависит от глобального пространства имен, которое заглушается при передаче пользовательских помощников или частей, должен явно передавать значение `undefined` для любых помощников, которые не должны быть доступны.
- Версия компилятора изменилась. Предварительно скомпилированные шаблоны с версией 1.0.12 или выше должны использовать версию runtime 1.0.0 или выше.
[Коммиты](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.11...v1.0.12)## v1.0.11 / 1.0.0-rc4 - 13 мая 2013 - [#458](https://github.com/handlebars-lang/handlebars.js/issues/458) - Исправление синтаксиса `. /foo` ([@jpfiset](https://github.com/jpfiset))
- [#460](https://github.com/handlebars-lang/handlebars.js/issues/460) - Разрешение символа `:` в неэкранированных идентификаторах ([@jpfiset](https://github.com/jpfiset))
- [#471](https://github.com/handlebars-lang/handlebars.js/issues/471) - Создание заметок о выпуске (Эти! )
- [#456](https://github.com/handlebars-lang/handlebars.js/issues/456) - Разрешение экранирования `\`
- [#211](https://github.com/handlebars-lang/handlebars.js/issues/211) - Исправление исключения в `escapeExpression`
- [#375](https://github.com/handlebars-lang/handlebars.js/issues/375) - Экранирование unicode-символов новой строки
- [#461](https://github.com/handlebars-lang/handlebars.js/issues/461) - Не провоцировать ошибку при компиляции `""`
- [#302](https://github.com/handlebars-lang/handlebars.js/issues/302) - Исправление проверки целостности в режиме knownHelpersOnly
- [#369](https://github.com/handlebars-lang/handlebars.js/issues/369) - Разрешение регистрации нескольких помощников и частей, передавая объект определения
- Добавление объявления пакета bower ([@DevinClark](https://github.com/DevinClark))
- Добавление объявления пакета NuSpec ([@MikeMayer](https://github.com/MikeMayer))
- Обработка пустого контекста в `with` ([@thejohnfreeman](https://github.com/thejohnfreeman))
- Поддержка пользовательских расширений шаблонов в CLI ([@matteoagosti](https://github.com/matteoagosti))
- Исправление поддержки Rhino ([@broady](https://github.com/broady))
- Включение контекстов в режиме строк ([@leshill](https://github.com/leshill))
- Возврат предкомпилированных скриптов при компиляции в AMD ([@JamesMaroney](https://github.com/JamesMaroney))
- Обновление документации ([@iangreenleaf](https://github.com/iangreenleaf))com/iangreenleaf), [@gilesbowkett](https://github.com/gilesbowkett), [@utkarsh2012](https://github.com/utkarsh2012))
- Исправление обработки `toString` в IE и browserify ([@tommydudebreaux](https://github.com/tommydudebreaux))
- Добавление метаданных программы [записей коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.10...v1.0.11)## v1.0.10 - Node - 27 февраля 2013
- [#428](https://github.com/handlebars-lang/handlebars.js/issues/428) - Исправление некорректного отображения вложенных шаблонов
- Исправление сообщения об ошибке ([@tricknotes](https://github.com/tricknotes))
- Добавлена поддержка отрицательных чисел
- Преобразование библиотеки в единую IIFE
- Добавление gemspec для handlebars-source ([@machty](https://github.com/machty))
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.9...v1.0.10)
## v1.0.9 - Node - 15 февраля 2013
- Добавлен API `Handlebars.create` для модуля Node для изолированных экземпляров ([@tommydudebreaux](https://github.com/tommydudebreaux))
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/1.0.0-rc.3...v1.0.9)
## 1.0.0-rc3 - Браузер - 14 февраля 2013
- Предотвращение использования `this` или `..` в неправильном месте ([@leshill](https://github.com/leshill))
- Добавление передачи AST для `parse`/`compile`/`precompile` ([@machty](https://github.com/machty))
- Оптимизация сгенерированного вывода путем встраивания операторов, где это возможно
- Проверка версии компилятора при оценке шаблонов
- Упаковка браузерной версии в npm пакет
[Записи коммитов](https://github.com/handlebars-lang/handlebars.js/compare/v1.0.8...1.0.0-rc.3)
## Предыдущие версии
При обновлении с серии Handlebars 0.9 обратите внимание на изменение сигнатуры передачи пользовательских помощников или частей шаблонам.
Вместо:
```js
template(context, helpers, partials, [data]);
Используйте:
template(context, { helpers: helpers, partials: partials, data: data });
```[страница сборки]: http://builds.handlebarsjs.com.s3.amazonaws.com/index.html
[cdnjs]: http://cdnjs.com/libraries/handlebars.js/
[components]: https://github.com/components/handlebars.js
[npm]: https://npmjs.org/package/handlebars
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )