tomhuda
ca9b9671a5
Add Hash arguments to simple mustaches (TODO: add Hash args to block helpers)
2011-03-04 00:11:03 -08:00
tomhuda
e0aa705f71
Add support for hash args in the tokenizer and parser
2011-03-03 21:33:28 -08:00
tomhuda
32d7e52182
Helpers take precedence over context properties with the same name. This is useful in scenarios where your context object is inherited from another system (such as a framework or JSON API) that may contain properties that conflict with helpers you explicitly define.
2011-02-25 23:01:11 -08:00
tomhuda
2b319bef2f
Make the function passed to a block helper have an identical signature to top-level template methods
2011-02-14 16:05:01 -08:00
tomhuda
d7f93c09e7
Subclasses should be able to replace the compiler - this is needed so that child views are compiled using the updated semantics of the parent compiler
2011-02-11 20:11:52 -08:00
tomhuda
299a0e81e3
data is passed to block helpers
2011-02-11 20:11:23 -08:00
tomhuda
88e7003331
* Added a few public API methods to JavaScriptCompiler.prototype, so it can be subclassed.
...
* made it possible to define an alternate name lookup scheme (so that {{foo}} does not have to be
context.foo, but can instead be something like context.get('foo'))
* made it possible to substitute an alternate buffer instead of the default empty String and override how
the compiled template appends to the buffer
* Added the concept of template-local data. In order to enable template-local data, pass true
as the second parameter to the template compiler. Then, pass in the data as the fourth
parameter (context, helpers, partials, data). These signatures may change before the 1.0 release.
2011-02-11 17:03:12 -08:00
Alan Johnson
2eb1b30870
Merge branch 'master' of github.com:wycats/handlebars.js
2011-02-10 06:27:12 -05:00
Alan Johnson
40dd2c9750
Updated if helper - missed it in the last cleanup. It no longer supports methods as arguments.
2011-02-10 06:27:03 -05:00
wycats
aaaafb4400
Makes Handlebars work in contexts without a global object (node)
2011-02-08 14:31:09 -08:00
Alan Johnson
ac4d34dbe3
Backed out function helpers.
2011-01-25 21:21:57 -05:00
Alan Johnson
116a8a5202
Merge branch 'master' of https://github.com/gixug/handlebars.js into gixug-master
2011-01-25 19:59:34 -05:00
David Stone
ea553b511b
IE 7 hates trailing commas
2011-01-25 10:24:53 -08:00
Raimonds Simanovskis
ada5a95f9c
improved "with" and "each" helpers to support function as argument
2011-01-23 11:55:48 +02:00
Alan Johnson
65b421ee4d
Merged
2011-01-22 10:30:44 -05:00
Alex Stupka
8ab1ffae17
Use prototype toString method to avoid native types being returned.
...
* For example, mozilla returns [xpconnect native prototype wrapper] vs [object Function]
2011-01-17 15:42:27 -08:00
wycats
b7c649617b
noop should return an empty String, not undefined
2011-01-11 23:16:03 -08:00
wycats
1974aa5277
If the partial is not found, an exception should be thrown
2010-12-29 19:23:23 -08:00
wycats
e20c57c9b2
Move compile to the right spot
2010-12-29 19:09:55 -08:00
wycats
5170e1459f
Don't need runtime anymore for normal operation
2010-12-29 18:34:13 -08:00
wycats
bf6c74aa83
Restructure things more simply
2010-12-29 18:21:43 -08:00
wycats
9a1d7c018d
Make {{#if foo}} handle empty Arrays
2010-12-28 15:47:15 -08:00
wycats
0da3065987
Clean up after-effects of Jison fix
2010-12-28 15:46:26 -08:00
Raimonds Simanovskis
b319730031
improved "if" helper to support function as argument
2010-12-28 13:37:42 +02:00
wycats
72fa62529e
Merge branch 'master' of https://github.com/zaach/handlebars.js into zaach-master
2010-12-27 13:02:20 -08:00
wycats
16ed2cd3f1
Refactoring and performance enhancements on the VM compiler
2010-12-21 09:47:27 -08:00
wycats
d87ae129c0
Add a #with helper
2010-12-21 09:47:01 -08:00
wycats
8fccd21283
escapeExpressions should return "" for falsy values
2010-12-21 09:46:50 -08:00
wycats
e0246d7dfc
#each should handle undefined or null values
2010-12-21 09:46:22 -08:00
wycats
fc0d721b96
Use pluggable logger rather the puts
2010-12-21 09:45:59 -08:00
wycats
355565bb04
Fix missing whitespaces in error message
2010-12-21 09:39:05 -08:00
Zach Carter
faea35f8fa
Merging with latest master
2010-12-20 02:25:25 -05:00
wycats
8f502ffbe7
Add #each and #if built-in helpers for more readable iteration and conditionals
2010-12-19 00:06:55 -08:00
wycats
f4ae0c27fe
Allow reserved words to be used without slowing down most operations in browsers with faster foo.bar vs. foo['bar'].
2010-12-19 00:06:30 -08:00
wycats
b418ef6eb2
Add optimized compiled version of handlebars, which should be significantly faster. Use Handlebars.VM.compile instead of Handlebars.compile to use the optimized version.
...
Major TODOS:
* clean up a bunch of code duplication in the compiler
* reorganize the compiler
* add support for debug symbols which would make it possible
to provide information about what part of the source caused
a runtime error.
2010-12-18 23:27:34 -08:00
wycats
e15d675a64
Everything is working now on the new VM except for partials and inverse sections
2010-12-15 23:42:53 -08:00
Zach Carter
97536f897e
Switch to Jison's lexer.
2010-12-14 19:07:05 -05:00
wycats
ec948c7382
Small restructuring. Have I mentioned how much I hate having to write modules that work in both CommonJS and the browser?
2010-12-12 13:33:17 -08:00
wycats
9fcd85bbac
Allow helperMissing to apply to simple mustaches (paves the way to support things like link_to in a Rails context)
2010-12-11 18:43:58 -08:00
wycats
215754c268
Make helperMissing a built-in feature
2010-12-11 18:28:37 -08:00
wycats
5097c18912
Make it possible to register helpers and partials and then skip passing in the helpers or partials later
2010-12-11 18:10:56 -08:00
wycats
35b4d9fd01
linting
2010-12-04 22:26:41 -05:00
wycats
4db1abcd74
Fix up the compilation process
2010-12-04 17:35:36 -05:00
wycats
f205cec745
Finish compatibility with the old handlebars:
...
* foo"bar" is an invalid param
* {{foo}}bar{{/baz}} is invalid
* fix a number of issues with inverse sections
* add partials
2010-12-03 16:49:04 -05:00
wycats
9a6f77af56
A few more lingering bugs:
...
* add helperMissing.not to the specs
* add Handlebars.Utils.isEmpty
* add runtime handling for inverse sections
* fix __get__ to pass an IdNode to evaluate
* handle case in wrapProgram where context is undefined
2010-12-03 01:39:00 -05:00
wycats
c89ecf80a5
Inverse should really be its own node, as it has totally different runtime semantics
2010-12-03 01:10:14 -05:00
wycats
8f6f3051e6
Add support for inverted sections in the parser
2010-12-03 00:54:18 -05:00
wycats
762329913d
Fix a number of outstanding issues:
...
* {{}} escape their contents, {{{}}} and {{& }} do not
* Add support in the parser, tokenizer and AST for partials
with context (support is still not there in the runtime)
* Fix some inconsistencies with the old behavior involving
the correct printing of null and undefined
* Add Handlebars.Exception
* Fixed an issue involving ./foo and this/foo
* Fleshed out helperMissing in the specs (this will be
moved out into handlebars proper once registerHelper
and registerPartial are added)
2010-12-02 01:13:24 -05:00
wycats
9846fb8a28
Got Qunit tests running through RSpec and fixed a bunch of bugs... 33 fails from the original suite to go
2010-11-28 17:36:05 -08:00
wycats
454d0a85b7
Add initial support for blocks
2010-11-26 23:45:38 -08:00