├── .gitignore ├── README.md ├── SUMMARY.md ├── _book ├── about.html ├── admin.html ├── admin │ ├── admin_index_url.html │ ├── forgot_admin_pw.html │ ├── menu.html │ ├── rbac.html │ ├── smtp.html │ └── thirdpart_auth.html ├── advanced.html ├── advanced │ └── qiniu.html ├── app.html ├── base │ ├── backup_restore.md │ ├── coding_standards.html │ ├── debug_mode.html │ ├── environmental_requirement.html │ ├── get_methods.html │ ├── install.html │ └── x_v_difference.md ├── bootstrap.html ├── config.html ├── controller.html ├── controller │ ├── ajax_return.html │ ├── empty_action.html │ ├── empty_controller.html │ ├── input.html │ ├── redirect.html │ └── request_type.html ├── core_functions.html ├── cover.jpg ├── deploy.html ├── deploy │ ├── production.html │ └── url_rewrite.html ├── extends.html ├── extends │ ├── admin_menu.html │ ├── application_flow.html │ ├── base_class.html │ └── thirdpart_lib.html ├── foundation.html ├── functions │ ├── comments.html │ ├── hook.html │ ├── leuu.html │ ├── sp_asset_relative_url.html │ ├── sp_auth_check.html │ ├── sp_auth_code.html │ ├── sp_auth_encode.html │ ├── sp_check_user_action.html │ ├── sp_check_verify_code.html │ ├── sp_clear_cache.html │ ├── sp_content_page.html │ ├── sp_file_write.md │ ├── sp_get_asset_upload_path.md │ ├── sp_get_cmf_settings.html │ ├── sp_get_comments.html │ ├── sp_get_current_admin_id.html │ ├── sp_get_current_user.html │ ├── sp_get_current_userid.html │ ├── sp_get_favorite_key.html │ ├── sp_get_host.html │ ├── sp_get_menu.html │ ├── sp_get_plugin_class.html │ ├── sp_get_plugin_config.html │ ├── sp_get_relative_url.html │ ├── sp_get_theme_path.html │ ├── sp_get_users.html │ ├── sp_getad.html │ ├── sp_getcontent_imgs.html │ ├── sp_getslide.html │ ├── sp_is_mobile.html │ ├── sp_is_sae.md │ ├── sp_is_user_login.html │ ├── sp_param_lable.html │ ├── sp_password.html │ ├── sp_plugin_url.html │ ├── sp_random_string.html │ ├── sp_scan_dir.html │ ├── sp_send_email.html │ ├── sp_set_dynamic_config.html │ ├── sp_update_current_user.html │ └── sp_verifycode_img.md ├── gitbook │ ├── fonts │ │ └── fontawesome │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── gitbook-plugin-ad │ │ ├── plugin.css │ │ └── plugin.js │ ├── gitbook-plugin-anchors │ │ └── plugin.css │ ├── gitbook-plugin-duoshuo │ │ └── duoshuo.js │ ├── gitbook-plugin-editlink │ │ └── plugin.js │ ├── gitbook-plugin-fontsettings │ │ ├── fontsettings.js │ │ └── website.css │ ├── gitbook-plugin-github │ │ └── plugin.js │ ├── gitbook-plugin-lunr │ │ ├── lunr.min.js │ │ └── search-lunr.js │ ├── gitbook-plugin-prism │ │ ├── prism-coy.css │ │ ├── prism-dark.css │ │ ├── prism-funky.css │ │ ├── prism-okaidia.css │ │ ├── prism-solarizedlight.css │ │ ├── prism-tomorrow.css │ │ ├── prism-twilight.css │ │ └── prism.css │ ├── gitbook-plugin-search │ │ ├── lunr.min.js │ │ ├── search-engine.js │ │ ├── search.css │ │ └── search.js │ ├── gitbook-plugin-tbfed-pagefooter │ │ └── footer.css │ ├── gitbook.js │ ├── images │ │ ├── apple-touch-icon-precomposed-152.png │ │ └── favicon.ico │ ├── style.css │ └── theme.js ├── images │ ├── 031A9AF4-CA48-4FAB-873E-D2735B010D26.png │ ├── 20141209121334548676ee3afc8.png │ ├── 20141228110052549f7264dacbe.png │ ├── 20141228110052549f7264daf74.png │ ├── 54857e9f9b316.png │ ├── 54aa90907a9f6.png │ ├── 54aa91de3ca54.png │ ├── 54aa9283b5d3a.png │ ├── 565e8c0ad7253.jpg │ ├── 5695949f3e2f1.png.jpg │ ├── 56959873764f7.png.jpg │ ├── 8BDF3EE2-A11B-4437-ABA6-F65DF9DC46C0.png │ ├── FD2DB1F5-D7E8-4CC4-8003-A003A0480FFE.png │ ├── README.md │ ├── alipay_qrcode.png │ ├── j_0008.gif │ ├── j_0012.gif │ ├── j_0050.gif │ └── view_5695911cf31e7.png.jpg ├── index.html ├── lian_jie_shu_ju_ku.html ├── model.html ├── model │ ├── README.md │ ├── definition.html │ ├── instancing.html │ └── more_help.html ├── plugin.html ├── plugin │ ├── admin_controller.html │ ├── class.html │ ├── config.html │ ├── controller.html │ ├── flow.html │ ├── hook.html │ └── model.html ├── portal.html ├── portal │ ├── base.html │ ├── base │ │ ├── structure.html │ │ └── theme_structure.html │ ├── cover.jpg │ ├── functions.html │ ├── functions │ │ ├── sp_get_child_terms.html │ │ ├── sp_get_term.html │ │ ├── sp_get_terms.html │ │ ├── sp_sql_page.html │ │ ├── sp_sql_post.html │ │ ├── sp_sql_posts.html │ │ ├── sp_sql_posts_bycatid.html │ │ ├── sp_sql_posts_paged.html │ │ ├── sp_sql_posts_paged_bycatid.html │ │ └── sp_sql_posts_paged_bykeyword.md │ ├── spgetallchildterms.html │ ├── spgetbreadcrumb.html │ ├── template.html │ ├── template │ │ ├── QQ截图20160411184412.png │ │ ├── QQ截图20160411185412.png │ │ ├── article.html │ │ ├── get_articles.html │ │ ├── hot_articles.html │ │ ├── list.html │ │ ├── page.html │ │ ├── seo.html │ │ ├── wen_zhang_lie_biao_tui_jian_gong_neng_zhi_zuo.html │ │ ├── wen_zhang_lie_biao_zhi_ding_gong_neng_zhi_zuo.html │ │ └── wen_zhang_xiang_ce_zhi_zuo.md │ ├── wenzhang_xiang_ce_zhi_zuo_md.html │ ├── 文章列表相册功能制作.md │ └── 瀑布流文章列表模板制作.md ├── preface.html ├── restful-api.html ├── search_index.json ├── sitemap.xml ├── sp_check_lang.html ├── spchecklang.md ├── spcheckmobileverifycode.html ├── spcomparepassword.html ├── special.html ├── special │ ├── cache.html │ ├── cookie.html │ ├── fileupload.html │ ├── multi_lang.html │ ├── pagination.html │ ├── safe.html │ ├── session.html │ └── verifycode.html ├── spgetassetuploadpath.html ├── spgetcurrenttheme.html ├── spgetfiledownloadurl.html ├── spgetfileextension.html ├── spgetimagepreviewurl.html ├── spgetimageurl.html ├── spgetuseravatarurl.html ├── spisweixin.html ├── spsetoption.html ├── theme.html ├── theme │ ├── base.html │ ├── base │ │ ├── assets_import.md │ │ ├── comments.html │ │ ├── constant.html │ │ ├── default_value_echo.html │ │ ├── global_var.html │ │ ├── include.html │ │ ├── literal.html │ │ ├── multi_lang.html │ │ ├── operator.html │ │ ├── structure.html │ │ ├── ternary_operator.html │ │ ├── use_functions.html │ │ └── var_echo.html │ ├── empty标签.md │ ├── js │ │ ├── js-ajax-delete.html │ │ ├── js-ajax-dialog-btn.html │ │ ├── js-ajax-form.html │ │ ├── js-count-btn.html │ │ ├── js-date.html │ │ ├── js-datetime.html │ │ └── js-favorite-btn.html │ ├── js_components.html │ ├── public.html │ ├── public │ │ ├── ad.html │ │ ├── comment.html │ │ ├── favorite.html │ │ ├── forgot_password.html │ │ ├── guestbook.html │ │ ├── last_comment.html │ │ ├── last_join.html │ │ ├── like.html │ │ ├── link.html │ │ ├── login.html │ │ ├── nav.html │ │ ├── password_reset.html │ │ ├── register.html │ │ └── slide.html │ ├── tag.html │ ├── tags │ │ ├── assign.html │ │ ├── between.html │ │ ├── compare.html │ │ ├── define.html │ │ ├── defined.html │ │ ├── empty.html │ │ ├── for.html │ │ ├── foreach.html │ │ ├── if_else.html │ │ ├── nest.html │ │ ├── php.html │ │ ├── present.html │ │ ├── switch.html │ │ ├── tc_include.html │ │ └── volist.html │ ├── 三元运算.md │ ├── 前台模板多语言.md │ ├── 包含文件.md │ └── 原样输出.md ├── url.html ├── view.html ├── view │ ├── README.md │ ├── assign.html │ ├── display.html │ ├── fetch.html │ ├── theme.html │ └── theme_detail.html ├── 插件多语言.html └── 钩子,插件与模板.md ├── about.md ├── admin.md ├── admin ├── admin_index_url.md ├── forgot_admin_pw.md ├── menu.md ├── rbac.md ├── smtp.md └── thirdpart_auth.md ├── advanced.md ├── advanced └── qiniu.md ├── app.md ├── base ├── backup_restore.md ├── coding_standards.md ├── debug_mode.md ├── environmental_requirement.md ├── get_methods.md ├── install.md └── x_v_difference.md ├── book.json ├── bootstrap.md ├── config.md ├── controller.md ├── controller ├── ajax_return.md ├── empty_action.md ├── empty_controller.md ├── input.md ├── redirect.md └── request_type.md ├── core_functions.md ├── cover.jpg ├── deploy.md ├── deploy ├── production.md └── url_rewrite.md ├── extends.md ├── extends ├── admin_menu.md ├── application_flow.md ├── base_class.md └── thirdpart_lib.md ├── foundation.md ├── functions ├── comments.md ├── hook.md ├── leuu.md ├── sp_asset_relative_url.md ├── sp_auth_check.md ├── sp_auth_code.md ├── sp_auth_encode.md ├── sp_check_user_action.md ├── sp_check_verify_code.md ├── sp_clear_cache.md ├── sp_content_page.md ├── sp_file_write.md ├── sp_get_asset_upload_path.md ├── sp_get_cmf_settings.md ├── sp_get_comments.md ├── sp_get_current_admin_id.md ├── sp_get_current_user.md ├── sp_get_current_userid.md ├── sp_get_favorite_key.md ├── sp_get_host.md ├── sp_get_menu.md ├── sp_get_plugin_class.md ├── sp_get_plugin_config.md ├── sp_get_relative_url.md ├── sp_get_theme_path.md ├── sp_get_users.md ├── sp_getad.md ├── sp_getcontent_imgs.md ├── sp_getslide.md ├── sp_is_mobile.md ├── sp_is_sae.md ├── sp_is_user_login.md ├── sp_param_lable.md ├── sp_password.md ├── sp_plugin_url.md ├── sp_random_string.md ├── sp_scan_dir.md ├── sp_send_email.md ├── sp_set_dynamic_config.md ├── sp_update_current_user.md └── sp_verifycode_img.md ├── images ├── 031A9AF4-CA48-4FAB-873E-D2735B010D26.png ├── 20141209121334548676ee3afc8.png ├── 20141228110052549f7264dacbe.png ├── 20141228110052549f7264daf74.png ├── 54857e9f9b316.png ├── 54aa90907a9f6.png ├── 54aa91de3ca54.png ├── 54aa9283b5d3a.png ├── 565e8c0ad7253.jpg ├── 5695949f3e2f1.png.jpg ├── 56959873764f7.png.jpg ├── 8BDF3EE2-A11B-4437-ABA6-F65DF9DC46C0.png ├── FD2DB1F5-D7E8-4CC4-8003-A003A0480FFE.png ├── README.md ├── alipay_qrcode.png ├── j_0008.gif ├── j_0012.gif ├── j_0050.gif └── view_5695911cf31e7.png.jpg ├── lian_jie_shu_ju_ku.md ├── model.md ├── model ├── README.md ├── definition.md ├── instancing.md └── more_help.md ├── node_modules ├── .bin │ └── mkdirp ├── boolbase │ ├── README.md │ ├── index.js │ └── package.json ├── buffer-shims │ ├── index.js │ ├── license.md │ ├── package.json │ └── readme.md ├── cheerio │ ├── History.md │ ├── Readme.md │ ├── index.js │ ├── lib │ │ ├── api │ │ │ ├── attributes.js │ │ │ ├── css.js │ │ │ ├── forms.js │ │ │ ├── manipulation.js │ │ │ └── traversing.js │ │ ├── cheerio.js │ │ ├── parse.js │ │ ├── static.js │ │ └── utils.js │ └── package.json ├── core-util-is │ ├── LICENSE │ ├── README.md │ ├── float.patch │ ├── lib │ │ └── util.js │ ├── package.json │ └── test.js ├── css-select │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── attributes.js │ │ ├── compile.js │ │ ├── general.js │ │ ├── procedure.json │ │ ├── pseudos.js │ │ └── sort.js │ └── package.json ├── css-what │ ├── LICENSE │ ├── index.js │ ├── package.json │ └── readme.md ├── dom-serializer │ ├── LICENSE │ ├── index.js │ ├── node_modules │ │ └── domelementtype │ │ │ ├── LICENSE │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── readme.md │ └── package.json ├── domelementtype │ ├── LICENSE │ ├── index.js │ ├── package.json │ └── readme.md ├── domhandler │ ├── .travis.yml │ ├── LICENSE │ ├── index.js │ ├── lib │ │ ├── element.js │ │ └── node.js │ ├── package.json │ ├── readme.md │ └── test │ │ ├── cases │ │ ├── 01-basic.json │ │ ├── 02-single_tag_1.json │ │ ├── 03-single_tag_2.json │ │ ├── 04-unescaped_in_script.json │ │ ├── 05-tags_in_comment.json │ │ ├── 06-comment_in_script.json │ │ ├── 07-unescaped_in_style.json │ │ ├── 08-extra_spaces_in_tag.json │ │ ├── 09-unquoted_attrib.json │ │ ├── 10-singular_attribute.json │ │ ├── 11-text_outside_tags.json │ │ ├── 12-text_only.json │ │ ├── 13-comment_in_text.json │ │ ├── 14-comment_in_text_in_script.json │ │ ├── 15-non-verbose.json │ │ ├── 16-normalize_whitespace.json │ │ ├── 17-xml_namespace.json │ │ ├── 18-enforce_empty_tags.json │ │ ├── 19-ignore_empty_tags.json │ │ ├── 20-template_script_tags.json │ │ ├── 21-conditional_comments.json │ │ ├── 22-lowercase_tags.json │ │ ├── 23-dom-lvl1.json │ │ └── 24-with-start-indices.json │ │ └── tests.js ├── domutils │ ├── .npmignore │ ├── LICENSE │ ├── index.js │ ├── lib │ │ ├── helpers.js │ │ ├── legacy.js │ │ ├── manipulation.js │ │ ├── querying.js │ │ ├── stringify.js │ │ └── traversal.js │ ├── package.json │ ├── readme.md │ └── test │ │ ├── fixture.js │ │ ├── tests │ │ ├── helpers.js │ │ ├── legacy.js │ │ └── traversal.js │ │ └── utils.js ├── entities │ ├── .travis.yml │ ├── LICENSE │ ├── index.js │ ├── lib │ │ ├── decode.js │ │ ├── decode_codepoint.js │ │ └── encode.js │ ├── maps │ │ ├── decode.json │ │ ├── entities.json │ │ ├── legacy.json │ │ └── xml.json │ ├── package.json │ ├── readme.md │ └── test │ │ ├── mocha.opts │ │ └── test.js ├── gitbook-plugin-ad │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── book │ │ ├── plugin.css │ │ └── plugin.js │ ├── index.js │ └── package.json ├── gitbook-plugin-anchors │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── assets │ │ └── plugin.css │ ├── index.js │ └── package.json ├── gitbook-plugin-duoshuo │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── duoshuo │ │ └── duoshuo.js │ ├── index.js │ └── package.json ├── gitbook-plugin-editlink │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── book │ │ └── plugin.js │ ├── index.js │ └── package.json ├── gitbook-plugin-github │ ├── LICENSE │ ├── README.md │ ├── assets │ │ └── plugin.js │ ├── index.js │ └── package.json ├── gitbook-plugin-prism │ ├── .eslintrc │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ ├── prism-ebook.css │ ├── test.js │ └── yarn.lock ├── gitbook-plugin-sitemap │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── gitbook-plugin-tbfed-pagefooter │ ├── LICENSE │ ├── README.md │ ├── assets │ │ └── footer.css │ ├── index.js │ └── package.json ├── github-slugid │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── package.json │ └── test │ │ └── test.js ├── htmlparser2 │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── CollectingHandler.js │ │ ├── FeedHandler.js │ │ ├── Parser.js │ │ ├── ProxyHandler.js │ │ ├── Stream.js │ │ ├── Tokenizer.js │ │ ├── WritableStream.js │ │ └── index.js │ └── package.json ├── inherits │ ├── LICENSE │ ├── README.md │ ├── inherits.js │ ├── inherits_browser.js │ └── package.json ├── isarray │ ├── .npmignore │ ├── .travis.yml │ ├── Makefile │ ├── README.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test.js ├── lodash.assignin │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.bind │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.defaults │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.filter │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.flatten │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.foreach │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.map │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.merge │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.pick │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.reduce │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.reject │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── lodash.some │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── minimist │ ├── .travis.yml │ ├── LICENSE │ ├── example │ │ └── parse.js │ ├── index.js │ ├── package.json │ ├── readme.markdown │ └── test │ │ ├── dash.js │ │ ├── default_bool.js │ │ ├── dotted.js │ │ ├── long.js │ │ ├── parse.js │ │ ├── parse_modified.js │ │ ├── short.js │ │ └── whitespace.js ├── mkdirp │ ├── .travis.yml │ ├── LICENSE │ ├── bin │ │ ├── cmd.js │ │ └── usage.txt │ ├── examples │ │ └── pow.js │ ├── index.js │ ├── package.json │ ├── readme.markdown │ └── test │ │ ├── chmod.js │ │ ├── clobber.js │ │ ├── mkdirp.js │ │ ├── opts_fs.js │ │ ├── opts_fs_sync.js │ │ ├── perm.js │ │ ├── perm_sync.js │ │ ├── race.js │ │ ├── rel.js │ │ ├── return.js │ │ ├── return_sync.js │ │ ├── root.js │ │ ├── sync.js │ │ ├── umask.js │ │ └── umask_sync.js ├── moment │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── ender.js │ ├── locale │ │ ├── af.js │ │ ├── ar-dz.js │ │ ├── ar-ly.js │ │ ├── ar-ma.js │ │ ├── ar-sa.js │ │ ├── ar-tn.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── be.js │ │ ├── bg.js │ │ ├── bn.js │ │ ├── bo.js │ │ ├── br.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── cv.js │ │ ├── cy.js │ │ ├── da.js │ │ ├── de-at.js │ │ ├── de.js │ │ ├── dv.js │ │ ├── el.js │ │ ├── en-au.js │ │ ├── en-ca.js │ │ ├── en-gb.js │ │ ├── en-ie.js │ │ ├── en-nz.js │ │ ├── eo.js │ │ ├── es-do.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fo.js │ │ ├── fr-ca.js │ │ ├── fr-ch.js │ │ ├── fr.js │ │ ├── fy.js │ │ ├── gd.js │ │ ├── gl.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── hy-am.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── jv.js │ │ ├── ka.js │ │ ├── kk.js │ │ ├── km.js │ │ ├── ko.js │ │ ├── ky.js │ │ ├── lb.js │ │ ├── lo.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── me.js │ │ ├── mi.js │ │ ├── mk.js │ │ ├── ml.js │ │ ├── mr.js │ │ ├── ms-my.js │ │ ├── ms.js │ │ ├── my.js │ │ ├── nb.js │ │ ├── ne.js │ │ ├── nl-be.js │ │ ├── nl.js │ │ ├── nn.js │ │ ├── pa-in.js │ │ ├── pl.js │ │ ├── pt-br.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── se.js │ │ ├── si.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-cyrl.js │ │ ├── sr.js │ │ ├── ss.js │ │ ├── sv.js │ │ ├── sw.js │ │ ├── ta.js │ │ ├── te.js │ │ ├── tet.js │ │ ├── th.js │ │ ├── tl-ph.js │ │ ├── tlh.js │ │ ├── tr.js │ │ ├── tzl.js │ │ ├── tzm-latn.js │ │ ├── tzm.js │ │ ├── uk.js │ │ ├── uz.js │ │ ├── vi.js │ │ ├── x-pseudo.js │ │ ├── yo.js │ │ ├── zh-cn.js │ │ ├── zh-hk.js │ │ └── zh-tw.js │ ├── min │ │ ├── locales.js │ │ ├── locales.min.js │ │ ├── moment-with-locales.js │ │ ├── moment-with-locales.min.js │ │ └── moment.min.js │ ├── moment.d.ts │ ├── moment.js │ ├── package.js │ ├── package.json │ └── src │ │ ├── lib │ │ ├── create │ │ │ ├── check-overflow.js │ │ │ ├── date-from-array.js │ │ │ ├── from-anything.js │ │ │ ├── from-array.js │ │ │ ├── from-object.js │ │ │ ├── from-string-and-array.js │ │ │ ├── from-string-and-format.js │ │ │ ├── from-string.js │ │ │ ├── local.js │ │ │ ├── parsing-flags.js │ │ │ ├── utc.js │ │ │ └── valid.js │ │ ├── duration │ │ │ ├── abs.js │ │ │ ├── add-subtract.js │ │ │ ├── as.js │ │ │ ├── bubble.js │ │ │ ├── constructor.js │ │ │ ├── create.js │ │ │ ├── duration.js │ │ │ ├── get.js │ │ │ ├── humanize.js │ │ │ ├── iso-string.js │ │ │ └── prototype.js │ │ ├── format │ │ │ └── format.js │ │ ├── locale │ │ │ ├── base-config.js │ │ │ ├── calendar.js │ │ │ ├── constructor.js │ │ │ ├── en.js │ │ │ ├── formats.js │ │ │ ├── invalid.js │ │ │ ├── lists.js │ │ │ ├── locale.js │ │ │ ├── locales.js │ │ │ ├── ordinal.js │ │ │ ├── pre-post-format.js │ │ │ ├── prototype.js │ │ │ ├── relative.js │ │ │ └── set.js │ │ ├── moment │ │ │ ├── add-subtract.js │ │ │ ├── calendar.js │ │ │ ├── clone.js │ │ │ ├── compare.js │ │ │ ├── constructor.js │ │ │ ├── creation-data.js │ │ │ ├── diff.js │ │ │ ├── format.js │ │ │ ├── from.js │ │ │ ├── get-set.js │ │ │ ├── locale.js │ │ │ ├── min-max.js │ │ │ ├── moment.js │ │ │ ├── now.js │ │ │ ├── prototype.js │ │ │ ├── start-end-of.js │ │ │ ├── to-type.js │ │ │ ├── to.js │ │ │ └── valid.js │ │ ├── parse │ │ │ ├── regex.js │ │ │ └── token.js │ │ ├── units │ │ │ ├── aliases.js │ │ │ ├── constants.js │ │ │ ├── day-of-month.js │ │ │ ├── day-of-week.js │ │ │ ├── day-of-year.js │ │ │ ├── hour.js │ │ │ ├── millisecond.js │ │ │ ├── minute.js │ │ │ ├── month.js │ │ │ ├── offset.js │ │ │ ├── priorities.js │ │ │ ├── quarter.js │ │ │ ├── second.js │ │ │ ├── timestamp.js │ │ │ ├── timezone.js │ │ │ ├── units.js │ │ │ ├── week-calendar-utils.js │ │ │ ├── week-year.js │ │ │ ├── week.js │ │ │ └── year.js │ │ └── utils │ │ │ ├── abs-ceil.js │ │ │ ├── abs-floor.js │ │ │ ├── abs-round.js │ │ │ ├── compare-arrays.js │ │ │ ├── defaults.js │ │ │ ├── deprecate.js │ │ │ ├── extend.js │ │ │ ├── has-own-prop.js │ │ │ ├── hooks.js │ │ │ ├── index-of.js │ │ │ ├── is-array.js │ │ │ ├── is-date.js │ │ │ ├── is-function.js │ │ │ ├── is-number.js │ │ │ ├── is-object-empty.js │ │ │ ├── is-object.js │ │ │ ├── is-undefined.js │ │ │ ├── keys.js │ │ │ ├── map.js │ │ │ ├── some.js │ │ │ ├── to-int.js │ │ │ └── zero-fill.js │ │ ├── locale │ │ ├── af.js │ │ ├── ar-dz.js │ │ ├── ar-ly.js │ │ ├── ar-ma.js │ │ ├── ar-sa.js │ │ ├── ar-tn.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── be.js │ │ ├── bg.js │ │ ├── bn.js │ │ ├── bo.js │ │ ├── br.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── cv.js │ │ ├── cy.js │ │ ├── da.js │ │ ├── de-at.js │ │ ├── de.js │ │ ├── dv.js │ │ ├── el.js │ │ ├── en-au.js │ │ ├── en-ca.js │ │ ├── en-gb.js │ │ ├── en-ie.js │ │ ├── en-nz.js │ │ ├── eo.js │ │ ├── es-do.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fo.js │ │ ├── fr-ca.js │ │ ├── fr-ch.js │ │ ├── fr.js │ │ ├── fy.js │ │ ├── gd.js │ │ ├── gl.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── hy-am.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── jv.js │ │ ├── ka.js │ │ ├── kk.js │ │ ├── km.js │ │ ├── ko.js │ │ ├── ky.js │ │ ├── lb.js │ │ ├── lo.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── me.js │ │ ├── mi.js │ │ ├── mk.js │ │ ├── ml.js │ │ ├── mr.js │ │ ├── ms-my.js │ │ ├── ms.js │ │ ├── my.js │ │ ├── nb.js │ │ ├── ne.js │ │ ├── nl-be.js │ │ ├── nl.js │ │ ├── nn.js │ │ ├── pa-in.js │ │ ├── pl.js │ │ ├── pt-br.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── se.js │ │ ├── si.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-cyrl.js │ │ ├── sr.js │ │ ├── ss.js │ │ ├── sv.js │ │ ├── sw.js │ │ ├── ta.js │ │ ├── te.js │ │ ├── tet.js │ │ ├── th.js │ │ ├── tl-ph.js │ │ ├── tlh.js │ │ ├── tr.js │ │ ├── tzl.js │ │ ├── tzm-latn.js │ │ ├── tzm.js │ │ ├── uk.js │ │ ├── uz.js │ │ ├── vi.js │ │ ├── x-pseudo.js │ │ ├── yo.js │ │ ├── zh-cn.js │ │ ├── zh-hk.js │ │ └── zh-tw.js │ │ └── moment.js ├── nth-check │ ├── .travis.yml │ ├── README.md │ ├── compile.js │ ├── index.js │ ├── package.json │ ├── parse.js │ └── test.js ├── prismjs │ ├── .editorconfig │ ├── .gitattributes │ ├── .npmignore │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── components │ │ ├── prism-abap.js │ │ ├── prism-abap.min.js │ │ ├── prism-actionscript.js │ │ ├── prism-actionscript.min.js │ │ ├── prism-apacheconf.js │ │ ├── prism-apacheconf.min.js │ │ ├── prism-apl.js │ │ ├── prism-apl.min.js │ │ ├── prism-applescript.js │ │ ├── prism-applescript.min.js │ │ ├── prism-asciidoc.js │ │ ├── prism-asciidoc.min.js │ │ ├── prism-aspnet.js │ │ ├── prism-aspnet.min.js │ │ ├── prism-autohotkey.js │ │ ├── prism-autohotkey.min.js │ │ ├── prism-autoit.js │ │ ├── prism-autoit.min.js │ │ ├── prism-bash.js │ │ ├── prism-bash.min.js │ │ ├── prism-basic.js │ │ ├── prism-basic.min.js │ │ ├── prism-batch.js │ │ ├── prism-batch.min.js │ │ ├── prism-bison.js │ │ ├── prism-bison.min.js │ │ ├── prism-brainfuck.js │ │ ├── prism-brainfuck.min.js │ │ ├── prism-bro.js │ │ ├── prism-bro.min.js │ │ ├── prism-c.js │ │ ├── prism-c.min.js │ │ ├── prism-clike.js │ │ ├── prism-clike.min.js │ │ ├── prism-coffeescript.js │ │ ├── prism-coffeescript.min.js │ │ ├── prism-core.js │ │ ├── prism-core.min.js │ │ ├── prism-cpp.js │ │ ├── prism-cpp.min.js │ │ ├── prism-crystal.js │ │ ├── prism-crystal.min.js │ │ ├── prism-csharp.js │ │ ├── prism-csharp.min.js │ │ ├── prism-css-extras.js │ │ ├── prism-css-extras.min.js │ │ ├── prism-css.js │ │ ├── prism-css.min.js │ │ ├── prism-d.js │ │ ├── prism-d.min.js │ │ ├── prism-dart.js │ │ ├── prism-dart.min.js │ │ ├── prism-diff.js │ │ ├── prism-diff.min.js │ │ ├── prism-docker.js │ │ ├── prism-docker.min.js │ │ ├── prism-eiffel.js │ │ ├── prism-eiffel.min.js │ │ ├── prism-elixir.js │ │ ├── prism-elixir.min.js │ │ ├── prism-erlang.js │ │ ├── prism-erlang.min.js │ │ ├── prism-fortran.js │ │ ├── prism-fortran.min.js │ │ ├── prism-fsharp.js │ │ ├── prism-fsharp.min.js │ │ ├── prism-gherkin.js │ │ ├── prism-gherkin.min.js │ │ ├── prism-git.js │ │ ├── prism-git.min.js │ │ ├── prism-glsl.js │ │ ├── prism-glsl.min.js │ │ ├── prism-go.js │ │ ├── prism-go.min.js │ │ ├── prism-groovy.js │ │ ├── prism-groovy.min.js │ │ ├── prism-haml.js │ │ ├── prism-haml.min.js │ │ ├── prism-handlebars.js │ │ ├── prism-handlebars.min.js │ │ ├── prism-haskell.js │ │ ├── prism-haskell.min.js │ │ ├── prism-haxe.js │ │ ├── prism-haxe.min.js │ │ ├── prism-http.js │ │ ├── prism-http.min.js │ │ ├── prism-icon.js │ │ ├── prism-icon.min.js │ │ ├── prism-inform7.js │ │ ├── prism-inform7.min.js │ │ ├── prism-ini.js │ │ ├── prism-ini.min.js │ │ ├── prism-j.js │ │ ├── prism-j.min.js │ │ ├── prism-jade.js │ │ ├── prism-jade.min.js │ │ ├── prism-java.js │ │ ├── prism-java.min.js │ │ ├── prism-javascript.js │ │ ├── prism-javascript.min.js │ │ ├── prism-json.js │ │ ├── prism-json.min.js │ │ ├── prism-jsx.js │ │ ├── prism-jsx.min.js │ │ ├── prism-julia.js │ │ ├── prism-julia.min.js │ │ ├── prism-keyman.js │ │ ├── prism-keyman.min.js │ │ ├── prism-kotlin.js │ │ ├── prism-kotlin.min.js │ │ ├── prism-latex.js │ │ ├── prism-latex.min.js │ │ ├── prism-less.js │ │ ├── prism-less.min.js │ │ ├── prism-lolcode.js │ │ ├── prism-lolcode.min.js │ │ ├── prism-lua.js │ │ ├── prism-lua.min.js │ │ ├── prism-makefile.js │ │ ├── prism-makefile.min.js │ │ ├── prism-markdown.js │ │ ├── prism-markdown.min.js │ │ ├── prism-markup.js │ │ ├── prism-markup.min.js │ │ ├── prism-matlab.js │ │ ├── prism-matlab.min.js │ │ ├── prism-mel.js │ │ ├── prism-mel.min.js │ │ ├── prism-mizar.js │ │ ├── prism-mizar.min.js │ │ ├── prism-monkey.js │ │ ├── prism-monkey.min.js │ │ ├── prism-nasm.js │ │ ├── prism-nasm.min.js │ │ ├── prism-nginx.js │ │ ├── prism-nginx.min.js │ │ ├── prism-nim.js │ │ ├── prism-nim.min.js │ │ ├── prism-nix.js │ │ ├── prism-nix.min.js │ │ ├── prism-nsis.js │ │ ├── prism-nsis.min.js │ │ ├── prism-objectivec.js │ │ ├── prism-objectivec.min.js │ │ ├── prism-ocaml.js │ │ ├── prism-ocaml.min.js │ │ ├── prism-oz.js │ │ ├── prism-oz.min.js │ │ ├── prism-parigp.js │ │ ├── prism-parigp.min.js │ │ ├── prism-parser.js │ │ ├── prism-parser.min.js │ │ ├── prism-pascal.js │ │ ├── prism-pascal.min.js │ │ ├── prism-perl.js │ │ ├── prism-perl.min.js │ │ ├── prism-php-extras.js │ │ ├── prism-php-extras.min.js │ │ ├── prism-php.js │ │ ├── prism-php.min.js │ │ ├── prism-powershell.js │ │ ├── prism-powershell.min.js │ │ ├── prism-processing.js │ │ ├── prism-processing.min.js │ │ ├── prism-prolog.js │ │ ├── prism-prolog.min.js │ │ ├── prism-protobuf.js │ │ ├── prism-protobuf.min.js │ │ ├── prism-puppet.js │ │ ├── prism-puppet.min.js │ │ ├── prism-pure.js │ │ ├── prism-pure.min.js │ │ ├── prism-python.js │ │ ├── prism-python.min.js │ │ ├── prism-q.js │ │ ├── prism-q.min.js │ │ ├── prism-qore.js │ │ ├── prism-qore.min.js │ │ ├── prism-r.js │ │ ├── prism-r.min.js │ │ ├── prism-rest.js │ │ ├── prism-rest.min.js │ │ ├── prism-rip.js │ │ ├── prism-rip.min.js │ │ ├── prism-roboconf.js │ │ ├── prism-roboconf.min.js │ │ ├── prism-ruby.js │ │ ├── prism-ruby.min.js │ │ ├── prism-rust.js │ │ ├── prism-rust.min.js │ │ ├── prism-sas.js │ │ ├── prism-sas.min.js │ │ ├── prism-sass.js │ │ ├── prism-sass.min.js │ │ ├── prism-scala.js │ │ ├── prism-scala.min.js │ │ ├── prism-scheme.js │ │ ├── prism-scheme.min.js │ │ ├── prism-scss.js │ │ ├── prism-scss.min.js │ │ ├── prism-smalltalk.js │ │ ├── prism-smalltalk.min.js │ │ ├── prism-smarty.js │ │ ├── prism-smarty.min.js │ │ ├── prism-sql.js │ │ ├── prism-sql.min.js │ │ ├── prism-stylus.js │ │ ├── prism-stylus.min.js │ │ ├── prism-swift.js │ │ ├── prism-swift.min.js │ │ ├── prism-tcl.js │ │ ├── prism-tcl.min.js │ │ ├── prism-textile.js │ │ ├── prism-textile.min.js │ │ ├── prism-twig.js │ │ ├── prism-twig.min.js │ │ ├── prism-typescript.js │ │ ├── prism-typescript.min.js │ │ ├── prism-verilog.js │ │ ├── prism-verilog.min.js │ │ ├── prism-vhdl.js │ │ ├── prism-vhdl.min.js │ │ ├── prism-vim.js │ │ ├── prism-vim.min.js │ │ ├── prism-wiki.js │ │ ├── prism-wiki.min.js │ │ ├── prism-yaml.js │ │ └── prism-yaml.min.js │ ├── examples.js │ ├── gulpfile.js │ ├── package.json │ ├── plugins │ │ ├── autolinker │ │ │ ├── prism-autolinker.css │ │ │ ├── prism-autolinker.js │ │ │ └── prism-autolinker.min.js │ │ ├── autoloader │ │ │ ├── prism-autoloader.js │ │ │ └── prism-autoloader.min.js │ │ ├── command-line │ │ │ ├── prism-command-line.css │ │ │ ├── prism-command-line.js │ │ │ └── prism-command-line.min.js │ │ ├── file-highlight │ │ │ ├── prism-file-highlight.js │ │ │ └── prism-file-highlight.min.js │ │ ├── highlight-keywords │ │ │ ├── prism-highlight-keywords.js │ │ │ └── prism-highlight-keywords.min.js │ │ ├── ie8 │ │ │ ├── prism-ie8.css │ │ │ ├── prism-ie8.js │ │ │ └── prism-ie8.min.js │ │ ├── jsonp-highlight │ │ │ ├── prism-jsonp-highlight.js │ │ │ └── prism-jsonp-highlight.min.js │ │ ├── keep-markup │ │ │ ├── prism-keep-markup.js │ │ │ └── prism-keep-markup.min.js │ │ ├── line-highlight │ │ │ ├── prism-line-highlight.css │ │ │ ├── prism-line-highlight.js │ │ │ └── prism-line-highlight.min.js │ │ ├── line-numbers │ │ │ ├── prism-line-numbers.css │ │ │ ├── prism-line-numbers.js │ │ │ └── prism-line-numbers.min.js │ │ ├── normalize-whitespace │ │ │ ├── prism-normalize-whitespace.js │ │ │ └── prism-normalize-whitespace.min.js │ │ ├── previewer-angle │ │ │ ├── prism-previewer-angle.css │ │ │ ├── prism-previewer-angle.js │ │ │ └── prism-previewer-angle.min.js │ │ ├── previewer-base │ │ │ ├── prism-previewer-base.css │ │ │ ├── prism-previewer-base.js │ │ │ └── prism-previewer-base.min.js │ │ ├── previewer-color │ │ │ ├── prism-previewer-color.css │ │ │ ├── prism-previewer-color.js │ │ │ └── prism-previewer-color.min.js │ │ ├── previewer-easing │ │ │ ├── prism-previewer-easing.css │ │ │ ├── prism-previewer-easing.js │ │ │ └── prism-previewer-easing.min.js │ │ ├── previewer-gradient │ │ │ ├── prism-previewer-gradient.css │ │ │ ├── prism-previewer-gradient.js │ │ │ └── prism-previewer-gradient.min.js │ │ ├── previewer-time │ │ │ ├── prism-previewer-time.css │ │ │ ├── prism-previewer-time.js │ │ │ └── prism-previewer-time.min.js │ │ ├── remove-initial-line-feed │ │ │ ├── prism-remove-initial-line-feed.js │ │ │ └── prism-remove-initial-line-feed.min.js │ │ ├── show-invisibles │ │ │ ├── prism-show-invisibles.css │ │ │ ├── prism-show-invisibles.js │ │ │ └── prism-show-invisibles.min.js │ │ ├── show-language │ │ │ ├── prism-show-language.css │ │ │ ├── prism-show-language.js │ │ │ └── prism-show-language.min.js │ │ ├── unescaped-markup │ │ │ ├── prism-unescaped-markup.css │ │ │ ├── prism-unescaped-markup.js │ │ │ └── prism-unescaped-markup.min.js │ │ └── wpd │ │ │ ├── prism-wpd.css │ │ │ ├── prism-wpd.js │ │ │ └── prism-wpd.min.js │ ├── prism.esproj │ │ ├── Project.espressostorage │ │ └── user.leaverou.espressostorage │ ├── prism.js │ ├── tests │ │ ├── helper │ │ │ ├── prism-loader.js │ │ │ ├── test-case.js │ │ │ ├── test-discovery.js │ │ │ └── token-stream-transformer.js │ │ ├── languages │ │ │ ├── abap │ │ │ │ ├── comment_feature.test │ │ │ │ ├── eol-comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string-template_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── actionscript │ │ │ │ ├── keyword_feature.test │ │ │ │ └── operator_feature.test │ │ │ ├── apacheconf │ │ │ │ ├── comment_feature.test │ │ │ │ ├── directive-block_feature.test │ │ │ │ ├── directive-flags_feature.test │ │ │ │ ├── directive-inline_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── apl │ │ │ │ ├── assignment_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── dfn_feature.test │ │ │ │ ├── dyadic-operator_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── monadic-operator_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── statement_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── system-function_feature.test │ │ │ ├── applescript │ │ │ │ ├── class_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── asciidoc │ │ │ │ ├── admonition_feature.test │ │ │ │ ├── attribute-entry_feature.test │ │ │ │ ├── attributes_feature.test │ │ │ │ ├── callout_feature.test │ │ │ │ ├── comment-block_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── entity_feature.test │ │ │ │ ├── hr_feature.test │ │ │ │ ├── indented-block_feature.test │ │ │ │ ├── inline_feature.test │ │ │ │ ├── line-continuation_feature.test │ │ │ │ ├── list-label_feature.test │ │ │ │ ├── list-punctuation_feature.test │ │ │ │ ├── literal-block_feature.test │ │ │ │ ├── macro_feature.test │ │ │ │ ├── other-block_feature.test │ │ │ │ ├── page-break_feature.test │ │ │ │ ├── passthrough-block_feature.test │ │ │ │ ├── replacement_feature.test │ │ │ │ ├── table_feature.test │ │ │ │ └── title_feature.test │ │ │ ├── aspnet │ │ │ │ ├── comment_feature.test │ │ │ │ └── page-directive_feature.test │ │ │ ├── autohotkey │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── selector_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ ├── tag_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── autoit │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── directive_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── url_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── bash │ │ │ │ ├── arithmetic_environment_feature.test │ │ │ │ ├── command_substitution_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── shebang_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── basic │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── batch │ │ │ │ ├── command_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ └── label_feature.test │ │ │ ├── bison │ │ │ │ ├── c_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── brainfuck │ │ │ │ └── all_feature.test │ │ │ ├── bro │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── c+pure │ │ │ │ └── c_inclusion.test │ │ │ ├── c │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── macro_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ └── operator_feature.test │ │ │ ├── clike │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── class-name_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── coffeescript+haml │ │ │ │ └── coffeescript_inclusion.test │ │ │ ├── coffeescript+jade │ │ │ │ └── coffeescript_inclusion.test │ │ │ ├── coffeescript │ │ │ │ ├── block-regex_feature.test │ │ │ │ ├── class-member_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── inline-javascript_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── cpp+pure │ │ │ │ └── cpp_inclusion.test │ │ │ ├── cpp │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── class-name_feature.test │ │ │ │ └── keyword_feature.test │ │ │ ├── crystal │ │ │ │ ├── attribute_feature.test │ │ │ │ ├── expansion_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ └── number_feature.test │ │ │ ├── csharp+aspnet │ │ │ │ └── directive_feature.test │ │ │ ├── csharp │ │ │ │ ├── generic_feature.test │ │ │ │ ├── issue806.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── preprocessor_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── css!+css-extras │ │ │ │ ├── entity_feature.test │ │ │ │ ├── hexcode_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ └── selector_feature.test │ │ │ ├── css+haml │ │ │ │ └── css+haml_usage.test │ │ │ ├── css+textile │ │ │ │ └── css_inclusion.test │ │ │ ├── css │ │ │ │ ├── atrule_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ ├── selector_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── url_feature.test │ │ │ ├── d │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ ├── register_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── token-string_feature.test │ │ │ ├── dart │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── metadata_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── diff │ │ │ │ ├── coord_feature.test │ │ │ │ └── diff_feature.test │ │ │ ├── docker │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── eiffel │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── char_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── elixir │ │ │ │ ├── atom_feature.test │ │ │ │ ├── attr-name_feature.test │ │ │ │ ├── attribute_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── capture_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── issue775.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── erlang │ │ │ │ ├── atom_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── fortran+pure │ │ │ │ └── fortran_inclusion.test │ │ │ ├── fortran │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── fsharp │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── preprocessor_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── gherkin │ │ │ │ ├── atrule_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── feature_feature.test │ │ │ │ ├── outline_feature.test │ │ │ │ ├── pystring_feature.test │ │ │ │ ├── scenario_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── table_feature.test │ │ │ │ └── tag_feature.test │ │ │ ├── git │ │ │ │ ├── command_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── commit_sha1_feature.test │ │ │ │ ├── coord_feature.test │ │ │ │ ├── diff_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── glsl │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ └── preprocessor_feature.test │ │ │ ├── go │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── groovy │ │ │ │ ├── annotation_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── shebang_feature.test │ │ │ │ ├── spock-block_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── haml │ │ │ │ ├── code_feature.test │ │ │ │ ├── doctype_feature.test │ │ │ │ ├── interpolation_feature.test │ │ │ │ ├── multiline-code_feature.test │ │ │ │ ├── multiline-comment_feature.test │ │ │ │ └── tag_feature.test │ │ │ ├── handlebars+jade │ │ │ │ └── handlebars_inclusion.test │ │ │ ├── handlebars │ │ │ │ ├── block_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── haskell │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── char_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── hvariable_feature.test │ │ │ │ ├── import_statement_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── haxe │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── metadata_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── preprocessor_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ ├── reification_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── http │ │ │ │ ├── header-name_feature.test │ │ │ │ ├── request-line_feature.test │ │ │ │ └── response-status_feature.test │ │ │ ├── icon │ │ │ │ ├── builtin-keyword_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── directive_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── inform7 │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── position_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── title_feature.test │ │ │ │ ├── variable_feature.test │ │ │ │ └── verb_feature.test │ │ │ ├── ini │ │ │ │ ├── comment_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ └── key_value_feature.test │ │ │ ├── j │ │ │ │ ├── adverb_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── conjunction_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── verb_feature.test │ │ │ ├── jade │ │ │ │ ├── code_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── doctype_feature.test │ │ │ │ ├── flow-control_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── mixin_feature.test │ │ │ │ ├── multiline-plain-text_feature.test │ │ │ │ ├── multiline-script_feature.test │ │ │ │ ├── plain-text_feature.test │ │ │ │ ├── script_feature.test │ │ │ │ └── tag_feature.test │ │ │ ├── java │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ └── operator_feature.test │ │ │ ├── javascript+haml │ │ │ │ └── javascript_inclusion.test │ │ │ ├── javascript+http │ │ │ │ └── javascript_inclusion.test │ │ │ ├── javascript │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ └── template-string_feature.test │ │ │ ├── jsx │ │ │ │ └── tag_feature.test │ │ │ ├── julia │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── keyman │ │ │ │ ├── atrule_feature.test │ │ │ │ ├── bold_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── tag_feature.test │ │ │ ├── kotlin │ │ │ │ ├── annotation_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── interpolation_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── label_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── raw-string_feature.test │ │ │ ├── latex │ │ │ │ ├── cdata_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── equation_feature.test │ │ │ │ ├── headline_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ └── url_feature.test │ │ │ ├── less+haml │ │ │ │ └── less_inclusion.test │ │ │ ├── less+jade │ │ │ │ └── less_inclusion.test │ │ │ ├── less │ │ │ │ ├── atrule_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ └── selector_feature.test │ │ │ ├── lolcode │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── label_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── lua │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── makefile │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── markdown+haml │ │ │ │ └── markdown_inclusion.test │ │ │ ├── markdown+jade │ │ │ │ └── markdown_inclusion.test │ │ │ ├── markdown │ │ │ │ ├── blockquote_feature.test │ │ │ │ ├── bold_feature.test │ │ │ │ ├── code_feature.test │ │ │ │ ├── hr_feature.test │ │ │ │ ├── italic_feature.test │ │ │ │ ├── list_feature.test │ │ │ │ ├── title_feature.test │ │ │ │ ├── url-reference_feature.test │ │ │ │ └── url_feature.test │ │ │ ├── markup!+css │ │ │ │ └── css_inclusion.test │ │ │ ├── markup!+javascript │ │ │ │ └── javascript_inclusion.test │ │ │ ├── markup+actionscript │ │ │ │ └── xml_feature.test │ │ │ ├── markup+css+wiki │ │ │ │ └── table-tag_feature.test │ │ │ ├── markup+haml │ │ │ │ └── markup_feature.test │ │ │ ├── markup+http │ │ │ │ └── markup_inclusion.test │ │ │ ├── markup+jade │ │ │ │ └── markup_feature.test │ │ │ ├── markup+javascript+csharp+aspnet │ │ │ │ └── script_feature.test │ │ │ ├── markup+php │ │ │ │ └── markup_feature.test │ │ │ ├── markup │ │ │ │ ├── cdata_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── doctype_feature.test │ │ │ │ ├── entity_feature.test │ │ │ │ ├── issue585.test │ │ │ │ ├── prolog_feature.test │ │ │ │ ├── tag_attribute_feature.test │ │ │ │ └── tag_feature.test │ │ │ ├── matlab │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── mel │ │ │ │ ├── code_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── flag_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── mizar │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── parameter_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── monkey │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── preprocessor_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── type-char_feature.test │ │ │ ├── nasm │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── label_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── register_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── nginx │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── nim │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── nix │ │ │ │ ├── antiquotation_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── url_feature.test │ │ │ ├── nsis │ │ │ │ ├── comment_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── objectivec │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── ocaml │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── directive_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── type_feature.test │ │ │ ├── oz │ │ │ │ ├── atom_feature.test │ │ │ │ ├── attr-name_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── parigp │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── parser │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── escape_feature.test │ │ │ │ ├── expression_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── parser-comment_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── pascal │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── perl │ │ │ │ ├── comment_feature.test │ │ │ │ ├── filehandle_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── variable_feature.test │ │ │ │ └── vstring_feature.test │ │ │ ├── php!+php-extras │ │ │ │ ├── global_feature.test │ │ │ │ ├── scope_feature.test │ │ │ │ └── this_feature.test │ │ │ ├── php │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── delimiter_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── package_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ ├── shell-comment_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── powershell │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── namespace_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── processing │ │ │ │ ├── constant_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── type_feature.test │ │ │ ├── prolog │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── protobuf │ │ │ │ ├── keyword_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── puppet │ │ │ │ ├── attr-name_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── datatype_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── heredoc_feature.test │ │ │ │ ├── interpolation_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── pure │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── special_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── python │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── class-name_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── triple-quoted-string_feature.test │ │ │ ├── q │ │ │ │ ├── adverb_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── datetime_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ └── verb_feature.test │ │ │ ├── qore │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── r │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── ellipsis_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── percent-operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── rest │ │ │ │ ├── command-line-option_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── directive_feature.test │ │ │ │ ├── doctest-block_feature.test │ │ │ │ ├── field_feature.test │ │ │ │ ├── hr_feature.test │ │ │ │ ├── inline_feature.test │ │ │ │ ├── link-target_feature.test │ │ │ │ ├── link_feature.test │ │ │ │ ├── list-bullet_feature.test │ │ │ │ ├── literal-block_feature.test │ │ │ │ ├── quoted-literal-block_feature.test │ │ │ │ ├── substitution-def_feature.test │ │ │ │ ├── table_feature.test │ │ │ │ └── title_feature.test │ │ │ ├── rip │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── character_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── date_time_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── reference_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── symbol_feature.test │ │ │ ├── roboconf │ │ │ │ ├── comment_feature.test │ │ │ │ ├── component_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── optional_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ ├── value_feature.test │ │ │ │ └── wildcard_feature.test │ │ │ ├── ruby │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── regex_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── rust │ │ │ │ ├── attribute_feature.test │ │ │ │ ├── closure-params_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── macro-rules_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── sas │ │ │ │ ├── comment_feature.test │ │ │ │ ├── datalines_feature.test │ │ │ │ ├── datetime_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── sass │ │ │ │ ├── atrule-line_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── property-line_feature.test │ │ │ │ ├── selector_feature.test │ │ │ │ └── variable-line_feature.test │ │ │ ├── scala │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── symbol_feature.test │ │ │ ├── scheme │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── scss+haml │ │ │ │ └── scss_inclusion.test │ │ │ ├── scss+jade │ │ │ │ └── scss_inclusion.test │ │ │ ├── scss │ │ │ │ ├── atrule_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── null_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── placeholder_feature.test │ │ │ │ ├── selector_feature.test │ │ │ │ ├── statement_feature.test │ │ │ │ ├── url_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── smalltalk │ │ │ │ ├── block-arguments_feature.test │ │ │ │ ├── character_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ └── temporary-variables_feature.test │ │ │ ├── smarty │ │ │ │ ├── attr-name_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── smarty-comment_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── sql │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── stylus+jade │ │ │ │ └── stylus_inclusion.test │ │ │ ├── stylus │ │ │ │ ├── atrule-declaration_feature.test │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── func_feature.test │ │ │ │ ├── hexcode_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── property-declaration_feature.test │ │ │ │ ├── selector_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ ├── url_feature.test │ │ │ │ └── variable-declaration_feature.test │ │ │ ├── swift │ │ │ │ ├── atrule_feature.test │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── tcl │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── scope_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── variable_feature.test │ │ │ ├── textile │ │ │ │ ├── acronym_feature.test │ │ │ │ ├── block-tag_feature.test │ │ │ │ ├── footnote_feature.test │ │ │ │ ├── image_feature.test │ │ │ │ ├── inline_feature.test │ │ │ │ ├── link-ref_feature.test │ │ │ │ ├── link_feature.test │ │ │ │ ├── list_feature.test │ │ │ │ ├── mark_feature.test │ │ │ │ └── table_feature.test │ │ │ ├── twig+jade │ │ │ │ └── twig_inclusion.test │ │ │ ├── twig │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── typescript │ │ │ │ └── keyword_feature.test │ │ │ ├── verilog │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── property_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── vhdl │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── constant_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── vhdl-vectors_feature.test │ │ │ ├── vim │ │ │ │ ├── builtin_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── function_feature.test │ │ │ │ ├── keyword_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── operator_feature.test │ │ │ │ └── string_feature.test │ │ │ ├── wiki │ │ │ │ ├── block-comment_feature.test │ │ │ │ ├── emphasis_feature.test │ │ │ │ ├── heading_feature.test │ │ │ │ ├── hr_feature.test │ │ │ │ ├── nowiki_feature.test │ │ │ │ ├── symbol_feature.test │ │ │ │ ├── url_feature.test │ │ │ │ └── variable_feature.test │ │ │ └── yaml │ │ │ │ ├── boolean_feature.test │ │ │ │ ├── comment_feature.test │ │ │ │ ├── datetime_feature.test │ │ │ │ ├── directive_feature.test │ │ │ │ ├── important_feature.test │ │ │ │ ├── key_feature.test │ │ │ │ ├── null_feature.test │ │ │ │ ├── number_feature.test │ │ │ │ ├── scalar_feature.test │ │ │ │ ├── string_feature.test │ │ │ │ └── tag_feature.test │ │ ├── run-child.js │ │ ├── run.js │ │ └── testrunner-tests.js │ ├── themes │ │ ├── prism-coy.css │ │ ├── prism-dark.css │ │ ├── prism-funky.css │ │ ├── prism-okaidia.css │ │ ├── prism-solarizedlight.css │ │ ├── prism-tomorrow.css │ │ ├── prism-twilight.css │ │ └── prism.css │ └── vendor │ │ └── promise.js ├── process-nextick-args │ ├── .travis.yml │ ├── index.js │ ├── license.md │ ├── package.json │ ├── readme.md │ └── test.js ├── readable-stream │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── doc │ │ └── wg-meetings │ │ │ └── 2015-01-30.md │ ├── duplex.js │ ├── lib │ │ ├── _stream_duplex.js │ │ ├── _stream_passthrough.js │ │ ├── _stream_readable.js │ │ ├── _stream_transform.js │ │ ├── _stream_writable.js │ │ └── internal │ │ │ └── streams │ │ │ └── BufferList.js │ ├── package.json │ ├── passthrough.js │ ├── readable.js │ ├── transform.js │ └── writable.js ├── sitemap │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── index.js │ ├── lib │ │ ├── errors.js │ │ ├── sitemap.js │ │ └── utils.js │ └── package.json ├── string_decoder │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── underscore │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── underscore-min.js │ ├── underscore-min.map │ └── underscore.js ├── url-join │ ├── .npmignore │ ├── README.md │ ├── lib │ │ └── url-join.js │ ├── package.json │ └── test │ │ └── tests.js └── util-deprecate │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── browser.js │ ├── node.js │ └── package.json ├── plugin.md ├── plugin ├── admin_controller.md ├── class.md ├── config.md ├── controller.md ├── flow.md ├── hook.md └── model.md ├── portal.md ├── portal ├── base.md ├── base │ ├── structure.md │ └── theme_structure.md ├── cover.jpg ├── functions.md ├── functions │ ├── sp_get_child_terms.md │ ├── sp_get_term.md │ ├── sp_get_terms.md │ ├── sp_sql_page.md │ ├── sp_sql_post.md │ ├── sp_sql_posts.md │ ├── sp_sql_posts_bycatid.md │ ├── sp_sql_posts_paged.md │ ├── sp_sql_posts_paged_bycatid.md │ └── sp_sql_posts_paged_bykeyword.md ├── spgetallchildterms.md ├── spgetbreadcrumb.md ├── template.md ├── template │ ├── QQ截图20160411184412.png │ ├── QQ截图20160411185412.png │ ├── article.md │ ├── get_articles.md │ ├── hot_articles.md │ ├── list.md │ ├── page.md │ ├── seo.md │ ├── wen_zhang_lie_biao_tui_jian_gong_neng_zhi_zuo.md │ ├── wen_zhang_lie_biao_zhi_ding_gong_neng_zhi_zuo.md │ └── wen_zhang_xiang_ce_zhi_zuo.md ├── wenzhang_xiang_ce_zhi_zuo_md.md ├── 文章列表相册功能制作.md └── 瀑布流文章列表模板制作.md ├── preface.md ├── restful-api.md ├── sp_check_lang.md ├── spchecklang.md ├── spcheckmobileverifycode.md ├── spcomparepassword.md ├── special.md ├── special ├── cache.md ├── cookie.md ├── fileupload.md ├── multi_lang.md ├── pagination.md ├── safe.md ├── session.md └── verifycode.md ├── spgetassetuploadpath.md ├── spgetcurrenttheme.md ├── spgetfiledownloadurl.md ├── spgetfileextension.md ├── spgetimagepreviewurl.md ├── spgetimageurl.md ├── spgetuseravatarurl.md ├── spisweixin.md ├── spsetoption.md ├── theme.md ├── theme ├── base.md ├── base │ ├── assets_import.md │ ├── comments.md │ ├── constant.md │ ├── default_value_echo.md │ ├── global_var.md │ ├── include.md │ ├── literal.md │ ├── multi_lang.md │ ├── operator.md │ ├── structure.md │ ├── ternary_operator.md │ ├── use_functions.md │ └── var_echo.md ├── empty标签.md ├── js │ ├── js-ajax-delete.md │ ├── js-ajax-dialog-btn.md │ ├── js-ajax-form.md │ ├── js-count-btn.md │ ├── js-date.md │ ├── js-datetime.md │ └── js-favorite-btn.md ├── js_components.md ├── public.md ├── public │ ├── ad.md │ ├── comment.md │ ├── favorite.md │ ├── forgot_password.md │ ├── guestbook.md │ ├── last_comment.md │ ├── last_join.md │ ├── like.md │ ├── link.md │ ├── login.md │ ├── nav.md │ ├── password_reset.md │ ├── register.md │ └── slide.md ├── tag.md ├── tags │ ├── assign.md │ ├── between.md │ ├── compare.md │ ├── define.md │ ├── defined.md │ ├── empty.md │ ├── for.md │ ├── foreach.md │ ├── if_else.md │ ├── nest.md │ ├── php.md │ ├── present.md │ ├── switch.md │ ├── tc_include.md │ └── volist.md ├── 三元运算.md ├── 前台模板多语言.md ├── 包含文件.md └── 原样输出.md ├── url.md ├── view.md ├── view ├── README.md ├── assign.md ├── display.md ├── fetch.md ├── theme.md └── theme_detail.md ├── 插件多语言.md └── 钩子,插件与模板.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | _book 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /_book/base/backup_restore.md: -------------------------------------------------------------------------------- 1 | # 备份与恢复 2 | 3 | 后台->扩展工具->备份管理 -------------------------------------------------------------------------------- /_book/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/cover.jpg -------------------------------------------------------------------------------- /_book/functions/sp_file_write.md: -------------------------------------------------------------------------------- 1 | # sp_file_write() 2 | 3 | > V1.1.1新增 4 | 5 | ```php 6 | 12 | ``` 13 | -------------------------------------------------------------------------------- /_book/functions/sp_get_asset_upload_path.md: -------------------------------------------------------------------------------- 1 | #sp_get_asset_upload_path() 2 | > V1.1.1新增 3 | 4 | ```php 5 | 10 | ``` 11 | -------------------------------------------------------------------------------- /_book/functions/sp_is_sae.md: -------------------------------------------------------------------------------- 1 | # sp_is_sae() 2 | 3 | > X1.5.0新增 4 | 5 | ```php 6 | sp_is_sae() 7 | ``` 8 | 9 | 功能: 10 | 判断是否为SAE 11 | 12 | 参数: 13 | 无 14 | 15 | 返回: 16 | 类型boolean true|false 17 | 18 | 使用: 19 | ```php 20 | $is_sae=sp_is_sae(); 21 | ``` -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/fonts/fontawesome/FontAwesome.otf -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-ad/plugin.css: -------------------------------------------------------------------------------- 1 | .page-inner-top { 2 | margin: 0 15px 30px; 3 | } 4 | 5 | .page-inner-bottom { 6 | margin: 30px 15px 0; 7 | } 8 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-tbfed-pagefooter/footer.css: -------------------------------------------------------------------------------- 1 | .page-footer { 2 | margin-top: 50px; 3 | border-top: 1px solid #ccc; 4 | overflow: hidden; 5 | padding: 10px 0; 6 | font-size: 12px; 7 | color: #808080; 8 | } 9 | .page-footer a { 10 | color: #808080!important; 11 | text-decoration: underline!important; 12 | } 13 | .footer-modification { 14 | float: right; 15 | } 16 | -------------------------------------------------------------------------------- /_book/gitbook/images/apple-touch-icon-precomposed-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/images/apple-touch-icon-precomposed-152.png -------------------------------------------------------------------------------- /_book/gitbook/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/gitbook/images/favicon.ico -------------------------------------------------------------------------------- /_book/images/031A9AF4-CA48-4FAB-873E-D2735B010D26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/031A9AF4-CA48-4FAB-873E-D2735B010D26.png -------------------------------------------------------------------------------- /_book/images/20141209121334548676ee3afc8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/20141209121334548676ee3afc8.png -------------------------------------------------------------------------------- /_book/images/20141228110052549f7264dacbe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/20141228110052549f7264dacbe.png -------------------------------------------------------------------------------- /_book/images/20141228110052549f7264daf74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/20141228110052549f7264daf74.png -------------------------------------------------------------------------------- /_book/images/54857e9f9b316.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/54857e9f9b316.png -------------------------------------------------------------------------------- /_book/images/54aa90907a9f6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/54aa90907a9f6.png -------------------------------------------------------------------------------- /_book/images/54aa91de3ca54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/54aa91de3ca54.png -------------------------------------------------------------------------------- /_book/images/54aa9283b5d3a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/54aa9283b5d3a.png -------------------------------------------------------------------------------- /_book/images/565e8c0ad7253.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/565e8c0ad7253.jpg -------------------------------------------------------------------------------- /_book/images/5695949f3e2f1.png.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/5695949f3e2f1.png.jpg -------------------------------------------------------------------------------- /_book/images/56959873764f7.png.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/56959873764f7.png.jpg -------------------------------------------------------------------------------- /_book/images/8BDF3EE2-A11B-4437-ABA6-F65DF9DC46C0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/8BDF3EE2-A11B-4437-ABA6-F65DF9DC46C0.png -------------------------------------------------------------------------------- /_book/images/FD2DB1F5-D7E8-4CC4-8003-A003A0480FFE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/FD2DB1F5-D7E8-4CC4-8003-A003A0480FFE.png -------------------------------------------------------------------------------- /_book/images/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/README.md -------------------------------------------------------------------------------- /_book/images/alipay_qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/alipay_qrcode.png -------------------------------------------------------------------------------- /_book/images/j_0008.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/j_0008.gif -------------------------------------------------------------------------------- /_book/images/j_0012.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/j_0012.gif -------------------------------------------------------------------------------- /_book/images/j_0050.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/j_0050.gif -------------------------------------------------------------------------------- /_book/images/view_5695911cf31e7.png.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/images/view_5695911cf31e7.png.jpg -------------------------------------------------------------------------------- /_book/model/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/model/README.md -------------------------------------------------------------------------------- /_book/portal/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/portal/cover.jpg -------------------------------------------------------------------------------- /_book/portal/template/QQ截图20160411184412.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/portal/template/QQ截图20160411184412.png -------------------------------------------------------------------------------- /_book/portal/template/QQ截图20160411185412.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/portal/template/QQ截图20160411185412.png -------------------------------------------------------------------------------- /_book/portal/文章列表相册功能制作.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/portal/文章列表相册功能制作.md -------------------------------------------------------------------------------- /_book/portal/瀑布流文章列表模板制作.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/portal/瀑布流文章列表模板制作.md -------------------------------------------------------------------------------- /_book/spchecklang.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/spchecklang.md -------------------------------------------------------------------------------- /_book/theme/empty标签.md: -------------------------------------------------------------------------------- 1 | # Empty标签 2 | 3 | -------------------------------------------------------------------------------- /_book/theme/三元运算.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/theme/三元运算.md -------------------------------------------------------------------------------- /_book/theme/前台模板多语言.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/theme/前台模板多语言.md -------------------------------------------------------------------------------- /_book/theme/包含文件.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/theme/包含文件.md -------------------------------------------------------------------------------- /_book/theme/原样输出.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/theme/原样输出.md -------------------------------------------------------------------------------- /_book/view/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/_book/view/README.md -------------------------------------------------------------------------------- /_book/钩子,插件与模板.md: -------------------------------------------------------------------------------- 1 | #钩子,插件与模板 -------------------------------------------------------------------------------- /admin.md: -------------------------------------------------------------------------------- 1 | # 后台管理 2 | 3 | -------------------------------------------------------------------------------- /admin/admin_index_url.md: -------------------------------------------------------------------------------- 1 | # 后台地址是啥? 2 | 后台地址是啥? 3 | 4 | 1.thinkcmf 默认后台地址是/admin 5 | 6 | 2.如果在后台开启后台地址加密码的功能,那地址就是/?g=admin&upw=系统为你生成的加密码 7 | ![](../images/j_0012.gif) 8 | ![](../images/j_0008.gif) 9 | 10 | 后台地址加密码开启了,但我没有记呀? 11 | 12 | 没办法其实 Dean 也无能为力呀! 13 | 14 | 好吧...我太好了 15 | 16 | 1.打开 data/conf/config.php文件,记得别用 windows 的记事本打开 17 | 18 | 2.找到SP_SITE_ADMIN_URL_PASSWORD,复制它的值 19 | 20 | 3.访问/?g=admin&upw={你第二步得到的值} 21 | -------------------------------------------------------------------------------- /admin/menu.md: -------------------------------------------------------------------------------- 1 | # 后台菜单管理 2 | 3 | -------------------------------------------------------------------------------- /admin/rbac.md: -------------------------------------------------------------------------------- 1 | # 管理员权限管理 2 | 3 | -------------------------------------------------------------------------------- /admin/thirdpart_auth.md: -------------------------------------------------------------------------------- 1 | # 第三方登录配置 2 | 3 | -------------------------------------------------------------------------------- /advanced.md: -------------------------------------------------------------------------------- 1 | # 进阶 2 | 3 | -------------------------------------------------------------------------------- /base/backup_restore.md: -------------------------------------------------------------------------------- 1 | # 备份与恢复 2 | 3 | 后台->扩展工具->备份管理 -------------------------------------------------------------------------------- /base/debug_mode.md: -------------------------------------------------------------------------------- 1 | # 调试模式 2 | 3 | ThinkCMF调试模式的开关在程序根目录index.php文件里 4 | ![ThinkCMFX调试模式](../images/20141228110052549f7264dacbe.png) 5 | 6 | APP_DEBUG默认是开启的,方便开发者调试; 7 | 开发完成可以改成false,关闭调试模式,进入生产环境! 8 | 9 | 调试模式下会有如下的图标: 10 | ![QQ截图20141228110026.png](../images/20141228110052549f7264daf74.png) 11 | 关闭调试模式后它就会消失! -------------------------------------------------------------------------------- /base/environmental_requirement.md: -------------------------------------------------------------------------------- 1 | # 环境要求 2 | 3 | ThinkCMFX可以支持Windows/Unix服务器环境,需要PHP5.3.0以上版本支持, 可运行于包括Apache、IIS和nginx在内的多种WEB服务器和模式,支持Mysql、 MsSQL、PgSQL、Sqlite、Oracle、Ibase、Mongo以及PDO等多种数据库和连接,推荐LAMP构架。框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。 ThinkCMF底层运行的内存消耗极低,而本身的文件大小也是轻量级的,因此不会出现 空间和内存占用的瓶颈。对于刚刚接触PHP或者ThinkCMF的新手,我们推荐使用集成开发 环境WAMPServer(wampserver是一个集成了Apache、PHP和MySQL的开发 套件,而且支持不同PHP版本、MySQL版本和Apache版本的切换)来使用ThinkCMF 进行本地开发和测试。 -------------------------------------------------------------------------------- /base/get_methods.md: -------------------------------------------------------------------------------- 1 | # 如何获取 2 | 3 | ThinkCMF获取方式: 4 | 5 | > 官方网站 :[http://www.thinkcmf.com](http://www.thinkcmf.com)可获取最新版本 6 | > git@osc :[http://git.oschina.net/thinkcmf/ThinkCMFX](http://git.oschina.net/thinkcmf/ThinkCMFX) 7 | > github :[https://github.com/thinkcmf/cmfx](https://github.com/thinkcmf/cmfx) 8 | 9 | -------------------------------------------------------------------------------- /config.md: -------------------------------------------------------------------------------- 1 | # 配置 2 | 3 | ThinkPHP支持多种配置格式,ThinkCMF默认使用php数组的形式,其它使用方式请参考: 4 | http://www.kancloud.cn/manual/thinkphp/1678 -------------------------------------------------------------------------------- /controller/ajax_return.md: -------------------------------------------------------------------------------- 1 | # AJAX返回 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1719 4 | -------------------------------------------------------------------------------- /controller/empty_action.md: -------------------------------------------------------------------------------- 1 | # 空操作 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1723 -------------------------------------------------------------------------------- /controller/empty_controller.md: -------------------------------------------------------------------------------- 1 | # 空控制器 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1724 4 | -------------------------------------------------------------------------------- /controller/input.md: -------------------------------------------------------------------------------- 1 | # 输入变量 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1721 4 | -------------------------------------------------------------------------------- /controller/redirect.md: -------------------------------------------------------------------------------- 1 | # 跳转和重定向 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1720 4 | -------------------------------------------------------------------------------- /controller/request_type.md: -------------------------------------------------------------------------------- 1 | # 请求类型 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1722 4 | -------------------------------------------------------------------------------- /core_functions.md: -------------------------------------------------------------------------------- 1 | # 系统函数 2 | -------------------------------------------------------------------------------- /cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/cover.jpg -------------------------------------------------------------------------------- /deploy.md: -------------------------------------------------------------------------------- 1 | # 部署 2 | 3 | -------------------------------------------------------------------------------- /deploy/production.md: -------------------------------------------------------------------------------- 1 | # 迁移到正式环境 2 | 3 | 请执行以下步骤: 4 | 5 | 1.debug打开; 6 | 7 | 2.把整个程序打包; 8 | 9 | 3.传到服务器; 10 | 11 | 4.数据库备份到服务器; 12 | 13 | 5.改data/conf/db.php的数据库用户名密码; 14 | 15 | 6.测试; 16 | 17 | 7.debug关闭; -------------------------------------------------------------------------------- /deploy/url_rewrite.md: -------------------------------------------------------------------------------- 1 | # URL重写 2 | 3 | 请参考:http://www.kancloud.cn/manual/thinkphp/1866 -------------------------------------------------------------------------------- /extends.md: -------------------------------------------------------------------------------- 1 | # 系统扩展 2 | 3 | -------------------------------------------------------------------------------- /foundation.md: -------------------------------------------------------------------------------- 1 | # 基础 2 | -------------------------------------------------------------------------------- /functions/sp_auth_code.md: -------------------------------------------------------------------------------- 1 | # sp_authcode() 2 | 3 | > V1.1.1新增 4 | 5 | ```php 6 | 11 | ``` 12 | 13 | -------------------------------------------------------------------------------- /functions/sp_auth_encode.md: -------------------------------------------------------------------------------- 1 | # sp_authencode() 2 | 3 | > V1.1.1新增 4 | 5 | ```php 6 | 11 | ``` -------------------------------------------------------------------------------- /functions/sp_check_verify_code.md: -------------------------------------------------------------------------------- 1 | # sp_check_verify_code() 2 | 3 | > X1.6.0新增 4 | 5 | ```php 6 | sp_check_verify_code() 7 | ``` 8 | 9 | 功能: 10 | 验证码检查,验证完后销毁验证码增加安全性 11 | 12 | 参数: 13 | 无 14 | 15 | 返回: 16 | 类型boolean true|false; 17 | 18 | 使用: 19 | ```php 20 | 注:表单提交时验证码name为verify;支持POST和GET方法 -------------------------------------------------------------------------------- /functions/sp_clear_cache.md: -------------------------------------------------------------------------------- 1 | # sp_clear_cache() 2 | 3 | ```php 4 | sp_clear_cache() 5 | ``` 6 | ######功能: 7 | 清除缓存 8 | 9 | ######参数: 10 | 无 11 | 12 | ######返回: 13 | 无 14 | 15 | ```php 16 | 19 | ``` -------------------------------------------------------------------------------- /functions/sp_content_page.md: -------------------------------------------------------------------------------- 1 | # sp_content_page() 2 | 3 | > X1.0新增 4 | 5 | ```php 6 | sp_content_page($content,$pagetpl') 7 | ``` 8 | 功能: 9 | 对文本内容进行分页处理,返回当前页的内容,和分页html 10 | 11 | 参数: 12 | `$content`:要处理的文本内容;里面含有百度编辑器的分页标记; 13 | `$pagetpl`:分页模板;默认值{first}{prev}{list}{next}{last} 14 | 15 | 返回: 16 | 类型数组 17 | ```php 18 | array( 19 | "content"=>"",//当前页内容 20 | "page"=>""产生的分页html 21 | ); 22 | ``` 23 | -------------------------------------------------------------------------------- /functions/sp_file_write.md: -------------------------------------------------------------------------------- 1 | # sp_file_write() 2 | 3 | > V1.1.1新增 4 | 5 | ```php 6 | 12 | ``` 13 | -------------------------------------------------------------------------------- /functions/sp_get_asset_upload_path.md: -------------------------------------------------------------------------------- 1 | #sp_get_asset_upload_path() 2 | > V1.1.1新增 3 | 4 | ```php 5 | 10 | ``` 11 | -------------------------------------------------------------------------------- /functions/sp_get_cmf_settings.md: -------------------------------------------------------------------------------- 1 | # sp_get_cmf_settings() 2 | > X1.2新增 3 | 4 | ```php 5 | sp_get_cmf_settings($key); 6 | ``` 7 | 功能: 8 | 获取cmf的设置;如果key为空则返回所有设置,如果key不为空,则返回相应key的设置 9 | 10 | 参数: 11 | `$key`:默认为空,设置的key 12 | 13 | 返回: 14 | 如果key为空则返回所有设置,如果key不为空,则返回相应key的设置 -------------------------------------------------------------------------------- /functions/sp_get_comments.md: -------------------------------------------------------------------------------- 1 | # sp_get_comments() 2 | 3 | > X1.2新增 4 | 5 | ```php 6 | sp_get_comments($tag,$where); 7 | ``` 8 | 功能: 9 | 获取评论; 10 | 11 | 参数: 12 | `$tag`:查询标签,默认:field:\*;limit:0,5;order:createtime desc; 13 | `$where`:查询where数组,按照thinkphp where array格式; 14 | 15 | 返回: 16 | 数组,评论 -------------------------------------------------------------------------------- /functions/sp_get_current_admin_id.md: -------------------------------------------------------------------------------- 1 | #sp_get_current_admin_id() 2 | 3 | > X1.4.0新增 4 | 5 | ```php 6 | sp_get_current_admin_id() 7 | ``` 8 | 功能: 9 | 获取当前登录管理员id,同get_current_admin_id() 10 | 11 | 参数: 12 | 无 13 | 14 | 返回: 15 | 类型int,管理员的id -------------------------------------------------------------------------------- /functions/sp_get_current_user.md: -------------------------------------------------------------------------------- 1 | # sp_get_current_user() 2 | 3 | ```php 4 | sp_get_current_user() 5 | ``` 6 | 功能: 7 | 获取当前登录用户信息,包括users表里详细信息; 8 | 9 | 参数: 10 | 无 11 | 12 | 返回: 13 | 数组,用户包括users表里详细信息 -------------------------------------------------------------------------------- /functions/sp_get_current_userid.md: -------------------------------------------------------------------------------- 1 | # sp_get_current_userid() 2 | 3 | ```php 4 | sp_get_current_userid() 5 | ``` 6 | 7 | 功能: 8 | 获取当前登录用户ID 9 | 10 | 参数: 11 | 无 12 | 13 | 返回: 14 | int,当前登录的用户id,如果未登录返回0 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /functions/sp_get_favorite_key.md: -------------------------------------------------------------------------------- 1 | # sp_get_favorite_key() 2 | 3 | > X1.0新增 4 | 5 | ```php 6 | sp_get_favorite_key($table,$object_id) 7 | ``` 8 | 9 | 功能: 10 | 用于生成收藏内容用的安全key,收藏时必用 11 | 12 | 参数: 13 | `$table`:收藏内容所在表,不带表前缀 14 | `$object_id`:收藏内容的id 15 | 16 | 返回: 17 | 类型string,收藏内容用的安全key -------------------------------------------------------------------------------- /functions/sp_get_host.md: -------------------------------------------------------------------------------- 1 | # sp_get_host() 2 | 3 | > X1.0新增 4 | 5 | ```php 6 | sp_get_host() 7 | ``` 8 | 9 | 功能: 10 | 返回带协议的域名 11 | 12 | 参数: 13 | 无 14 | 15 | 返回: 16 | 类型string 17 | 带协议的域名,如http://www.thinkcmf.com 18 | -------------------------------------------------------------------------------- /functions/sp_get_plugin_class.md: -------------------------------------------------------------------------------- 1 | # sp_get_plugin_class() 2 | 3 | > X1.4.0新增 4 | 5 | ```php 6 | sp_get_plugin_class($name) 7 | ``` 8 | 功能: 9 | 获取插件类的类名 10 | 11 | 参数: 12 | `$name`:插件类名 13 | 14 | 返回: 15 | 类型string 16 | 如:plugins\Demo\DemoPlugin -------------------------------------------------------------------------------- /functions/sp_get_plugin_config.md: -------------------------------------------------------------------------------- 1 | # sp_get_plugin_config() 2 | > X1.4.0新增 3 | 4 | ```php 5 | sp_get_plugin_config($name) 6 | ``` 7 | 8 | 功能: 9 | 获取插件配置 10 | 11 | 参数: 12 | `$name`:插件名 13 | 14 | 返回: 15 | 类型数组,插件配置信息 -------------------------------------------------------------------------------- /functions/sp_get_relative_url.md: -------------------------------------------------------------------------------- 1 | # sp_get_relative_url() 2 | 3 | > X1.0新增 4 | 5 | ```php 6 | sp_get_relative_url($url) 7 | ``` 8 | 功能: 9 | 获取域名后的地址,如http://thinkcmf.com/news.html,转化后为/news.html 10 | 11 | 参数: 12 | `$url`:要转化的url 13 | 14 | 返回: 15 | 类型string; 16 | 域名后的地址,如http://thinkcmf.com/news.html,转化后为/news.html 17 | 18 | -------------------------------------------------------------------------------- /functions/sp_get_theme_path.md: -------------------------------------------------------------------------------- 1 | # sp_get_theme_path() 2 | 3 | > X1.1新增 4 | 5 | ```php 6 | sp_get_theme_path() 7 | ``` 8 | 9 | ######功能: 10 | 获取当前模板的地址 11 | 12 | ######参数: 13 | 无 14 | 15 | ######返回: 16 | 类型string 17 | 18 | 当前模板的地址,如当前模板是`simplebootx`,则返回`/themes/simplebootx/` 19 | -------------------------------------------------------------------------------- /functions/sp_getcontent_imgs.md: -------------------------------------------------------------------------------- 1 | # sp_getcontent_imgs() 2 | 3 | 示例: 4 | 5 | ```php 6 | 11 | ``` 12 | 13 | 返回字段说明: 14 | `title`:图片的title属性 15 | `alt`:图片的alt属性 16 | `src`:图片的资源路径 -------------------------------------------------------------------------------- /functions/sp_is_sae.md: -------------------------------------------------------------------------------- 1 | # sp_is_sae() 2 | 3 | > X1.5.0新增 4 | 5 | ```php 6 | sp_is_sae() 7 | ``` 8 | 9 | 功能: 10 | 判断是否为SAE 11 | 12 | 参数: 13 | 无 14 | 15 | 返回: 16 | 类型boolean true|false 17 | 18 | 使用: 19 | ```php 20 | $is_sae=sp_is_sae(); 21 | ``` -------------------------------------------------------------------------------- /functions/sp_is_user_login.md: -------------------------------------------------------------------------------- 1 | # sp_is_user_login() 2 | 3 | X1.0新增 4 | 5 | sp_is_user_login() 6 | 功能: 7 | 8 | 判断用户是否已经登录 9 | 10 | 11 | 12 | 参数: 13 | 14 | 无 15 | 16 | 返回: 17 | 18 | 类型布尔 true/false 19 | 20 | -------------------------------------------------------------------------------- /functions/sp_param_lable.md: -------------------------------------------------------------------------------- 1 | # sp_param_lable() 2 | ```php 3 | 7 | ``` -------------------------------------------------------------------------------- /functions/sp_password.md: -------------------------------------------------------------------------------- 1 | # sp_password() 2 | 3 | ```php 4 | 9 | ``` -------------------------------------------------------------------------------- /functions/sp_random_string.md: -------------------------------------------------------------------------------- 1 | # sp_random_string() 2 | ```php 3 | 10 | ``` -------------------------------------------------------------------------------- /functions/sp_scan_dir.md: -------------------------------------------------------------------------------- 1 | # sp_scan_dir() 2 | 3 | > X1.4.0新增 4 | 5 | ```php 6 | sp_scan_dir($pattern,$flags) 7 | ``` 8 | 功能: 9 | 替代scan_dir的方法 10 | 11 | 参数: 12 | `$pattern`:检索模式 搜索模式 *.txt,*.doc; (同glog方法) 13 | `$flags`:返回模式 同glog方法 14 | 15 | 返回: 16 | 类型数组 17 | 18 | 使用方法: 19 | 20 | ```php 21 | //扫描application目录 22 | $files=sp_scan_dir('application/*');//返回application目录下所有文件 23 | ``` -------------------------------------------------------------------------------- /functions/sp_send_email.md: -------------------------------------------------------------------------------- 1 | # sp_send_email() 2 | > X1.0新增 3 | 4 | ```php 5 | sp_send_email($address,$subject,$message) 6 | ``` 7 | 8 | 功能: 9 | 发送邮件 10 | 11 | 参数: 12 | `$address`:收件人地址 13 | `$subject`:邮件主题 14 | `$message`:邮件内容 15 | 16 | 返回: 17 | 类型数组,发送状态和信息 18 | 19 | ```php 20 | array( 21 | "error"=>"1",//有错误 22 | "message"=>""错误信息 23 | ); 24 | array( 25 | "error"=>"0",//成功发送,无错误 26 | ); 27 | ``` -------------------------------------------------------------------------------- /functions/sp_set_dynamic_config.md: -------------------------------------------------------------------------------- 1 | # sp_set_dynamic_config() 2 | 3 | > V1.1.1新增 4 | 5 | ```php 6 | ".html"); 8 | $result=sp_set_dynamic_config($data); 9 | ?> 10 | ``` -------------------------------------------------------------------------------- /functions/sp_update_current_user.md: -------------------------------------------------------------------------------- 1 | #sp_update_current_user() 2 | > X1.0新增 3 | 4 | ```php 5 | sp_update_current_user($user) 6 | ``` 7 | 8 | 功能: 9 | 更新session里当前登录用户的信息 10 | 11 | 参数: 12 | `$user`:当前登录用户的最新信息 13 | 14 | 返回: 15 | 无 16 | -------------------------------------------------------------------------------- /images/031A9AF4-CA48-4FAB-873E-D2735B010D26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/031A9AF4-CA48-4FAB-873E-D2735B010D26.png -------------------------------------------------------------------------------- /images/20141209121334548676ee3afc8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/20141209121334548676ee3afc8.png -------------------------------------------------------------------------------- /images/20141228110052549f7264dacbe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/20141228110052549f7264dacbe.png -------------------------------------------------------------------------------- /images/20141228110052549f7264daf74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/20141228110052549f7264daf74.png -------------------------------------------------------------------------------- /images/54857e9f9b316.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/54857e9f9b316.png -------------------------------------------------------------------------------- /images/54aa90907a9f6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/54aa90907a9f6.png -------------------------------------------------------------------------------- /images/54aa91de3ca54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/54aa91de3ca54.png -------------------------------------------------------------------------------- /images/54aa9283b5d3a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/54aa9283b5d3a.png -------------------------------------------------------------------------------- /images/565e8c0ad7253.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/565e8c0ad7253.jpg -------------------------------------------------------------------------------- /images/5695949f3e2f1.png.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/5695949f3e2f1.png.jpg -------------------------------------------------------------------------------- /images/56959873764f7.png.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/56959873764f7.png.jpg -------------------------------------------------------------------------------- /images/8BDF3EE2-A11B-4437-ABA6-F65DF9DC46C0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/8BDF3EE2-A11B-4437-ABA6-F65DF9DC46C0.png -------------------------------------------------------------------------------- /images/FD2DB1F5-D7E8-4CC4-8003-A003A0480FFE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/FD2DB1F5-D7E8-4CC4-8003-A003A0480FFE.png -------------------------------------------------------------------------------- /images/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/README.md -------------------------------------------------------------------------------- /images/alipay_qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/alipay_qrcode.png -------------------------------------------------------------------------------- /images/j_0008.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/j_0008.gif -------------------------------------------------------------------------------- /images/j_0012.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/j_0012.gif -------------------------------------------------------------------------------- /images/j_0050.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/j_0050.gif -------------------------------------------------------------------------------- /images/view_5695911cf31e7.png.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/images/view_5695911cf31e7.png.jpg -------------------------------------------------------------------------------- /model.md: -------------------------------------------------------------------------------- 1 | # 模型 2 | 3 | 模型定义 -------------------------------------------------------------------------------- /model/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thinkcmf/cmfx_doc/3a2805658e4c016407315f2d56d6155d1e697a1c/model/README.md -------------------------------------------------------------------------------- /model/more_help.md: -------------------------------------------------------------------------------- 1 | # 更多模型 2 | 3 | ThinkCMF支持所有ThinkPHP模型用法,其它使用方式请参考: 4 | http://www.kancloud.cn/manual/thinkphp/1727 5 | -------------------------------------------------------------------------------- /node_modules/boolbase/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | trueFunc: function trueFunc(){ 3 | return true; 4 | }, 5 | falseFunc: function falseFunc(){ 6 | return false; 7 | } 8 | }; -------------------------------------------------------------------------------- /node_modules/cheerio/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Export cheerio (with ) 3 | */ 4 | 5 | exports = module.exports = require('./lib/cheerio'); 6 | 7 | /* 8 | Export the version 9 | */ 10 | 11 | exports.version = require('./package.json').version; 12 | -------------------------------------------------------------------------------- /node_modules/core-util-is/README.md: -------------------------------------------------------------------------------- 1 | # core-util-is 2 | 3 | The `util.is*` functions introduced in Node v0.12. 4 | -------------------------------------------------------------------------------- /node_modules/css-select/lib/procedure.json: -------------------------------------------------------------------------------- 1 | { 2 | "universal": 50, 3 | "tag": 30, 4 | "attribute": 1, 5 | "pseudo": 0, 6 | "descendant": -1, 7 | "child": -1, 8 | "parent": -1, 9 | "sibling": -1, 10 | "adjacent": -1 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/dom-serializer/node_modules/domelementtype/readme.md: -------------------------------------------------------------------------------- 1 | all the types of nodes in htmlparser2's dom 2 | -------------------------------------------------------------------------------- /node_modules/domelementtype/readme.md: -------------------------------------------------------------------------------- 1 | all the types of nodes in htmlparser2's dom 2 | -------------------------------------------------------------------------------- /node_modules/domhandler/.travis.yml: -------------------------------------------------------------------------------- 1 | before_install: 2 | - '[ "${TRAVIS_NODE_VERSION}" != "0.8" ] || npm install -g npm@1.4.28' 3 | - npm install -g npm@latest 4 | language: node_js 5 | node_js: 6 | - 0.8 7 | - 0.10 8 | -------------------------------------------------------------------------------- /node_modules/domhandler/test/cases/02-single_tag_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Single Tag 1", 3 | "options": {}, 4 | "html": "
text
", 5 | "expected": [ 6 | { 7 | "type": "tag", 8 | "name": "br", 9 | "attribs": {} 10 | }, 11 | { 12 | "data": "text", 13 | "type": "text" 14 | }, 15 | { 16 | "type": "tag", 17 | "name": "br", 18 | "attribs": {} 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /node_modules/domhandler/test/cases/03-single_tag_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Single Tag 2", 3 | "options": {}, 4 | "html": "
text
", 5 | "expected": [ 6 | { 7 | "type": "tag", 8 | "name": "br", 9 | "attribs": {} 10 | }, 11 | { 12 | "data": "text", 13 | "type": "text" 14 | }, 15 | { 16 | "type": "tag", 17 | "name": "br", 18 | "attribs": {} 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /node_modules/domhandler/test/cases/10-singular_attribute.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Singular attribute", 3 | "options": {}, 4 | "html": "