pugjs/pug
### [`v3.0.0`](https://togithub.com/pugjs/pug/releases/pug@3.0.0)
[Compare Source](https://togithub.com/pugjs/pug/compare/pug@2.0.4...pug@3.0.0)
#### Breaking Changes
- `read` plugins must now return `Buffer` if you want to support filters that use `renderBuffer` ([#3213](https://togithub.com/pugjs/pug/issues/3213))
If you don't wish to support this advanced use case, you can continue returning `string`. If you did not provide a `read` plugin, you do not need to do anything.
- The `minify` option on filters now requires you to install the relevant jstransformer ([#3084](https://togithub.com/pugjs/pug/issues/3084))
Currently we support:
- jstransformer-uglify-js for JavaScript
- jstransformer-clean-css for CSS
- Drop support for node 6 and 8 ([#3243](https://togithub.com/pugjs/pug/issues/3243))
#### New Features
- Support filters that apply to Buffers ([#3213](https://togithub.com/pugjs/pug/issues/3213))
e.g.
```js
// options.js
exports.filters = {
png: {
// instead of a function, specify an object with a "renderBuffer" property
// whose value is a function that takes a Buffer instead of a string
renderBuffer: function(buffer, options) {
var data = Buffer.from(buffer).toString('base64');
return '';
}
}
};
```
You can then use the filter like:
```pug
// foo.pug
include:png my-small-image.png
```
- Add support for replacing code gen via a plugin with `generateCode` ([#3230](https://togithub.com/pugjs/pug/issues/3230))
- Support `each ... of ...` loops ([#3179](https://togithub.com/pugjs/pug/issues/3179))
```pug
each value of iterable
li= value
```
This requires an environment that supports the `for (const val of iterable)` syntax in JS. You can iterate over Maps, Sets etc. as well as arrays. There is also some destructuring of map keys:
```pug
- const map = new Map([['a', 'x'], ['b', 'y']]);
each [key, value] of map
li
strong= key
= value
```
Renovate configuration
:date: Schedule: "every weekday" (UTC).
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
2.0.4
->3.0.0
Release Notes
pugjs/pug
### [`v3.0.0`](https://togithub.com/pugjs/pug/releases/pug@3.0.0) [Compare Source](https://togithub.com/pugjs/pug/compare/pug@2.0.4...pug@3.0.0) #### Breaking Changes - `read` plugins must now return `Buffer` if you want to support filters that use `renderBuffer` ([#3213](https://togithub.com/pugjs/pug/issues/3213)) If you don't wish to support this advanced use case, you can continue returning `string`. If you did not provide a `read` plugin, you do not need to do anything. - The `minify` option on filters now requires you to install the relevant jstransformer ([#3084](https://togithub.com/pugjs/pug/issues/3084)) Currently we support: - jstransformer-uglify-js for JavaScript - jstransformer-clean-css for CSS - Drop support for node 6 and 8 ([#3243](https://togithub.com/pugjs/pug/issues/3243)) #### New Features - Support filters that apply to Buffers ([#3213](https://togithub.com/pugjs/pug/issues/3213)) e.g. ```js // options.js exports.filters = { png: { // instead of a function, specify an object with a "renderBuffer" property // whose value is a function that takes a Buffer instead of a string renderBuffer: function(buffer, options) { var data = Buffer.from(buffer).toString('base64'); return ''; } } }; ``` You can then use the filter like: ```pug // foo.pug include:png my-small-image.png ``` - Add support for replacing code gen via a plugin with `generateCode` ([#3230](https://togithub.com/pugjs/pug/issues/3230)) - Support `each ... of ...` loops ([#3179](https://togithub.com/pugjs/pug/issues/3179)) ```pug each value of iterable li= value ``` This requires an environment that supports the `for (const val of iterable)` syntax in JS. You can iterate over Maps, Sets etc. as well as arrays. There is also some destructuring of map keys: ```pug - const map = new Map([['a', 'x'], ['b', 'y']]); each [key, value] of map li strong= key = value ```Renovate configuration
:date: Schedule: "every weekday" (UTC).
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.