- add support for 'include' and 'extends' to use paths relative to basedir
- fix accidental calling of functions in iteration block. Closes #986
- fix: skip rethrow on client
- fix each/else prefixed with
-
- fix multi-block prepend/append
- swap -o and -O, set -o to --out
- add "monocle" for watcher that actually works...
- fix interpolation in blocks of text
- fix attribute interpolation
- move filters to an external library
- fix JavaScript escaping corner cases
- wtf coffeescript is not a dep
- add passing of filename to include filters
- fix wrong new lines for include filters
- add .css and .js "filters". re #438
- add include filters. Closes #283
- fix "class:" within attribute escaping
- removing ast filters
- things I can't read:
- 反馈地址
- 样式
- 联系
- 初稿,翻译完
- 接受大鸟的建议
- 头晕,翻译一点点
- 到过滤器翻译完毕
- 翻译一部分
- 中文翻译单独放
- 特性部分
- 再翻
- 翻译一点点
- fix each/else clause for enumerated objects
- fix #764 (incorrect line number for error messages)
- fix double-escaping of interpolated js slashes. Closes #784
- Included templates can not override blocks of their parent. Closes #699
- fix attr interpolation escaping. Closes #771
- fix include yields. Closes #770
- fix escaping of interpolation. Closes #769
- loosen "mkdirp" version restriction [TooTallNate]
- Revert "fixing string interpolation escaping #731", problems reported
- fix attribute interpolation escaping #731
- fix string interpolation escaping #731
- added ability to pass in json file to
--obj
- add preliminary
each
else
support. Closes #716 - fix doctype bug overlooked in #712
- fix stripping of utf-8 BOMs
- Update version of commander that supports node v0.8.
- Added --options alias of --obj
- Added reserved word conflict prevention in Google's Closure Compiler
- Added tag interpolation. Closes #657
- Allow the compiled client to use it's own jade util functions [3rd-Eden]
- Fixed
attrs()
escape bug [caseywebdev]
- Changed default doctype to html5
- Performance: statically compile attrs when possible [chowey]
- Fixed some class attribute merging cases
- Fixed so
block
doesn't consumeblockquotes
tag [chowey] - Fixed backslashes in text nodes [chowey]
- Fixed / in text. Closes #638
- Added package.json component support
- Added explicit self-closing tag support. Closes #605
- Added
block
statement - Added mixin tag-like behaviour [chowey]
- Fixed mixins with extends [chowey]
- Added preliminary mixin block support. Closes #310
- Fixed whitespace handling in various situations [chowey]
- Fixed indentation in various situations [chowey]
- Fixed unescaped attribute compilation
- Fixed pretty-printing of text-only tags (Warning: this may affect rendering) [chowey]
- Added data-attr json stringification support. Closes #572
- Added unescaped attr support. Closes #198
- Fixed #1070, reverted mixin function statements
- Fixed jade.1 typo
- Fixed source tags. now self-closing. Closes #308
- Fixed: escape backslashes in coffeescript filter
- Added jade manpage (
man jade
after installation for docs) - Added
-D, --no-debug
to jade(1) - Added
-p, --pretty
to jade(1) - Added
-c, --client
option to jade(1) - Fixed
-o { client: true }
with stdin - Fixed: skip blank lines in lexer (unless within pipeless text). Closes #399
- Added new input/output test suite using Mocha's string diffing
- Added alias
extend
->extends
. Closes #527 [guillermo] - Fixed include escapes. Closes #513
- Fixed block-expansion with .foo and #foo short-hands. Closes #498
- Changed: pass
.filename
to filters only
- Fixed
:stylus
import capabilities, pass .filename
- Fixed Block#includeBlock() with textOnly blocks
- Added a browser example
- Added
yield
for blockinclude
s - Changed: replaced internal
__
var with__jade
[chrisleishman] - Fixed two globals. Closes #433
- Added block
append
/prepend
support. Closes #355 - Added link in readme to jade-mode for Emacs
- Added link to python implementation
- Changed: only ['script', 'style'] are text-only. Closes #398'
- jade.renderFile() is back! (for express 3.x)
- Fixed
Object.keys()
failover bug
- Fixed a test due to reserved keyword
- Fixed: commander 0.1.x dep for 0.5.x
- Added: allow leading space for conditional comments
- Added quick implementation of a switch statement
- Fixed parens in mixin args. Closes #380
- Fixed: include files with a .jade extension as jade files
- Fixed include regression. Closes #354
- Fixed unexpected
else
bug when compileDebug: false - Fixed attr state issue for balancing pairs. Closes #353
- Added
include
block support. Closes #303 - Added template inheritance via
block
andextends
. Closes #242 - Added 'type="text/css"' to the style tags generated by filters.
- Added 'uglifyjs' as an explicit devDependency.
- Added -p, --path flag to jade(1)
- Added support for any arbitrary doctype
- Added
jade.render(str[,options], fn)
back - Added first-class
while
support - Added first-class assignment support
- Fixed runtime.js
Array.isArray()
polyfill. Closes #345 - Fixed: set .filename option in jade(1) when passing filenames
- Fixed
Object.keys()
polyfill typo. Closes #331 - Fixed
include
error context - Renamed magic "index" to "$index". Closes #350
- Fixed script template html. Closes #316
- Revert "Fixed script() tag with trailing ".". Closes #314"
- Added Makefile example. Closes #312
- Fixed script() tag with trailing ".". Closes #314
- Fixed new conditional boundaries. Closes #307
- Fixed jade(1) support due to
res.render()
removal - Removed --watch support (use a makefile + watch...)
- Added
client
option to reference runtime helpers - Added
Array.isArray()
for runtime.js as well - Added
Object.keys()
for the client-side runtime - Added first-class
if
,unless
,else
andelse if
support - Added first-class
each
/for
support - Added
make benchmark
for continuous-bench - Removed
inline
option, SS helpers are no longer inlined either - Removed
Parser#debug()
- Removed
jade.render()
andjade.renderFile()
- Fixed runtime.js
escape()
bug causing window.escape to be used - Fixed a bunch of tests
- Added
include
support for non-jade files - Fixed code indentation when followed by newline(s). Closes #295 [reported by masylum]
- Added
colons
option for everyone stuck with ":". Closes #231 - Optimization: consecutive lines are merged in compiled js
- Added array iteration with index example. Closes #276
- Added runtime.js
- Added
compileDebug
option to enable lineno instrumentation - Added
inline
option to disable inlining of helpers (for client-side)
- Added
mixin
support - Added
include
support - Added array support for the class attribute
- Fixed filter indentation bug. Closes #243
- Fixed empty strings support. Closes #223
- Fixed conditional comments documentation. Closes #245
- Fixed
make test
- Fixed block comments
- Fixed attribute interpolation with double quotes. Fixes #232 [topaxi]
- Added
doctype
as alias of!!!
- Added; doctype value is now case-insensitive
- Added attribute interpolation support
- Fixed; retain original indentation spaces in text blocks
- Fixed text block indentation [Laszlo Bacsi]
- Changed; utilizing devDependencies
- Fixed try/catch issue with renderFile(). Closes #227
- Removed attribute ":" support, use "=" (option for ':' coming soon)
- Added
self
object to avoid poorwith(){}
performance [masylum] - Added
doctype
option [Jeremy Larkin]
- expose Parser
- Fixed CS
Object.keys()
[reported by robholland]
- Added error context after the lineno
- Added; indicate failing lineno with ">"
- Added
Object.keys()
for the client-side - Fixed attr strings when containing the opposite quote. Closes 207
- Fixed attr issue with js expressions within strings
- Fixed single-quote filter escape bug. Closes #196
- Added
html
doctype, same as "5" - Fixed
pre
, no longer text-only
- Fixed support for quoted attribute keys ex
rss("xmlns:atom"="atom")
- Fixed pipeless text bug with missing outdent
- Fixed
support/compile.js
to exclude browser js in node - Fixes for IE [Patrick Pfeiffer]
- Added AST-filter support back in the form of
<tag>[attrs]<:><block>
- Added
Block#unshift(node)
- Added
jade.js
for the client-side to the repo - Added
jade.min.js
for the client-side to the repo - Removed need for pipes in filters. Closes #185 Note that this will break filters used to manipulate the AST, until we have a different syntax for doing so.
- Added jade
--version
- Removed
${}
interpolation support, use#{}
- Fixed invalid
.map()
call due to recent changes
- Added client-side browser support via
make jade.js
andmake jade.min.js
.
- Fixed preservation of newlines in text blocks
- Fixed jade(1) stdio
- Added
mkdirs()
to jade(1) - Added jade(1) stdio support
- Added new features to jade(1),
--watch
, recursive compilation etc [khingebjerg] - Fixed pipe-less text newlines
- Removed jade(1)
--pipe
flag
- Fixed parenthesized expressions in attrs. Closes #170
- Changed; default interpolation values
== null
to ''. Closes #167
- Added pipe-less text support with immediate ".". Closes #157
- Fixed object support in attrs
- Fixed array support for attrs
- Fixed issue with expressions being evaluated several times. closes #162
- Added markdown, discount, and markdown-js support to
:markdown
. Closes #160 - Removed
:discount
- Added
pre
pipe-less text support (and auto-escaping)
- Added block-expansion support. Closes #74
- Added support for multi-line attrs without commas. Closes #65
- Fixed
script()
etc pipe-less text with attrs
- Removed
:javascript
filter (it doesn't really do anything special, usescript
tags) - Added pipe-less text support. Tags that only accept text nodes (
script
,textarea
, etc) do not require|
. - Added
:text
filter for ad-hoc pipe-less - Added flexible indentation. Tabs, arbitrary number of spaces etc
- Added conditional-comment support. Closes #146
- Added block comment support
- Added rss example
- Added
:stylus
filter - Added
:discount
filter - Fixed; auto-detect xml and do not self-close tags. Closes #147
- Fixed whitespace issue. Closes #118
- Fixed attrs.
,
,=
, and:
within attr value strings are valid Closes #133 - Fixed; only output "" when code == null. Ex:
span.name= user.name
when undefined or null will not output "undefined". Closes #130 - Fixed; throw on unexpected token instead of hanging
- Added
each
support for Array-like objects [guillermo]
- Added CSRF example, showing how you can transparently add inputs to a form
- Added link to vim-jade
- Fixed self-closing col support [guillermo]
- Fixed exception when getAttribute or removeAttribute run into removed attributes [Naitik Shah]
- Added unescaped interpolation variant
!{code}
. Closes #124 - Changed; escape interpolated code by default
#{code}
- Fixed; hyphen in get
tag()
- Added
exports.compile(str, options)
- Renamed internal
_
to__
, since_()
is commonly used for translation
-
Add coffeescript filter [Michael Hampton]
-
Added link to slim; a ruby implementation
-
Fixed quoted attributes issue.
-
Fixed attribute issue with over greedy regexp. Previously "p(foo=(((('bar')))))= ((('baz')))" would fail for example since the regexp would lookahead to far. Now we simply pair the delimiters.
- Adding newline when using tag code when preceding text
- Assume newline in tag text when preceding text
- Changed; retain leading text whitespace
- Fixed code block support to prevent multiple buffer openings [Jake Luer]
- Fixed nested filter support
- Fixed bug when tags with code also have a block [reported by chrisirhc]
-
Added; Text introduces newlines to mimic the grammar. Whitespace handling is a little tricky with this sort of grammar. Jade will now mimic the written grammar, meaning that text blocks using the "|" margin character will introduce a literal newline, where as immediate tag text (ex "a(href='#') Link") will not.
This may not be ideal, but it makes more sense than what Jade was previously doing.
-
Added
Tag#text
to disambiguate between immediate / block text -
Removed pretty option (was kinda useless in the state it was in)
-
Reverted ignoring of newlines. Closes #92.
-
Fixed;
Parser#parse()
ignoring newlines
- Added many examples
- Added; compiler api is now public
- Added; filters can accept / manipulate the parse tree
- Added filter attribute support. Closes #79
- Added LL(*) capabilities
- Performance; wrapping code blocks in {} instead of
(function(){}).call(this)
- Performance; Optimized attribute buffering
- Fixed trailing newlines in blocks
- Major refactor. Logic now separated into lexer/parser/compiler for future extensibility.
- Added pretty option
- Added parse tree output for debug option
- Added new examples
- Removed context option, use scope
- Added support for arbitrary indentation for single-line comments. Closes #71
- Only strip first space in text (ex '| foo' will buffer ' foo')
- Added tab naive support (tabs are converted to a single indent, aka two spaces). Closes #24
- Added unbuffered comment support. Closes #62
- Added hyphen support for tag names, ex: "fb:foo-bar"
- Fixed bug with single quotes in comments. Closes #61
- Fixed comment whitespace issue, previously padding. Closes #55
- Added single line comment support. Closes #25
- Removed CDATA from :javascript filter. Closes #47
- Removed sys local
- Fixed code following tag
- Added Buffer support to
render()
- Fixed filter text block exception reporting
- Fixed tag exception reporting
- Fixed newlines before block
- Fixed; tag text allowing arbitrary trailing whitespace
- Added support for
jade.renderFile()
to utilize primed cache - Added link to textmate bundle
- Fixed filter issue with single quotes
- Fixed hyphenated attr bug
- Fixed interpolation single quotes. Closes #28
- Fixed issue with comma in attrs
-
Added support for node-discount and markdown-js depending on which is available.
-
Added support for tags to have blocks and text. this kinda fucks with arbitrary whitespace unfortunately, but also fixes trailing spaces after tags with blocks.
-
Caching generated functions. Closes #46
- Added
- each
support for readable iteration - Added markdown-js support (no compilation required)
- Removed node-discount support
- Added
${}
support for interpolation. Closes #45 - Added support for quoted attr keys:
label("for": 'something')
is allowed (although not required) [Guillermo] - Added
:less
filter [jakeluer]
- Added
context
as synonym forscope
option [Guillermo] - Fixed attr splitting:
div(style:"color: red")
is now allowed - Fixed issue with
(
and)
within attrs:a(class: (a ? 'a' : 'b'))
is now allowed - Fixed issue with leading / trailing spaces in attrs:
a( href="#" )
is now allowed [Guillermo]