Kevin Decker
ea6b0be910
Merge pull request #892 from wycats/else-if
...
Implement parser for else chaining of helpers
2014-11-08 17:49:14 -06:00
kpdecker
01a22e61df
Use toHTML vs. instanceof checks for SafeString
...
Allows for us to play nicely in environments such as Node that could have multiple versions of the library loaded. Also allows for implementors to provide their own behavior, provided they know what they are doing.
Fixes #886
2014-11-08 17:46:53 -06:00
Kevin Decker
b5f03c95ab
Merge pull request #870 from max-b/master
...
Registering undefined partial throws exception.
2014-11-08 17:43:41 -06:00
kpdecker
d47e4dd1f7
Bump test coverage
2014-11-08 14:35:23 -06:00
kpdecker
a7000f8129
Provide stubbed visitor implementation
...
Part of #889
2014-11-05 21:57:09 -06:00
Martin Muñoz
12e3d210e8
Simplify BlockNode by removing intermediate MustacheNode
2014-11-02 18:19:20 -05:00
kpdecker
632fadcea3
Add preventIndent option for partials
...
This disables the standalone partial indent behavior required by the Mustache spec and allows for users to utilize partials in the same manner as under 1.x.
Fixes #858
2014-11-02 12:19:56 -06:00
kpdecker
7c220b9af5
Add test for whitespace control w/ partial indent
...
Verifies the behaviors discussed in #858
2014-11-02 12:09:37 -06:00
kpdecker
f30b3ea329
Allow whitespace control on comments
...
This changes the call signature for the CommentNode constructor, which is a potentially breaking change for AST users.
Fixes #866
2014-11-02 11:55:52 -06:00
kpdecker
4282668d47
Implement parser for else chaining of helpers
...
Allows users to chain multiple helpers together using their inverse callbacks. I.e.
```
{{#if foo}}
{{else if bar}}
{{else}}
{{/if}}
```
The control flow here effectively causes the helpers to be nested. The above is actually syntactic sugar for this:
```
{{#if foo}}
{{else}}
{{#if bar}}
{{else}}
{{/if}}
{{/if}}
```
Any helper may be used in this manner, the only requirement is they support normal calls and inverse calls.
Introduces a breaking change in that `{{else foo}}` may no longer be used as a root level operator. Instead `{{^foo}}` must be used.
Fixes #72 .
2014-10-27 19:17:16 -05:00
Maxb
b87e601063
Fixing indentation in spec/partials.js
2014-09-19 11:46:02 -07:00
Maxb
a0e2e200d9
Registering undefined partial throws exception.
2014-09-19 11:35:16 -07:00
kpdecker
4f01f650dc
Render false literal as “false”
...
Fixes #827
2014-08-25 23:35:43 -05:00
kpdecker
09d3c74c7f
Convert build to expose UMD from the default files
2014-08-25 22:06:15 -05:00
kpdecker
c98147b31f
Move uglify include past conditional
2014-08-25 22:05:38 -05:00
kpdecker
64f422b57f
Rev runtime version
2014-08-25 13:49:20 -05:00
kpdecker
dc9a2ed7eb
Refactor content blocks to ignore lines
...
We can simplify our previous standalone determination logic by merging content blocks again.
Fixes #854
2014-08-25 13:27:28 -05:00
kpdecker
501a640330
Allow passing depths to _child
2014-08-25 00:32:57 -05:00
kpdecker
2b3fdf7ea8
Additional test coverage cleanup
...
Also fixes the template._child implementation which broke with the depthed work.
2014-08-23 18:52:30 -05:00
kpdecker
0c7c37df6a
Restore helperMissing for ambiguous statements
...
Fixes #318 (regression)
Partial fix for #783
2014-08-23 18:26:57 -05:00
kpdecker
cde008b49f
Cleanup from code coverage report
2014-08-23 17:44:45 -05:00
kpdecker
84d646bb5d
Move strip processing into AST helper logic
...
We already have to track these behaviors for the standalone parsing and rather than having two whitespace pruning implementations this moves all of the behavior into one place.
Fixes #852
2014-08-23 17:44:20 -05:00
kpdecker
ccd803ff15
Replace string value rather than add omit flag
2014-08-23 16:37:30 -05:00
kpdecker
529e2b6796
Merge branch 'refactor-parser' of github.com:mmun/handlebars.js into mmun-refactor-parser
...
Conflicts:
lib/handlebars/compiler/ast.js
spec/ast.js
src/handlebars.yy
2014-08-23 16:29:22 -05:00
Marko Zabcic
f4b8c5260c
added test multiple subexpressions in a hash with context
2014-08-23 06:56:22 -05:00
kpdecker
ae44e071d8
Test case for #837
2014-08-15 01:45:50 -05:00
kpdecker
2f14fa57e5
Fix/simplify tests under sauce
2014-08-15 01:02:26 -05:00
kpdecker
cc5de5df3c
Fix compat partial exec without data
2014-08-15 00:38:23 -05:00
kpdecker
084e8fe1b7
Provide better error on unexpected template
...
Fixes #806
2014-08-15 00:06:40 -05:00
kpdecker
9f07a34955
Additional test coverage
2014-08-15 00:05:37 -05:00
kpdecker
cb22ee5681
Increase test coverage a touch
2014-08-14 12:25:35 -05:00
kpdecker
59607aa9ab
Add mustache spec to tests
2014-08-14 00:48:19 -05:00
kpdecker
9f8110fe15
Implement partial recursive lookup
2014-08-14 00:29:25 -05:00
kpdecker
0edce6e1d1
Inherit compat flag for partials
2014-08-14 00:29:25 -05:00
kpdecker
c98613b711
Implement recursive field lookup in compat mode
...
Provides the mustache behavior of recursive lookup without the use of depthed paths.
Note that this does incur a fairly dramatic performance penalty for depthed queries.
2014-08-13 20:46:42 -05:00
kpdecker
f2a2914d4f
Add additional tests for standalone partials
2014-08-12 15:38:50 -05:00
kpdecker
2a47d66ee9
Drop omitted content tags from generated output
2014-08-12 14:41:58 -05:00
kpdecker
50c657f138
Flag standalone nodes in the AST
2014-08-12 14:41:58 -05:00
kpdecker
6070179009
Track root status in ProgramNode constructor
2014-08-12 14:41:58 -05:00
kpdecker
4a4dcf1657
Parse context sections by line
2014-08-12 14:41:58 -05:00
kpdecker
f4af8e06b6
Allow compat flag in test specs
2014-08-11 20:10:12 -05:00
kpdecker
905f99b18c
Minor test cleanup
2014-08-11 20:08:29 -05:00
Martin Muñoz
eee2c4d4f2
Refactor blocks, programs and inverses
2014-07-29 02:45:50 -04:00
Dan Manges
2bdfd2a31d
Support inverse sections on the with helper
2014-07-16 19:37:01 +00:00
kpdecker
271106d43f
Do not lookup pathed helpers on the helper stack
...
Fixes #764
2014-07-12 12:50:54 -05:00
kpdecker
1fb7b51ee6
Fix rendering of paths that resolve to zero
...
Fixes #820
2014-07-12 11:43:45 -05:00
kpdecker
107aa4a66a
Add test case for GH-731
2014-07-07 00:01:17 -05:00
kpdecker
054627adb0
Move precompiler test filter into describe
...
This allows us to play nicely with in-browser tests
2014-07-05 15:03:18 -05:00
kpdecker
059532295d
Move precompiler to safer location
...
Attempts to avoid some of the Node vs. ES6 confusion between the different styles within the application.
Also adds some simple tests in addition to the integration test.
2014-07-05 14:39:28 -05:00
kpdecker
7172d167dd
Provide clear throw on {{#each}}
...
Fixes #773
2014-05-27 10:54:28 -04:00