FEATURES.md
March 22, 2022 ยท View on GitHub
In this test lightncandy is configured as HANDLEBARS+ JS COMPATIBLE (test @ 2022-03-22 08:25:12)
YES: Exact same behavior with handlebars.js run in nodejsNO: Do not support, can not parse the templateOUTPUT: Do not output for array value, object or trueCR/LF: Output more or less CR/LF (minor issue)QUOTE: Encode ' to ', not to ' (minor issue)SINGLEQUOTE: Do not encode ' to '
| test case | handlebars.php | lightncandy | mustache-php | mustache.php |
|---|---|---|---|---|
| 001-simple-vars-001 | YES | YES | OUTPUT | YES |
| 001-simple-vars-002 | OUTPUT | YES | OUTPUT | OUTPUT |
| 001-simple-vars-003 | YES | YES | OUTPUT | YES |
| 001-simple-vars-004 | YES | YES | OUTPUT | YES |
| 001-simple-vars-005 | OUTPUT | YES | OUTPUT | OUTPUT |
| 001-simple-vars-006 | OUTPUT | YES | OUTPUT | OUTPUT |
| 002-simple-if-001 | YES | YES | CR/LF | YES |
| 002-simple-if-002 | YES | YES | CR/LF | YES |
| 002-simple-if-003 | YES | YES | CR/LF | YES |
| 003-simple-else-001 | YES | YES | CR/LF | YES |
| 003-simple-else-002 | YES | YES | CR/LF | YES |
| 003-simple-else-003 | YES | YES | CR/LF | YES |
| 003-simple-else-004 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-005 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-006 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-007 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-008 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-009 | YES | YES | CR/LF | YES |
| 003-simple-else-010 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-011 | OUTPUT | YES | OUTPUT | OUTPUT |
| 003-simple-else-012 | OUTPUT | YES | OUTPUT | OUTPUT |
| 004-simple-mvars-001 | YES | YES | YES | YES |
| 004-simple-mvars-002 | YES | YES | YES | YES |
| 004-simple-mvars-003 | YES | YES | YES | YES |
| 004-simple-mvars-004 | YES | YES | YES | YES |
| 005-simple-escape-001 | YES | YES | OUTPUT | YES |
| 005-simple-escape-002 | YES | YES | OUTPUT | YES |
| 005-simple-escape-003 | OUTPUT | YES | OUTPUT | OUTPUT |
| 006-simple-section-001 | YES | YES | CR/LF | YES |
| 006-simple-section-002 | YES | YES | CR/LF | YES |
| 006-simple-section-003 | OUTPUT | YES | OUTPUT | OUTPUT |
| 006-simple-section-004 | OUTPUT | YES | OUTPUT | OUTPUT |
| 006-simple-section-005 | YES | YES | CR/LF | YES |
| 006-simple-section-006 | YES | YES | CR/LF | YES |
| 006-simple-section-007 | YES | YES | CR/LF | YES |
| 006-simple-section-008 | YES | YES | CR/LF | YES |
| 006-simple-section-009 | OUTPUT | YES | OUTPUT | OUTPUT |
| 006-simple-section-010 | YES | YES | CR/LF | YES |
| 006-simple-section-011 | OUTPUT | YES | OUTPUT | OUTPUT |
| 007-simple-sections-001 | OUTPUT | YES | OUTPUT | OUTPUT |
| 007-simple-sections-002 | YES | YES | CR/LF | YES |
| 007-simple-sections-003 | YES | YES | CR/LF | YES |
| 007-simple-sections-004 | YES | YES | CR/LF | YES |
| 007-simple-sections-005 | YES | YES | CR/LF | YES |
| 008-simple-comment-001 | YES | YES | CR/LF | YES |
| 008-simple-comment-002 | CR/LF | YES | CR/LF | CR/LF |
| 009-simple-dot-001 | SINGLEQUOTE | YES | OUTPUT | SINGLEQUOTE |
| 009-simple-dot-002 | YES | YES | OUTPUT | YES |
| 009-simple-dot-003 | YES | YES | OUTPUT | YES |
| 010-simple-doublesection-001 | YES | YES | OUTPUT | YES |
| 010-simple-doublesection-002 | OUTPUT | YES | OUTPUT | OUTPUT |
| 010-simple-doublesection-003 | OUTPUT | YES | OUTPUT | OUTPUT |
| 010-simple-doublesection-004 | OUTPUT | YES | OUTPUT | OUTPUT |
| 010-simple-doublesection-005 | OUTPUT | YES | OUTPUT | OUTPUT |
| 011-simple-context-001 | OUTPUT | YES | OUTPUT | OUTPUT |
| 011-simple-context-002 | OUTPUT | YES | OUTPUT | OUTPUT |
| 012-simple-this-001 | OUTPUT | YES | OUTPUT | OUTPUT |
| 012-simple-this-002 | OUTPUT | YES | OUTPUT | OUTPUT |
| 012-simple-this-003 | OUTPUT | YES | OUTPUT | OUTPUT |
| 012-simple-this-004 | YES | YES | OUTPUT | OUTPUT |
| 012-simple-this-005 | OUTPUT | YES | OUTPUT | OUTPUT |
| 012-simple-this-006 | OUTPUT | YES | OUTPUT | OUTPUT |
| 013-hb-each-001 | YES | YES | NO | NO |
| 013-hb-each-002 | YES | YES | NO | NO |
| 013-hb-each-003 | YES | YES | NO | NO |
| 013-hb-each-004 | YES | YES | NO | NO |
| 013-hb-each-005 | YES | YES | NO | NO |
| 013-hb-each-006 | YES | YES | NO | NO |
| 013-hb-each-007 | YES | YES | NO | NO |
| 013-hb-each-008 | YES | YES | NO | NO |
| 013-hb-each-009 | OUTPUT | YES | NO | NO |
| 013-hb-each-010 | YES | YES | NO | NO |
| 013-hb-each-011 | YES | YES | NO | NO |
| 014-hb-if-001 | CR/LF | YES | NO | NO |
| 014-hb-if-002 | CR/LF | YES | NO | NO |
| 014-hb-if-003 | YES | YES | NO | NO |
| 014-hb-if-004 | YES | YES | NO | NO |
| 014-hb-if-005 | CR/LF | YES | NO | NO |
| 014-hb-if-006 | CR/LF | YES | NO | NO |
| 014-hb-if-007 | CR/LF | YES | NO | NO |
| 014-hb-if-008 | CR/LF | YES | NO | NO |
| 015-hb-unless-001 | YES | YES | NO | NO |
| 015-hb-unless-002 | CR/LF | YES | NO | NO |
| 015-hb-unless-003 | CR/LF | YES | NO | NO |
| 015-hb-unless-004 | YES | YES | NO | NO |
| 015-hb-unless-005 | CR/LF | YES | NO | NO |
| 015-hb-unless-006 | YES | YES | NO | NO |
| 016-hb-eachthis-001 | NO | YES | NO | NO |
| 016-hb-eachthis-002 | NO | YES | NO | NO |
| 017-hb-with-001 | YES | YES | NO | NO |
| 017-hb-with-002 | YES | YES | NO | NO |
| 017-hb-with-003 | OUTPUT | YES | NO | NO |
| 018-hb-withwith-001 | OUTPUT | YES | NO | NO |
| 018-hb-withwith-002 | YES | YES | NO | NO |
| 018-hb-withwith-003 | YES | YES | NO | NO |
| 018-hb-withwith-004 | YES | YES | NO | NO |
| 018-hb-withwith-005 | YES | YES | NO | NO |
| 018-hb-withwith-006 | YES | YES | NO | NO |
| 018-hb-withwith-007 | OUTPUT | YES | NO | NO |
| 019-hb-eachparent-001 | NO | YES | NO | NO |
| 019-hb-eachparent-002 | NO | YES | NO | NO |
| 020-hb-doteach-001 | YES | YES | NO | NO |
| 020-hb-doteach-002 | OUTPUT | YES | NO | NO |
| 021-hb-manyparent-001 | NO | YES | NO | NO |
| 021-hb-manyparent-002 | NO | YES | NO | NO |
| 021-hb-manyparent-003 | NO | YES | NO | NO |
| 021-hb-manyparent-004 | NO | YES | NO | NO |
| 022-simple-partial-001 | OUTPUT | YES | NO | OUTPUT |
| 023-hb-partial-001 | OUTPUT | YES | NO | NO |
| 023-hb-partial-002 | OUTPUT | YES | NO | NO |
| 023-hb-partial-003 | OUTPUT | YES | NO | NO |
| 023-hb-partial-004 | OUTPUT | YES | NO | NO |
| 024-hb-eachindex-001 | OUTPUT | YES | NO | NO |
| 024-hb-eachindex-002 | YES | YES | NO | NO |
| 024-hb-eachindex-003 | YES | YES | NO | NO |
| 024-hb-eachindex-004 | YES | YES | NO | NO |
| 024-hb-eachindex-005 | YES | YES | NO | NO |
| 024-hb-eachindex-006 | YES | YES | NO | NO |
| 024-hb-eachindex-007 | OUTPUT | YES | NO | NO |
| 024-hb-eachindex-008 | YES | YES | NO | NO |
| 024-hb-eachindex-009 | OUTPUT | YES | NO | NO |
| 024-hb-eachindex-010 | YES | YES | NO | NO |
| 024-hb-eachindex-011 | YES | YES | NO | NO |
| 024-hb-eachindex-012 | YES | YES | NO | NO |
| 025-hb-partialparent-001 | OUTPUT | YES | NO | NO |
| 025-hb-partialparent-002 | OUTPUT | YES | NO | NO |
| 026-hb-eachif-001 | OUTPUT | YES | NO | NO |
| 027-hb-arrayindex-001 | OUTPUT | YES | NO | NO |
| 027-hb-arrayindex-002 | OUTPUT | YES | NO | NO |
| 027-hb-arrayindex-003 | OUTPUT | YES | NO | NO |
| 028-hb-advar-001 | YES | YES | OUTPUT | OUTPUT |
| 028-hb-advar-002 | YES | YES | OUTPUT | OUTPUT |
| 028-hb-advar-003 | YES | YES | OUTPUT | OUTPUT |
| 029-hb-quotedarg-001 | NO | YES | NO | NO |
| 029-hb-quotedarg-002 | NO | YES | NO | NO |
| 029-hb-quotedarg-003 | NO | YES | NO | NO |
| 030-hb-namedarg-001 | NO | YES | OUTPUT | OUTPUT |
| 030-hb-namedarg-002 | NO | YES | OUTPUT | OUTPUT |
| 031-hb-blockhelp-001 | NO | YES | NO | NO |
| 031-hb-blockhelp-002 | NO | YES | NO | NO |
| 032-hb-helper-001 | OUTPUT | YES | NO | NO |
| 032-hb-helper-002 | OUTPUT | YES | NO | NO |
| 032-hb-helper-003 | OUTPUT | YES | NO | NO |
| 032-hb-helper-004 | OUTPUT | YES | NO | NO |
| 032-hb-helper-005 | OUTPUT | YES | NO | NO |
| 033-hb-extendedcomment-001 | NO | YES | NO | NO |
| 034-hb-root-001 | YES | YES | NO | NO |
| 035-hb-eachelse-001 | CR/LF | YES | NO | NO |
| 035-hb-eachelse-002 | CR/LF | YES | NO | NO |
| 035-hb-eachelse-003 | CR/LF | YES | NO | NO |
| 035-hb-eachelse-004 | CR/LF | YES | NO | NO |
| 035-hb-eachelse-005 | OUTPUT | YES | NO | NO |
| 036-hb-sectionelse-001 | OUTPUT | YES | NO | NO |
| 036-hb-sectionelse-002 | OUTPUT | YES | NO | NO |
| 036-hb-sectionelse-003 | OUTPUT | YES | NO | NO |
| 036-hb-sectionelse-004 | OUTPUT | YES | NO | NO |
| 036-hb-sectionelse-005 | OUTPUT | YES | NO | NO |
| 036-hb-sectionelse-006 | OUTPUT | YES | NO | NO |
| 037-hb-each-firstlast-001 | OUTPUT | YES | NO | NO |
| 037-hb-each-firstlast-002 | OUTPUT | YES | NO | NO |
| 037-hb-each-firstlast-003 | OUTPUT | YES | NO | NO |
| 038-hb-subexpression-001 | YES | YES | OUTPUT | OUTPUT |
| 039-hb-parenteach-001 | NO | YES | NO | NO |
| 039-hb-parenteach-002 | NO | YES | NO | NO |
| livetest-001-hb-001 | NO | YES | NO | NO |
| livetest-002-hb-001 | OUTPUT | YES | NO | NO |