11.11.0 / 2015-06-12 2================== 3 4 * Added block code support ([@alephyud](https://github.com/alephyud)) 5 * Improved runtime performance of mixins significantly ([Andreas Lubbe](https://github.com/alubbe)) 6 * Improved runtime performance of pug's string escaping ([Andreas Lubbe](https://github.com/alubbe)) and ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 7 * Better line number counting for pipeless text ([@alephyud](https://github.com/alephyud)) 8 9 101.10.0 / 2015-05-25 11================== 12 13 * Now supports jstransformers, which allows improved handling of embedded languages such as Coffee-Script, and deprecated Transformers support in filters - to be removed in 2.0.0 ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 14 * CLI: added a flag to keep directory hierarchy when a directory is specified - this behavior will be the default in 2.0.0 ([@TimothyGu](https://github.com/TimothyGu)) 15 * disabled 'compileDebug' flag by default when used with express in production mode ([Andreas Lubbe](https://github.com/alubbe)) 16 * Fixed a memory leak on modern versions of Chrome as well as node 0.12 and iojs ([Andreas Lubbe](https://github.com/alubbe)) 17 * update website ([@GarthDB](https://github.com/GarthDB)) 18 191.9.2 / 2015-01-18 20================== 21 22 * Do not ignore some parser errors for mismatched parenthesis ([@TimothyGu](https://github.com/TimothyGu)) 23 * Warn for `:` that is not followed by a space ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 24 * Fix #1794 (a bizzare bug with a certain combination of inheritance, mixins and &attributes) ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 25 * Add `compileClientWithDependenciesTracked` ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 26 * Support comments in `case` blocks ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 27 * Fix blocks in nested mixins ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 28 * Lots more documentation ([@enlore](https://github.com/enlore)) 29 * Fix watching in CLI ([@pavel](https://github.com/pavel)) 30 311.9.1 / 2015-01-17 32================== 33 34 * Clean up path/fs functions in CLI as we no longer support node@0.6 ([@TimothyGu](https://github.com/TimothyGu)) 35 * Update commander ([@TimothyGu](https://github.com/TimothyGu)) 36 * Document `cache` and `parser` options ([@TimothyGu](https://github.com/TimothyGu)) 37 * Fix bug in 1.9.0 where we read the file if cache was enabled, even if a string was provided ([@TimothyGu](https://github.com/TimothyGu)) 38 * Fix year in changelog ([@tomByrer](https://github.com/tomByrer)) 39 401.9.0 / 2015-01-13 41================== 42 43 * Fix `--watch` sometimes dying when there were file-system errors ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 44 * Fix `--watch` by using `fs.watchFile` correctly ([@TimothyGu](https://github.com/TimothyGu)) 45 * Fix errors with using the CLI to compile from stdin 46 * Better looking badges ([@TimothyGu](https://github.com/TimothyGu)) 47 * Added `--extension` to CLI([@nicocedron](https://github.com/nicocedron) and [@TimothyGu](https://github.com/TimothyGu)) 48 * Refactor and improve internal cache handling ([@TimothyGu](https://github.com/TimothyGu)) 49 * Loads more tests ([@TimothyGu](https://github.com/TimothyGu)) 50 511.8.2 / 2014-12-16 52================== 53 54 * Use `-` as the default filename when using stdin on CLI ([@TimothyGu](https://github.com/TimothyGu)) 55 * Prevent some compiler errors being silenced ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 56 * Remove use of non-standard `string.trimLeft()` ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 57 * Fix bug in CLI when no name was provided for child template ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 58 * Remove dependency on monocle (hopefully fixing installation on 0.8) ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 59 * Add gitter chat room ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 60 611.8.1 / 2014-11-30 62================== 63 64 * Fix corner case when the pretty option was passed a non-string truthy value ([@TimothyGu](https://github.com/TimothyGu)) 65 * Warn when `lexer` is given as an option ([@TimothyGu](https://github.com/TimothyGu)) 66 * Update dependencies ([@TimothyGu](https://github.com/TimothyGu)) 67 681.8.0 / 2014-11-28 69================== 70 71 * Fix empty text-only block ([@rlidwka](https://github.com/rlidwka)) 72 * Warn about future change to ISO 8601 style dates ([@TimothyGu](https://github.com/TimothyGu) and [@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 73 * Add warnings when data-attributes contain ampersands ([@TimothyGu](https://github.com/TimothyGu)) 74 * Allow custom pretty indentation ([@bfred-it](https://github.com/bfred-it)) 75 * Add support for an object in the style attribute ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 76 * Add support for an object in the class attribute ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 77 * Ignore fs module in browser builds ([@sokra](https://github.com/sokra)) 78 * Update dependencies ([@hildjj](https://github.com/hildjj)) 79 * Check mixin arguments are valid JavaScript expressions ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 80 * Remove symlink ([@slang800](https://github.com/slang800)) 81 821.7.0 / 2014-09-17 83================== 84 85 * Add Doctype option on command line ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 86 * Support ES6 style rest args in mixins ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 87 * Fix support for unicode newlines (\u2028, \u2029) ([@rlidwka](https://github.com/rlidwka)) 88 * Expose `globals` option from the `with` module ([@sokra](https://github.com/sokra)) 89 * Lots of new documentation ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 90 911.6.0 / 2014-08-31 92================== 93 94 * Allow optional white space after `+` when calling a mixin ([@char101](https://github.com/char101)) 95 * Use void-elements module to replace internal self-closing list ([@hemanth](https://github.com/hemanth)) 96 * Fix a warning that eroniously warned for un-used blocks if in an extending template from an include (Reported by [@Dissimulazione](https://github.com/Dissimulazione)) 97 * Fix mixins not working at end of file ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 98 * Fix error reporting when mixin block was followed by blank lines ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 99 100 1011.5.0 / 2014-07-23 102================== 103 104 * Added compileFile API ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 105 * Fix line number in un-used blocks warning ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 106 * Fix a warning that eroniously warned for un-used blocks if they were under another block (Reported by [@pesho](https://github.com/pesho)) 107 1081.4.2 / 2014-07-16 109================== 110 111 * Fix a warning that eroniously warned for un-used blocks if they were under a "Code" element (Reported by [@narirou](https://github.com/narirou)) 112 1131.4.1 / 2014-07-16 114================== 115 116 * Fix an error that sometimes resulted in 'unexpected token "pipless-text"' being erroniously thrown (Reported by [@Artazor](https://github.com/Artazor) and [@thenitai](https://github.com/thenitai)) 117 1181.4.0 / 2014-07-15 119================== 120 121 * Fix CLI so it keeps watching when errors occur ([@AndrewTsao](https://github.com/AndrewTsao)) 122 * Support custom names for client side templates ([@ForbesLindesay](http://www.forbeslindesay.co.uk/) and [@dscape](https://github.com/dscape)) 123 * Allow whitepsace other than "space" before attributes passed to mixins (N.B. there is a small chance this could be a breaking change for you) ([@regular](https://github.com/regular)) 124 * Track dependencies so file watchers can be more clever ([@ForbesLindesay](http://www.forbeslindesay.co.uk/) and [@sdether](https://github.com/sdether)) 125 * Allow passing options to filtered includes ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 126 * Fix bugs with indentation in filters ([@ForbesLindesay](http://www.forbeslindesay.co.uk/) and [@lackac](https://github.com/lackac)) 127 * Warn on block names that are never used ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 128 1291.3.1 / 2014-04-04 130================== 131 132 * Fix error with tags in xml that are self-closing in html ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 133 * Fix error message for inline tags with content ([@hiddentao](https://github.com/hiddentao)) 134 1351.3.0 / 2014-03-02 136================== 137 138 * Fix a bug where sometimes mixins were removed by an optimisation even though they were being called ([@ForbesLindesay](http://www.forbeslindesay.co.uk/), reported by [@leider](https://github.com/leider)) 139 * Updated with to support automatically detecting when a value is "global" and removed redundant `options.globals` option ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 140 * Improve warnings for tags with multiple attributes ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 141 * Deprecate (with a warning) `node.clone`, `block.replace`, `attrs.removeAttribute`, `attrs.getAttribute` - these are all internal APIs for the AST ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 142 1431.2.0 / 2014-02-26 144================== 145 146 * Use variables instead of properties of pug, improving performance and reliability with nested templates ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 147 * Support compiling templates from stdin via a user typing ([@yorkie](https://github.com/yorkie)) 148 * Lazily add mixins ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 149 * Fix case fall-through ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 150 * Earlier errors for `when` without `case` and `else` without `if` ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 151 * Allow `if`/`else` etc. to not have a block. 152 * Remove lib-cov legacy to make browserify work better ([@silver83](https://github.com/silver83)) 153 * Add and improve test coverage using istanbul ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 154 1551.1.5 / 2014-01-19 156================== 157 158 * Add filename to and fix line numbers for missing space before text warning (@ijin82) 159 * Fix filenames for some error reporting in extends/includes (@doublerebel) 160 * Fix a corner case where a mixin was called with `&attributes` but no other attributes and a block that was supposed to be fixed in 1.1.4 ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 161 1621.1.4 / 2014-01-09 163================== 164 165 * Fix a corner case where a mixin was called with `&attributes` but no other attributes and a block ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 166 1671.1.3 / 2014-01-09 168================== 169 170 * Fix failure of npm prepublish not running 171 1721.1.2 / 2014-01-09 173================== 174 175 * Fix same interaction of `&attributes` with `false` `null` or `undefined` but combined with dynamic attributes ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 176 1771.1.1 / 2014-01-09 178================== 179 180 * Fix a bug when `&attributes` is combined with static attributes that evaluate to `false` or `null` or `undefined` ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 181 1821.1.0 / 2014-01-07 183================== 184 185 * Fix class merging to work as documented ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 186 * Throw an error when the same attribute is duplicated multiple times ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 187 * Move more errors into the parser/lexer so they have more info about line numbers ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 188 * Support mixin blocks at the end of files ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 189 1901.0.2 / 2013-12-31 191================== 192 193 * Fix a bug when `&attributes` is combined with dynamic attributes ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 194 1951.0.1 / 2013-12-29 196================== 197 198 * Allow self closing tags to contian whitespace ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 199 * Allow tags to have a single white space after them ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 200 * Support text bodies of tags that begin with `//` rather than treating them as comments ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 201 2021.0.0 / 2013-12-22 203================== 204 205 * No longer support node@0.8 ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 206 * Fix error reporting in layouts & includes ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 207 * Allow a list of 'globals' to be passed as an array at compile time & don't automatically expose all globals ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 208 * Escape apostrophes in data attributes (@qualiabyte) 209 * Fix mixin/block interaction ([@ForbesLindesay](http://www.forbeslindesay.co.uk/) & [@paulyoung](https://github.com/paulyoung)) 210 * Ignore trailing space after mixin declaration ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 211 * Make literal `.` work as expected ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 212 * Remove implicit text only for script/style ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 213 * Stop parsing comments and remove support for conditional comments ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 214 * Make filtering includes explicit ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 215 * Remove special assignment syntax ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 216 * Remove `!!!` shortcut for `doctype` ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 217 * Remove `5` shorcut for `html` doctype ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 218 * Remove `colons` option from the distant past ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 219 * Add a sepatate `compileClient` and `compileFileClient` to replace the `client` option ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 220 * Remove polyfills for supporting old browsers ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 221 * Allow interpolation for mixin names ([@jeromew](https://github.com/jeromew) 222 * Use `node.type` instead of `node.constructor.name` so it can be minified ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 223 * Allow hyphens in filter names ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 224 * Throw an error if a self closing tag has content ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 225 * Support inline tags ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 226 * Replace `attributes` magic attribute with `&attributes(attributes)` ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 227 * Remove automatic tag wrapping for filters, you can just put the tags in yourself now ([@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 228 * Remove whitespace from tags nested inside pre tags ([@markdalgleish](http://markdalgleish.com)) 229 2300.35.0 / 2013-08-21 231=================== 232 233 * Add support for space separated attributes (thanks to [@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 234 * Add earlier errors for invalid JavaScript expressions (thanks to [@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 235 * Fix parsing files with UTF8 BOMs when they are includes or parent/layout templates (thanks to [@kiinoo](https://github.com/kiinoo)) 236 2370.34.1 / 2013-07-26 238=================== 239 240 * fix render file not working when called with callback (reported by [@xieren58](https://github.com/xieren58)) 241 2420.34.0 / 2013-07-26 243=================== 244 245 * callbacks only called once for async methods even if they throw (reported by [@davidcornu](https://github.com/davidcornu)) 246 * HTML comments are pretty printed better (thanks to [@eddiemonge](https://github.com/eddiemonge)) 247 * callbacks are optional and leaving them out results in synchronous operation (thanks to [@ForbesLindesay](http://www.forbeslindesay.co.uk/)) 248 * empty filter nodes are now permitted (thanks to [@coderanger](https://github.com/coderanger)) 249 * overhaul website and documentation (thanks to [@ForbesLindesay](http://www.forbeslindesay.co.uk/)), much more of this to come. 250 2510.33.0 / 2013-07-12 252=================== 253 254 * Hugely more powerful error reporting (especially with `compileDebug` set explicitly to `true`) 255 * Add a warning for tags with multiple attributes 256 * be strict about requiring newlines after tags to fix some odd corner cases 257 * fix escaping of class to allow it to be unescaped (thanks to [@christiangenco](https://github.com/christiangenco)) 258 2590.32.0 / 2013-06-28 260=================== 261 262 * remove `pug.version` and fix `pug --version` 263 * add file name and line number to deprecation warnings 264 * use constantinople for better constant detection 265 * update `with` for a massive performance upgrade at compile time 266 2670.31.2 / 2013-06-07 268=================== 269 270 * fix overzealous deprecation warnings 271 2720.31.1 / 2013-05-31 273=================== 274 275 * fix line endings for executable command 276 * fix `locals` variable being undefined 277 * fix an obscure bug that could occur if multiple mixins interact badly (see [substack/lexical-scope#13](https://github.com/substack/lexical-scope/issues/13)) 278 2790.31.0 / 2013-05-30 280================== 281 282 * deprecate implicit text-only `script` and `style` tags 283 * make `with` at compile time using `lexical-scope` 284 * add `options.parser` that behaves exactly like `options.compiler` 285 * add "component.json" for component (runtime) support 286 * removed `hasOwnProperty` check in each loops 287 * removed .min files from the repository (people can just generate these themselves) 288 * use browserify to compile client side libraries 289 * fix buggy block extending should now be fixed 290 * fix preserve case of custom doctypes 291 * fix regexps in attributes sometimes not being accepted 292 * fix allow `$` sign in each loop variable names 293 * fix mixins with buffered code on the same line 294 * fix separate class names by ` ` rather than `,` (was sometimes incorrect) 295 2960.30.0 / 2013-04-25 297================== 298 299 * add support for 'include' and 'extends' to use paths relative to basedir 300 * fix accidental calling of functions in iteration block. Closes #986 301 * fix: skip rethrow on client 302 * fix each/else prefixed with `-` 303 * fix multi-block prepend/append 304 * swap -o and -O, set -o to --out 305 3060.29.0 / 2013-04-16 307================== 308 309 * add "monocle" for watcher that actually works... 310 * fix interpolation in blocks of text 311 * fix attribute interpolation 312 * move filters to an external library 313 * fix JavaScript escaping corner cases 314 3150.28.2 / 2013-03-04 316================== 317 318 * wtf coffeescript is not a dep 319 3200.28.1 / 2013-01-10 321================== 322 323 * add passing of filename to include filters 324 * fix wrong new lines for include filters 325 3260.28.0 / 2013-01-08 327================== 328 329 * add .css and .js "filters". re #438 330 * add include filters. Closes #283 331 * fix "class:" within attribute escaping 332 * removing ast filters 333 * things I can't read: 334 * 反馈地址 335 * 样式 336 * 联系 337 * 初稿,翻译完 338 * 接受大鸟的建议 339 * 头晕,翻译一点点 340 * 到过滤器翻译完毕 341 * 翻译一部分 342 * 中文翻译单独放 343 * 特性部分 344 * 再翻 345 * 翻译一点点 346 3470.27.7 / 2012-11-05 348================== 349 350 * fix each/else clause for enumerated objects 351 * fix #764 (incorrect line number for error messages) 352 * fix double-escaping of interpolated js slashes. Closes #784 353 3540.27.6 / 2012-10-05 355================== 356 357 * Included templates can not override blocks of their parent. Closes #699 358 3590.27.5 / 2012-09-24 360================== 361 362 * fix attr interpolation escaping. Closes #771 363 3640.27.4 / 2012-09-18 365================== 366 367 * fix include yields. Closes #770 368 3690.27.3 / 2012-09-18 370================== 371 372 * fix escaping of interpolation. Closes #769 373 * loosen "mkdirp" version restriction [TooTallNate] 374 3750.27.2 / 2012-08-07 376================== 377 378 * Revert "fixing string interpolation escaping #731", problems reported 379 3800.27.1 / 2012-08-06 381================== 382 383 * fix attribute interpolation escaping #731 384 * fix string interpolation escaping #731 385 3860.27.0 / 2012-07-26 387================== 388 389 * added ability to pass in json file to `--obj` 390 * add preliminary `each` `else` support. Closes #716 391 * fix doctype bug overlooked in #712 392 * fix stripping of utf-8 BOMs 393 3940.26.3 / 2012-06-25 395================== 396 397 * Update version of commander that supports node v0.8. 398 3990.26.2 / 2012-06-22 400================== 401 402 * Added --options alias of --obj 403 * Added reserved word conflict prevention in Google's Closure Compiler 404 * Added tag interpolation. Closes #657 405 * Allow the compiled client to use it's own pug util functions [3rd-Eden] 406 * Fixed `attrs()` escape bug [caseywebdev] 407 4080.26.1 / 2012-05-27 409================== 410 411 * Changed default doctype to __html5__ 412 * Performance: statically compile attrs when possible [chowey] 413 * Fixed some class attribute merging cases 414 * Fixed so `block` doesn't consume `blockquotes` tag [chowey] 415 * Fixed backslashes in text nodes [chowey] 416 * Fixed / in text. Closes #638 417 4180.26.0 / 2012-05-04 419================== 420 421 * Added package.json __component__ support 422 * Added explicit self-closing tag support. Closes #605 423 * Added `block` statement 424 * Added mixin tag-like behaviour [chowey] 425 * Fixed mixins with extends [chowey] 426 4270.25.0 / 2012-04-18 428================== 429 430 * Added preliminary mixin block support. Closes #310 431 * Fixed whitespace handling in various situations [chowey] 432 * Fixed indentation in various situations [chowey] 433 4340.24.0 / 2012-04-12 435================== 436 437 * Fixed unescaped attribute compilation 438 * Fixed pretty-printing of text-only tags (__Warning__: this may affect rendering) [chowey] 439 4400.23.0 / 2012-04-11 441================== 442 443 * Added data-attr json stringification support. Closes #572 444 * Added unescaped attr support. Closes #198 445 * Fixed #1070, reverted mixin function statements 446 * Fixed pug.1 typo 447 4480.22.1 / 2012-04-04 449================== 450 451 * Fixed source tags. now self-closing. Closes #308 452 * Fixed: escape backslashes in coffeescript filter 453 4540.22.0 / 2012-03-22 455================== 456 457 * Added pug manpage (`man pug` after installation for docs) 458 * Added `-D, --no-debug` to pug(1) 459 * Added `-p, --pretty` to pug(1) 460 * Added `-c, --client` option to pug(1) 461 * Fixed `-o { client: true }` with stdin 462 * Fixed: skip blank lines in lexer (unless within pipeless text). Closes #399 463 4640.21.0 / 2012-03-10 465================== 466 467 * Added new input/output test suite using Mocha's string diffing 468 * Added alias `extend` -> `extends`. Closes #527 [guillermo] 469 * Fixed include escapes. Closes #513 470 * Fixed block-expansion with .foo and #foo short-hands. Closes #498 471 4720.20.3 / 2012-02-16 473================== 474 475 * Changed: pass `.filename` to filters only 476 4770.20.2 / 2012-02-16 478================== 479 480 * Fixed `:stylus` import capabilities, pass .filename 481 4820.20.1 / 2012-02-02 483================== 484 485 * Fixed Block#includeBlock() with textOnly blocks 486 4870.20.0 / 2011-12-28 488================== 489 490 * Added a browser example 491 * Added `yield` for block `include`s 492 * Changed: replaced internal `__` var with `__pug` [chrisleishman] 493 * Fixed two globals. Closes #433 494 4950.19.0 / 2011-12-02 496================== 497 498 * Added block `append` / `prepend` support. Closes #355 499 * Added link in readme to pug-mode for Emacs 500 * Added link to python implementation 501 5020.18.0 / 2011-11-21 503================== 504 505 * Changed: only ['script', 'style'] are text-only. Closes #398' 506 5070.17.0 / 2011-11-10 508================== 509 510 * pug.renderFile() is back! (for express 3.x) 511 * Fixed `Object.keys()` failover bug 512 5130.16.4 / 2011-10-24 514================== 515 516 * Fixed a test due to reserved keyword 517 * Fixed: commander 0.1.x dep for 0.5.x 518 5190.16.3 / 2011-10-24 520================== 521 522 * Added: allow leading space for conditional comments 523 * Added quick implementation of a switch statement 524 * Fixed parens in mixin args. Closes #380 525 * Fixed: include files with a .pug extension as pug files 526 5270.16.2 / 2011-09-30 528================== 529 530 * Fixed include regression. Closes #354 531 5320.16.1 / 2011-09-29 533================== 534 535 * Fixed unexpected `else` bug when compileDebug: false 536 * Fixed attr state issue for balancing pairs. Closes #353 537 5380.16.0 / 2011-09-26 539================== 540 541 * Added `include` block support. Closes #303 542 * Added template inheritance via `block` and `extends`. Closes #242 543 * Added 'type="text/css"' to the style tags generated by filters. 544 * Added 'uglifyjs' as an explicit devDependency. 545 * Added -p, --path <path> flag to pug(1) 546 * Added support for any arbitrary doctype 547 * Added `pug.render(str[,options], fn)` back 548 * Added first-class `while` support 549 * Added first-class assignment support 550 * Fixed runtime.js `Array.isArray()` polyfill. Closes #345 551 * Fixed: set .filename option in pug(1) when passing filenames 552 * Fixed `Object.keys()` polyfill typo. Closes #331 553 * Fixed `include` error context 554 * Renamed magic "index" to "$index". Closes #350 555 5560.15.4 / 2011-09-05 557================== 558 559 * Fixed script template html. Closes #316 560 * Revert "Fixed script() tag with trailing ".". Closes #314" 561 5620.15.3 / 2011-08-30 563================== 564 565 * Added Makefile example. Closes #312 566 * Fixed script() tag with trailing ".". Closes #314 567 5680.15.2 / 2011-08-26 569================== 570 571 * Fixed new conditional boundaries. Closes #307 572 5730.15.1 / 2011-08-26 574================== 575 576 * Fixed pug(1) support due to `res.render()` removal 577 * Removed --watch support (use a makefile + watch...) 578 5790.15.0 / 2011-08-26 580================== 581 582 * Added `client` option to reference runtime helpers 583 * Added `Array.isArray()` for runtime.js as well 584 * Added `Object.keys()` for the client-side runtime 585 * Added first-class `if`, `unless`, `else` and `else if` support 586 * Added first-class `each` / `for` support 587 * Added `make benchmark` for continuous-bench 588 * Removed `inline` option, SS helpers are no longer inlined either 589 * Removed `Parser#debug()` 590 * Removed `pug.render()` and `pug.renderFile()` 591 * Fixed runtime.js `escape()` bug causing window.escape to be used 592 * Fixed a bunch of tests 593 5940.14.2 / 2011-08-16 595================== 596 597 * Added `include` support for non-pug files 598 * Fixed code indentation when followed by newline(s). Closes #295 [reported by masylum] 599 6000.14.1 / 2011-08-14 601================== 602 603 * Added `colons` option for everyone stuck with ":". Closes #231 604 * Optimization: consecutive lines are merged in compiled js 605 6060.14.0 / 2011-08-08 607================== 608 609 * Added array iteration with index example. Closes #276 610 * Added _runtime.js_ 611 * Added `compileDebug` option to enable lineno instrumentation 612 * Added `inline` option to disable inlining of helpers (for client-side) 613 6140.13.0 / 2011-07-13 615================== 616 617 * Added `mixin` support 618 * Added `include` support 619 * Added array support for the class attribute 620 6210.12.4 / 2011-06-23 622================== 623 624 * Fixed filter indentation bug. Closes #243 625 6260.12.3 / 2011-06-21 627================== 628 629 * Fixed empty strings support. Closes #223 630 * Fixed conditional comments documentation. Closes #245 631 6320.12.2 / 2011-06-16 633================== 634 635 * Fixed `make test` 636 * Fixed block comments 637 6380.12.1 / 2011-06-04 639================== 640 641 * Fixed attribute interpolation with double quotes. Fixes #232 [topaxi] 642 6430.12.0 / 2011-06-03 644================== 645 646 * Added `doctype` as alias of `!!!` 647 * Added; doctype value is now case-insensitive 648 * Added attribute interpolation support 649 * Fixed; retain original indentation spaces in text blocks 650 6510.11.1 / 2011-06-01 652================== 653 654 * Fixed text block indentation [Laszlo Bacsi] 655 * Changed; utilizing devDependencies 656 * Fixed try/catch issue with renderFile(). Closes #227 657 * Removed attribute ":" support, use "=" (option for ':' coming soon) 658 6590.11.0 / 2011-05-14 660================== 661 662 * Added `self` object to avoid poor `with(){}` performance [masylum] 663 * Added `doctype` option [Jeremy Larkin] 664 6650.10.7 / 2011-05-04 666================== 667 668 * expose Parser 669 6700.10.6 / 2011-04-29 671================== 672 673 * Fixed CS `Object.keys()` [reported by robholland] 674 6750.10.5 / 2011-04-26 676================== 677 678 * Added error context after the lineno 679 * Added; indicate failing lineno with ">" 680 * Added `Object.keys()` for the client-side 681 * Fixed attr strings when containing the opposite quote. Closes 207 682 * Fixed attr issue with js expressions within strings 683 * Fixed single-quote filter escape bug. Closes #196 684 685 6860.10.4 / 2011-04-05 687================== 688 689 * Added `html` doctype, same as "5" 690 * Fixed `pre`, no longer text-only 691 6920.10.3 / 2011-03-30 693================== 694 695 * Fixed support for quoted attribute keys ex `rss("xmlns:atom"="atom")` 696 6970.10.2 / 2011-03-30 698================== 699 700 * Fixed pipeless text bug with missing outdent 701 7020.10.1 / 2011-03-28 703================== 704 705 * Fixed `support/compile.js` to exclude browser js in node 706 * Fixes for IE [Patrick Pfeiffer] 707 7080.10.0 / 2011-03-25 709================== 710 711 * Added AST-filter support back in the form of `<tag>[attrs]<:><block>` 712 7130.9.3 / 2011-03-24 714================== 715 716 * Added `Block#unshift(node)` 717 * Added `pug.js` for the client-side to the repo 718 * Added `pug.min.js` for the client-side to the repo 719 * Removed need for pipes in filters. Closes #185 720 Note that this _will_ break filters used to 721 manipulate the AST, until we have a different 722 syntax for doing so. 723 7240.9.2 / 2011-03-23 725================== 726 727 * Added pug `--version` 728 * Removed `${}` interpolation support, use `#{}` 729 7300.9.1 / 2011-03-16 731================== 732 733 * Fixed invalid `.map()` call due to recent changes 734 7350.9.0 / 2011-03-16 736================== 737 738 * Added client-side browser support via `make pug.js` and `make pug.min.js`. 739 7400.8.9 / 2011-03-15 741================== 742 743 * Fixed preservation of newlines in text blocks 744 7450.8.8 / 2011-03-14 746================== 747 748 * Fixed pug(1) stdio 749 7500.8.7 / 2011-03-14 751================== 752 753 * Added `mkdirs()` to pug(1) 754 * Added pug(1) stdio support 755 * Added new features to pug(1), `--watch`, recursive compilation etc [khingebjerg] 756 * Fixed pipe-less text newlines 757 * Removed pug(1) `--pipe` flag 758 7590.8.6 / 2011-03-11 760================== 761 762 * Fixed parenthesized expressions in attrs. Closes #170 763 * Changed; default interpolation values `== null` to ''. Closes #167 764 7650.8.5 / 2011-03-09 766================== 767 768 * Added pipe-less text support with immediate ".". Closes #157 769 * Fixed object support in attrs 770 * Fixed array support for attrs 771 7720.8.4 / 2011-03-08 773================== 774 775 * Fixed issue with expressions being evaluated several times. closes #162 776 7770.8.2 / 2011-03-07 778================== 779 780 * Added markdown, discount, and markdown-js support to `:markdown`. Closes #160 781 * Removed `:discount` 782 7830.8.1 / 2011-03-04 784================== 785 786 * Added `pre` pipe-less text support (and auto-escaping) 787 7880.8.0 / 2011-03-04 789================== 790 791 * Added block-expansion support. Closes #74 792 * Added support for multi-line attrs without commas. Closes #65 793 7940.7.1 / 2011-03-04 795================== 796 797 * Fixed `script()` etc pipe-less text with attrs 798 7990.7.0 / 2011-03-04 800================== 801 802 * Removed `:javascript` filter (it doesn't really do anything special, use `script` tags) 803 * Added pipe-less text support. Tags that only accept text nodes (`script`, `textarea`, etc) do not require `|`. 804 * Added `:text` filter for ad-hoc pipe-less 805 * Added flexible indentation. Tabs, arbitrary number of spaces etc 806 * Added conditional-comment support. Closes #146 807 * Added block comment support 808 * Added rss example 809 * Added `:stylus` filter 810 * Added `:discount` filter 811 * Fixed; auto-detect xml and do not self-close tags. Closes #147 812 * Fixed whitespace issue. Closes #118 813 * Fixed attrs. `,`, `=`, and `:` within attr value strings are valid Closes #133 814 * Fixed; only output "" when code == null. Ex: `span.name= user.name` when undefined or null will not output "undefined". Closes #130 815 * Fixed; throw on unexpected token instead of hanging 816 8170.6.3 / 2011-02-02 818================== 819 820 * Added `each` support for Array-like objects [guillermo] 821 8220.6.2 / 2011-02-02 823================== 824 825 * Added CSRF example, showing how you can transparently add inputs to a form 826 * Added link to vim-pug 827 * Fixed self-closing col support [guillermo] 828 * Fixed exception when getAttribute or removeAttribute run into removed attributes [Naitik Shah] 829 8300.6.0 / 2010-12-19 831================== 832 833 * Added unescaped interpolation variant `!{code}`. Closes #124 834 * Changed; escape interpolated code by default `#{code}` 835 8360.5.7 / 2010-12-08 837================== 838 839 * Fixed; hyphen in get `tag()` 840 8410.5.6 / 2010-11-24 842================== 843 844 * Added `exports.compile(str, options)` 845 * Renamed internal `_` to `__`, since `_()` is commonly used for translation 846 8470.5.5 / 2010-10-30 848================== 849 850 * Add _coffeescript_ filter [Michael Hampton] 851 * Added link to _slim_; a ruby implementation 852 * Fixed quoted attributes issue. 853 854 * Fixed attribute issue with over greedy regexp. 855 Previously "p(foo=(((('bar')))))= ((('baz')))" 856 would __fail__ for example since the regexp 857 would lookahead to far. Now we simply pair 858 the delimiters. 859 8600.5.4 / 2010-10-18 861================== 862 863 * Adding newline when using tag code when preceding text 864 * Assume newline in tag text when preceding text 865 * Changed; retain leading text whitespace 866 * Fixed code block support to prevent multiple buffer openings [Jake Luer] 867 * Fixed nested filter support 868 8690.5.3 / 2010-10-06 870================== 871 872 * Fixed bug when tags with code also have a block [reported by chrisirhc] 873 8740.5.2 / 2010-10-05 875================== 876 877 * Added; Text introduces newlines to mimic the grammar. 878 Whitespace handling is a little tricky with this sort of grammar. 879 Pug will now mimic the written grammar, meaning that text blocks 880 using the "|" margin character will introduce a literal newline, 881 where as immediate tag text (ex "a(href='#') Link") will not. 882 883 This may not be ideal, but it makes more sense than what Pug was 884 previously doing. 885 886 * Added `Tag#text` to disambiguate between immediate / block text 887 * Removed _pretty_ option (was kinda useless in the state it was in) 888 * Reverted ignoring of newlines. Closes #92. 889 * Fixed; `Parser#parse()` ignoring newlines 890 8910.5.1 / 2010-10-04 892================== 893 894 * Added many examples 895 * Added; compiler api is now public 896 * Added; filters can accept / manipulate the parse tree 897 * Added filter attribute support. Closes #79 898 * Added LL(*) capabilities 899 * Performance; wrapping code blocks in {} instead of `(function(){}).call(this)` 900 * Performance; Optimized attribute buffering 901 * Fixed trailing newlines in blocks 902 9030.5.0 / 2010-09-11 904================== 905 906 * __Major__ refactor. Logic now separated into lexer/parser/compiler for future extensibility. 907 * Added _pretty_ option 908 * Added parse tree output for _debug_ option 909 * Added new examples 910 * Removed _context_ option, use _scope_ 911 9120.4.1 / 2010-09-09 913================== 914 915 * Added support for arbitrary indentation for single-line comments. Closes #71 916 * Only strip first space in text (ex '| foo' will buffer ' foo') 917 9180.4.0 / 2010-08-30 919================== 920 921 * Added tab naive support (tabs are converted to a single indent, aka two spaces). Closes #24 922 * Added unbuffered comment support. Closes #62 923 * Added hyphen support for tag names, ex: "fb:foo-bar" 924 * Fixed bug with single quotes in comments. Closes #61 925 * Fixed comment whitespace issue, previously padding. Closes #55 926 9270.3.0 / 2010-08-04 928================== 929 930 * Added single line comment support. Closes #25 931 * Removed CDATA from _:javascript_ filter. Closes #47 932 * Removed _sys_ local 933 * Fixed code following tag 934 9350.2.4 / 2010-08-02 936================== 937 938 * Added Buffer support to `render()` 939 * Fixed filter text block exception reporting 940 * Fixed tag exception reporting 941 9420.2.3 / 2010-07-27 943================== 944 945 * Fixed newlines before block 946 * Fixed; tag text allowing arbitrary trailing whitespace 947 9480.2.2 / 2010-07-16 949================== 950 951 * Added support for `pug.renderFile()` to utilize primed cache 952 * Added link to [textmate bundle](http://github.com/miksago/pug-tmbundle) 953 * Fixed filter issue with single quotes 954 * Fixed hyphenated attr bug 955 * Fixed interpolation single quotes. Closes #28 956 * Fixed issue with comma in attrs 957 9580.2.1 / 2010-07-09 959================== 960 961 * Added support for node-discount and markdown-js 962 depending on which is available. 963 964 * Added support for tags to have blocks _and_ text. 965 this kinda fucks with arbitrary whitespace unfortunately, 966 but also fixes trailing spaces after tags _with_ blocks. 967 968 * Caching generated functions. Closes #46 969 9700.2.0 / 2010-07-08 971================== 972 973 * Added `- each` support for readable iteration 974 * Added [markdown-js](http://github.com/evilstreak/markdown-js) support (no compilation required) 975 * Removed node-discount support 976 9770.1.0 / 2010-07-05 978================== 979 980 * Added `${}` support for interpolation. Closes #45 981 * Added support for quoted attr keys: `label("for": 'something')` is allowed (_although not required_) [Guillermo] 982 * Added `:less` filter [jakeluer] 983 9840.0.2 / 2010-07-03 985================== 986 987 * Added `context` as synonym for `scope` option [Guillermo] 988 * Fixed attr splitting: `div(style:"color: red")` is now allowed 989 * Fixed issue with `(` and `)` within attrs: `a(class: (a ? 'a' : 'b'))` is now allowed 990 * Fixed issue with leading / trailing spaces in attrs: `a( href="#" )` is now allowed [Guillermo] 991 992