|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531 |
- # Change Log
-
- All notable changes to this project will be documented in this file.
- This project adheres to [Semantic Versioning](http://semver.org/).
-
- ## [3.2.0] / 18 December 2019
-
- ### Added
-
- * [#728]: Expose ECMAScript Module in addition to UMD (CommonJS, AMD & global scope), by [@phillipj] and [@zekth].
-
- ### Using mustache.js as an ES module
-
- To stay backwards compatible with already using projects, the default exposed module format is still UMD.
- That means projects using mustache.js as an CommonJS, AMD or global scope module, from npm or directly from github.com
- can keep on doing that for now.
-
- For those projects who would rather want to use mustache.js as an ES module, the `mustache/mustache.mjs` file has to
- be `import`ed directly.
-
- Below are some usage scenarios for different runtimes.
-
- #### Modern browser with ES module support
-
- ```html
- <!-- index.html -->
- <script type="module">
- import mustache from "https://unpkg.com/mustache@3.2.0/mustache.mjs"
-
- console.log(mustache.render('Hello {{name}}!', { name: 'Santa' }))
- // Hello Santa!
- </script>
- ```
-
- #### [Node.js](https://nodejs.org) (>= v13.2.0 or using --experimental-modules flag)
-
- ```js
- // index.mjs
- import mustache from 'mustache/mustache.mjs'
-
- console.log(mustache.render('Hello {{name}}!', { name: 'Santa' }))
- // Hello Santa!
- ```
-
- ES Module support for Node.js will be improved in the future when [Conditional Exports](https://nodejs.org/api/esm.html#esm_conditional_exports)
- is enabled by default rather than being behind an experimental flag.
-
- More info in [Node.js ECMAScript Modules docs](https://nodejs.org/api/esm.html).
-
- #### [Deno](https://deno.land/)
-
- ```js
- // index.ts
- import mustache from 'https://unpkg.com/mustache@3.2.0/mustache.mjs'
-
- console.log(mustache.render('Hello {{name}}!', { name: 'Santa' }))
- // Hello Santa!
- ```
-
- ## [3.1.0] / 13 September 2019
-
- ### Added
-
- * [#717]: Added support .js files as views in command line tool, by [@JEStaubach].
-
- ### Fixed
-
- * [#716]: Bugfix for indentation of inline partials, by [@yotammadem].
-
- ## [3.0.3] / 27 August 2019
-
- ### Added
-
- * [#713]: Add test cases for custom functions in partials, by [@wol-soft].
-
- ### Fixed
-
- * [#714]: Bugfix for wrong function output in partials with indentation, by [@phillipj].
-
- ## [3.0.2] / 21 August 2019
-
- ### Fixed
-
- * [#705]: Fix indentation of partials, by [@kevindew] and [@yotammadem].
-
- ### Dev
-
- * [#701]: Fix test failure for Node 10 and above, by [@andersk].
- * [#704]: Lint all test files just like the source files, by [@phillipj].
- * Start experimenting & comparing GitHub Actions vs Travis CI, by [@phillipj].
-
- ## [3.0.1] / 11 November 2018
-
- * [#679]: Fix partials not rendering tokens when using custom tags, by [@stackchain].
-
- ## [3.0.0] / 16 September 2018
-
- We are very happy to announce a new major version of mustache.js. We want to be very careful not to break projects
- out in the wild, and adhering to [Semantic Versioning](http://semver.org/) we have therefore cut this new major version.
-
- The changes introduced will likely not require any actions for most using projects. The things to look out for that
- might cause unexpected rendering results are described in the migration guide below.
-
- A big shout out and thanks to [@raymond-lam] for this release! Without his contributions with code and issue triaging,
- this release would never have happened.
-
- ### Major
-
- * [#618]: Allow rendering properties of primitive types that are not objects, by [@raymond-lam].
- * [#643]: `Writer.prototype.parse` to cache by tags in addition to template string, by [@raymond-lam].
- * [#664]: Fix `Writer.prototype.parse` cache, by [@seminaoki].
-
- ### Minor
-
- * [#673]: Add `tags` parameter to `Mustache.render()`, by [@raymond-lam].
-
- ### Migrating from mustache.js v2.x to v3.x
-
- #### Rendering properties of primitive types
-
- We have ensured properties of primitive types can be rendered at all times. That means `Array.length`, `String.length`
- and similar. A corner case where this could cause unexpected output follows:
-
- View:
- ```
- {
- stooges: [
- { name: "Moe" },
- { name: "Larry" },
- { name: "Curly" }
- ]
- }
- ```
-
- Template:
- ```
- {{#stooges}}
- {{name}}: {{name.length}} characters
- {{/stooges}}
- ```
-
- Output with v3.0:
- ```
- Moe: 3 characters
- Larry: 5 characters
- Curly: 5 characters
- ```
-
- Output with v2.x:
- ```
- Moe: characters
- Larry: characters
- Curly: characters
- ```
-
- #### Caching for templates with custom delimiters
-
- We have improved the templates cache to ensure custom delimiters are taken into consideration for the cache.
- This improvement might cause unexpected rendering behaviour for using projects actively using the custom delimiters functionality.
-
- Previously it was possible to use `Mustache.parse()` as a means to set global custom delimiters. If custom
- delimiters were provided as an argument, it would affect all following calls to `Mustache.render()`.
- Consider the following:
-
- ```js
- const template = "[[item.title]] [[item.value]]";
- mustache.parse(template, ["[[", "]]"]);
-
- console.log(
- mustache.render(template, {
- item: {
- title: "TEST",
- value: 1
- }
- })
- );
-
- >> TEST 1
- ```
-
- The above illustrates the fact that `Mustache.parse()` made mustache.js cache the template without considering
- the custom delimiters provided. This is no longer true.
-
- We no longer encourage using `Mustache.parse()` for this purpose, but have rather added a fourth argument to
- `Mustache.render()` letting you provide custom delimiters when rendering.
-
- If you still need the pre-parse the template and use custom delimiters at the same time, ensure to provide
- the custom delimiters as argument to `Mustache.render()` as well.
-
- ## [2.3.2] / 17 August 2018
-
- This release is made to revert changes introduced in [2.3.1] that caused unexpected behaviour for several users.
-
- ### Minor
-
- * [#670]: Rollback template cache causing unexpected behaviour, by [@raymond-lam].
-
- ## [2.3.1] / 7 August 2018
-
- ### Minor
-
- * [#643]: `Writer.prototype.parse` to cache by tags in addition to template string, by [@raymond-lam].
- * [#664]: Fix `Writer.prototype.parse` cache, by [@seminaoki].
-
- ### Dev
-
- * [#666]: Install release tools with npm rather than pre-commit hook & `Rakefile`, by [@phillipj].
- * [#667], [#668]: Stabilize browser test suite, by [@phillipj].
-
- ### Docs
-
- * [#644]: Document global Mustache.escape overriding capacity, by [@paultopia].
- * [#657]: Correct `Mustache.parse()` return type documentation, by [@bbrooks].
-
- ## [2.3.0] / 8 November 2016
-
- ### Minor
-
- * [#540]: Add optional `output` argument to mustache CLI, by [@wizawu].
- * [#597]: Add compatibility with amdclean, by [@mightyplow].
-
- ### Dev
-
- * [#553]: Assert `null` lookup when rendering an unescaped value, by [@dasilvacontin].
- * [#580], [#610]: Ignore eslint for greenkeeper updates, by [@phillipj].
- * [#560]: Fix CLI tests for Windows, by [@kookookchoozeus].
- * Run browser tests w/node v4, by [@phillipj].
-
- ### Docs
-
- * [#542]: Add API documentation to README, by [@tomekwi].
- * [#546]: Add missing syntax highlighting to README code blocks, by [@pra85].
- * [#569]: Update Ctemplate links in README, by [@mortonfox].
- * [#592]: Change "loadUser" to "loadUser()" in README, by [@Flaque].
- * [#593]: Adding doctype to HTML code example in README, by [@calvinf].
-
- ### Dependencies
-
- * eslint -> 2.2.0. Breaking changes fix by [@phillipj]. [#548]
- * eslint -> 2.5.1.
- * mocha -> 3.0.2.
- * zuul -> 3.11.0.
-
- ## [2.2.1] / 13 December 2015
-
- ### Fixes
-
- * Improve HTML escaping, by [@phillipj].
- * Fix inconsistency in defining global mustache object, by [@simast].
- * Fix switch-case indent error, by [@norfish].
- * Unpin chai and eslint versions, by [@dasilvacontin].
- * Update README.md with proper grammar, by [@EvanLovely].
- * Update mjackson username in README, by [@mjackson].
- * Remove syntax highlighting in README code sample, by [@imagentleman].
- * Fix typo in README, by [@Xcrucifier].
- * Fix link typo in README, by [@keirog].
-
- ## [2.2.0] / 15 October 2015
-
- ### Added
-
- * Add Partials support to CLI, by [@palkan].
-
- ### Changed
-
- * Move install instructions to README's top, by [@mateusortiz]
- * Improved devhook install output, by [@ShashankaNataraj].
- * Clarifies and improves language in documentation, by [@jfmercer].
- * Linting CLI tool, by [@phillipj].
- * npm 2.x and node v4 on Travis, by [@phillipj].
-
- ### Fixes
-
- * Fix README spelling error to "aforementioned", by [@djchie].
- * Equal error message test in .render() for server and browser, by [@phillipj].
-
- ### Dependencies
-
- * chai -> 3.3.0
- * eslint -> 1.6.0
-
- ## [2.1.3] / 23 July 2015
-
- ### Added
-
- * Throw error when providing .render() with invalid template type, by [@phillipj].
- * Documents use of string literals containing double quotes, by [@jfmercer].
-
- ### Changed
-
- * Move mustache gif to githubusercontent, by [@Andersos].
-
- ### Fixed
-
- * Update UMD Shim to be resilient to HTMLElement global pollution, by [@mikesherov].
-
- ## [2.1.2] / 17 June 2015
-
- ### Added
-
- * Mustache global definition ([#466]) by [@yousefcisco].
-
- ## [2.1.1] / 11 June 2015
-
- ### Added
-
- * State that we use semver on the change log, by [@dasilvacontin].
- * Added version links to change log, by [@dasilvacontin].
-
- ### Fixed
-
- * Bugfix for using values from view's context prototype, by [@phillipj].
- * Improve test with undefined/null lookup hit using dot notation, by [@dasilvacontin].
- * Bugfix for null/undefined lookup hit when using dot notation, by [@phillipj].
- * Remove moot `version` property from bower.json, by [@kkirsche].
- * bower.json doesn't require a version bump via hook, by [@dasilvacontin].
-
-
- ## [2.1.0] / 5 June 2015
-
- * Added license attribute to package.json, by [@pgilad].
- * Minor changes to make mustache.js compatible with both WSH and ASP, by [@nagaozen].
- * Improve CLI view parsing error, by [@phillipj].
- * Bugfix for view context cache, by [@phillipj].
-
- ## [2.0.0] / 27 Mar 2015
-
- * Fixed lookup not stopping upon finding `undefined` or `null` values, by [@dasilvacontin].
- * Refactored pre-commit hook, by [@dasilvacontin].
-
- ## [1.2.0] / 24 Mar 2015
-
- * Added -v option to CLI, by [@phillipj].
- * Bugfix for rendering Number when it serves as the Context, by [@phillipj].
- * Specified files in package.json for a cleaner install, by [@phillipj].
-
- ## [1.1.0] / 18 Feb 2015
-
- * Refactor Writer.renderTokens() for better readability, by [@phillipj].
- * Cleanup tests section in readme, by [@phillipj].
- * Added JSHint to tests/CI, by [@phillipj].
- * Added node v0.12 on travis, by [@phillipj].
- * Created command line tool, by [@phillipj].
- * Added *falsy* to Inverted Sections description in README, by [@kristijanmatic].
-
- ## [1.0.0] / 20 Dec 2014
-
- * Inline tag compilation, by [@mjackson].
- * Fixed AMD registration, volo package.json entry, by [@jrburke].
- * Added spm support, by [@afc163].
- * Only access properties of objects on Context.lookup, by [@cmbuckley].
-
- ## [0.8.2] / 17 Mar 2014
-
- * Supporting Bower through a bower.json file.
-
- ## [0.8.1] / 3 Jan 2014
-
- * Fix usage of partial templates.
-
- ## [0.8.0] / 2 Dec 2013
-
- * Remove compile* writer functions, use mustache.parse instead. Smaller API.
- * Throw an error when rendering a template that contains higher-order sections and
- the original template is not provided.
- * Remove low-level Context.make function.
- * Better code readability and inline documentation.
- * Stop caching templates by name.
-
- ## [0.7.3] / 5 Nov 2013
-
- * Don't require the original template to be passed to the rendering function
- when using compiled templates. This is still required when using higher-order
- functions in order to be able to extract the portion of the template
- that was contained by that section. Fixes [#262].
- * Performance improvements.
-
- ## [0.7.2] / 27 Dec 2012
-
- * Fixed a rendering bug ([#274]) when using nested higher-order sections.
- * Better error reporting on failed parse.
- * Converted tests to use mocha instead of vows.
-
- ## [0.7.1] / 6 Dec 2012
-
- * Handle empty templates gracefully. Fixes [#265], [#267], and [#270].
- * Cache partials by template, not by name. Fixes [#257].
- * Added Mustache.compileTokens to compile the output of Mustache.parse. Fixes
- [#258].
-
- ## [0.7.0] / 10 Sep 2012
-
- * Rename Renderer => Writer.
- * Allow partials to be loaded dynamically using a callback (thanks
- [@TiddoLangerak] for the suggestion).
- * Fixed a bug with higher-order sections that prevented them from being
- passed the raw text of the section from the original template.
- * More concise token format. Tokens also include start/end indices in the
- original template.
- * High-level API is consistent with the Writer API.
- * Allow partials to be passed to the pre-compiled function (thanks
- [@fallenice]).
- * Don't use eval (thanks [@cweider]).
-
- ## [0.6.0] / 31 Aug 2012
-
- * Use JavaScript's definition of falsy when determining whether to render an
- inverted section or not. Issue [#186].
- * Use Mustache.escape to escape values inside {{}}. This function may be
- reassigned to alter the default escaping behavior. Issue [#244].
- * Fixed a bug that clashed with QUnit (thanks [@kannix]).
- * Added volo support (thanks [@guybedford]).
-
- [3.2.0]: https://github.com/janl/mustache.js/compare/v3.1.0...v3.2.0
- [3.1.0]: https://github.com/janl/mustache.js/compare/v3.0.3...v3.1.0
- [3.0.3]: https://github.com/janl/mustache.js/compare/v3.0.2...v3.0.3
- [3.0.2]: https://github.com/janl/mustache.js/compare/v3.0.1...v3.0.2
- [3.0.1]: https://github.com/janl/mustache.js/compare/v3.0.0...v3.0.1
- [3.0.0]: https://github.com/janl/mustache.js/compare/v2.3.2...v3.0.0
- [2.3.2]: https://github.com/janl/mustache.js/compare/v2.3.1...v2.3.2
- [2.3.1]: https://github.com/janl/mustache.js/compare/v2.3.0...v2.3.1
- [2.3.0]: https://github.com/janl/mustache.js/compare/v2.2.1...v2.3.0
- [2.2.1]: https://github.com/janl/mustache.js/compare/v2.2.0...v2.2.1
- [2.2.0]: https://github.com/janl/mustache.js/compare/v2.1.3...v2.2.0
- [2.1.3]: https://github.com/janl/mustache.js/compare/v2.1.2...v2.1.3
- [2.1.2]: https://github.com/janl/mustache.js/compare/v2.1.1...v2.1.2
- [2.1.1]: https://github.com/janl/mustache.js/compare/v2.1.0...v2.1.1
- [2.1.0]: https://github.com/janl/mustache.js/compare/v2.0.0...v2.1.0
- [2.0.0]: https://github.com/janl/mustache.js/compare/v1.2.0...v2.0.0
- [1.2.0]: https://github.com/janl/mustache.js/compare/v1.1.0...v1.2.0
- [1.1.0]: https://github.com/janl/mustache.js/compare/v1.0.0...v1.1.0
- [1.0.0]: https://github.com/janl/mustache.js/compare/0.8.2...v1.0.0
- [0.8.2]: https://github.com/janl/mustache.js/compare/0.8.1...0.8.2
- [0.8.1]: https://github.com/janl/mustache.js/compare/0.8.0...0.8.1
- [0.8.0]: https://github.com/janl/mustache.js/compare/0.7.3...0.8.0
- [0.7.3]: https://github.com/janl/mustache.js/compare/0.7.2...0.7.3
- [0.7.2]: https://github.com/janl/mustache.js/compare/0.7.1...0.7.2
- [0.7.1]: https://github.com/janl/mustache.js/compare/0.7.0...0.7.1
- [0.7.0]: https://github.com/janl/mustache.js/compare/0.6.0...0.7.0
- [0.6.0]: https://github.com/janl/mustache.js/compare/0.5.2...0.6.0
-
- [#186]: https://github.com/janl/mustache.js/issues/186
- [#244]: https://github.com/janl/mustache.js/issues/244
- [#257]: https://github.com/janl/mustache.js/issues/257
- [#258]: https://github.com/janl/mustache.js/issues/258
- [#262]: https://github.com/janl/mustache.js/issues/262
- [#265]: https://github.com/janl/mustache.js/issues/265
- [#267]: https://github.com/janl/mustache.js/issues/267
- [#270]: https://github.com/janl/mustache.js/issues/270
- [#274]: https://github.com/janl/mustache.js/issues/274
- [#466]: https://github.com/janl/mustache.js/issues/466
- [#540]: https://github.com/janl/mustache.js/issues/540
- [#542]: https://github.com/janl/mustache.js/issues/542
- [#546]: https://github.com/janl/mustache.js/issues/546
- [#548]: https://github.com/janl/mustache.js/issues/548
- [#553]: https://github.com/janl/mustache.js/issues/553
- [#560]: https://github.com/janl/mustache.js/issues/560
- [#569]: https://github.com/janl/mustache.js/issues/569
- [#580]: https://github.com/janl/mustache.js/issues/580
- [#592]: https://github.com/janl/mustache.js/issues/592
- [#593]: https://github.com/janl/mustache.js/issues/593
- [#597]: https://github.com/janl/mustache.js/issues/597
- [#610]: https://github.com/janl/mustache.js/issues/610
- [#643]: https://github.com/janl/mustache.js/issues/643
- [#644]: https://github.com/janl/mustache.js/issues/644
- [#657]: https://github.com/janl/mustache.js/issues/657
- [#664]: https://github.com/janl/mustache.js/issues/664
- [#666]: https://github.com/janl/mustache.js/issues/666
- [#667]: https://github.com/janl/mustache.js/issues/667
- [#668]: https://github.com/janl/mustache.js/issues/668
- [#670]: https://github.com/janl/mustache.js/issues/670
- [#618]: https://github.com/janl/mustache.js/issues/618
- [#673]: https://github.com/janl/mustache.js/issues/673
- [#679]: https://github.com/janl/mustache.js/issues/679
- [#701]: https://github.com/janl/mustache.js/issues/701
- [#704]: https://github.com/janl/mustache.js/issues/704
- [#705]: https://github.com/janl/mustache.js/issues/705
- [#713]: https://github.com/janl/mustache.js/issues/713
- [#714]: https://github.com/janl/mustache.js/issues/714
- [#716]: https://github.com/janl/mustache.js/issues/716
- [#717]: https://github.com/janl/mustache.js/issues/717
- [#728]: https://github.com/janl/mustache.js/issues/728
-
- [@afc163]: https://github.com/afc163
- [@andersk]: https://github.com/andersk
- [@Andersos]: https://github.com/Andersos
- [@bbrooks]: https://github.com/bbrooks
- [@calvinf]: https://github.com/calvinf
- [@cmbuckley]: https://github.com/cmbuckley
- [@cweider]: https://github.com/cweider
- [@dasilvacontin]: https://github.com/dasilvacontin
- [@djchie]: https://github.com/djchie
- [@EvanLovely]: https://github.com/EvanLovely
- [@fallenice]: https://github.com/fallenice
- [@Flaque]: https://github.com/Flaque
- [@guybedford]: https://github.com/guybedford
- [@imagentleman]: https://github.com/imagentleman
- [@JEStaubach]: https://github.com/JEStaubach
- [@jfmercer]: https://github.com/jfmercer
- [@jrburke]: https://github.com/jrburke
- [@kannix]: https://github.com/kannix
- [@keirog]: https://github.com/keirog
- [@kkirsche]: https://github.com/kkirsche
- [@kookookchoozeus]: https://github.com/kookookchoozeus
- [@kristijanmatic]: https://github.com/kristijanmatic
- [@kevindew]: https://github.com/kevindew
- [@mateusortiz]: https://github.com/mateusortiz
- [@mightyplow]: https://github.com/mightyplow
- [@mikesherov]: https://github.com/mikesherov
- [@mjackson]: https://github.com/mjackson
- [@mortonfox]: https://github.com/mortonfox
- [@nagaozen]: https://github.com/nagaozen
- [@norfish]: https://github.com/norfish
- [@palkan]: https://github.com/palkan
- [@paultopia]: https://github.com/paultopia
- [@pgilad]: https://github.com/pgilad
- [@phillipj]: https://github.com/phillipj
- [@pra85]: https://github.com/pra85
- [@raymond-lam]: https://github.com/raymond-lam
- [@seminaoki]: https://github.com/seminaoki
- [@ShashankaNataraj]: https://github.com/ShashankaNataraj
- [@simast]: https://github.com/simast
- [@stackchain]: https://github.com/stackchain
- [@TiddoLangerak]: https://github.com/TiddoLangerak
- [@tomekwi]: https://github.com/tomekwi
- [@wizawu]: https://github.com/wizawu
- [@wol-soft]: https://github.com/wol-soft
- [@Xcrucifier]: https://github.com/Xcrucifier
- [@yotammadem]: https://github.com/yotammadem
- [@yousefcisco]: https://github.com/yousefcisco
- [@zekth]: https://github.com/zekth
|