LightnCandy
===========
â¡ð An extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ).
Travis CI status: [![Unit testing](https://travis-ci.org/zordius/lightncandy.svg?branch=master)](https://travis-ci.org/zordius/lightncandy) [![Regression testing](https://travis-ci.org/zordius/HandlebarsTest.svg?branch=master)](https://travis-ci.org/zordius/HandlebarsTest)
Scrutinizer CI status: [![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/zordius/lightncandy.svg)](https://scrutinizer-ci.com/g/zordius/lightncandy/)
Package on packagist: [![Latest Stable Version](https://poser.pugx.org/zordius/lightncandy/v/stable.svg)](https://packagist.org/packages/zordius/lightncandy) [![License](https://poser.pugx.org/zordius/lightncandy/license.svg)](https://github.com/zordius/lightncandy/blob/master/LICENSE.md) [![Total Downloads](https://poser.pugx.org/zordius/lightncandy/downloads)](https://packagist.org/packages/zordius/lightncandy)
Features
--------
* Logicless template: mustache ( http://mustache.github.com/ ) or handlebars ( http://handlebarsjs.com/ ) .
* Compile template to **pure PHP** code. Examples:
* <a href="https://github.com/zordius/HandlebarsTest/blob/master/fixture/001-simple-vars.tmpl">Template A</a> generated <a href="https://github.com/zordius/HandlebarsTest/blob/master/fixture/001-simple-vars.php">PHP A</a>
* <a href="https://github.com/zordius/HandlebarsTest/blob/master/fixture/016-hb-eachthis.tmpl">Template B</a> generated <a href="https://github.com/zordius/HandlebarsTest/blob/master/fixture/016-hb-eachthis.php">PHP B</a>
* **FAST!**
* Runs 2~7 times faster than <a href="https://github.com/bobthecow/mustache.php">mustache.php</a> (Justin Hileman/bobthecow implementation).
* Runs 2~7 times faster than <a href="https://github.com/dingram/mustache-php">mustache-php</a> (Dave Ingram implementation).
* Runs 10~50 times faster than <a href="https://github.com/XaminProject/handlebars.php">handlebars.php</a>.
* Detail performance test reports can be found <a href="https://github.com/zordius/HandlebarsTest">here</a>, go http://zordius.github.io/HandlebarsTest/ to see charts.
* **SMALL!** all PHP files in 188K
* **ROBUST!**
* 100% supports <a href="https://github.com/mustache/spec">mustache spec v1.1.3</a>. For the optional lambda module, supports 4 of 10 specs.
* Supports almost all <a href="https://github.com/jbboehr/handlebars-spec">handlebars.js spec</a>
* Output <a href="https://github.com/zordius/HandlebarsTest/blob/master/FEATURES.md">SAME</a> with <a href="https://github.com/wycats/handlebars.js">handlebars.js</a>
* **FLEXIBLE!**
* Lot of <a href="#compile-options">options</a> to change features and behaviors.
* Context generation
* Analyze used features from your template (execute `LightnCandy::getContext()` to get it) .
* Debug
* <a href="#template-debugging">Generate debug version template</a>
* Find out missing data when rendering template.
* Generate visually debug template.
* Standalone Template
* The compiled PHP code can run without any PHP library. You do not need to include LightnCandy when execute rendering function.
Installation
------------
Use Composer ( https://getcomposer.org/ ) to install LightnCandy:
```
composer require zordius/lightncandy:dev-master
```
**UPGRADE NOTICE**
* Please check <a href="HISTORY.md">HISTORY.md</a> for versions history.
* Please check <a href="UPGRADE.md">UPGRADE.md</a> for upgrade notice.
Documents
---------
* <a href="https://zordius.github.io/HandlebarsCookbook/9000-quickstart.html">Quick Start</a>
Compile Options
---------------
You can apply more options by running `LightnCandy::compile($template, $options)`:
```php
LightnCandy::compile($template, array(
'flags' => LightnCandy::FLAG_ERROR_LOG | LightnCandy::FLAG_STANDALONEPHP
));
```
Default is to compile the template as PHP, which can be run as fast as possible (flags = <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_BESTPERFORMANCE.html">FLAG_BESTPERFORMANCE</a>).
**Error Handling**
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_ERROR_LOG.html">FLAG_ERROR_LOG</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_ERROR_EXCEPTION.html">FLAG_ERROR_EXCEPTION</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_ERROR_SKIPPARTIAL.html">FLAG_ERROR_SKIPPARTIAL</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_RENDER_DEBUG.html">FLAG_RENDER_DEBUG</a>
**JavaScript Compatibility**
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_JSTRUE.html">FLAG_JSTRUE</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_JSOBJECT.html">FLAG_JSOBJECT</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_JSLENGTH.html">FLAG_JSLENGTH</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_JS.html">FLAG_JS</a>
**Mustache Compatibility**
* `FLAG_MUSTACHELOOKUP` : align recursive lookup up behaviors with mustache specification. And, the rendering performance will be worse.
* `FLAG_MUSTACHELAMBDA` : support simple lambda logic as mustache specification. And, the rendering performance will be worse.
* `FLAG_NOHBHELPERS` : Do not compile handlebars.js builtin helpers. With this option, `{{#with}}`, `{{#if}}`, `{{#unless}}`, `{{#each}}` means normal section, and `{{#with foo}}`, `{{#if foo}}`, `{{#unless foo}}`, `{{#each foo}}` will cause compile error.
* `FLAG_MUSTACHESECTION` : align section context behaviors with mustache.js.
* `FLAG_MUSTACHE` : support all mustache specification but performance drop, same with `FLAG_ERROR_SKIPPARTIAL` + `FLAG_MUSTACHELOOKUP` + `FLAG_MUSTACHELAMBDA` + `FLAG_NOHBHELPERS` + `FLAG_RUNTIMEPARTIAL` + `FLAG_JSTRUE` + `FLAG_JSOBJECT`.
**Handlebars Compatibility**
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_THIS.html">FLAG_THIS</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_PARENT.html">FLAG_PARENT</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_HBESCAPE.html">FLAG_HBESCAPE</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_ADVARNAME.html">FLAG_ADVARNAME</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_NAMEDARG.html">FLAG_NAMEDARG</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_SLASH.html">FLAG_SLASH</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_ELSE.html">FLAG_ELSE</a>
* `FLAG_RAWBLOCK`: support `{{{{raw_block}}}}any_char_or_{{foo}}_as_raw_string{{{{/raw_block}}}}`.
* `FLAG_HANDLEBARSLAMBDA` : support lambda logic as handlebars.js specification. And, the rendering performance will be worse.
* `FLAG_SPVARS` : support special variables include @root, @index, @key, @first, @last. Otherwise, compile these variable names with default parsing logic.
* `FLAG_HANDLEBARS` : support most handlebars extensions and also keep performance good, same with `FLAG_THIS` + `FLAG_PARENT` + `FLAG_HBESCAPE` + `FLAG_ADVARNAME` + `FLAG_NAMEDARG` + `FLAG_SPVARS` + `FLAG_SLASH` + `FLAG_ELSE` + `FLAG_RAWBLOCK`.
* `FLAG_HANDLEBARSJS` : support most handlebars.js + javascript behaviors and also keep performance good, same with `FLAG_JS` + `FLAG_HANDLEBARS`.
* `FLAG_HANDLEBARSJS_FULL` : enable all supported handlebars.js behaviors but performance drop, same with `FLAG_HANDLEBARSJS` + `FLAG_INSTANCE` + `FLAG_RUNTIMEPARTIAL` + `FLAG_MUSTACHELOOKUP` + `FLAG_HANDLEBARSLAMBDA`.
**Handlebars Options**
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_NOESCAPE.html">FLAG_NOESCAPE</a>
* <a href="https://zordius.github.io/HandlebarsCookbook/LC-FLAG_PARTIALNEWCONTEXT.html">FLAG_PARTIALNEWCONTEXT</a>
* `FLAG_IGNORESTANDALONE` : prevent standalone detection on `{{#foo}}`, `{{/foo}}` or `{{^}}`, the behavior is same with handlebars.js ignoreStandalone compile time option.
* `FLAG_STRINGPARAMS` : pass variable name as string to helpers, the behavior is same wit
没有合适的资源?快使用搜索试试~ 我知道了~
mediawiki-1.35.2.tar.gz
需积分: 15 5 下载量 126 浏览量
2021-05-11
00:18:15
上传
评论
收藏 45.88MB GZ 举报
温馨提示
共2000个文件
json:9080个
php:5007个
js:2136个
mediawiki-1.35.2.tar.gz
资源详情
资源评论
资源推荐
收起资源包目录
mediawiki-1.35.2.tar.gz (2000个子文件)
oojs-ui-wikimediaui.rtl.css 371KB
oojs-ui-wikimediaui.css 371KB
oojs-ui-images-wikimediaui.css 227KB
oojs-ui-images-wikimediaui.rtl.css 227KB
oojs-ui-images-wikimediaui.css 227KB
oojs-ui-apex.css 180KB
oojs-ui-apex.rtl.css 180KB
oojs-ui-core-wikimediaui.rtl.css 72KB
oojs-ui-core-wikimediaui.css 72KB
oojs-ui-core-wikimediaui.css 72KB
oojs-ui-images-apex.rtl.css 68KB
oojs-ui-images-apex.css 68KB
oojs-ui-wikimediaui-icons-editing-styling.rtl.css 65KB
oojs-ui-wikimediaui-icons-editing-styling.css 65KB
oojs-ui-core-apex.css 54KB
oojs-ui-core-apex.css 54KB
oojs-ui-core-apex.rtl.css 54KB
oojs-ui-wikimediaui-icons-editing-advanced.rtl.css 34KB
oojs-ui-wikimediaui-icons-editing-advanced.css 34KB
oojs-ui-widgets-wikimediaui.rtl.css 33KB
oojs-ui-widgets-wikimediaui.css 33KB
oojs-ui-widgets-wikimediaui.css 33KB
oojs-ui-widgets-apex.rtl.css 28KB
oojs-ui-widgets-apex.css 28KB
oojs-ui-widgets-apex.css 28KB
oojs-ui-toolbars-wikimediaui.rtl.css 27KB
oojs-ui-toolbars-wikimediaui.css 27KB
oojs-ui-toolbars-wikimediaui.css 27KB
oojs-ui-wikimediaui-icons-interactions.css 26KB
oojs-ui-wikimediaui-icons-interactions.rtl.css 26KB
oojs-ui-wikimediaui-icons-content.rtl.css 20KB
oojs-ui-wikimediaui-icons-content.css 20KB
oojs-ui-apex-icons-editing-styling.css 20KB
oojs-ui-apex-icons-editing-styling.rtl.css 20KB
oojs-ui-toolbars-apex.css 19KB
oojs-ui-toolbars-apex.css 19KB
oojs-ui-toolbars-apex.rtl.css 19KB
jquery.ui.theme.css 17KB
jquery.ui.theme.css 17KB
jquery.ui.button.css 13KB
oojs-ui-wikimediaui-icons-moderation.rtl.css 12KB
oojs-ui-wikimediaui-icons-moderation.css 12KB
oojs-ui-windows-wikimediaui.css 12KB
oojs-ui-windows-wikimediaui.rtl.css 12KB
oojs-ui-windows-wikimediaui.css 12KB
oojs-ui-windows-apex.css 12KB
oojs-ui-windows-apex.css 12KB
oojs-ui-windows-apex.rtl.css 12KB
chosen.css 12KB
oojs-ui-wikimediaui-icons-media.css 11KB
oojs-ui-wikimediaui-icons-media.rtl.css 11KB
oojs-ui-wikimediaui-icons-movement.rtl.css 11KB
oojs-ui-wikimediaui-icons-movement.css 11KB
oojs-ui-apex-icons-editing-advanced.css 11KB
oojs-ui-apex-icons-editing-advanced.rtl.css 11KB
oojs-ui-wikimediaui-icons-alerts.css 8KB
oojs-ui-wikimediaui-icons-alerts.rtl.css 8KB
qunit.css 8KB
oojs-ui-apex-icons-interactions.css 7KB
oojs-ui-apex-icons-interactions.rtl.css 7KB
oojs-ui-wikimediaui-icons-editing-core.rtl.css 7KB
oojs-ui-wikimediaui-icons-editing-core.css 7KB
normalise.css 7KB
oojs-ui-wikimediaui-icons-accessibility.rtl.css 7KB
oojs-ui-wikimediaui-icons-accessibility.css 7KB
commonPrint.css 6KB
oldshared.css 6KB
oojs-ui-apex-icons-content.rtl.css 6KB
oojs-ui-apex-icons-content.css 6KB
oojs-ui-wikimediaui-icons-user.css 6KB
oojs-ui-wikimediaui-icons-user.rtl.css 6KB
ve.ui.DiffElement.css 5KB
screen-desktop.css 5KB
pygments.generated.css 5KB
content.css 5KB
oojs-ui-wikimediaui-icons-editing-citation.rtl.css 5KB
oojs-ui-wikimediaui-icons-editing-citation.css 5KB
oojs-ui-wikimediaui-icons-layout.css 5KB
oojs-ui-wikimediaui-icons-layout.rtl.css 5KB
config.css 4KB
jquery.ui.datepicker.css 4KB
jquery.ui.datepicker.css 4KB
oojs-ui-wikimediaui-icons-location.rtl.css 4KB
oojs-ui-wikimediaui-icons-location.css 4KB
demo.css 4KB
ve.ui.Toolbar.css 4KB
elements.css 4KB
oojs-ui-apex-icons-media.rtl.css 4KB
oojs-ui-apex-icons-media.css 4KB
oojs-ui-apex-icons-moderation.rtl.css 4KB
oojs-ui-apex-icons-moderation.css 4KB
oojs-ui-apex-icons-movement.rtl.css 3KB
oojs-ui-apex-icons-movement.css 3KB
oojs-ui-wikimediaui-icons-wikimedia.css 3KB
oojs-ui-wikimediaui-icons-wikimedia.rtl.css 3KB
oojs-ui-wikimediaui-icons-editing-list.css 3KB
oojs-ui-wikimediaui-icons-editing-list.rtl.css 3KB
ve.ce.BranchNode.css 3KB
ve.init.mw.DesktopArticleTarget.init.css 3KB
ve.ui.MWGalleryDialog.css 3KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
qxly
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0