From 028830181afffa1b84ba5fce026c4bd00003e7fa Mon Sep 17 00:00:00 2001 From: caozongpeng <30362467+caozongpeng@users.noreply.github.com> Date: Sat, 29 Dec 2018 21:18:23 +0800 Subject: [PATCH 01/22] README --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 9afd123..fbc657f 100644 --- a/README.md +++ b/README.md @@ -27,28 +27,28 @@ Kyrie Blog是由SpringBoot1.5 + MyBatis + Thymeleaf等技术实现的个人网 ### 预览效果 #### 前端效果 -![index](http://pcschpyz4.bkt.clouddn.com/index.png) +![index](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/index.png) -![archives](http://pcschpyz4.bkt.clouddn.com/archives.png) +![archives](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/archives.png) -![detail](http://pcschpyz4.bkt.clouddn.com/detail.png) +![detail](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/detail.png) -![category](http://pcschpyz4.bkt.clouddn.com/category.png) +![category](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/category.png) -![about](http://pcschpyz4.bkt.clouddn.com/about.png) +![about](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/about.png) #### 后端效果 -![adminlogin](http://pcschpyz4.bkt.clouddn.com/adminlogin.png) +![adminlogin](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/adminlogin.png) -![adminindex](http://pcschpyz4.bkt.clouddn.com/adminindex.png) +![adminindex](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/adminindex.png) -![articlepublish](http://pcschpyz4.bkt.clouddn.com/articlepublish.png) +![articlepublish](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/articlepublish.png) -![articlemanager](http://pcschpyz4.bkt.clouddn.com/articlemanager.png) +![articlemanager](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/articlemanager.png) -![filemanager](http://pcschpyz4.bkt.clouddn.com/filemanager.png) +![filemanager](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/filemanager.png) -![setting](http://pcschpyz4.bkt.clouddn.com/setting.png) +![setting](http://caozongpeng.oss-cn-shenzhen.aliyuncs.com/image/blog/setting.png) ### 安装 下载源码,执行sql文件,然后修改application-dev.yml文件中连接数据库的用户名、密码。运行项目即可。 From 7e299f2e05f679ed03f0b99c3bcec84bc9b7e9b0 Mon Sep 17 00:00:00 2001 From: KyrieCao <864655735@qq.com> Date: Tue, 22 Jan 2019 08:21:02 +0800 Subject: [PATCH 02/22] commit gitignore 01-22 --- .gitignore | 28 + target/classes/application-dev.yml | 69 - target/classes/application-prod.yml | 0 target/classes/application.yml | 3 - .../classes/com/wip/MyBlogApplication.class | Bin 771 -> 0 bytes .../com/wip/api/QiNiuCloudService.class | Bin 2775 -> 0 bytes .../wip/constant/ErrorConstant$Article.class | Bin 700 -> 0 bytes .../com/wip/constant/ErrorConstant$Att.class | Bin 490 -> 0 bytes .../com/wip/constant/ErrorConstant$Auth.class | Bin 451 -> 0 bytes .../wip/constant/ErrorConstant$Comment.class | Bin 490 -> 0 bytes .../wip/constant/ErrorConstant$Common.class | Bin 430 -> 0 bytes .../com/wip/constant/ErrorConstant$Meta.class | Bin 566 -> 0 bytes .../wip/constant/ErrorConstant$Option.class | Bin 366 -> 0 bytes .../com/wip/constant/ErrorConstant.class | Bin 557 -> 0 bytes .../classes/com/wip/constant/LogActions.class | Bin 1647 -> 0 bytes target/classes/com/wip/constant/Types.class | Bin 1801 -> 0 bytes .../classes/com/wip/constant/WebConst.class | Bin 1077 -> 0 bytes .../com/wip/controller/BaseController.class | Bin 1902 -> 0 bytes .../com/wip/controller/HomeController.class | Bin 10560 -> 0 bytes .../controller/admin/ArticleController.class | Bin 8058 -> 0 bytes .../controller/admin/AttachController.class | Bin 7506 -> 0 bytes .../wip/controller/admin/AuthController.class | Bin 5669 -> 0 bytes .../controller/admin/CategoryController.class | Bin 3753 -> 0 bytes .../controller/admin/CommentController.class | Bin 3580 -> 0 bytes .../controller/admin/IndexController.class | Bin 6233 -> 0 bytes .../controller/admin/LinksController.class | Bin 4182 -> 0 bytes .../controller/admin/SettingController.class | Bin 4948 -> 0 bytes target/classes/com/wip/dao/AttAchDao.class | Bin 642 -> 0 bytes target/classes/com/wip/dao/CommentDao.class | Bin 1013 -> 0 bytes target/classes/com/wip/dao/ContentDao.class | Bin 1074 -> 0 bytes target/classes/com/wip/dao/LogDao.class | Bin 341 -> 0 bytes target/classes/com/wip/dao/MetaDao.class | Bin 1045 -> 0 bytes target/classes/com/wip/dao/OptionDao.class | Bin 448 -> 0 bytes .../classes/com/wip/dao/RelationShipDao.class | Bin 784 -> 0 bytes target/classes/com/wip/dao/UserDao.class | Bin 552 -> 0 bytes target/classes/com/wip/dto/AttAchDto.class | Bin 1531 -> 0 bytes target/classes/com/wip/dto/BaseDto.class | Bin 532 -> 0 bytes target/classes/com/wip/dto/MetaDto.class | Bin 480 -> 0 bytes .../classes/com/wip/dto/StatisticsDto.class | Bin 1114 -> 0 bytes .../com/wip/dto/cond/CommentCond.class | Bin 1195 -> 0 bytes .../com/wip/dto/cond/ContentCond.class | Bin 1938 -> 0 bytes .../classes/com/wip/dto/cond/MetaCond.class | Bin 715 -> 0 bytes .../com/wip/exception/BusinessException.class | Bin 2317 -> 0 bytes .../com/wip/interceptor/BaseInterceptor.class | Bin 7409 -> 0 bytes .../com/wip/interceptor/WebMvcConfig.class | Bin 1084 -> 0 bytes .../classes/com/wip/model/AttAchDomain.class | Bin 1541 -> 0 bytes .../classes/com/wip/model/CommentDomain.class | Bin 3037 -> 0 bytes .../classes/com/wip/model/ContentDomain.class | Bin 3678 -> 0 bytes target/classes/com/wip/model/LogDomain.class | Bin 1686 -> 0 bytes target/classes/com/wip/model/MetaDomain.class | Bin 2083 -> 0 bytes .../classes/com/wip/model/OptionsDomain.class | Bin 930 -> 0 bytes .../com/wip/model/RelationShipDomain.class | Bin 736 -> 0 bytes target/classes/com/wip/model/UserDomain.class | Bin 2338 -> 0 bytes .../wip/service/article/ContentService.class | Bin 902 -> 0 bytes .../article/impl/ContentServiceImpl.class | Bin 6965 -> 0 bytes .../wip/service/attach/AttAchService.class | Bin 444 -> 0 bytes .../attach/impl/AttAchServiceImpl.class | Bin 2515 -> 0 bytes .../wip/service/comment/CommentService.class | Bin 703 -> 0 bytes .../comment/impl/CommentServiceImpl.class | Bin 5445 -> 0 bytes .../com/wip/service/log/LogService.class | Bin 360 -> 0 bytes .../wip/service/log/impl/LogServiceImpl.class | Bin 1895 -> 0 bytes .../com/wip/service/meta/MetaService.class | Bin 919 -> 0 bytes .../service/meta/impl/MetaServiceImpl.class | Bin 8323 -> 0 bytes .../wip/service/option/OptionService.class | Bin 503 -> 0 bytes .../option/impl/OptionServiceImpl.class | Bin 3213 -> 0 bytes .../com/wip/service/site/SiteService.class | Bin 383 -> 0 bytes .../service/site/impl/SiteServiceImpl.class | Bin 3604 -> 0 bytes .../com/wip/service/user/UserService.class | Bin 340 -> 0 bytes .../service/user/impl/UserServiceImpl.class | Bin 2205 -> 0 bytes .../classes/com/wip/utils/APIResponse.class | Bin 2279 -> 0 bytes .../classes/com/wip/utils/AdminCommons.class | Bin 1440 -> 0 bytes target/classes/com/wip/utils/Commons.class | Bin 5123 -> 0 bytes target/classes/com/wip/utils/DateKit.class | Bin 1131 -> 0 bytes target/classes/com/wip/utils/GsonUtils.class | Bin 649 -> 0 bytes target/classes/com/wip/utils/IPKit.class | Bin 1484 -> 0 bytes .../com/wip/utils/MapCache$CacheObject.class | Bin 870 -> 0 bytes target/classes/com/wip/utils/MapCache.class | Bin 2741 -> 0 bytes target/classes/com/wip/utils/TaleUtils.class | Bin 9203 -> 0 bytes target/classes/com/wip/utils/Tools.class | Bin 1952 -> 0 bytes target/classes/com/wip/utils/UUID.class | Bin 2109 -> 0 bytes target/classes/mapper/AttAchMapper.xml | 96 - target/classes/mapper/CommentMapper.xml | 113 - target/classes/mapper/ContentMapper.xml | 181 - target/classes/mapper/LogMapper.xml | 41 - target/classes/mapper/MetaMapper.xml | 154 - target/classes/mapper/OptionMapper.xml | 49 - target/classes/mapper/RelationShipMapper.xml | 76 - target/classes/mapper/UserMapper.xml | 59 - target/classes/static/admin/css/contact.css | 21 - .../classes/static/admin/css/flexslider.css | 71 - target/classes/static/admin/css/reset.css | 97 - .../classes/static/admin/css/responsive.css | 65 - target/classes/static/admin/css/style.min.css | 1 - target/classes/static/admin/css/styles.css | 459 - .../classes/static/admin/editormd/.jshintrc | 20 - target/classes/static/admin/editormd/BUGS.md | 22 - .../classes/static/admin/editormd/CHANGE.md | 534 - .../classes/static/admin/editormd/Gulpfile.js | 342 - target/classes/static/admin/editormd/LICENSE | 22 - .../classes/static/admin/editormd/README.md | 119 - .../classes/static/admin/editormd/bower.json | 24 - .../static/admin/editormd/css/editormd.css | 4450 -------- .../admin/editormd/css/editormd.logo.css | 98 - .../admin/editormd/css/editormd.logo.min.css | 2 - .../admin/editormd/css/editormd.min.css | 5 - .../admin/editormd/css/editormd.preview.css | 3554 ------- .../editormd/css/editormd.preview.min.css | 5 - .../static/admin/editormd/editormd.amd.js | 4667 --------- .../static/admin/editormd/editormd.amd.min.js | 4 - .../classes/static/admin/editormd/editormd.js | 4598 -------- .../static/admin/editormd/editormd.min.js | 3 - .../admin/editormd/fonts/FontAwesome.otf | Bin 93888 -> 0 bytes .../admin/editormd/fonts/editormd-logo.eot | Bin 1320 -> 0 bytes .../admin/editormd/fonts/editormd-logo.svg | 11 - .../admin/editormd/fonts/editormd-logo.ttf | Bin 1156 -> 0 bytes .../admin/editormd/fonts/editormd-logo.woff | Bin 1232 -> 0 bytes .../editormd/fonts/fontawesome-webfont.eot | Bin 60767 -> 0 bytes .../editormd/fonts/fontawesome-webfont.svg | 565 - .../editormd/fonts/fontawesome-webfont.ttf | Bin 122092 -> 0 bytes .../editormd/fonts/fontawesome-webfont.woff | Bin 71508 -> 0 bytes .../editormd/fonts/fontawesome-webfont.woff2 | Bin 56780 -> 0 bytes .../static/admin/editormd/images/loading.gif | Bin 7726 -> 0 bytes .../admin/editormd/images/loading@2x.gif | Bin 16166 -> 0 bytes .../admin/editormd/images/loading@3x.gif | Bin 21727 -> 0 bytes .../images/logos/editormd-favicon-16x16.ico | Bin 1150 -> 0 bytes .../images/logos/editormd-favicon-24x24.ico | Bin 1150 -> 0 bytes .../images/logos/editormd-favicon-32x32.ico | Bin 5430 -> 0 bytes .../images/logos/editormd-favicon-48x48.ico | Bin 15086 -> 0 bytes .../images/logos/editormd-favicon-64x64.ico | Bin 32038 -> 0 bytes .../images/logos/editormd-logo-114x114.png | Bin 5869 -> 0 bytes .../images/logos/editormd-logo-120x120.png | Bin 6141 -> 0 bytes .../images/logos/editormd-logo-144x144.png | Bin 7545 -> 0 bytes .../images/logos/editormd-logo-16x16.png | Bin 1448 -> 0 bytes .../images/logos/editormd-logo-180x180.png | Bin 7963 -> 0 bytes .../images/logos/editormd-logo-240x240.png | Bin 10470 -> 0 bytes .../images/logos/editormd-logo-24x24.png | Bin 1790 -> 0 bytes .../images/logos/editormd-logo-320x320.png | Bin 14714 -> 0 bytes .../images/logos/editormd-logo-32x32.png | Bin 2064 -> 0 bytes .../images/logos/editormd-logo-48x48.png | Bin 2701 -> 0 bytes .../images/logos/editormd-logo-57x57.png | Bin 3054 -> 0 bytes .../images/logos/editormd-logo-64x64.png | Bin 3408 -> 0 bytes .../images/logos/editormd-logo-72x72.png | Bin 3691 -> 0 bytes .../images/logos/editormd-logo-96x96.png | Bin 4857 -> 0 bytes .../static/admin/editormd/images/logos/vi.png | Bin 46203 -> 0 bytes .../static/admin/editormd/languages/en.js | 127 - .../static/admin/editormd/languages/zh-tw.js | 127 - .../admin/editormd/lib/codemirror/AUTHORS | 436 - .../admin/editormd/lib/codemirror/LICENSE | 19 - .../admin/editormd/lib/codemirror/README.md | 12 - .../lib/codemirror/addon/comment/comment.js | 183 - .../addon/comment/continuecomment.js | 85 - .../lib/codemirror/addon/dialog/dialog.css | 32 - .../lib/codemirror/addon/dialog/dialog.js | 155 - .../codemirror/addon/display/fullscreen.css | 6 - .../codemirror/addon/display/fullscreen.js | 41 - .../lib/codemirror/addon/display/panel.js | 94 - .../codemirror/addon/display/placeholder.js | 58 - .../lib/codemirror/addon/display/rulers.js | 64 - .../codemirror/addon/edit/closebrackets.js | 161 - .../lib/codemirror/addon/edit/closetag.js | 166 - .../lib/codemirror/addon/edit/continuelist.js | 51 - .../codemirror/addon/edit/matchbrackets.js | 120 - .../lib/codemirror/addon/edit/matchtags.js | 66 - .../codemirror/addon/edit/trailingspace.js | 27 - .../lib/codemirror/addon/fold/brace-fold.js | 105 - .../lib/codemirror/addon/fold/comment-fold.js | 57 - .../lib/codemirror/addon/fold/foldcode.js | 149 - .../lib/codemirror/addon/fold/foldgutter.css | 20 - .../lib/codemirror/addon/fold/foldgutter.js | 144 - .../lib/codemirror/addon/fold/indent-fold.js | 44 - .../codemirror/addon/fold/markdown-fold.js | 49 - .../lib/codemirror/addon/fold/xml-fold.js | 182 - .../lib/codemirror/addon/hint/anyword-hint.js | 41 - .../lib/codemirror/addon/hint/css-hint.js | 56 - .../lib/codemirror/addon/hint/html-hint.js | 348 - .../codemirror/addon/hint/javascript-hint.js | 146 - .../lib/codemirror/addon/hint/show-hint.css | 38 - .../lib/codemirror/addon/hint/show-hint.js | 394 - .../lib/codemirror/addon/hint/sql-hint.js | 240 - .../lib/codemirror/addon/hint/xml-hint.js | 110 - .../addon/lint/coffeescript-lint.js | 41 - .../lib/codemirror/addon/lint/css-lint.js | 35 - .../codemirror/addon/lint/javascript-lint.js | 136 - .../lib/codemirror/addon/lint/json-lint.js | 31 - .../lib/codemirror/addon/lint/lint.css | 73 - .../lib/codemirror/addon/lint/lint.js | 205 - .../lib/codemirror/addon/lint/yaml-lint.js | 28 - .../lib/codemirror/addon/merge/merge.css | 112 - .../lib/codemirror/addon/merge/merge.js | 735 -- .../lib/codemirror/addon/mode/loadmode.js | 64 - .../lib/codemirror/addon/mode/multiplex.js | 118 - .../codemirror/addon/mode/multiplex_test.js | 33 - .../lib/codemirror/addon/mode/overlay.js | 85 - .../lib/codemirror/addon/mode/simple.js | 213 - .../lib/codemirror/addon/runmode/colorize.js | 40 - .../addon/runmode/runmode-standalone.js | 157 - .../lib/codemirror/addon/runmode/runmode.js | 72 - .../codemirror/addon/runmode/runmode.node.js | 120 - .../addon/scroll/annotatescrollbar.js | 100 - .../codemirror/addon/scroll/scrollpastend.js | 46 - .../addon/scroll/simplescrollbars.css | 66 - .../addon/scroll/simplescrollbars.js | 141 - .../addon/search/match-highlighter.js | 128 - .../addon/search/matchesonscrollbar.css | 8 - .../addon/search/matchesonscrollbar.js | 95 - .../lib/codemirror/addon/search/search.js | 164 - .../codemirror/addon/search/searchcursor.js | 189 - .../codemirror/addon/selection/active-line.js | 71 - .../addon/selection/mark-selection.js | 118 - .../addon/selection/selection-pointer.js | 98 - .../lib/codemirror/addon/tern/tern.css | 86 - .../lib/codemirror/addon/tern/tern.js | 697 -- .../lib/codemirror/addon/tern/worker.js | 44 - .../lib/codemirror/addon/wrap/hardwrap.js | 139 - .../editormd/lib/codemirror/addons.min.js | 4 - .../admin/editormd/lib/codemirror/bower.json | 16 - .../lib/codemirror/codemirror.min.css | 3 - .../editormd/lib/codemirror/codemirror.min.js | 54 - .../lib/codemirror/lib/codemirror.css | 331 - .../editormd/lib/codemirror/lib/codemirror.js | 8645 ---------------- .../editormd/lib/codemirror/mode/apl/apl.js | 175 - .../lib/codemirror/mode/apl/index.html | 72 - .../lib/codemirror/mode/asterisk/asterisk.js | 198 - .../lib/codemirror/mode/asterisk/index.html | 154 - .../lib/codemirror/mode/clike/clike.js | 493 - .../lib/codemirror/mode/clike/index.html | 251 - .../lib/codemirror/mode/clike/scala.html | 767 -- .../lib/codemirror/mode/clojure/clojure.js | 243 - .../lib/codemirror/mode/clojure/index.html | 88 - .../lib/codemirror/mode/cobol/cobol.js | 255 - .../lib/codemirror/mode/cobol/index.html | 210 - .../mode/coffeescript/coffeescript.js | 369 - .../codemirror/mode/coffeescript/index.html | 740 -- .../codemirror/mode/commonlisp/commonlisp.js | 122 - .../lib/codemirror/mode/commonlisp/index.html | 177 - .../editormd/lib/codemirror/mode/css/css.js | 766 -- .../lib/codemirror/mode/css/index.html | 75 - .../lib/codemirror/mode/css/less.html | 152 - .../lib/codemirror/mode/css/less_test.js | 51 - .../lib/codemirror/mode/css/scss.html | 157 - .../lib/codemirror/mode/css/scss_test.js | 110 - .../editormd/lib/codemirror/mode/css/test.js | 195 - .../lib/codemirror/mode/cypher/cypher.js | 146 - .../lib/codemirror/mode/cypher/index.html | 63 - .../admin/editormd/lib/codemirror/mode/d/d.js | 218 - .../editormd/lib/codemirror/mode/d/index.html | 273 - .../editormd/lib/codemirror/mode/dart/dart.js | 50 - .../lib/codemirror/mode/dart/index.html | 71 - .../editormd/lib/codemirror/mode/diff/diff.js | 47 - .../lib/codemirror/mode/diff/index.html | 117 - .../lib/codemirror/mode/django/django.js | 67 - .../lib/codemirror/mode/django/index.html | 63 - .../codemirror/mode/dockerfile/dockerfile.js | 76 - .../lib/codemirror/mode/dockerfile/index.html | 73 - .../editormd/lib/codemirror/mode/dtd/dtd.js | 142 - .../lib/codemirror/mode/dtd/index.html | 89 - .../lib/codemirror/mode/dylan/dylan.js | 299 - .../lib/codemirror/mode/dylan/index.html | 407 - .../editormd/lib/codemirror/mode/ebnf/ebnf.js | 195 - .../lib/codemirror/mode/ebnf/index.html | 102 - .../editormd/lib/codemirror/mode/ecl/ecl.js | 207 - .../lib/codemirror/mode/ecl/index.html | 52 - .../lib/codemirror/mode/eiffel/eiffel.js | 162 - .../lib/codemirror/mode/eiffel/index.html | 429 - .../lib/codemirror/mode/erlang/erlang.js | 622 -- .../lib/codemirror/mode/erlang/index.html | 76 - .../lib/codemirror/mode/forth/forth.js | 180 - .../lib/codemirror/mode/forth/index.html | 75 - .../lib/codemirror/mode/fortran/fortran.js | 188 - .../lib/codemirror/mode/fortran/index.html | 81 - .../editormd/lib/codemirror/mode/gas/gas.js | 345 - .../lib/codemirror/mode/gas/index.html | 68 - .../editormd/lib/codemirror/mode/gfm/gfm.js | 123 - .../lib/codemirror/mode/gfm/index.html | 93 - .../editormd/lib/codemirror/mode/gfm/test.js | 213 - .../lib/codemirror/mode/gherkin/gherkin.js | 178 - .../lib/codemirror/mode/gherkin/index.html | 48 - .../editormd/lib/codemirror/mode/go/go.js | 185 - .../lib/codemirror/mode/go/index.html | 85 - .../lib/codemirror/mode/groovy/groovy.js | 226 - .../lib/codemirror/mode/groovy/index.html | 84 - .../editormd/lib/codemirror/mode/haml/haml.js | 159 - .../lib/codemirror/mode/haml/index.html | 79 - .../editormd/lib/codemirror/mode/haml/test.js | 97 - .../lib/codemirror/mode/haskell/haskell.js | 267 - .../lib/codemirror/mode/haskell/index.html | 73 - .../editormd/lib/codemirror/mode/haxe/haxe.js | 518 - .../lib/codemirror/mode/haxe/index.html | 124 - .../mode/htmlembedded/htmlembedded.js | 86 - .../codemirror/mode/htmlembedded/index.html | 58 - .../codemirror/mode/htmlmixed/htmlmixed.js | 121 - .../lib/codemirror/mode/htmlmixed/index.html | 89 - .../editormd/lib/codemirror/mode/http/http.js | 113 - .../lib/codemirror/mode/http/index.html | 45 - .../editormd/lib/codemirror/mode/idl/idl.js | 290 - .../lib/codemirror/mode/idl/index.html | 64 - .../editormd/lib/codemirror/mode/index.html | 134 - .../lib/codemirror/mode/jade/index.html | 70 - .../editormd/lib/codemirror/mode/jade/jade.js | 590 -- .../lib/codemirror/mode/javascript/index.html | 114 - .../codemirror/mode/javascript/javascript.js | 692 -- .../codemirror/mode/javascript/json-ld.html | 72 - .../lib/codemirror/mode/javascript/test.js | 200 - .../mode/javascript/typescript.html | 61 - .../lib/codemirror/mode/jinja2/index.html | 54 - .../lib/codemirror/mode/jinja2/jinja2.js | 142 - .../lib/codemirror/mode/julia/index.html | 195 - .../lib/codemirror/mode/julia/julia.js | 301 - .../lib/codemirror/mode/kotlin/index.html | 89 - .../lib/codemirror/mode/kotlin/kotlin.js | 280 - .../lib/codemirror/mode/livescript/index.html | 459 - .../codemirror/mode/livescript/livescript.js | 280 - .../lib/codemirror/mode/lua/index.html | 85 - .../editormd/lib/codemirror/mode/lua/lua.js | 159 - .../lib/codemirror/mode/markdown/index.html | 359 - .../lib/codemirror/mode/markdown/markdown.js | 765 -- .../lib/codemirror/mode/markdown/test.js | 754 -- .../editormd/lib/codemirror/mode/meta.js | 177 - .../lib/codemirror/mode/mirc/index.html | 160 - .../editormd/lib/codemirror/mode/mirc/mirc.js | 193 - .../lib/codemirror/mode/mllike/index.html | 179 - .../lib/codemirror/mode/mllike/mllike.js | 205 - .../lib/codemirror/mode/modelica/index.html | 67 - .../lib/codemirror/mode/modelica/modelica.js | 245 - .../lib/codemirror/mode/nginx/index.html | 181 - .../lib/codemirror/mode/nginx/nginx.js | 178 - .../lib/codemirror/mode/ntriples/index.html | 45 - .../lib/codemirror/mode/ntriples/ntriples.js | 186 - .../lib/codemirror/mode/octave/index.html | 83 - .../lib/codemirror/mode/octave/octave.js | 135 - .../lib/codemirror/mode/pascal/index.html | 61 - .../lib/codemirror/mode/pascal/pascal.js | 109 - .../lib/codemirror/mode/pegjs/index.html | 66 - .../lib/codemirror/mode/pegjs/pegjs.js | 114 - .../lib/codemirror/mode/perl/index.html | 75 - .../editormd/lib/codemirror/mode/perl/perl.js | 837 -- .../lib/codemirror/mode/php/index.html | 64 - .../editormd/lib/codemirror/mode/php/php.js | 226 - .../editormd/lib/codemirror/mode/php/test.js | 154 - .../lib/codemirror/mode/pig/index.html | 55 - .../editormd/lib/codemirror/mode/pig/pig.js | 188 - .../lib/codemirror/mode/properties/index.html | 53 - .../codemirror/mode/properties/properties.js | 78 - .../lib/codemirror/mode/puppet/index.html | 121 - .../lib/codemirror/mode/puppet/puppet.js | 220 - .../lib/codemirror/mode/python/index.html | 198 - .../lib/codemirror/mode/python/python.js | 359 - .../editormd/lib/codemirror/mode/q/index.html | 144 - .../admin/editormd/lib/codemirror/mode/q/q.js | 139 - .../editormd/lib/codemirror/mode/r/index.html | 85 - .../admin/editormd/lib/codemirror/mode/r/r.js | 162 - .../codemirror/mode/rpm/changes/index.html | 66 - .../lib/codemirror/mode/rpm/index.html | 149 - .../editormd/lib/codemirror/mode/rpm/rpm.js | 101 - .../lib/codemirror/mode/rst/index.html | 535 - .../editormd/lib/codemirror/mode/rst/rst.js | 557 - .../lib/codemirror/mode/ruby/index.html | 183 - .../editormd/lib/codemirror/mode/ruby/ruby.js | 285 - .../editormd/lib/codemirror/mode/ruby/test.js | 14 - .../lib/codemirror/mode/rust/index.html | 60 - .../editormd/lib/codemirror/mode/rust/rust.js | 451 - .../lib/codemirror/mode/sass/index.html | 66 - .../editormd/lib/codemirror/mode/sass/sass.js | 414 - .../lib/codemirror/mode/scheme/index.html | 77 - .../lib/codemirror/mode/scheme/scheme.js | 248 - .../lib/codemirror/mode/shell/index.html | 66 - .../lib/codemirror/mode/shell/shell.js | 139 - .../lib/codemirror/mode/shell/test.js | 58 - .../lib/codemirror/mode/sieve/index.html | 93 - .../lib/codemirror/mode/sieve/sieve.js | 193 - .../lib/codemirror/mode/slim/index.html | 96 - .../editormd/lib/codemirror/mode/slim/slim.js | 575 - .../editormd/lib/codemirror/mode/slim/test.js | 96 - .../lib/codemirror/mode/smalltalk/index.html | 68 - .../codemirror/mode/smalltalk/smalltalk.js | 168 - .../lib/codemirror/mode/smarty/index.html | 136 - .../lib/codemirror/mode/smarty/smarty.js | 221 - .../codemirror/mode/smartymixed/index.html | 114 - .../mode/smartymixed/smartymixed.js | 197 - .../lib/codemirror/mode/solr/index.html | 57 - .../editormd/lib/codemirror/mode/solr/solr.js | 104 - .../lib/codemirror/mode/soy/index.html | 68 - .../editormd/lib/codemirror/mode/soy/soy.js | 198 - .../lib/codemirror/mode/sparql/index.html | 61 - .../lib/codemirror/mode/sparql/sparql.js | 174 - .../codemirror/mode/spreadsheet/index.html | 42 - .../mode/spreadsheet/spreadsheet.js | 109 - .../lib/codemirror/mode/sql/index.html | 84 - .../editormd/lib/codemirror/mode/sql/sql.js | 391 - .../lib/codemirror/mode/stex/index.html | 110 - .../editormd/lib/codemirror/mode/stex/stex.js | 251 - .../editormd/lib/codemirror/mode/stex/test.js | 123 - .../lib/codemirror/mode/stylus/index.html | 104 - .../lib/codemirror/mode/stylus/stylus.js | 444 - .../lib/codemirror/mode/tcl/index.html | 142 - .../editormd/lib/codemirror/mode/tcl/tcl.js | 147 - .../lib/codemirror/mode/textile/index.html | 191 - .../lib/codemirror/mode/textile/test.js | 417 - .../lib/codemirror/mode/textile/textile.js | 469 - .../lib/codemirror/mode/tiddlywiki/index.html | 154 - .../codemirror/mode/tiddlywiki/tiddlywiki.css | 14 - .../codemirror/mode/tiddlywiki/tiddlywiki.js | 369 - .../lib/codemirror/mode/tiki/index.html | 95 - .../lib/codemirror/mode/tiki/tiki.css | 26 - .../editormd/lib/codemirror/mode/tiki/tiki.js | 323 - .../lib/codemirror/mode/toml/index.html | 73 - .../editormd/lib/codemirror/mode/toml/toml.js | 88 - .../lib/codemirror/mode/tornado/index.html | 63 - .../lib/codemirror/mode/tornado/tornado.js | 68 - .../lib/codemirror/mode/turtle/index.html | 50 - .../lib/codemirror/mode/turtle/turtle.js | 162 - .../lib/codemirror/mode/vb/index.html | 102 - .../editormd/lib/codemirror/mode/vb/vb.js | 274 - .../lib/codemirror/mode/vbscript/index.html | 55 - .../lib/codemirror/mode/vbscript/vbscript.js | 350 - .../lib/codemirror/mode/velocity/index.html | 118 - .../lib/codemirror/mode/velocity/velocity.js | 201 - .../lib/codemirror/mode/verilog/index.html | 120 - .../lib/codemirror/mode/verilog/test.js | 273 - .../lib/codemirror/mode/verilog/verilog.js | 537 - .../lib/codemirror/mode/xml/index.html | 57 - .../editormd/lib/codemirror/mode/xml/test.js | 51 - .../editormd/lib/codemirror/mode/xml/xml.js | 384 - .../lib/codemirror/mode/xquery/index.html | 210 - .../lib/codemirror/mode/xquery/test.js | 67 - .../lib/codemirror/mode/xquery/xquery.js | 447 - .../lib/codemirror/mode/yaml/index.html | 80 - .../editormd/lib/codemirror/mode/yaml/yaml.js | 117 - .../lib/codemirror/mode/z80/index.html | 52 - .../editormd/lib/codemirror/mode/z80/z80.js | 100 - .../editormd/lib/codemirror/modes.min.js | 10 - .../editormd/lib/codemirror/package.json | 21 - .../lib/codemirror/theme/3024-day.css | 40 - .../lib/codemirror/theme/3024-night.css | 39 - .../lib/codemirror/theme/ambiance-mobile.css | 5 - .../lib/codemirror/theme/ambiance.css | 75 - .../lib/codemirror/theme/base16-dark.css | 38 - .../lib/codemirror/theme/base16-light.css | 38 - .../lib/codemirror/theme/blackboard.css | 32 - .../editormd/lib/codemirror/theme/cobalt.css | 25 - .../lib/codemirror/theme/colorforth.css | 33 - .../editormd/lib/codemirror/theme/eclipse.css | 23 - .../editormd/lib/codemirror/theme/elegant.css | 13 - .../lib/codemirror/theme/erlang-dark.css | 34 - .../lib/codemirror/theme/lesser-dark.css | 47 - .../editormd/lib/codemirror/theme/mbo.css | 37 - .../lib/codemirror/theme/mdn-like.css | 46 - .../lib/codemirror/theme/midnight.css | 47 - .../editormd/lib/codemirror/theme/monokai.css | 33 - .../editormd/lib/codemirror/theme/neat.css | 12 - .../editormd/lib/codemirror/theme/neo.css | 43 - .../editormd/lib/codemirror/theme/night.css | 28 - .../lib/codemirror/theme/paraiso-dark.css | 38 - .../lib/codemirror/theme/paraiso-light.css | 38 - .../lib/codemirror/theme/pastel-on-dark.css | 53 - .../lib/codemirror/theme/rubyblue.css | 25 - .../lib/codemirror/theme/solarized.css | 165 - .../lib/codemirror/theme/the-matrix.css | 30 - .../theme/tomorrow-night-bright.css | 35 - .../theme/tomorrow-night-eighties.css | 38 - .../lib/codemirror/theme/twilight.css | 32 - .../lib/codemirror/theme/vibrant-ink.css | 34 - .../editormd/lib/codemirror/theme/xq-dark.css | 53 - .../lib/codemirror/theme/xq-light.css | 43 - .../editormd/lib/codemirror/theme/zenburn.css | 37 - .../admin/editormd/lib/flowchart.min.js | 5 - .../editormd/lib/jquery.flowchart.min.js | 2 - .../static/admin/editormd/lib/marked.min.js | 9 - .../static/admin/editormd/lib/prettify.min.js | 15 - .../static/admin/editormd/lib/raphael.min.js | 11 - .../editormd/lib/sequence-diagram.min.js | 7 - .../admin/editormd/lib/underscore.min.js | 5 - .../static/admin/editormd/package.json | 42 - .../code-block-dialog/code-block-dialog.js | 237 - .../plugins/emoji-dialog/emoji-dialog.js | 327 - .../editormd/plugins/emoji-dialog/emoji.json | 28 - .../goto-line-dialog/goto-line-dialog.js | 157 - .../plugins/help-dialog/help-dialog.js | 102 - .../editormd/plugins/help-dialog/help.md | 77 - .../html-entities-dialog.js | 173 - .../html-entities-dialog/html-entities.json | 936 -- .../plugins/image-dialog/image-dialog.js | 221 - .../plugins/link-dialog/link-dialog.js | 133 - .../admin/editormd/plugins/plugin-template.js | 111 - .../preformatted-text-dialog.js | 172 - .../reference-link-dialog.js | 153 - .../plugins/table-dialog/table-dialog.js | 218 - .../plugins/test-plugin/test-plugin.js | 66 - .../editormd/scss/editormd.codemirror.scss | 90 - .../admin/editormd/scss/editormd.dialog.scss | 184 - .../admin/editormd/scss/editormd.form.scss | 130 - .../admin/editormd/scss/editormd.grid.scss | 36 - .../admin/editormd/scss/editormd.logo.scss | 89 - .../admin/editormd/scss/editormd.menu.scss | 113 - .../admin/editormd/scss/editormd.preview.scss | 322 - .../scss/editormd.preview.themes.scss | 131 - .../static/admin/editormd/scss/editormd.scss | 137 - .../admin/editormd/scss/editormd.tab.scss | 49 - .../admin/editormd/scss/editormd.themes.scss | 28 - .../admin/editormd/scss/font-awesome.scss | 1801 ---- .../admin/editormd/scss/github-markdown.scss | 665 -- .../admin/editormd/scss/lib/prefixes.scss | 784 -- .../admin/editormd/scss/lib/variables.scss | 11 - .../static/admin/editormd/scss/prettify.scss | 53 - .../static/admin/editormd/src/editormd.js | 4588 -------- target/classes/static/admin/images/attach.png | Bin 4160 -> 0 bytes target/classes/static/admin/images/bg/1.png | Bin 343815 -> 0 bytes target/classes/static/admin/images/bg/2.png | Bin 251042 -> 0 bytes target/classes/static/admin/images/bg/3.png | Bin 196742 -> 0 bytes target/classes/static/admin/images/bg/4.png | Bin 195297 -> 0 bytes target/classes/static/admin/images/bg/5.png | Bin 317360 -> 0 bytes .../classes/static/admin/images/favicon.png | Bin 34316 -> 0 bytes .../admin/images/icons/bg-adjust@2x.png | Bin 384 -> 0 bytes .../static/admin/images/icons/bg-apple@2x.png | Bin 977 -> 0 bytes .../admin/images/icons/bg-balance@2x.png | Bin 732 -> 0 bytes .../admin/images/icons/bg-beaker@2x.png | Bin 668 -> 0 bytes .../static/admin/images/icons/bg-beer@2x.png | Bin 1118 -> 0 bytes .../static/admin/images/icons/bg-books@2x.png | Bin 848 -> 0 bytes .../static/admin/images/icons/bg-box@2x.png | Bin 835 -> 0 bytes .../static/admin/images/icons/bg-cake@2x.png | Bin 718 -> 0 bytes .../admin/images/icons/bg-calcuLator@2x.png | 39 - .../admin/images/icons/bg-camera@2x.png | Bin 876 -> 0 bytes .../static/admin/images/icons/bg-cd@2x.png | Bin 724 -> 0 bytes .../admin/images/icons/bg-certified@2x.png | 39 - .../admin/images/icons/bg-champagne@2x.png | Bin 667 -> 0 bytes .../static/admin/images/icons/bg-chart@2x.png | Bin 578 -> 0 bytes .../static/admin/images/icons/bg-chat@2x.png | Bin 294 -> 0 bytes .../admin/images/icons/bg-cheese@2x.png | Bin 987 -> 0 bytes .../admin/images/icons/bg-commerce@2x.png | Bin 529 -> 0 bytes .../static/admin/images/icons/bg-court@2x.png | Bin 638 -> 0 bytes .../admin/images/icons/bg-delivery@2x.png | Bin 827 -> 0 bytes .../admin/images/icons/bg-document@2x.png | Bin 311 -> 0 bytes .../static/admin/images/icons/bg-dvd@2x.png | Bin 985 -> 0 bytes .../static/admin/images/icons/bg-eco@2x.png | Bin 1271 -> 0 bytes .../static/admin/images/icons/bg-film@2x.png | Bin 337 -> 0 bytes .../static/admin/images/icons/bg-grape@2x.png | Bin 872 -> 0 bytes .../static/admin/images/icons/bg-hot@2x.png | Bin 612 -> 0 bytes .../static/admin/images/icons/bg-house@2x.png | Bin 673 -> 0 bytes .../admin/images/icons/bg-icecream@2x.png | Bin 844 -> 0 bytes .../admin/images/icons/bg-illustration@2x.png | Bin 907 -> 0 bytes .../admin/images/icons/bg-joystick@2x.png | Bin 716 -> 0 bytes .../admin/images/icons/bg-keynote@2x.png | Bin 693 -> 0 bytes .../static/admin/images/icons/bg-like@2x.png | Bin 753 -> 0 bytes .../static/admin/images/icons/bg-link@2x.png | Bin 788 -> 0 bytes .../static/admin/images/icons/bg-magic@2x.png | Bin 663 -> 0 bytes .../static/admin/images/icons/bg-mail@2x.png | Bin 667 -> 0 bytes .../static/admin/images/icons/bg-map@2x.png | Bin 934 -> 0 bytes .../admin/images/icons/bg-mediation@2x.png | 39 - .../admin/images/icons/bg-microphone@2x.png | Bin 784 -> 0 bytes .../admin/images/icons/bg-network@2x.png | Bin 871 -> 0 bytes .../static/admin/images/icons/bg-notes@2x.png | Bin 386 -> 0 bytes .../admin/images/icons/bg-palette@2x.png | Bin 1242 -> 0 bytes .../static/admin/images/icons/bg-pig@2x.png | Bin 897 -> 0 bytes .../admin/images/icons/bg-plaster@2x.png | Bin 987 -> 0 bytes .../admin/images/icons/bg-player@2x.png | Bin 691 -> 0 bytes .../admin/images/icons/bg-polaroid@2x.png | Bin 858 -> 0 bytes .../admin/images/icons/bg-printer@2x.png | Bin 591 -> 0 bytes .../static/admin/images/icons/bg-pulse@2x.png | Bin 1168 -> 0 bytes .../static/admin/images/icons/bg-quote@2x.png | Bin 775 -> 0 bytes .../static/admin/images/icons/bg-radio@2x.png | Bin 566 -> 0 bytes .../admin/images/icons/bg-recorder@2x.png | Bin 865 -> 0 bytes .../admin/images/icons/bg-scissors@2x.png | Bin 849 -> 0 bytes .../admin/images/icons/bg-search@2x.png | Bin 1135 -> 0 bytes .../admin/images/icons/bg-select@2x.png | Bin 620 -> 0 bytes .../admin/images/icons/bg-serving@2x.png | Bin 823 -> 0 bytes .../static/admin/images/icons/bg-share@2x.png | Bin 639 -> 0 bytes .../static/admin/images/icons/bg-shop@2x.png | Bin 725 -> 0 bytes .../admin/images/icons/bg-shopping@2x.png | Bin 575 -> 0 bytes .../admin/images/icons/bg-smartphone@2x.png | Bin 520 -> 0 bytes .../admin/images/icons/bg-social@2x.png | Bin 448 -> 0 bytes .../static/admin/images/icons/bg-sofa@2x.png | Bin 1039 -> 0 bytes .../admin/images/icons/bg-syringe@2x.png | Bin 447 -> 0 bytes .../static/admin/images/icons/bg-tags@2x.png | Bin 621 -> 0 bytes .../static/admin/images/icons/bg-tape@2x.png | Bin 554 -> 0 bytes .../admin/images/icons/bg-target@2x.png | Bin 1221 -> 0 bytes .../static/admin/images/icons/bg-team@2x.png | Bin 922 -> 0 bytes .../admin/images/icons/bg-television@2x.png | Bin 777 -> 0 bytes .../static/admin/images/icons/bg-time@2x.png | Bin 842 -> 0 bytes .../admin/images/icons/bg-upload@2x.png | Bin 341 -> 0 bytes .../admin/images/icons/bg-vector@2x.png | Bin 677 -> 0 bytes .../static/admin/images/icons/bg-video@2x.png | Bin 747 -> 0 bytes .../admin/images/icons/bg-walkman@2x.png | Bin 881 -> 0 bytes .../admin/images/icons/bg-winner@2x.png | Bin 1111 -> 0 bytes .../static/admin/images/icons/bg-works@2x.png | Bin 1074 -> 0 bytes .../static/admin/images/icons/bg-zoom@2x.png | Bin 660 -> 0 bytes target/classes/static/admin/images/kyrie.png | Bin 34316 -> 0 bytes .../classes/static/admin/images/loading.gif | Bin 65292 -> 0 bytes target/classes/static/admin/images/logo.png | Bin 21142 -> 0 bytes .../classes/static/admin/images/small/bg.jpg | Bin 19790 -> 0 bytes target/classes/static/admin/js/article.js | 143 - target/classes/static/admin/js/base.js | 161 - target/classes/static/admin/js/install.js | 88 - target/classes/static/admin/js/jquery.app.js | 270 - .../jquery-multi-select/img/switch.png | Bin 3080 -> 0 bytes .../jquery-multi-select/jquery.quicksearch.js | 181 - .../jquery.steps/demo/css/jquery.steps.css | 328 - .../static/admin/plugins/md/css/style.css | 56 - .../static/admin/plugins/md/img/editor.png | Bin 7370 -> 0 bytes .../static/admin/plugins/md/js/diff.js | 1 - .../static/admin/plugins/md/js/jquery.js | 25 - .../admin/plugins/md/js/jquery.scrollto.js | 1 - .../classes/static/admin/plugins/md/js/md.js | 204 - .../admin/plugins/md/js/pagedown-extra.js | 1 - .../static/admin/plugins/md/js/pagedown.js | 1 - .../select2.dist.css/select2-bootstrap.css | 87 - .../select2.dist.css/select2-spinner.gif | Bin 1849 -> 0 bytes .../plugins/select2.dist.css/select2.css | 646 -- .../plugins/select2.dist.css/select2.png | Bin 613 -> 0 bytes .../plugins/select2.dist.css/select2x2.png | Bin 845 -> 0 bytes .../plugins/tagsinput/jquery.tagsinput.css | 67 - .../plugins/tagsinput/jquery.tagsinput.min.js | 1 - .../static/admin/plugins/toggles/toggles.css | 260 - target/classes/static/blog/css/main.css | 3189 ------ .../fancybox/2.1.5/jquery.fancybox.min.css | 1 - .../fancybox/2.1.5/jquery.fancybox.pack.js | 46 - .../blog/fastclick/1.0.6/fastclick.min.js | 23 - .../4.6.2/css/font-awesome.min.css | 4 - .../blog/font-awesome/4.6.2/fonts/.htaccess | 5 - .../font-awesome/4.6.2/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../4.6.2/fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../4.6.2/fonts/fontawesome-webfont.svg | 2671 ----- .../4.6.2/fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../4.6.2/fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../4.6.2/fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes target/classes/static/blog/image/1.png | Bin 40771 -> 0 bytes .../static/blog/image/algolia_logo.svg | 21 - target/classes/static/blog/image/avatar.png | Bin 7650 -> 0 bytes target/classes/static/blog/image/bg.png | Bin 3354 -> 0 bytes target/classes/static/blog/image/favicon.ico | Bin 34316 -> 0 bytes target/classes/static/blog/image/favicon1.ico | Bin 67646 -> 0 bytes target/classes/static/blog/image/kyrie.jpg | Bin 21844 -> 0 bytes .../static/blog/image/social/Wechat.jpg | Bin 91617 -> 0 bytes .../static/blog/image/social/icon-behance.png | Bin 9551 -> 0 bytes .../static/blog/image/social/icon-csdn.png | Bin 6473 -> 0 bytes .../blog/image/social/icon-dribbble.png | Bin 9440 -> 0 bytes .../static/blog/image/social/icon-email.png | Bin 8098 -> 0 bytes .../static/blog/image/social/icon-github.png | Bin 1771 -> 0 bytes .../blog/image/social/icon-instagram.png | Bin 17885 -> 0 bytes .../static/blog/image/social/icon-jianshu.png | Bin 1013 -> 0 bytes .../static/blog/image/social/icon-px.png | Bin 3303 -> 0 bytes .../static/blog/image/social/icon-resume.png | Bin 4832 -> 0 bytes .../static/blog/image/social/icon-twitter.png | Bin 4820 -> 0 bytes .../static/blog/image/social/icon-uicn.png | Bin 2047 -> 0 bytes .../static/blog/image/social/icon-weibo.png | Bin 2123 -> 0 bytes .../static/blog/image/social/icon-zhihu.png | Bin 771 -> 0 bytes .../static/blog/image/social/profile-1.png | Bin 19241 -> 0 bytes .../static/blog/image/social/profile.jpg | Bin 26512 -> 0 bytes .../1.9.3/jquery.lazyload.min.js | 2 - target/classes/static/blog/jquery/jquery.js | 9205 ----------------- .../classes/static/blog/jquery/jquery.min.js | 5 - .../classes/static/blog/js/schemes/pisces.js | 17 - target/classes/static/blog/js/src/affix.js | 162 - .../static/blog/js/src/algolia-search.js | 115 - .../classes/static/blog/js/src/bootstrap.js | 46 - target/classes/static/blog/js/src/motion.js | 291 - .../static/blog/js/src/post-details.js | 147 - .../classes/static/blog/js/src/scrollspy.js | 182 - target/classes/static/blog/js/src/utils.js | 230 - .../instantsearch.min.css | 1 - .../instantsearch.min.js | 15 - .../blog/velocity/1.2.3/velocity.min.js | 4 - .../blog/velocity/1.2.3/velocity.ui.min.js | 2 - target/classes/static/error/css/style.css | 1 - target/classes/static/error/fonts/icons-.eot | Bin 8870 -> 0 bytes ...icons-64c061773912345c985cb3365a710a98.eot | Bin 8870 -> 0 bytes ...icons-64c061773912345c985cb3365a710a98.ttf | Bin 8704 -> 0 bytes ...cons-64c061773912345c985cb3365a710a98.woff | Bin 5672 -> 0 bytes target/classes/static/error/img/icons.png | Bin 12206 -> 0 bytes target/classes/static/error/js/custom.js | 4 - target/classes/static/error/js/jki7owr.js | 43 - .../classes/templates/admin/article_edit.html | 200 - .../classes/templates/admin/article_list.html | 101 - target/classes/templates/admin/attach.html | 172 - target/classes/templates/admin/category.html | 156 - .../classes/templates/admin/comment_list.html | 118 - .../templates/admin/fragments/footer.html | 15 - .../templates/admin/fragments/header.html | 129 - target/classes/templates/admin/index.html | 117 - target/classes/templates/admin/links.html | 155 - target/classes/templates/admin/login.html | 118 - target/classes/templates/admin/profile.html | 149 - target/classes/templates/admin/setting.html | 277 - target/classes/templates/blog/about.html | 72 - target/classes/templates/blog/archives.html | 39 - target/classes/templates/blog/category.html | 45 - .../templates/blog/category_detail.html | 35 - target/classes/templates/blog/detail.html | 93 - .../templates/blog/fragments/footer.html | 26 - .../templates/blog/fragments/header.html | 82 - .../templates/blog/fragments/sidebar.html | 111 - target/classes/templates/blog/home.html | 82 - target/classes/templates/blog/layout.html | 169 - target/classes/templates/blog/tags.html | 41 - .../classes/templates/blog/tags_detail.html | 35 - target/classes/templates/comm/macros.html | 71 - target/classes/templates/comm/pagination.html | 35 - target/classes/templates/error/404.html | 73 - target/classes/templates/error/500.html | 73 - .../compile/default-compile/createdFiles.lst | 69 - .../compile/default-compile/inputFiles.lst | 61 - .../com/wip/MyBlogApplicationTests.class | Bin 610 -> 0 bytes 706 files changed, 28 insertions(+), 114139 deletions(-) create mode 100644 .gitignore delete mode 100644 target/classes/application-dev.yml delete mode 100644 target/classes/application-prod.yml delete mode 100644 target/classes/application.yml delete mode 100644 target/classes/com/wip/MyBlogApplication.class delete mode 100644 target/classes/com/wip/api/QiNiuCloudService.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Article.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Att.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Auth.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Comment.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Common.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Meta.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant$Option.class delete mode 100644 target/classes/com/wip/constant/ErrorConstant.class delete mode 100644 target/classes/com/wip/constant/LogActions.class delete mode 100644 target/classes/com/wip/constant/Types.class delete mode 100644 target/classes/com/wip/constant/WebConst.class delete mode 100644 target/classes/com/wip/controller/BaseController.class delete mode 100644 target/classes/com/wip/controller/HomeController.class delete mode 100644 target/classes/com/wip/controller/admin/ArticleController.class delete mode 100644 target/classes/com/wip/controller/admin/AttachController.class delete mode 100644 target/classes/com/wip/controller/admin/AuthController.class delete mode 100644 target/classes/com/wip/controller/admin/CategoryController.class delete mode 100644 target/classes/com/wip/controller/admin/CommentController.class delete mode 100644 target/classes/com/wip/controller/admin/IndexController.class delete mode 100644 target/classes/com/wip/controller/admin/LinksController.class delete mode 100644 target/classes/com/wip/controller/admin/SettingController.class delete mode 100644 target/classes/com/wip/dao/AttAchDao.class delete mode 100644 target/classes/com/wip/dao/CommentDao.class delete mode 100644 target/classes/com/wip/dao/ContentDao.class delete mode 100644 target/classes/com/wip/dao/LogDao.class delete mode 100644 target/classes/com/wip/dao/MetaDao.class delete mode 100644 target/classes/com/wip/dao/OptionDao.class delete mode 100644 target/classes/com/wip/dao/RelationShipDao.class delete mode 100644 target/classes/com/wip/dao/UserDao.class delete mode 100644 target/classes/com/wip/dto/AttAchDto.class delete mode 100644 target/classes/com/wip/dto/BaseDto.class delete mode 100644 target/classes/com/wip/dto/MetaDto.class delete mode 100644 target/classes/com/wip/dto/StatisticsDto.class delete mode 100644 target/classes/com/wip/dto/cond/CommentCond.class delete mode 100644 target/classes/com/wip/dto/cond/ContentCond.class delete mode 100644 target/classes/com/wip/dto/cond/MetaCond.class delete mode 100644 target/classes/com/wip/exception/BusinessException.class delete mode 100644 target/classes/com/wip/interceptor/BaseInterceptor.class delete mode 100644 target/classes/com/wip/interceptor/WebMvcConfig.class delete mode 100644 target/classes/com/wip/model/AttAchDomain.class delete mode 100644 target/classes/com/wip/model/CommentDomain.class delete mode 100644 target/classes/com/wip/model/ContentDomain.class delete mode 100644 target/classes/com/wip/model/LogDomain.class delete mode 100644 target/classes/com/wip/model/MetaDomain.class delete mode 100644 target/classes/com/wip/model/OptionsDomain.class delete mode 100644 target/classes/com/wip/model/RelationShipDomain.class delete mode 100644 target/classes/com/wip/model/UserDomain.class delete mode 100644 target/classes/com/wip/service/article/ContentService.class delete mode 100644 target/classes/com/wip/service/article/impl/ContentServiceImpl.class delete mode 100644 target/classes/com/wip/service/attach/AttAchService.class delete mode 100644 target/classes/com/wip/service/attach/impl/AttAchServiceImpl.class delete mode 100644 target/classes/com/wip/service/comment/CommentService.class delete mode 100644 target/classes/com/wip/service/comment/impl/CommentServiceImpl.class delete mode 100644 target/classes/com/wip/service/log/LogService.class delete mode 100644 target/classes/com/wip/service/log/impl/LogServiceImpl.class delete mode 100644 target/classes/com/wip/service/meta/MetaService.class delete mode 100644 target/classes/com/wip/service/meta/impl/MetaServiceImpl.class delete mode 100644 target/classes/com/wip/service/option/OptionService.class delete mode 100644 target/classes/com/wip/service/option/impl/OptionServiceImpl.class delete mode 100644 target/classes/com/wip/service/site/SiteService.class delete mode 100644 target/classes/com/wip/service/site/impl/SiteServiceImpl.class delete mode 100644 target/classes/com/wip/service/user/UserService.class delete mode 100644 target/classes/com/wip/service/user/impl/UserServiceImpl.class delete mode 100644 target/classes/com/wip/utils/APIResponse.class delete mode 100644 target/classes/com/wip/utils/AdminCommons.class delete mode 100644 target/classes/com/wip/utils/Commons.class delete mode 100644 target/classes/com/wip/utils/DateKit.class delete mode 100644 target/classes/com/wip/utils/GsonUtils.class delete mode 100644 target/classes/com/wip/utils/IPKit.class delete mode 100644 target/classes/com/wip/utils/MapCache$CacheObject.class delete mode 100644 target/classes/com/wip/utils/MapCache.class delete mode 100644 target/classes/com/wip/utils/TaleUtils.class delete mode 100644 target/classes/com/wip/utils/Tools.class delete mode 100644 target/classes/com/wip/utils/UUID.class delete mode 100644 target/classes/mapper/AttAchMapper.xml delete mode 100644 target/classes/mapper/CommentMapper.xml delete mode 100644 target/classes/mapper/ContentMapper.xml delete mode 100644 target/classes/mapper/LogMapper.xml delete mode 100644 target/classes/mapper/MetaMapper.xml delete mode 100644 target/classes/mapper/OptionMapper.xml delete mode 100644 target/classes/mapper/RelationShipMapper.xml delete mode 100644 target/classes/mapper/UserMapper.xml delete mode 100644 target/classes/static/admin/css/contact.css delete mode 100644 target/classes/static/admin/css/flexslider.css delete mode 100644 target/classes/static/admin/css/reset.css delete mode 100644 target/classes/static/admin/css/responsive.css delete mode 100644 target/classes/static/admin/css/style.min.css delete mode 100644 target/classes/static/admin/css/styles.css delete mode 100644 target/classes/static/admin/editormd/.jshintrc delete mode 100644 target/classes/static/admin/editormd/BUGS.md delete mode 100644 target/classes/static/admin/editormd/CHANGE.md delete mode 100644 target/classes/static/admin/editormd/Gulpfile.js delete mode 100644 target/classes/static/admin/editormd/LICENSE delete mode 100644 target/classes/static/admin/editormd/README.md delete mode 100644 target/classes/static/admin/editormd/bower.json delete mode 100644 target/classes/static/admin/editormd/css/editormd.css delete mode 100644 target/classes/static/admin/editormd/css/editormd.logo.css delete mode 100644 target/classes/static/admin/editormd/css/editormd.logo.min.css delete mode 100644 target/classes/static/admin/editormd/css/editormd.min.css delete mode 100644 target/classes/static/admin/editormd/css/editormd.preview.css delete mode 100644 target/classes/static/admin/editormd/css/editormd.preview.min.css delete mode 100644 target/classes/static/admin/editormd/editormd.amd.js delete mode 100644 target/classes/static/admin/editormd/editormd.amd.min.js delete mode 100644 target/classes/static/admin/editormd/editormd.js delete mode 100644 target/classes/static/admin/editormd/editormd.min.js delete mode 100644 target/classes/static/admin/editormd/fonts/FontAwesome.otf delete mode 100644 target/classes/static/admin/editormd/fonts/editormd-logo.eot delete mode 100644 target/classes/static/admin/editormd/fonts/editormd-logo.svg delete mode 100644 target/classes/static/admin/editormd/fonts/editormd-logo.ttf delete mode 100644 target/classes/static/admin/editormd/fonts/editormd-logo.woff delete mode 100644 target/classes/static/admin/editormd/fonts/fontawesome-webfont.eot delete mode 100644 target/classes/static/admin/editormd/fonts/fontawesome-webfont.svg delete mode 100644 target/classes/static/admin/editormd/fonts/fontawesome-webfont.ttf delete mode 100644 target/classes/static/admin/editormd/fonts/fontawesome-webfont.woff delete mode 100644 target/classes/static/admin/editormd/fonts/fontawesome-webfont.woff2 delete mode 100644 target/classes/static/admin/editormd/images/loading.gif delete mode 100644 target/classes/static/admin/editormd/images/loading@2x.gif delete mode 100644 target/classes/static/admin/editormd/images/loading@3x.gif delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-favicon-16x16.ico delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-favicon-24x24.ico delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-favicon-32x32.ico delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-favicon-48x48.ico delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-favicon-64x64.ico delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-114x114.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-120x120.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-144x144.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-16x16.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-180x180.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-240x240.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-24x24.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-320x320.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-32x32.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-48x48.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-57x57.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-64x64.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-72x72.png delete mode 100644 target/classes/static/admin/editormd/images/logos/editormd-logo-96x96.png delete mode 100644 target/classes/static/admin/editormd/images/logos/vi.png delete mode 100644 target/classes/static/admin/editormd/languages/en.js delete mode 100644 target/classes/static/admin/editormd/languages/zh-tw.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/AUTHORS delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/LICENSE delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/README.md delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/comment/comment.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/comment/continuecomment.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/dialog/dialog.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/dialog/dialog.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/display/fullscreen.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/display/fullscreen.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/display/panel.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/display/placeholder.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/display/rulers.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/edit/closebrackets.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/edit/closetag.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/edit/continuelist.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/edit/matchbrackets.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/edit/matchtags.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/edit/trailingspace.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/brace-fold.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/comment-fold.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/foldcode.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/foldgutter.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/foldgutter.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/indent-fold.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/markdown-fold.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/fold/xml-fold.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/anyword-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/css-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/html-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/javascript-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/show-hint.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/show-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/sql-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/hint/xml-hint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/coffeescript-lint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/css-lint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/javascript-lint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/json-lint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/lint.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/lint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/lint/yaml-lint.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/merge/merge.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/merge/merge.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/mode/loadmode.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/mode/multiplex.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/mode/multiplex_test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/mode/overlay.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/mode/simple.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/runmode/colorize.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/runmode/runmode-standalone.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/runmode/runmode.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/runmode/runmode.node.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/scroll/annotatescrollbar.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/scroll/scrollpastend.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/scroll/simplescrollbars.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/scroll/simplescrollbars.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/search/match-highlighter.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/search/matchesonscrollbar.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/search/matchesonscrollbar.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/search/search.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/search/searchcursor.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/selection/active-line.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/selection/mark-selection.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/selection/selection-pointer.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/tern/tern.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/tern/tern.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/tern/worker.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addon/wrap/hardwrap.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/addons.min.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/bower.json delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/codemirror.min.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/codemirror.min.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/lib/codemirror.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/lib/codemirror.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/apl/apl.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/apl/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/asterisk/asterisk.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/asterisk/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/clike/clike.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/clike/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/clike/scala.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/clojure/clojure.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/clojure/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/cobol/cobol.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/cobol/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/coffeescript/coffeescript.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/coffeescript/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/commonlisp/commonlisp.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/commonlisp/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/css.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/less.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/less_test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/scss.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/scss_test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/css/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/cypher/cypher.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/cypher/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/d/d.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/d/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dart/dart.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dart/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/diff/diff.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/diff/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/django/django.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/django/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dockerfile/dockerfile.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dockerfile/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dtd/dtd.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dtd/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dylan/dylan.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/dylan/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ebnf/ebnf.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ebnf/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ecl/ecl.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ecl/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/eiffel/eiffel.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/eiffel/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/erlang/erlang.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/erlang/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/forth/forth.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/forth/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/fortran/fortran.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/fortran/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gas/gas.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gas/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gfm/gfm.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gfm/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gfm/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gherkin/gherkin.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/gherkin/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/go/go.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/go/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/groovy/groovy.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/groovy/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haml/haml.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haml/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haml/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haskell/haskell.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haskell/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haxe/haxe.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/haxe/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/htmlembedded/htmlembedded.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/htmlembedded/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/htmlmixed/htmlmixed.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/htmlmixed/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/http/http.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/http/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/idl/idl.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/idl/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/jade/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/jade/jade.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/javascript/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/javascript/javascript.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/javascript/json-ld.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/javascript/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/javascript/typescript.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/jinja2/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/jinja2/jinja2.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/julia/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/julia/julia.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/kotlin/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/kotlin/kotlin.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/livescript/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/livescript/livescript.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/lua/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/lua/lua.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/markdown/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/markdown/markdown.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/markdown/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/meta.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/mirc/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/mirc/mirc.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/mllike/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/mllike/mllike.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/modelica/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/modelica/modelica.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/nginx/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/nginx/nginx.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ntriples/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ntriples/ntriples.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/octave/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/octave/octave.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/pascal/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/pascal/pascal.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/pegjs/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/pegjs/pegjs.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/perl/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/perl/perl.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/php/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/php/php.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/php/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/pig/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/pig/pig.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/properties/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/properties/properties.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/puppet/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/puppet/puppet.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/python/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/python/python.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/q/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/q/q.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/r/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/r/r.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rpm/changes/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rpm/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rpm/rpm.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rst/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rst/rst.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ruby/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ruby/ruby.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/ruby/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rust/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/rust/rust.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sass/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sass/sass.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/scheme/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/scheme/scheme.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/shell/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/shell/shell.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/shell/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sieve/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sieve/sieve.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/slim/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/slim/slim.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/slim/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/smalltalk/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/smalltalk/smalltalk.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/smarty/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/smarty/smarty.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/smartymixed/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/smartymixed/smartymixed.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/solr/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/solr/solr.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/soy/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/soy/soy.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sparql/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sparql/sparql.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/spreadsheet/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/spreadsheet/spreadsheet.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sql/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/sql/sql.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/stex/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/stex/stex.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/stex/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/stylus/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/stylus/stylus.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tcl/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tcl/tcl.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/textile/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/textile/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/textile/textile.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tiddlywiki/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tiddlywiki/tiddlywiki.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tiddlywiki/tiddlywiki.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tiki/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tiki/tiki.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tiki/tiki.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/toml/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/toml/toml.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tornado/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/tornado/tornado.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/turtle/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/turtle/turtle.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/vb/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/vb/vb.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/vbscript/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/vbscript/vbscript.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/velocity/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/velocity/velocity.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/verilog/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/verilog/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/verilog/verilog.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/xml/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/xml/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/xml/xml.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/xquery/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/xquery/test.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/xquery/xquery.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/yaml/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/yaml/yaml.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/z80/index.html delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/mode/z80/z80.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/modes.min.js delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/package.json delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/3024-day.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/3024-night.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/ambiance-mobile.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/ambiance.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/base16-dark.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/base16-light.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/blackboard.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/cobalt.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/colorforth.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/eclipse.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/elegant.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/erlang-dark.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/lesser-dark.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/mbo.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/mdn-like.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/midnight.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/monokai.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/neat.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/neo.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/night.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/paraiso-dark.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/paraiso-light.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/pastel-on-dark.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/rubyblue.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/solarized.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/the-matrix.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/tomorrow-night-bright.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/tomorrow-night-eighties.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/twilight.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/vibrant-ink.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/xq-dark.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/xq-light.css delete mode 100644 target/classes/static/admin/editormd/lib/codemirror/theme/zenburn.css delete mode 100644 target/classes/static/admin/editormd/lib/flowchart.min.js delete mode 100644 target/classes/static/admin/editormd/lib/jquery.flowchart.min.js delete mode 100644 target/classes/static/admin/editormd/lib/marked.min.js delete mode 100644 target/classes/static/admin/editormd/lib/prettify.min.js delete mode 100644 target/classes/static/admin/editormd/lib/raphael.min.js delete mode 100644 target/classes/static/admin/editormd/lib/sequence-diagram.min.js delete mode 100644 target/classes/static/admin/editormd/lib/underscore.min.js delete mode 100644 target/classes/static/admin/editormd/package.json delete mode 100644 target/classes/static/admin/editormd/plugins/code-block-dialog/code-block-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/emoji-dialog/emoji-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/emoji-dialog/emoji.json delete mode 100644 target/classes/static/admin/editormd/plugins/goto-line-dialog/goto-line-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/help-dialog/help-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/help-dialog/help.md delete mode 100644 target/classes/static/admin/editormd/plugins/html-entities-dialog/html-entities-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/html-entities-dialog/html-entities.json delete mode 100644 target/classes/static/admin/editormd/plugins/image-dialog/image-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/link-dialog/link-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/plugin-template.js delete mode 100644 target/classes/static/admin/editormd/plugins/preformatted-text-dialog/preformatted-text-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/reference-link-dialog/reference-link-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/table-dialog/table-dialog.js delete mode 100644 target/classes/static/admin/editormd/plugins/test-plugin/test-plugin.js delete mode 100644 target/classes/static/admin/editormd/scss/editormd.codemirror.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.dialog.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.form.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.grid.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.logo.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.menu.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.preview.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.preview.themes.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.tab.scss delete mode 100644 target/classes/static/admin/editormd/scss/editormd.themes.scss delete mode 100644 target/classes/static/admin/editormd/scss/font-awesome.scss delete mode 100644 target/classes/static/admin/editormd/scss/github-markdown.scss delete mode 100644 target/classes/static/admin/editormd/scss/lib/prefixes.scss delete mode 100644 target/classes/static/admin/editormd/scss/lib/variables.scss delete mode 100644 target/classes/static/admin/editormd/scss/prettify.scss delete mode 100644 target/classes/static/admin/editormd/src/editormd.js delete mode 100644 target/classes/static/admin/images/attach.png delete mode 100644 target/classes/static/admin/images/bg/1.png delete mode 100644 target/classes/static/admin/images/bg/2.png delete mode 100644 target/classes/static/admin/images/bg/3.png delete mode 100644 target/classes/static/admin/images/bg/4.png delete mode 100644 target/classes/static/admin/images/bg/5.png delete mode 100644 target/classes/static/admin/images/favicon.png delete mode 100644 target/classes/static/admin/images/icons/bg-adjust@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-apple@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-balance@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-beaker@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-beer@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-books@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-box@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-cake@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-calcuLator@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-camera@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-cd@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-certified@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-champagne@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-chart@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-chat@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-cheese@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-commerce@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-court@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-delivery@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-document@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-dvd@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-eco@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-film@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-grape@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-hot@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-house@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-icecream@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-illustration@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-joystick@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-keynote@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-like@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-link@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-magic@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-mail@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-map@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-mediation@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-microphone@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-network@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-notes@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-palette@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-pig@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-plaster@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-player@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-polaroid@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-printer@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-pulse@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-quote@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-radio@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-recorder@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-scissors@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-search@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-select@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-serving@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-share@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-shop@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-shopping@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-smartphone@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-social@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-sofa@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-syringe@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-tags@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-tape@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-target@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-team@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-television@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-time@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-upload@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-vector@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-video@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-walkman@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-winner@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-works@2x.png delete mode 100644 target/classes/static/admin/images/icons/bg-zoom@2x.png delete mode 100644 target/classes/static/admin/images/kyrie.png delete mode 100644 target/classes/static/admin/images/loading.gif delete mode 100644 target/classes/static/admin/images/logo.png delete mode 100644 target/classes/static/admin/images/small/bg.jpg delete mode 100644 target/classes/static/admin/js/article.js delete mode 100644 target/classes/static/admin/js/base.js delete mode 100644 target/classes/static/admin/js/install.js delete mode 100644 target/classes/static/admin/js/jquery.app.js delete mode 100644 target/classes/static/admin/plugins/jquery-multi-select/img/switch.png delete mode 100644 target/classes/static/admin/plugins/jquery-multi-select/jquery.quicksearch.js delete mode 100644 target/classes/static/admin/plugins/jquery.steps/demo/css/jquery.steps.css delete mode 100644 target/classes/static/admin/plugins/md/css/style.css delete mode 100644 target/classes/static/admin/plugins/md/img/editor.png delete mode 100644 target/classes/static/admin/plugins/md/js/diff.js delete mode 100644 target/classes/static/admin/plugins/md/js/jquery.js delete mode 100644 target/classes/static/admin/plugins/md/js/jquery.scrollto.js delete mode 100644 target/classes/static/admin/plugins/md/js/md.js delete mode 100644 target/classes/static/admin/plugins/md/js/pagedown-extra.js delete mode 100644 target/classes/static/admin/plugins/md/js/pagedown.js delete mode 100644 target/classes/static/admin/plugins/select2.dist.css/select2-bootstrap.css delete mode 100644 target/classes/static/admin/plugins/select2.dist.css/select2-spinner.gif delete mode 100644 target/classes/static/admin/plugins/select2.dist.css/select2.css delete mode 100644 target/classes/static/admin/plugins/select2.dist.css/select2.png delete mode 100644 target/classes/static/admin/plugins/select2.dist.css/select2x2.png delete mode 100644 target/classes/static/admin/plugins/tagsinput/jquery.tagsinput.css delete mode 100644 target/classes/static/admin/plugins/tagsinput/jquery.tagsinput.min.js delete mode 100644 target/classes/static/admin/plugins/toggles/toggles.css delete mode 100644 target/classes/static/blog/css/main.css delete mode 100644 target/classes/static/blog/fancybox/2.1.5/jquery.fancybox.min.css delete mode 100644 target/classes/static/blog/fancybox/2.1.5/jquery.fancybox.pack.js delete mode 100644 target/classes/static/blog/fastclick/1.0.6/fastclick.min.js delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/css/font-awesome.min.css delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/.htaccess delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/FontAwesome.otf delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/fontawesome-webfont.eot delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/fontawesome-webfont.svg delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/fontawesome-webfont.ttf delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/fontawesome-webfont.woff delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/fontawesome-webfont.woff2 delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/glyphicons-halflings-regular.eot delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/glyphicons-halflings-regular.svg delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/glyphicons-halflings-regular.ttf delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/glyphicons-halflings-regular.woff delete mode 100644 target/classes/static/blog/font-awesome/4.6.2/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 target/classes/static/blog/image/1.png delete mode 100644 target/classes/static/blog/image/algolia_logo.svg delete mode 100644 target/classes/static/blog/image/avatar.png delete mode 100644 target/classes/static/blog/image/bg.png delete mode 100644 target/classes/static/blog/image/favicon.ico delete mode 100644 target/classes/static/blog/image/favicon1.ico delete mode 100644 target/classes/static/blog/image/kyrie.jpg delete mode 100644 target/classes/static/blog/image/social/Wechat.jpg delete mode 100644 target/classes/static/blog/image/social/icon-behance.png delete mode 100644 target/classes/static/blog/image/social/icon-csdn.png delete mode 100644 target/classes/static/blog/image/social/icon-dribbble.png delete mode 100644 target/classes/static/blog/image/social/icon-email.png delete mode 100644 target/classes/static/blog/image/social/icon-github.png delete mode 100644 target/classes/static/blog/image/social/icon-instagram.png delete mode 100644 target/classes/static/blog/image/social/icon-jianshu.png delete mode 100644 target/classes/static/blog/image/social/icon-px.png delete mode 100644 target/classes/static/blog/image/social/icon-resume.png delete mode 100644 target/classes/static/blog/image/social/icon-twitter.png delete mode 100644 target/classes/static/blog/image/social/icon-uicn.png delete mode 100644 target/classes/static/blog/image/social/icon-weibo.png delete mode 100644 target/classes/static/blog/image/social/icon-zhihu.png delete mode 100644 target/classes/static/blog/image/social/profile-1.png delete mode 100644 target/classes/static/blog/image/social/profile.jpg delete mode 100644 target/classes/static/blog/jquery.lazyload/1.9.3/jquery.lazyload.min.js delete mode 100644 target/classes/static/blog/jquery/jquery.js delete mode 100644 target/classes/static/blog/jquery/jquery.min.js delete mode 100644 target/classes/static/blog/js/schemes/pisces.js delete mode 100644 target/classes/static/blog/js/src/affix.js delete mode 100644 target/classes/static/blog/js/src/algolia-search.js delete mode 100644 target/classes/static/blog/js/src/bootstrap.js delete mode 100644 target/classes/static/blog/js/src/motion.js delete mode 100644 target/classes/static/blog/js/src/post-details.js delete mode 100644 target/classes/static/blog/js/src/scrollspy.js delete mode 100644 target/classes/static/blog/js/src/utils.js delete mode 100644 target/classes/static/blog/lib/algolia-instant-search/instantsearch.min.css delete mode 100644 target/classes/static/blog/lib/algolia-instant-search/instantsearch.min.js delete mode 100644 target/classes/static/blog/velocity/1.2.3/velocity.min.js delete mode 100644 target/classes/static/blog/velocity/1.2.3/velocity.ui.min.js delete mode 100644 target/classes/static/error/css/style.css delete mode 100644 target/classes/static/error/fonts/icons-.eot delete mode 100644 target/classes/static/error/fonts/icons-64c061773912345c985cb3365a710a98.eot delete mode 100644 target/classes/static/error/fonts/icons-64c061773912345c985cb3365a710a98.ttf delete mode 100644 target/classes/static/error/fonts/icons-64c061773912345c985cb3365a710a98.woff delete mode 100644 target/classes/static/error/img/icons.png delete mode 100644 target/classes/static/error/js/custom.js delete mode 100644 target/classes/static/error/js/jki7owr.js delete mode 100644 target/classes/templates/admin/article_edit.html delete mode 100644 target/classes/templates/admin/article_list.html delete mode 100644 target/classes/templates/admin/attach.html delete mode 100644 target/classes/templates/admin/category.html delete mode 100644 target/classes/templates/admin/comment_list.html delete mode 100644 target/classes/templates/admin/fragments/footer.html delete mode 100644 target/classes/templates/admin/fragments/header.html delete mode 100644 target/classes/templates/admin/index.html delete mode 100644 target/classes/templates/admin/links.html delete mode 100644 target/classes/templates/admin/login.html delete mode 100644 target/classes/templates/admin/profile.html delete mode 100644 target/classes/templates/admin/setting.html delete mode 100644 target/classes/templates/blog/about.html delete mode 100644 target/classes/templates/blog/archives.html delete mode 100644 target/classes/templates/blog/category.html delete mode 100644 target/classes/templates/blog/category_detail.html delete mode 100644 target/classes/templates/blog/detail.html delete mode 100644 target/classes/templates/blog/fragments/footer.html delete mode 100644 target/classes/templates/blog/fragments/header.html delete mode 100644 target/classes/templates/blog/fragments/sidebar.html delete mode 100644 target/classes/templates/blog/home.html delete mode 100644 target/classes/templates/blog/layout.html delete mode 100644 target/classes/templates/blog/tags.html delete mode 100644 target/classes/templates/blog/tags_detail.html delete mode 100644 target/classes/templates/comm/macros.html delete mode 100644 target/classes/templates/comm/pagination.html delete mode 100644 target/classes/templates/error/404.html delete mode 100644 target/classes/templates/error/500.html delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 target/test-classes/com/wip/MyBlogApplicationTests.class diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aafc0a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +.mvn +mvnw +mvnw.cmd + +### NetBeans ### +/nbproject/private/ +/build/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml deleted file mode 100644 index 0411d79..0000000 --- a/target/classes/application-dev.yml +++ /dev/null @@ -1,69 +0,0 @@ -server: - port: 8888 -spring: - datasource: - name: mysql_test - type: com.alibaba.druid.pool.DruidDataSource - #druid相关配置 - druid: - #监控统计拦截的filters - filters: stat - driver-class-name: com.mysql.jdbc.Driver - #基本属性 - url: jdbc:mysql://127.0.0.1:3306/lu_tale?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=true - username: root - password: root - #配置初始化大小/最小/最大 - initial-size: 1 - min-idle: 1 - max-active: 20 - #获取连接等待超时时间 - max-wait: 60000 - #间隔多久进行一次检测,检测需要关闭的空闲连接 - time-between-eviction-runs-millis: 60000 - #一个连接在池中最小生存的时间 - min-evictable-idle-time-millis: 300000 - validation-query: SELECT 'x' - test-while-idle: true - test-on-borrow: false - test-on-return: false - #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false - pool-prepared-statements: false - max-pool-prepared-statement-per-connection-size: 20 - thymeleaf: - prefix: classpath:/templates/ - check-template-location: true - suffix: .html - encoding: utf-8 - cache: false - - aop: - auto: true - proxy-target-class: true - - servlet: - multipart: - max-file-size: 10Mb - max-request-size: 100Mb - - - -logging: - level: - com.wip.dao: DEBUG - - - -mybatis: - mapper-locations: classpath:mapper/*.xml - type-aliases-package: com.wip.model - -swagger: - show: true -#分页 -pagehelper: - helper-dialect: mysql - reasonable: true - support-methods-arguments: true - params: count=countSql - retrunPageInfo: check diff --git a/target/classes/application-prod.yml b/target/classes/application-prod.yml deleted file mode 100644 index e69de29..0000000 diff --git a/target/classes/application.yml b/target/classes/application.yml deleted file mode 100644 index caf4dfc..0000000 --- a/target/classes/application.yml +++ /dev/null @@ -1,3 +0,0 @@ -spring: - profiles: - active: dev \ No newline at end of file diff --git a/target/classes/com/wip/MyBlogApplication.class b/target/classes/com/wip/MyBlogApplication.class deleted file mode 100644 index 6e2709fa360571aede3eddfa57410c206f0accfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmZ`%O;6iE5Pci+Rg)4LN?J-w)mz9Rd#QQ}LIR|oOe-~2df>D+i&<*#TI)5GpVbqH zLw`VjRMlB0f>aGY%xK=szIprBzyI9*0`MMh1Jv=Ng_i-g@T!GvhUT8q%I!0(40fjs z^&@jC8M>j;@>7{b(tZ_DN=Pp>u}G)FDqqjRx;s||!*&>(j9;moA73A)COOFSRK>z6 zqsK&<38fkOgOl(=Tne5Fo$!gXN+;uLrLYN+Y%FOr1QS!*SbkJqL;pYek!NJs`ci7A zGC5U+B6SB^8&|C--u=+ngcrHrcV7RdQrRj*L!)>7aooiG0+g7G8Jo20IMv4-S2f zE@bQ&hL6gh30@FOk7!G>Ivy-IJ>wZKad&sAGh~R9KO8@r8{?mQVF$s!J;poK=x6d@ z4RmibDYmHMlo{p5@CNK>)oxStZD18oD0XH82&e`j9Xut(AO2900qtIGc#D;959b5w i0BbbWUEpXF(j~lx^(sC?k8+Rd4a(1nb@K$QK>sh2zsaEh diff --git a/target/classes/com/wip/api/QiNiuCloudService.class b/target/classes/com/wip/api/QiNiuCloudService.class deleted file mode 100644 index 890fbb4d1c866adf0dc472b8ff8369914f31e005..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2775 zcmb7G+fx%~6#sodvPlS{5u{ixYQ2EBRj_D-)k27JNw_Vbp{;ZYOIS&=VY30GH(PtL zH)lHSbo$ciqp!B(fUPr~KKI}0Q(tO-yGckgNju}q?)RPVob&z8Ilpsu|NQ5--vL~} z10N0|Dq+lraZLD7he-)jKDeMrnD$`CgIOPL;HC#L`#sl)H}Ix?{+5JWJ~Sih!#v)W zpxT=SFXCAAA^^>YB_!Eap-@;+=10RZfk5Q8x~9rW zHJy+Z%hc0}K7po?kp5*Q`K8$XKL{=7^rw#&W3z&74*jl9U7@MqEwKs-|x53&I9# zSx`o0~1umo6KiEzIX60 zQ{=~cc;Al?a95zkhLtdkL{gIzSrY0xA55AbAL1i{W7WB+!BIc%;bRG(`0*(|^WzFS zB;5Dob9~{)m*}X-5gk_Z){nE0{rJkha<4OCD!J>&*LG!gmxj;y!fh?iE`oskoDE&! zCqKk^Ybnqjq6xH>q!oQkW|mG05zQHCQp>f;S2ssMXIB|_%T&nT{hj}DWDmfj<%c!- z*JrD_~>FZV~v z_Kj%A%VqncwBaiH=9=_%@BPf)*&hUincVyCy^9uvWafG6O60$w_h)1YrAZZx^Z_=azL|2=<=>S2dFi&j2gK_f1r1wpi-kNLe! ztt$-oDqh0?6ohaKgU}JCr)yZnb!=dW9!KaiO0T2%78CS3h9CHU_ai2q^ldVMr)kT< z$Qmj*fO9y{x^3|GZpu9LbOb&8J(OtYB8pzFm{el9#J9bA)u~`3z9Y6iROp_Of_#L>4*Xf}PYv`xUP1GP7*E0f^B!nakN(f81<}9xB2_a$V85!iQdCWrz U!;aG55CalMY+{VkYaJs00yDJTPXGV_ diff --git a/target/classes/com/wip/constant/ErrorConstant$Article.class b/target/classes/com/wip/constant/ErrorConstant$Article.class deleted file mode 100644 index f6c00ae8678ba20a37f1651d8cc457cdc078abc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmaKqOH1oO6vxk~w~6)rem@bHX5;RzLOMzyH<5O(;wr=tq*7B!qkaJKRs_L~FWeN- zg@_jg@lo-*zn{az_DhJTKGPy@X6E<*&pBt#aQ;7K{{g@#406!QK?i}R-xCp$QC*BO zSyHGzCdvwdMrF=eGK7R-&k8ZuiQBV33DihQJLMX-J82{qEgm`vG>egluF|QZa2~qQ ziBN?G^3rHji}KJ-pn=H@3&}B^X_~HR>NpQQ_>fmw5>;K*m`;C9uxTE83A9L>%Bafp z5~~km-mRi!{RG0Xi>zNYK zTg&A44ok#W^fT%F!EWw8o!`1A&>j>Yt~YWkcMsRu$K&jW<^5Up{@#3To$mNsXSvJO zLbkn4Z|#ym@AsXD2oNa4Il&2ma;QN1fm8+|WG=uwa%F(S$W;NZMy?5PEplCe>yaA* W-1t(Z>1Az(cHF~Q8%F@zLY2>gTiGiB diff --git a/target/classes/com/wip/constant/ErrorConstant$Att.class b/target/classes/com/wip/constant/ErrorConstant$Att.class deleted file mode 100644 index 113ed76b1d417f189288809fbb2bb25e78ad1ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmX^0Z`VEs1_l!bNp=PSb_QWa1_4JGmv}$d@Oa0Nka#yoPaj4GA)lwKmgs?8z|J7S$e@&*pQ~S< zS)iW`wO=1ap^9Tk2_pkDnB?)y%S$bC&PgmTPAvvnitvShQdVj*P@TlH?Yp0LEqFPz z<;m`CPxdc-*0}!Zl8rC6ECor;-tuhP2CPy~JAhi2V3QJhvZL$C9;ksZqvY^AnT?Tw zk%0*q3oHzh49q~1k%1M+V`5+f^4XF296&xN5}ymm=SJf5fOYYLNj?T4Ak76d3m63q Hf^3`su+x_( diff --git a/target/classes/com/wip/constant/ErrorConstant$Auth.class b/target/classes/com/wip/constant/ErrorConstant$Auth.class deleted file mode 100644 index a9b994b4a719f0c28214bb7b0288617cbd5505e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmX^0Z`VEs1_l!bF?I$%b_PL42C2|s*C0PfU)T5m$Kc>_{~(um&)|4h-++)vMg}3D zti-ZJ{hY+Sbp7CxqRhN>YeoiM=ls0llEl1{u*96wR1O9qMh0`!u z47E!iMWKpgX-Nhn0}F)W@yyFhEppCDEG|whW@HdRxY<7`D>b=g6A@Qyep1~m;4C0IoT*3LJMaijdnK`LI+g*!_@{3@$>4BWW&LF|apq8AU zt6!d3pq~tNh(3x!73cii+|;}hMh12`i^nrBFSW=yC$YFVwV07X0O2kFq^#6rpjx44 z+jl?hTJU0h%Zqipo-Wz=V#`vH;Os5WrfonIeA=<#<;*3hg8UHflO4TJ*Uor4X9XjJ z9DY}_F)}bRFacwMg+Y>m8AviRumX8Z3~WF?I})D*$mc}ja{>9>NPHf!E?zLn#~=ix PxqxOdGVn79vT*_cX7GYeoiM=ls0llEl1{u*96wR1O9qppd6un4^!UOFY;B4hCUH203R(zj#0Yka#yw zKd5+oh=07Zzh8)FsGlnbg9sx7S8#r5QF5wVW=<;5F4v->{34jydLWD08AKTwRFm^_ z^~*C0^pm01>Z2%Ban8@p&Cg?GV1qGuJoEBWi=1;3i;Gi>85sl+Uhq%KN=+_dWZ-$) z-}G$ih9^6AJzu$tk%9l&^aanRc08Ze0ug6qkbc&=@5zqdryUz0BF}d(f4+O|i~SQ` zEbIY#4Zn-n7#SEDn1CV6%peKGEI=MBkjKQp2IR9N@i~BeP9#1TSQR&z-5XX2oM^7I{1|grU#Ii*FoW#6z{oswK_UeHg z#m*qj$e^5@pQ~S z$t8>o63@2pe%iI*<-(oMXRmv*f8n#n^-q^l|PzyypzRt8B1W(F1@j}^#cVqgRE*^&6bFlOLH;&TD{+(>*LAfFeB Z&j&VzA501`hyZCWpxKNJf(*iJoB$40xAFi0 diff --git a/target/classes/com/wip/constant/ErrorConstant$Option.class b/target/classes/com/wip/constant/ErrorConstant$Option.class deleted file mode 100644 index 126aa846166a49836a54bfb02275a214d1fde5e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmX^0Z`VEs1_l!bVRi-{b_RY%1|b($AJ-7qc>jP9Pk+C7H%Ct&prB7yVp*boPGVlV zesD=qW?s5ABLlB%7e`sJAg`pHmp^-&b6_!pF9=I1dou)!ESo_TqxMb0^i z#l@+`j0^$@H~J@Kr6!jEt$NzA;N{FEFI#(`?_KwF$;KC3mI4Kz&EE2C+6GiXIsBHh xF)}bRFabk~i9wQqnSlk!V+HfrfP8i&J_lHo6HIb3@BwKqpjt)-ZU$a9P5?<4X+Hn} diff --git a/target/classes/com/wip/constant/ErrorConstant.class b/target/classes/com/wip/constant/ErrorConstant.class deleted file mode 100644 index aa03cbf3c2c00905c5df274fd9f46bff43d288f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmaixy-ve05Xb-5mK-SsO8NdA3S}e<6I&F4#DF^R1SYZ|Rbp3;3-89j1MpB47t)0V zd+^UX|9tkHzn7n10B&*4*kkN74hX$;;ok^@M`N_hN>$goW*o}KllF>nM2MzyUs%I9 zCU9n}N*m8OA#_tOi&KfF&KG&98E2w5iZz7(vt77cKNO`VjP9MYF0-cg%J`d^dRK&t z+*Zj)F;DVUJo#f0hK-k$%Dg7imzmBz;qw18S8Y8Zt0|5!3FK-ECtL@-tZfQm91x{p z;cTmBhM(75YfVHTbmU{3(ZT3<-o={m4vens_M#Y(kcI2QSlAbC2nWJV;g)b)I27(g F@ejlMn#lkF diff --git a/target/classes/com/wip/constant/LogActions.class b/target/classes/com/wip/constant/LogActions.class deleted file mode 100644 index ac8782bbc961ec2a10d1a3d7cf250db2d14ddfc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1647 zcmah}T~ixX7=BK^cC&1Ot`y{>DaBfoU>niaFCr2{fY>#`Zor9NFiVVaJ7MGGqh5E$ zv0kYc>d1vtobgIWT7#BKhPK!Kj)d4h;rO1D9SPDYx!ChQ?|I&5->=PI|Looea0$zP zco0?a24*Cjm++>7QOt5@j9YKX7?TlK2+wh6LPkKwJU16)oRP7}&7_QR8E9GkW4Y0)^nxx$fwpPkzC2HR86}Y(MyF`u4)mSX7DX9tuDPc z#~_iBOwFemdgc=PYV2wz8P^kpjI6P0Br=&~YJou!cbQBqzDTjAkYUjDYvy$`QZ(&C z#Hf}nyFkj)xs{l{oG=&y9~_s&b+cH@R~W{Fq2suoco=39@|_eWq%=G?R1P`AQ(C-&fuwjY*GIH$^rA# z?d{S*?{R8#$UQItuO}zl?OnB<$LH^oga;&}bB+ zR4eE5^A_)0-@!gyJIl^RxyUtbkTgUwg1hZt=pfsH*cs2aG%!kHShi0+}&+H_;LTnZ53w(yY-X*LM!RwA@2&goy)6}IyV#F5K5I7as+i!u-h+kYEurrrS1j37 z?cw>Q*RJJrRqDv)?pef(W~DOS)m3MwyC=_8DQ>Vk&Y>kkE3;GdA&$~VFV7D11^{$Y z(c+{M#Yts}lZp^0B~B48-cF!@gpYx+4}Ls{AQ(b~Cg|ipr4Du%u7_~nA;b`-r%&8* z{v@7v_?JkJM<|*nd=K7-@NmBC5dQ*s)D8<5`Mb%E-~~q^LMK=7hJT0e|G^p#g1wj$ z1u(pbmz>}kdXe^VP}5PmMX+`SxE2v>d-u$8u8lK_cr(YAm{i~%AcvAKYzRq+yzG>}{{xzwp2 z!B3;9TBjYI{_Xgg9Cu%$PysJ9xBKk7`|OW*bASBx@^=6WsP;j{hJg$|(Q!w|rh#c> z*|^18PGCkLZxH^JjSmHG2^3hh1tJ1PR<{MB0z0gJCJ+<&oYj)RtiU5y9}CP0e8K9M z0`mf2vAQb|7x%a@$J^g2m*z z0zFwMW>VR-0wZM?)^>~e&2&zIn$6@k6b-Kw0GAE>4)3tT#7hDnXTkH1*mHo z8J8>;lc|l}?LwApKCx3=_P}}SBG*Gd`E${T=Q!Fih{^F4wf^0S`~M##*;GSCdB!sOx)(Jyi-D>l^5B+$h-t6q{d2#N*M4TN5PIi$8M3m&@ow>_=`M|CCG^F=V-%P6RwA)LkX53rn z(_6r-6gPT0uIHAC?yTOXKjt)jCHhy#c|rh58jqAT8YyWYQqnM_q}HXRuBD`orKE<4 zDZqCCgeUmg2y5uWUHS@9?SyWSw7w!Ta>qn;2}g8mRKhU{uLx^g!U+i{!v241kQ~F3-2>CGMMcsYXaz_sVvyX#0+cJ76q0aheQcdfBTh=T1W@cg9rS@=`dm7&KF^ zb$UpK*YeAJ+YyYZZq2MXD~8eimK!*AUUZrcwaB`z7ubPAj0`in=U0_xLmW=Ux9j}e z^WQ7YfcxAFJ~X(J^Xd)HJq(7+!^`Iz%L5fK;`J=c_mf=Q-4--zBLwtmC zUHlgLW0&IF0_T Q@Px1kp5hr<(RLR22}K^{-v9sr diff --git a/target/classes/com/wip/controller/BaseController.class b/target/classes/com/wip/controller/BaseController.class deleted file mode 100644 index f7ebda7e2c784fe2ecf0c347ef970f79e18c7b4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1902 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 Zc@xJxxH%v3?NXVAkK$weFs%9G{{u|Be2f49 diff --git a/target/classes/com/wip/controller/admin/CategoryController.class b/target/classes/com/wip/controller/admin/CategoryController.class deleted file mode 100644 index b1428cd54b35ecc5a61a604053942130002d5a65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3753 zcmb7H`&S&*9sk^AVU}eQ$eNH~9)-jh0wH7CXe>k;KtSs9C}6DG*X-_PGs&{E&dfsS z)7l!-R-35xky_8ubM*8ldlGA7()MWkYyXZ?wEsbWXiqAWg&&W78G$N1tSGZ(a&l)m&O*9 zQdrbbPNNOB(oku^({R#o;i*Se@h&OGWwmi$!%7<8#rHIPU!W;FJw844Aw-=3Nt75nT$xz$IWSxg19kbQ4XD!OpmTToo za;RLkJ=3%7vMcalV58z#<>G>4F3M%wIcMagS$2&DGw<2XieW|q#!%I>mn}yYsJ7{( zRkplAfrjqGrv;KDc7YzXX05WEsxIcFGjGzGA4c9Roi-gyeb*FD4cct9$_05|V4ypD)?6~r`(c-)XPoi8itz{^3K|k-<56px)F~{M%u<#3?)vnT zH&>r~Z}sAZwQGM`effody#4&z`yYSy&L0GhZnKN<(GN#-Zm)@jVsRa0dWo8x% zVFm<-1Gv}07z1{q%v7;D4@WVnFzN8j#H@5HEHp`f6Dn~BBNll+FDt4Fjp3@xnsMFH zkV58$MYpI*M`d}PSpmVAcf>a0VvYGSYgma}1%bO_T%nHwTjo47e~!`mrO1ZW@B;z; z@1MN2`u-aMiURlFF>*7u8-uRVaLpw;@W36*hX@VZg%t+Ae|@vgn5ro~>8$J8u1!kB zm!P6#fJAexE-t?)kWzK8y0?J?PW*pP`t20zPOB-i_UG4DFMXs`v0kzckirSz97)MVX|DJE^Uu3Y}EBrc;k_|QB&21P`$BQYqPC3OICF3#{nJt@C6M& z)bS%cqvOYTmLoeH>l}-&XO=zVahanRuBYKAI(~}hbX>qQ8lKm25kDjT!O*NL{yBcZ z2B^1B)FnDzzyY>a070$l-@W$fhwlj-2+eNNoH|~_vpV)*uZCahxP;3ZUefV0UeWO@ zysG0hysqO7#d8T)2yUp8p?uzi*YIl{Z{jxsT^mRZo35;9f>XF2T`<}?eq&+*Zu86^ z=W=RfXnu5jdiDv<%V-2e;QCBVtyYwtS_^FN-tgq;4E6u7l?p{9ifB}cl%`bt&=pmO9 zzJ?_KfQNcMMB)Q9Tt`xDJJfm;O-W1!G%Ze>>dmB%+(dH&dNb)hf01dqN(BwR(RTU< zD&EeoZkj$ull}e*H0c|vIYE=?#SuEQo$mDEC>`p?4n}j7y6&Tvc2a`9W6|C*?sal+ zCn;Z~?3Y|#^Y2%SryyKBz|{#nNG28AKWVUu@3DGpz4TpA;hZQ)}Qy^#*oarEXvwUD{F$_9$9NIYHVmsb8k^ z{lt5KX*)^#4>90D0&t37L*y9oGcibydZ3ZJpHS^3Oat6cQnrs0gVaoaBZ$WE749m# zW7IRmpoh86aI$C^`8W3Pso~*&@i$5*>ANXi17(x~At>W`gqsumA5T!jSIPCLOU1-4 zi^(T3g=vy~lK&O4oKh?^isfq|%c0-Kqfma8!piF&g>vsrv?mDfp2;JGmoW0R z^CosBpcd!&_){bq|IO}EoNwAAFbSr$9&{EX=N*R`6wlny$Gcq9~<6r zN!5^;Br3aZ1!O)3$YT*8_wY^|0#c7Q0>qDY3Mrh9nyt&v2GE@8xPiNWkBn+Kwl|+a d!|kTV$N81O*CQXEP`PmNB%b2NH=@LR^S{sj|DgZ? diff --git a/target/classes/com/wip/controller/admin/CommentController.class b/target/classes/com/wip/controller/admin/CommentController.class deleted file mode 100644 index 5d5ed4edbd558eef8d2724ccf52d658e40888cc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3580 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 bh?vT{P)V$Bpae_Kc7o_mZX(73pKtjeA4cgL diff --git a/target/classes/com/wip/controller/admin/LinksController.class b/target/classes/com/wip/controller/admin/LinksController.class deleted file mode 100644 index 364dd39de96c4ce9e227eb33e5f31cd68a642686..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4182 zcmb7G`&%4W8GeV$4lI+~wj^vwLP(ni2Wui!xrW!mDAthM$G;bG$A-UaG<1Zl+SY)h3}PqdVG=ZcP{oUBZEQ!px|X zMozW8EmeG0dsk(6Bs!SSIz~nxHf&=gt+!{hrlUEAnYAT6;n~PpMm9BSX&HUew8qsD zUCY|)sFrX{Yf9CE18RHTF((a6Pf~5@xREuS6B5dsnujG+oHUa}v@LFA^}c*&M7Pdp zwC1{z(9*-2Wr%fQv%Sh%PFu4pr>3=RN*!{9i_{`p-d72S?o*9~D#0qT zBqh`bh?9<~5_QsLTYMA{g&_Uf?pe+|Mw*TgiiDkUvzUgdoKHpT8rkE4g$x-@yXsGw z8O_MHouHnBal=&YNloNKQD|(nJ!kaibjyvbfHI+_^Q2!{y!6`2<$EjBcURthU&65s z13sybs3WAeNTJ%LJH1*i=dlJ7rzMjjC=ya$07{5mPxYodv8BhyPSyhyT_UcWBkvHNCv zz_g2~u2gMpf<8Td-{*b8I?Uu0ojy=n?*p2sYe%p<9u@;*iIYP{YIuiy$xm?aJb%S*B}JAJy_{XV}YL=_tRm3W(p! zy?sspBV{6suUuVu>so0nWYyDAF!tHp!pfUB>Co{+y3oYJLuTGe=$(d0mj~B0pGQUZ zNZ7LpXQV4qY;*bM^zs`oNjSV=6m5n>Hyt(swWP&u+>SS@&O(n{tx%=VH|fy0t)Lk# z?EL=iu&!6hxT4_K_>F?M@LL6M;~fPD@raCf6}*Svv2t8JGOj9^2Kz>h*OlE}33a~W zwe_gr_d?Y*F7G+Sh3O+=Oj9U^O@@=rm z+K!fW)YFz_TI9=JJ>2WIh6?XTiDk38buz8lw$A=rw=}!3`0CY_>G|ciZ+`aa^wRSm zE?&F+k2}|8+*a@rK9+Gu!ClNKn8gQ__mXD4yo9DA7@OWuGUgP_;}ZoB;b94l8=ULV zY<)G}yc3FKJQvR}C5XQw9_#BNtf21&9Jm5ZHaVp`V$Ni3+W4NceSz8y+O@c`_xslW z+uMN!LMwt`LORkEfLWJK{!Lqa-yOWKJDLSgob3*8=aIZaZw_q$wx}uhkBsRF-t2@g z^I)Ibpu}t_oli;F%GoL1PFRL}14!7hnqq~1&V%mF*gs1CMKf6^A=nif-KM{@7>|D? z2=gI|^olzpoX;gSNB8n@?6BXbEWcE61y$4kZyBQhE|S37*unFqv8qRQ3{Jo>L@-( zDRKBR%2C1J<^`0Uoke+X>qn@VLFEiWEq5Td&ZDXfeTO5}N9GYON2KN!h09$7JBb7A zvsJ_wA-=uD_6TtagDsxYf@EDEnC8)>oMe2Hj@&cf@^CWkKue&Jo z6nEQf9LJZ$ch)Z;XX=_Joxbh4ZHW9Z@EFuultvpmu?1~|k2yOq@bbxIA}G|C8k1K)g_z@O%}yXCF| zkuD)}u0*8ETLmKBLZn-4e#_TVSOp?6A@c1Kk(jp%M0$isk1yiFE3Cd_;~6?~9vV@L zyncyL1uqREob`XcToX71jM7!W`vZ8Bzg;3zQ&%29pIC7Ynzf()cOYVXmX3?UhjVe*hrN Bg7g3Y diff --git a/target/classes/com/wip/controller/admin/SettingController.class b/target/classes/com/wip/controller/admin/SettingController.class deleted file mode 100644 index 4e197f90702dc98fb44dae3d9a91f00aea2fe4be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4948 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 F_ymP_tY-iK diff --git a/target/classes/com/wip/dao/CommentDao.class b/target/classes/com/wip/dao/CommentDao.class deleted file mode 100644 index 75255783407b0ad367da4e4c2a08d5d5434c0012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1013 zcmb7DTTk0C7(Fhfg$^j!GIj$^0+km$O?xXs8m%TFWnx+--oGYRW|Y`b;(+*TJn#ed zqYz(8N?__>dx-3OHy@vK{QLI$2EZ5WH1VN{ZGjdALEpx)GEQKp>-jd8mpYNL4OAq{ z%)rK^O>h59pdBh#Mvt%hCxO6j*E^>Rk`b9uo*1V>mG<`UW4Y6j^mOKW0`o&18ghB6 z1P1@obNDQnBOdwjXKtL1)tS!pC{jNtrC2$Yel^BAa@v}V@p(24B_-tlQc{mNoJpz* z9BmgnYHinHG!?C%0Cf&?*+lXQsK4O1s)_F^o53FmLgW*9NEF19y#08Vdjb diff --git a/target/classes/com/wip/dao/ContentDao.class b/target/classes/com/wip/dao/ContentDao.class deleted file mode 100644 index 6f68d0ae294f18de35ec879d7e1b63c37008ca1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1074 zcmb7D+iuf95Ix&Vl7`YGr3A{YRRvZ0!Xm_5P^C5%QYE9J2K9YouiUNdU2DBA%CGUj z2k=pdv2p4;L@hj6Bk!C!JLl}o&tKnv0Qi92CSEnM!_XE%aAckGBgwEk@O%^VZz|!j z31q}aMmwq9iHU{M!-ETkjZnH0e>^=67~T)OD{(D&By`A62_8y2Jh+pGp_e6raI!|! zz0FJ)6ZgBSpTHUJ)8VY896;9;S7%N|+*7F=GOUeNsD;Zc$vOMa@{f0ReMsy*GDXhy z-Ct+`S=FfojZCH;!{(suxG>8zIwa1m3U)jlkt?CGQ-;^KX~)hg0x!@z`Ulwky7tbg zKNZUhm8wZ3zX&U0(rJ&hHcmKYbjt9?GdAQR5&os*YC^{;7ZrdPRU~NjT0|My-|}z7 z)ZX^12#Ia4Y`l8B1?uEHXkN;>jEeTgmntcz^zbj6=8Ni6oxf{)Y%=T1Pb%Mn&MYs? z+kCzlw(IuPT-m?JmCqtcXd@Wmj5lR5w1xb>WPi@wJx`c&}*Pj48u3Hz+z NdX5(q8N$yIk^iC>bzg|5U#Dxn= zT7$)MmF(!1Y!_Hn+=jKmWXpx8&^6BB;*a3^-_|!;JKajxWbU3zEuQsbNiO>d2B%M* z4_vutZaFR8t@jcruz20$JdvibR8#iiET@WFOTPlUp}KaB_Fw$?%1H)SBnI=rLP@@` nkLk{3Au=!+>2ZM3*kBK1K;u3l<#A7Opl>q#rkH8$Gl#%8eTG`+ diff --git a/target/classes/com/wip/dao/MetaDao.class b/target/classes/com/wip/dao/MetaDao.class deleted file mode 100644 index 5446f74b695fc3508c2e84505c05ed81c4fb5dcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1045 zcmb7DO>fgM7=GM!?bfwrFjyHdU4vDj=e~kk_ zfFFf;<7RCK9f(6@`~C9s;r#gd?K^;1*lFTP6HghMA`DNZ6%5MCv{i{bQ@I+& z@`K1kBCX8cXl<;p%IKWog>SNmi&O+(Bv&H}=UmJRxa%S?%NHUph~QG92uvrJu?*}< zW|HC8m|>>^=VUn*=^~jv|5kH2$7g6Wr6X@H@_uwq7kEd1Oqz*Sn&XVMhUyr)O==BIkp=QZ#Wc3<7z%SxK0Ai3>z-b-^5s9QBwtc`GerLiLntZ*g<)8C58E-F zh~HpfsL?+LtklVQ)B#$TtF?h9@n$??aAJC-_-PMn2WvkAYu%BqaU- diff --git a/target/classes/com/wip/dao/OptionDao.class b/target/classes/com/wip/dao/OptionDao.class deleted file mode 100644 index d91af1cfc9df3b198d07d00e6fdd968fb6fa1c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmaJ-!AiqG5PjR$#8z!-2uWTW)gJoo{AlsKlX z9)w4?;ilJaq45>V<^x|m75k$TT=;)f-qjuE6LjFOvbu$kwAB*Q$wyU zmB9EP;3iINF5h$^bGuZT+;UB9PTEAbyg#aoB{{YExL-d}&O{f%-o0=xF!)urTN(!& zbs3pd&RnTY8ijj#*x$_7WuhK*##j3r5fidkKQ;xTuJ%^$VVy)RkFdeT>?w8TmO7PVAw?2h@CE0Dsi5GK#TJS+8u#5I@}*{ a*Mi5rk3)cK7rkb7)V#+y;p#E64}1e?Tz}pG diff --git a/target/classes/com/wip/dao/RelationShipDao.class b/target/classes/com/wip/dao/RelationShipDao.class deleted file mode 100644 index b9d642ef16d38adc2a16dd3f67ed049d6848c99b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcma)4O-sW-5S^{H^}AJTtM(=+?Zv%#5GsNn2!V*wg7;~%q+62RkZdacH4pv(f0Q^` zm8RIDhirCcXWq5^js$ zgb~Hp@6MWYt2{B-ASO3DQ|9``AqMC3;ue##L|v@{Dt^=_6d8#pnaW`(9x=g)nn|vd z(#9&4l0vRd0**0yBf;g6+$qOt0Jm8LwmiWwBXyR%T-T*2KWpgwMQT>>KXvIk3v{{3 zG0PpNODg=Hr+r-;=q&NXoeZg!MzQuS>eGDG3=U>#&#*oDgY7-WF>MHg_74po_3Us_ zGpJ9O>R~t*o~bZkP@|5`SOFmaDy)%zo&2p5T{h_3Okrz!tx-@N awr%hZ?Am{$2u6T=7PbkkycnhK1AGF#6yK}> diff --git a/target/classes/com/wip/dao/UserDao.class b/target/classes/com/wip/dao/UserDao.class deleted file mode 100644 index 0413527b15ce6afe5230580f9809f60c927ed74c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmah`$w~u35PhA+#2B*}K|FX7l;mPxyyfDCFc47;daq2{vBOOF(9@IPuX*qT{3x*! z2{DLz=&prY-h1`_@%jef6uTAdRL~JzZ0p$O!U7tLzlj#x Ic}E-g1e{c!%>V!Z diff --git a/target/classes/com/wip/dto/AttAchDto.class b/target/classes/com/wip/dto/AttAchDto.class deleted file mode 100644 index e71ed2715e0c6b40877e4481b6f74b0492b99ce9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1531 zcmZ{j+iuf95Qcv{2Rn(|Ler$2p&XO+-~vHHqEv()M5Ta`T6*s$ZemF6%GrSWRv>|p zxZnYJD8$S<@A&Zx1DVs%>-z>4r?Q744#JL1it{r{rcXcl=LT$VD7sO6 zKw?%a_C4X#D!Ubgf!H>Xs#K4ubSG-liG^km`tOGQ6F)xkPI|II)be`AUL5d#6ikb5 zFfg#(Y(;(dOK|44MdUVwXtcV!B4UD$FSuW+Qk?>v!XG60az&G79-9RAlPfM=&=_CR zCW%o+XO9eS1 RkPkCJ_@`r#s{B1_{{S#q#3=v( diff --git a/target/classes/com/wip/dto/BaseDto.class b/target/classes/com/wip/dto/BaseDto.class deleted file mode 100644 index 7494efdedc3c9ccbee06c19d646ccf862c60f509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmZut%TB^j5Is}MtF3}O-MRxz?8cpjg&J1`7byEnxxq`IHSI-zOB0QW3qQb*GR`fH zkiceMIdjgL`T70&25^pJ2R0gI6X5<+tjL`(lgJ^51| z`Bx&5H#%Z&H<9|`U%uJd)i;vvY#Y_+ba!C{XB4gCK;A0j#mgkl%sn28D0#@EK&bEW zL8xxdzMITtpmD+Ho`;4{>x_9~kYqRa7(>e<_Qij$Vl`$B0W5ozpag=dwjJ(5oWzuaU?Y%~7DXRVl D{Ip$x diff --git a/target/classes/com/wip/dto/MetaDto.class b/target/classes/com/wip/dto/MetaDto.class deleted file mode 100644 index 2f79b6af61fc59179aaafd78547299926f7457fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmZvX%}&Bl5QWc_LZKE>kV4|h9kQ?+cN#Vr6O!si!~Rkly{7FoaKV>yW1=x};REx0UV?6!p2?$6?7f=4tj)Yq*j?G(1cJsm6_BdLS=9`CD>y% zj|r_%X7S}JoyCi5F-ur!hbj`uR4kP^wu=?^xum=;vbFb8D5yj`yFuZd0=uWJK2M2WzRn!Qb4gQ4wx0>?JNx@aAkQom6 zTbsWpSjK>>3fJt%vB6!ynK)O6ub?L`EVvwNx!A-O*IqHexyc=28!e81m!Dxh{#$Nu pT;9QMxjbT&Wl+QY7g)b&H&=bWwwF8j#Z-wmrDN+|#U diff --git a/target/classes/com/wip/dto/StatisticsDto.class b/target/classes/com/wip/dto/StatisticsDto.class deleted file mode 100644 index 25abc8db0ab407392c761477cac60af19451a2e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1114 zcmZ{i+fLg+5QhJC>^O1U0^!h7dLW@d2ojc1Risj-s;GKpwHH*}Z;Ta|I(C&T?Q0c@ zsuCAG01t&aV?qM%=4NJRb`Ian?)A;(6@WL`^x$H(iZU83nk?2>ymqnfVnd)J2UPvuV;Br@#m(}uPTG}P%jkqo<@YL8x+73(Z5;{N2ib8f zFcYdY{&Lpu#)EINn~>4ct2#mRg7RVE^{y*gfk{qh3<%$C#%rK=;(3dyE#2>F*Xjfvq2Pp zR{3NPfOmL(J|5w*j|!?jJQg(;KB@xCQ%9xUPgei6dm2X?4SFS)9?^!y)#zk#!CX_# zTvJ)nRS0fMa)zvcv>@%Y|3aMSVY4L5xwD2jI{UW)sAHZifdwp*e3*Oz>vti!X-r$jkgQ Gy!r>zM3>kA diff --git a/target/classes/com/wip/dto/cond/CommentCond.class b/target/classes/com/wip/dto/cond/CommentCond.class deleted file mode 100644 index bacbc2293b7e5ac7b554ca64cbe388d783b2f5f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmaKq+iuf95QhIvoESTXmb3|{(o%X#QiLz4#6_##L?9tWfRw8DjuypNtc^`eP8R7ns`P6aI5P1HpYN`Z}n;7z3DL?)y#Wi(#w*RQ=qMv5%Yf+$eu z0@Y6UQo!iPV=7-81d)6@4@WY&@J3TwX%1rFn_hZJ!1HX;P#*%K*&g_D=za>W-LZ;Y zKaR$3KMq6k@6(vcCQ=PE^vzDUz*c}?N?M(N6%6MrZ1Ov{Za6J(>C95AT-GkSE^07UP=ZP<02i%eM!X2OUb2zwzH3zp~Ik3@i;BdH&hQQYU z8bnsh*L*j+lD@(&J-bQ2!a#)$X;fj)G?Q(b$(gbR!RJz3r z#Ri%*b`}C`V3TG7Ewm}#EdGkh=Th;Gw)h_IXT|44SmC33$KOy{9&M+qd#GVQb!abC z+3}3V_hae@c&GuXmO+lRAdj%61F4oljtS)13J`8EgFM!P7-bMw3$m>TG0Gq>2;^i1 l2){6c>}Wx1WssLzkSBVOS{dY&K+aZx@E2o{-Sjg&{R4Cxv7Z0{ diff --git a/target/classes/com/wip/dto/cond/ContentCond.class b/target/classes/com/wip/dto/cond/ContentCond.class deleted file mode 100644 index d368afdb91b13a73b372c2ec7a705e38a0202c0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1938 zcmaKs+iuf95QfJ&*iK?-n}Y}0@oYV70_*qIRig9RzRIFi%lmAq?yY`jslwP zd(82e0x5QUgby;95wMOs#_{Sxwda^NZ~`o+IbJ_pSNC1dWeqehSGriC>GyHhQp@$6 z!|Ax^1RbkKCi#|cTcfTOxHO+VOtB9xf~>b}e{6nskIX*vO{D3Y%@7GgAMMnE!#Z@f zLbL2WvNg! z(I}tyPos1`GQ!$XGmEG2=j}8?+bFHHc#0^CjzQ+nqRx}~eA4!(f$bc))a&Ji?$zir z7*K+91{iS0fU_h^B+Dc#BzclmC>T(Lf&y#*dmUJQe!pJzhK|i(18-ptFRl&=GQm-T ze0W4F9?^|QG~^LIc|=>%D@Y)>r68&Zawr8U%Ry8TY zAjsPo5c&uSWE1Y7ieHT`g1nQ0+=bd~^Qo^!7eRUmV#k2cUw}YNDM&^Hc`pUICkM%h UAVUQC7z0ATAp*J2e;8YT0Y19;hyVZp diff --git a/target/classes/com/wip/dto/cond/MetaCond.class b/target/classes/com/wip/dto/cond/MetaCond.class deleted file mode 100644 index 7b4eefe7b5268754cd3771ca0286bd0bdc86df31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmZ{g!A`LgESW0O4LrgG-<#WzqOnnrKWs_y9hX zadv@_KuMF?nc3O@|2n^a-#-9uaBd=jViIwbWH>WWHc(-R`_9y3$hODMvtv&je`I$> z$oX4>5MI*aMR3wzFBqBH{6ne?5I%X-y}izhy3 zD7W2UYQONAJrsfM2L8}~@PyN%gp7>2CpwBFU)u$drp9PJk*n2rN0t&jg)2vwnb{2% zq3hjqNta&xUCTeUkc4SLhhgCW2198tAH&gRH;;p{=L%G5g$dfLMjvUYjAZCcfJteJ zDXMHbnd~;cz~0rEMNwDH6w;Ji%K;oBLlv3fn4)~#RPr?4xcY>)d2Lc3D3Vo4DHK$# zuN0)ZM3Tl?oUF7qARo})=($G5YmiDLNG=*AwheMYAk{q}awifb9|;oM2Dyv`DJb02 Ee{CykPyhe` diff --git a/target/classes/com/wip/exception/BusinessException.class b/target/classes/com/wip/exception/BusinessException.class deleted file mode 100644 index 4c5c76c20c83a4c0ea16f0873085e6e717f05c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2317 zcma)8TUQfT7~Ml4lS~G|KtQCnS_G1bb*y5&Kt-T{N)QT^R&8sCFodB=hR#gHKK76F zwXgQVrFPXvANr%Zy3fqy(jci?wGDoMZ zvgO^A5J_h?C3FT!^yI9v`M6TrGMx=$tLUd?=Z)f~;aK81-0bvrEoL!Vi(tOYoBN(+ zm-X3-OA6PWukMH{(yiHwpmHfFOoG-1(crVO>(~b({-kj0${Q6?V5%)bLid5??atRb zd#4R~<{eW%yVYEe1hrs#4fOr#OhY2I(VeTJTBnyvXWGthsFrxE&)swzmv^nAd)+hg z-!B{c;rwDwO(hqY{b@Ssd|^1(|KIESXsLV&v8jA9)RMApSDd`LU@gx*vhxsKTI6p;4tPhNQEIt2n|^#5XTjK6b4%g%jx+G z@h8Vna#@W9WnVFV(3vwnT?R2achkLIMUOa%#Kj=vDuatEc#=Y5-G2s~^9Q=>bWv`D zuzHibYE98rGG_zGVxuWY7df#GiIh z(=E>EHk&coP*bATwuHD(NOsfrlHxQ!!L5+}HHm}>R+(Nx1mN;Y(~h8?p!*OBT4&zk znpocajI?+y{*KTiwocG{gtNb(H}@O*vPbCu6R8gP9ONHkLihNeL6GVg69lH&;`^NP zELA^8#5^$%h+5#AMJ(Y_t%PZ!ZsQJlm|a+mC?ST3`h$$SDlKt-f-Z?w{KS*-6Ab*0 UKA~XVpZp94mE_YDpE~gAf3ZySRR910 diff --git a/target/classes/com/wip/interceptor/BaseInterceptor.class b/target/classes/com/wip/interceptor/BaseInterceptor.class deleted file mode 100644 index 83bc99f5267e6a1572dab1c6052ae401da17b667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7409 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 diff --git a/target/classes/com/wip/interceptor/WebMvcConfig.class b/target/classes/com/wip/interceptor/WebMvcConfig.class deleted file mode 100644 index 94019c172612ccb09b5405f0109d8075af50370e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmb_bU279T6g{)eN4v&GtMMPG7~;i30LRW{NQ3*z_4|cX{RP~pi&i%WmjwCgi}VR3{U&Uj(D0_ zrAI?6CUR!%DG#O4DIbc6bmm-~74UB6%uHDs6K&&}(#kz&SlZhkFw}Y`meginY56Xj zgwlQxq{gt;H<1_*gjIRGxU9L4isTr^n#sJ0@JFs6n_w=n>NT z>1LCNQeuBuw+pPgy@f5DO+)CN$E8FSDI){ z{J}rKKgxK{?c7Fl`^!1^p6BPDp8om!>op(L*=NzUi8kz zYc<9%%~6R_M0vW(C}3P9num;zjyji?)6uzvJQc~-9FM9<_Q|b4zMcQGE0Ak)Ir4{r z?d-Wct@-H@tn-I6uz-?*0*VF<%ow=AVwS}m+vZUeSW2Fwz})2fzwewoc8C>Pl00ow z78)0(lg72Brt(r#2dSxv)YOOc3}|IgBDqL6le8e6ssDudCd0}kv(i{Zh0aD4fSb5Q zH-Xz&B6&UeJG8H{{~k!&2Ktps_h-jQq^iQjd2ePsWB>fd%b&l$eiPA7x|ya0luuC`okci@ zFoJL%;R3=%gaX1S!X<<;gv$t55UwIzOVITM-7qL>xz2<^3-fo(duFa=R*Jddif&o+IVTXD1M-*!EN+UHC!_?}ZK^6X^o=rESJ(-qr8D_S<45}&E+af~>V z2F1*xUGe#de}B^Eb58lDU!CH{r0J;x3Cm>xro<0A6~`ao<-L7lykf|m;1#WTr(&P0 zmd9;x)EqDINPFJ3%+i?YIp_z2QUA8Xr|rpGZaFvYOy=hXGmX=r%$ddt^lkZx)FL1mLse{Sc#*n&{{@a26g}E zX)&m6_AMD1zhhfIuWaL&lBk6u5O6C3gv#ttnJFr>Mr8)6%qEqYr7{ClW}(WARGFPB zGgW2Qa_%7mH_mY__i~&K&awWVWPDT8)^Uuh!3?eEcD6QwHc&734C9iU>Lov#$Gj!Hw1(yd6^@4h{2x-zGBO+vr3~ACK z1%`}bi#B|6l5we4S6}83lwkD=S zEQU;kK=8-{vP*=-bx2W!?3N*M9def;r4R_-89?@kTa(Zst_ayHZ%smnOfkd{f#9VD zWS>}(qz;)DA^YWuBz4FGhCB>`90)3MP=us($RiPQNQR_z$YX{)34!3Vg^CP_khBhY zDnbs+khBhY#*pVB5PUBIIU+(bI^=~28I&Oz9rBVPuRyo_YCLi}kP~7>T6D-q5pq(lNQ(~n#E{P+ k5d1R%IVD0`b;uVHGAu({b;x&y%!EMjlLzFq`pusC2NgqW9{>OV diff --git a/target/classes/com/wip/model/ContentDomain.class b/target/classes/com/wip/model/ContentDomain.class deleted file mode 100644 index 37ec75631db65544063f8d3e99a98387f6710f91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3678 zcmaLZ%WoS+90%~qS^~i(G$n0A9a1RJvfgYq8*Fd2UN?dR zNE|@oP$Ui@aR8}@R_cM5fJ!~I5(kiaXeAEt-&Fj*v)Vw#ZG?9a-bFZta2nw~1Ph^#U?Z#{I0)+qF2Y8Ryc}&B zG-P{g22Ct&T4$|F!)m#e#a8IJPO#sgOz4FT$Dr}PtFXyr?X!CH_4?G8L z8(zq%Wc$q~k8dCCGz~JXM#JB#Mok74RCSp_ae2YPO|u8QmKVErSjc-?8 z@>&j0Q+I+Ds~$a=Z(EI3EAUY7Hm1W3k8iwdiSJz5^3GKFVVp*#8a>BBziD|be*UcM zgjKBF3#jVNfkWWO& zOY+v_b;zd-`78l~uL&UY;))b>$mb&DWqCykI^-NfzDR)Ja|TFNT#=#<`BH=&lvkvv zL%w3j*9j1OPXT#Fgp_p1HzH&~hLm*3w+#6%0fG-YAg_uLQ-_=vA%|p$sY5O>tvkO09?8X&KUhjm1U{47G2I>L&`ejDnqU%K=7ju$T1NzszZJkAmp=Khg=sS v$7RTv4!OaQn+Xv7tpTJaLdJE-Um|2hhK%cwzZvpR0tEl70C_|G16utTAK1~Y diff --git a/target/classes/com/wip/model/LogDomain.class b/target/classes/com/wip/model/LogDomain.class deleted file mode 100644 index 29b12ad1c5486b52cab573a6c8e09eaf19e0bbe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1686 zcmZ{jYflqF6o%g^ZI_mU+!4IuwScmys31rnZHzUImw-eQKRA?4S<>#3?N$^2lZhr8 z6F>L^{87gDY)f0$X_KBaXXeZ~&%87H`_Io`09Nrhiwy2rSj`}T`(hr5c_?O0%(|FI z7B(zwDvUOqz}2;VCuq37_qtS6P|p;G3%=I~wHNN|TGL6fviy`n!aY=&C?D$&+OBD@ zYL~pwsXD=iLRwcs)=(JlS>6o;*Q;_hd8k9JFsPg1ksp*;CE=bZSe3xhp~En}>3VLs zr7)0R*k^vhKXeq%lwHqx-mD)u!Ja;-ab~>iR|u?$&A2_843FG~!fd(X*X@t)iCyRJ znqBs*MZd0Hj{p-@C*1w-ux!TTrnn|ZQ~8A+_U_SAjn?{f-momR85Y=SAAjo@JJ%SGmJ7PAU7eYDGA6k|DzVRE6>=SvmiafhTo(&_$kP;%+eSsKILMw6WZA5U6$g1kkhgt6xK>ak8drdmCJ2N};+1cIu{paT|BATP8dFrRdEG^}zhn88CSv+R3!eW)h z6BcVMDp^|3(uSa6-}0o{tXZBfU1x8zB1k+FG_dA6eqcI5&1|-#E>=0gZa6!z{JJMw z0SGwK^#Vbemgyk^gC*(6pp4R`sT$mC?g26kZAr)4Y1{jjw`=YBjAf2h;cS-u?wI!osSO(b=`KqFKv z&?t=+Xq?3<785K^vzTP>87ktAb}rlV{X?scOEIcU(lx?^lb`s^=@M>sKM5*O4$B8< z5aS`-+a4OmALY~-6_rL&rBPRDlvWzml?H&)V1OP$E^G+$JZ1*8fKE^UAn{d&U4YCe z;{aX6xDW;a>M~|Ix00>agbFl$PC@ofu!Of>j2qE z0O5mTkXu@ibR1+;3o@$*NykC90kV?-!Z(FM3@u0|4)Rh9a$66QiG%C`q?Q1}SCv8T zXhE`ZkXKreyLymp9ON}X-XwtVTVarUT9Cdth^Ymc(}VQIK`em0O#tD?${_RFSCfl_ zNG-^H{j15vL2Q6H2_XEnV2}q|kbE5Ey%yx59wZ+JX#?aa0fawS46>j;7?1t}bR`yv diff --git a/target/classes/com/wip/model/OptionsDomain.class b/target/classes/com/wip/model/OptionsDomain.class deleted file mode 100644 index 9a4b4f1a1ea98f7d90ff1104106f2dc65cb17b3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 zcmaKpOHaZ;5Xb*pphc*F?+2h_Jb)Uji8qZGi6?>w4ELorxTX)%7X4b9XiPl#0sK(L z*%gCe^)j|vf4sf{IL3AkIw~{Bpen_N6q^RN4AdCXKKC4k`PMDJ9isoeQC6m;gJFJ2H`nX~IC(#EcX)0`BbOW8PlY%Bo(Myxnl%|5D4bb9YlANWVMVgV$?7o0Ks;~k{T^aKz(p!d7 z07{r6O((?y$;sp=Xby~>?B*LIG6yx*IcSJyP+JHxGsaUKxVtKUbyr5K%d6#f<#Fc`k zQso$(a5i!Ig^-Bl-@3>0<0djNOlZ(etUzbj{STL6eX+5d-iW&q_GqtZT6TgCjZz*> zqdN^I706~Ovgl?q+k6FkQe`GtO(nBfCExrmz#4KCkr+0}{%n3m;&G|D65E_dVcy(Q zY$Vk@dO>0#ZBQPl5@$_KD5+SR%S$x*A4$C#3zA$0*^LD$#)Bl6K@JGy@DC8VPzh2} HUoU?FZ@+WW diff --git a/target/classes/com/wip/model/UserDomain.class b/target/classes/com/wip/model/UserDomain.class deleted file mode 100644 index fdccd0de72c3c3b51707a9648b63bb3560a60e27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2338 zcmZ{kTT|0e5XU#AP1`h;YY{>5f?_F36%ZA$2<4`B(6PdU&N!2XSb}ZBq$zwYozZc| z2S0!x%5nGfl5l48^51jL?w)(IB{{X-;>}!yPwKV9kPV$1JM6yBhl4O%)i=<4l zO|p}O-6ZTOFwnM-6&S6Y8s|o_VL0{TE62C$mba!rs@<|Y$7os#jD!NJzGpji@}C*4 z)`jcg1PQBY*bN1eCvMX^^suG1OwY2M1CgG@w&7bCm^Mt`KJT>EhFhyw~=y!UJA?XboMocj&4)K(fweTL!B&os-a!aVp6zIndRO=Xz1*Bbo6Wn z2cx4e)J>ze(mN`2_1cuR7n~erg}PeRZF{D*Ytv~B21l?!S51dWn9|`24C*ih!#a$R zjFOCzH$98bM1vTW!d8r`35x}V#hSum zSz)oVuvlDJtS>Ag2#XYGbAY!DrckeAuZUJbn<)GO<+}*GfvSo@6{fMRcLLxh+`^uM zXm?OAC;x!hH+04zNSwo$iJGD4Dud9su3XcD-g&M3zC*Wj#!Xo9waS;d_<5> z5g_y}5y%r3M3X^2vmh%xh$e&75X6iCp?{G;p0al&BZGWlL7wqOZ=KepW&!BBN2aMA@~(3ap?}!c!9hhl?bpR?-#d^vwN0ONVylNaOs@ zFJP-xlooe*U}8kzI597b$1T?^&c^pWZvFsYy-&gP0%h@QISpzx^2_9EEG>RA^?<-p z9Ntk_rYsD09GM7Bpp+!`t~cP8&JZAw!aoBbmnN_VX#hOeAu~I((K`ou#1#;gf(`6% b!q%)`jQZP9n)l1tuRwMFuHkKG_GSG8ABGQU diff --git a/target/classes/com/wip/service/article/impl/ContentServiceImpl.class b/target/classes/com/wip/service/article/impl/ContentServiceImpl.class deleted file mode 100644 index 8e9f837c6cf2d2c36631111355f0b6ae144e9aca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6965 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 tpS^|re3_g!9{123rYxw{G diff --git a/target/classes/com/wip/service/attach/AttAchService.class b/target/classes/com/wip/service/attach/AttAchService.class deleted file mode 100644 index f3739166315e80d47dbe4970526a0cf758e5cb16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcma)2O-sW-5Pe%?V{6sw!K)V!DTsUV78NQY1PTfP@7rYDq$JspZYuq29{d6RC~=xJ zir~T9%$u3_F(03A?*OiF?BdA9SYV*ycxvr5N(9clS!8ngnwBy*F=etH+?!mbg+F-~ za5Y&5mjdTr5KNkNo!X?H%Tj4dC@ZOwPh1AYi}9I0Om(4bU6H`eKTfW{9mLjj`qucj z%yrO;v(>wG5DQ#*vxQnInW;j{ps=K=@>@@v2)_vgMx2N&bzx8cyylF<(9~5#4{64p zPulg6s#O}%cPjzCU67GW_B}%TM5MRiCNq>uUrgwV)!(M6@j?adakgxC_RBA*@9QG zH=L?nl%74;JV*;1yIyR{UpO3qQ+&hST|1KWU3`z zA$U_@(W^+uO&d~H!$IMW!106b3-soQ{rHBgHb|ap>zo4lk>`$67R<&H*=zFaT$kk< ztu~#meiUmSCwzy;xyx~dIXJ`Z8}{*WC&+gIp-U)h!UA<`m&GYy0mNBDce~mFg(Lc zMqFU{nopyyyn<5>(lzrx z!fH~M)H@!lO=i=Wap&0Zy-u+OXEDQ-R!j_@2qfF0G3OIGujUujHOCZRvVMJ64NaR=5Jp{1+sCExe_g~n=h!K+kE`gS!ZR>pOezfhJz zpqPc$pWl7^*Y{8V*xLU4$#x8%S-6M$7W(jd3=b>};&=?7TlfNBS{TDaffELB|HL=U zzOrx;mn>WX8_`sg;43u~mPJ?{@-K+rn|g-C<>=Aq(@?cBu}*4|rkeB%N4B=v<4RfyvHrp6E}?&w35HJKJAHMhyEc#m_Ia~RM&$G`}p%R($v1kpKTb- z@(zo+!Qg)R8z^HamlX2Mxt;C(<`Wl}EnMSaHrLOqD8O>@j diff --git a/target/classes/com/wip/service/comment/CommentService.class b/target/classes/com/wip/service/comment/CommentService.class deleted file mode 100644 index 6857e43e40e6f5e694a23ffc9a45114a916d3f1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 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 E0IxpR-~a#s diff --git a/target/classes/com/wip/service/meta/MetaService.class b/target/classes/com/wip/service/meta/MetaService.class deleted file mode 100644 index 72abe9fd2e27c91a7c0524a2d3e4f535e950200f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmbW0OH0E*6ot=d?bAoKz8~PiMZ3^!1i^?%D?*{_qUwH3hLF-^N;;|ZuetCC_@l%- z)1(g+QCE|>-1BknnVa{I*EayC*w0}%hdqXTpAW>XP@Lhs+UoEDx4Jy^thS2$(6fK6 zG(#mk5!tmThLR_g#oAToHd};B=TDCr(n)1LwKxYIdJt*%e)(Op5hk(`DG4HlBiw zC`pM#$JH5|jtpJnwLu^DH^DUj(m#nHkYsKYf(*DHnjEsmJ3aZq1p1{>`z^*Ms?mN_ zQu7TNhpIk&81^W{qv=`Ge5OKdNm?U@r9@mG-tmBBSKr8{RAW&3lwa(TxwecWN8I>b z;+3_>wulD4BTn=hGaRPc{-|sP)MBDY`bafd`1|LMa8#CoVUB(gpqOEpM+TsC0a>c& ss5*x{-3ut1dMP;r+7-Ji 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 diff --git a/target/classes/com/wip/service/option/OptionService.class b/target/classes/com/wip/service/option/OptionService.class deleted file mode 100644 index 62308fadebcafa2bcac11b6970f0a0dc75fe14d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmaJ;%SyvQ6g{`b#2;S5W*Sz7Z)-q+GtaLyaL^8>_u1i6f z9T4VWtTOg43zn&sNLlCgs4_0|U}5y5iZ@~}VlUyD7lHpuxS#$V&RdxBJYkV8Wu63w zlZBOfb+O{Q^MCkw;h9>)ut^^8&fjWh|7iWAN175NRhO}NlBo&z+FK)0HZm5s zn?4EG+m@|5pbO}g8lptbfx04LnompmP6XIR} zfDe`r`tE~oSY-i;Rr+rEGrar@%hNNnn_aWUln>iI{q=V}-=+7Lzt(>Oa2lT_(T=fZ zJco1(u3)?cSMgdqudeH_$s}&zrh!{KaXX0_yk+3+Bw8@0mpgiy)lzr$@{WOf2HrJr zU!d772Da;5k*>g=Ox7(}D|XS!N!PkjzDNn|y;X7oyP#%l-=52>%Z}p)Qp@=Q=QFOi zVEIMQb{6J6Sx_skw`9#J>G;;X%m%KvYRQU#b-5I{E4HU{RNFLaJ9cnMprNmSMxZh6 z=9EBd#&*1 zX}>Sl#VznyN-QLnTQz#q8)T`|I#O4-KIr2t6rJdn2&fqBq|E2X9mcBs2KJQ@Xq!{> zuBRrPWfq`zfCW=3=422jU~F}g1uxJW$GkOKVU0VXK>KDa*$$C60tdFNFlMzNwEJ`MJE4|X3d4zt>(+>)17S8d&Tol&J#bKm&cmW*--ZOCs-3FwIIb@0NnCk{U6I{Hmf<-syw>BZy2GzO)^KCe1VgZXL zY&d#^VNN)X^3r+f`-(kp{{F@1 ze|+`$w`c2rez$JGHBrPvf&FE*b=um52j4`Xm$N9D7{$v1LuH9=jUI*@He*;MH|8Fw zY#`9{FDhza7w9On)l6nKUrl?n^KE~;Pz*RTI8tYmSjNgfsxvZN-ODkhe}N(JSy;S9FZILDsAk?Ju~k6Cw1kA7NYF&vyk zfLZk|4d1DFB;DrFWlco|(K3U2q#@7~ zXRPG&Ir9DSGKHY8*ui34a{9r#P;E4xl^e~sg(?k*uYzcXbkx&A40e)ZCVCvYHxg2( zMmhQoteSWqAL$}JM~pY>&E^POQdUM5=5mtFCgZ1>GqA96GVlrWpK;x#Qc>X7YL8+C zQJ-FuPA;$fo`|!$m^MEZHG z7RuIqILuCIhrsjvCG=?H-pMDUiTfVzJGgV|aoxw0#a(FXz*C6t`H{eWu9_KSdy%Ud zG2j3W@+9<>L_;WinkUVd9QXl=H8co3=BZjkca?@@tl@CTb0l<1J9(56J$E5|9K%aK zdP(X-e{90zWr70x#o)K-8eBu8z&B_e99U-{SVL0++Uv&9>)jLr73`*heHaLBcSho| zZ7L#tkS30kGm1=8hDbRJdWbT*D=*LI`eqY+1OkGqDv zt0oHVGvRMbggK6Uj_^*==TZ9nauwcP6(74|A8Y)nP5Vim_DhWI64P^cX{xVwe diff --git a/target/classes/com/wip/service/site/SiteService.class b/target/classes/com/wip/service/site/SiteService.class deleted file mode 100644 index 00e3156c9514c572eb1ae5ddead63199594fc91d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcma)&O=-`uuwT0DwEV$Y7AcP{CP&JWC;96L!`&n0F(G8#c+TX(4Sm>A6 m6*}%JP|%VS0<=2{+RzbwBB}*l(OE;Eita&QW^(1d<9rLG*=e!> diff --git a/target/classes/com/wip/service/site/impl/SiteServiceImpl.class b/target/classes/com/wip/service/site/impl/SiteServiceImpl.class deleted file mode 100644 index 9920317a2aaac528025156b7cacf303eaf766d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3604 zcmbVPX?N3B5WRBj$Z-S&2ulb{D9|KqqA6`D34ve&q&Nu>$`&Y99K{x~C0CLODc$#d zUufxG=>CDyoDp~WzQq!5qF&|`>VxE^CjMUfWEMigho;<$`V4D-Zd7G@My6glzw zm{7KbhEoR@`51?D^_akUA)Bnni5Qk+SPV~!;VCgZErw^Jcvi-9F+7hKWV|Tj zB?+~O!F~IB4@+2(u=?%X}OwfSf(Rkn{PO08)jPx@J1+n3i-cds5Yk z8`Pe>YfTuoKI*$S-CMaYtWZzR>aONtTr>k?zb~dno#whd$+V}lWQI;pVS!q;U5076 z-4bfr+K);I$E{Ia!n}lG>I3=gh;ARz$j*yZQp+6GY(vZgVc1O@q`RSL-O=rHMp9QD z!_`$Io6D#}d>itmeVo%{eM)zONOJGOw!ZenS?!#r=3OJBCJe`=P9$Sw4OfEHCn020 ztzov#;)GR>XfjtorB>*672#z`E>ldSmDLQhvzzYb47plzykE-&yy}LGl&QISo5VY2 z1H7}rEmaF3sU_2TdE(aUsppUwiT3XxV zS|l6Qiok=+W;8R!LujVNYJsm;2us zquX1&Qr>alNf|FIcm=P@cum3UctggU3f{uo3fi$=!g7-KI}PKNw9L^$oyPet;~fR> z;ynq=de0kfbyvdb`x4fcqbU?f0Zjpnf=$?5-Km#y-{}VmKEy{eomN<6uFL(E5*>I{ z@G&kb_(TjUw#fKY!6kgA;B$N-<4Xl!;cEr=phLzt3ckffcGmJplnkcF` zdolcgDfj2{*JgrC`NypH76zSNxs|WeI-+L9E#pSUR5~{cLvF{2>)%OtA;sW8BS08DXHSpb&qEaMm zX`68>E9=GIp|AGPasoGB%kCS%h=8agO)VlFFyVXJq|#NWXff@8>8S0W0tTN5xmbHay6g zgze}=jkozKpEZjaO+Q4B>SpWR4w}OMpuWv6<4<#Lz+CUGy%{wD=waH1y4t9YobZoZZ;T zaP6X&!0bzUDA`R(7@?&h#Q7G&9xs>+sng5Z-eE`%_F=z+K8hZyPH)Z~=*_)}d8F4c zjrjq+1=Z>8B)wgv*F$=7(%VCzy(F>sf6+Tog8}BTbPFQ&`y)**Jw& zO_5DgXlaTxg{QDun7+$1-4qdd4taSNnE?`r5lbTuGw%j!a&oK`YvhxrzwmF*bfTMccgTtCFT@8)spriaL_!g7@V p&yE#O#A+H8zq$o$ZeZiB-5D8Y4f(Yk@&SI7WLA_2 zl3co)>h9|5KAyh50nG6bVGvOJA7!J$&`P<;-^oghu!i&}>bK+7#4Xf2ndw?(;A?Uanwd2E{Z_k(S`+nbj^T$6Aeg$v< zxdhsAFo8ojY~W}kjwkQ}P8c|uKwR_VIHix%2@GJc32hi^#u*GZ;zdngN+5%m8}W+1 zj2IX-FlOMafKe_fZ%DcVn?|y3!J4&;R!+Ls`HDS>q(wxh<%g(>AtNTLa}jksBvpOl`h?-gdupRozwU2~b7!SD_-ig?dcc*Pf;8belio7PRymY3mabNr1|0E|}vt6KPp}iruAZ>@H8a0l? zc(s2|7~}6nSt>CXIfhr9xU69&!; zbXHq9%l7o8<6CDu&-Df?w_R+&85ScXX2x-pH<)Ls6q{-1((SMR{CIxx){VtaKUtjn zXz9xj9xmKiygB!9;la{34-8D2cpYyDY6d-FqKq6vtvB8T*RjEm}Mo`<|Af0s2lDeD6Rjo@E%j(1qPNj6M8aL^qUWT5c-4;Y!8~#S0fwVy(ewWZw3Fsu%A{1#3 z+`Nz02((xAIq411H-}<1^k(#;k4Cuev5&v$)LtUh#*%_LSf>MBuLG@^-VnjJ{4or; zl~n(0Xv9GVeW(s1S%XLhA#mRYTB5a9)aL@m^E@NiU*jI&y`N8lK1Fc^$Kp-@0>%AS Ar~m)} diff --git a/target/classes/com/wip/utils/APIResponse.class b/target/classes/com/wip/utils/APIResponse.class deleted file mode 100644 index 71ff7c005c2901e46dfaf712ce7d4efb27bf5685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2279 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 diff --git a/target/classes/com/wip/utils/DateKit.class b/target/classes/com/wip/utils/DateKit.class deleted file mode 100644 index 6247508ce353e98e674bcde137a334a7881154f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmZuw%Tg0T6g^EI1H%MJ0s#So2x=0L@e%QX#AL9Zy zhLS3mF8mU|!t&gi@X#=e?%SttpL_1!K)5BTnZZ&!4EujY#Uuqa!KiUftB|H~*OD!x7k6$Szm&e|39frSZNRTvMp zE^S287A<7)PyrTh;HHH~c&spT=~c4dbFbfQ?YdQ;PUK4RWJWr=|G7)zv)%o4Uxk7} zE5cVnYf6~r3mps|a}2DCB*zrjHfKsjtk8z~%Af~nj`08-z%XMgOuz^-T=iiTV?^Ze z3+6>QCr{9`nH@$%w-K8^M*N82MWS>-lp)4sT){YJi6$^ftWRw1P-+qiWv1{GsS_BR zb8Yml%@@9*?LZZ*ICJm0=gz#nKfM6h#+m^g)#1NU&yZM)&I-S!D7HicvRr*_C?{t2ql z1@AM=#pKt#XAL6m_haf484%eZ$G);H-wr(MsNHd$sJ1x z5g*FIe;ODvt;lvR5A0qnM8^t4a>wyMS20>*5ISz1OW|3$Xsl*S5}7cNHjzZi#43sm zQ~zBILrKE_ti+K2t>*{ywWv1Qn`UVAKmbEo4y7nTF=-%cQf857sH+@NaNoUgt@XE!kJp;RA{xFswx##0#M$zu{zbUsbL4kcOF kF+<8q--_0WRDS7asAoe=JV24U=+eoKbY&@iA6Eey)};bbP7dqJ|ZL%q7=%<0}H`{Ni1K zp>oia0>`VaFK_ocTQdB{+4AVIszJl??mD5X&Iit+xa~#)-HTl>vMaR> zHzxLYOU9M%wPrJvQFMKGQ~ubKQ7o{MuRe4hJ3DqH!^fVC?RFe@?R75ozT+TrWig4f zJ;!g^^*D6>7E!hE17k;2*PbAY|5sxG+Z`u1y`BC#8vCO)tCYMz@3bMyDI^3Yx*sgZKD0t6v&I%@5aco^0-d`*7h`h+k-=Fu^sGI1Ri{+w2G6BtGCN zi&HpFk9zn|MyI&{P_R-@kxrpne1=?cA45-ITEjFlGzymXwoCnumqy_!vVx#{%#lub zorO-@B8wcRC}N)8i)2|Qw|ivvJth;*6MbGhO));pyAN@OtfzSzLFOM!X_(P-dM?Au zvxkEIVwyBVY6Z(Up!FM$J;97+DltFdWYHSg$LQtB)Xy-A>B)T@-z)AFtg)lfqc5U| zd6h_bDWCv@_|wcfL&_h~n#COdOIX0N`gqb>Ly7N|od}sGpJ|LTayF4vJCwBcilp?v SSfV8H9O4vp&M`>}^Zx@7AyXCr diff --git a/target/classes/com/wip/utils/MapCache$CacheObject.class b/target/classes/com/wip/utils/MapCache$CacheObject.class deleted file mode 100644 index b6c3c72095ad8e016878e61fb7be59e5dd5ac0a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 zcmah|O>fgc5PfSqcAC1hloGz7EddgP@P!+QO9T=nz@aGjO}a|AxK89aX^X^x13w1| zBqAgZ`~ZFw;_c>xv_#@EGoG0@Z{Do@>-UeJ03P992|jKvp@3V)Y#Or_;C6tDfcs9J z2&^{_%n15Wp8CGv3%XOOqw#&=6jO#@_pSGSgyU&)?rugrnCy5CXxOQU+DTASN#rn|^`b1eOI$4q>Q z9nYrv-D-^&DD8F!SzA5VM#0LI`Jp*$h!xxk5ug}i38fIr2m{;|*#7^z0&9O?W-6PE zykB`S8k>AxpAYZCF`SGXLu);m={;~ooTFXkSHjK${YLa1BDz0<6FnHgjkZSczFO28 zZQ1q=i9O=9W1>%R0q=31wTM~bv5t%MCNjLjMuyq3k>PfkE#uOJIi@#Vh3FfcFAN+Q zD&HnQ*wNv*VKQ3aGOjRV)}9BuXTcvAg0JG*4D5^tliB-xhWXP1u!HNi>juSvlK6LE In+GWV0lN608vp6)=DiiolZaYm-IJurZ3OA*}S08I^9g}-o5wSbDr~@=j{IW*H1qKIFC=;;KOnV zHzT~?il862LwGNO0B*_7`w?W33(%C8|Mw8?L=eSF6sx!!_}jbW=voLLM9_uXGJF`u zM{@sIc0Li~dvff)45q9x#=3@R%FJ(Bx7N3Z6FolNdt zYA$tSA*(@K)X<(PxaErJR#r@>YWV>j8vKhlxqUp7FYF{gvx~`U#dgZcWwWT; zWm-FQ**7wJ$QfGcslo?;>w@Nv4T}}mOY}c;LGP#k_6%E~)Lf&*%%#tnJ zo{e7FvPqOavM44Im1L?=b;+f_Y;hbJIRL*(Uu9GyetJnx`yX15B}{YI%U46-k#N0# z(>tmmWPM(=OV$R43?~N)sgz= zt0nfThQupF7*zqoGkM2TUL;$nmh#p$TlCmoZ>I?%+`vhk(hxhi;|z@BtPBYa!>T^g zk;#0)C90C;R+8*uZ+gQlZ_%}Z(|9w4ynzic+R1|*w+cu6p9|rEflX`~xP&Vjjy1(l zlgE73b~db%0UO&?=#+tna130~E2FDv5UTAIb8P8rBGYa(8G66GcT`Y zSd>uQI(hVoz}89hKk&DY>AKO<)oi>1Plfn8Gwq z%W?rN55+XF0$nlzKBXYD6If~1~AVfwL z2EPh&#S8K)gM_%3-b2^gF1p8_;b?achjIR&;k8Um7m7MPiefrB3dHmax?(92(}kvB zji%s>G{qDhi#U!YRyEDsGMp_dz_Y3V=?36*18}+lIPC!@JVlyL4>i()b<)P?gtR%# zGeZ&HecnYA1Bc}kXNEBmZ>tRjwML3j`IhpcJ|+92r%6S` za~$*G7etq}@vkxLF*i>_j|-KCOoqHk?^K{S@I*CJO<4n~8tY6mkE49o_QRsO9#CVO zBx74)6qTJL&TCXufEN9@t`x=i4cwC+?hdjdD)TAA4EX*;B7__I9|(I*zR1~9qj68s jQm*J8eAGkV_s~Rit(`6nmgbs|)qI`z2zR4=I)U&%ew|41 diff --git a/target/classes/com/wip/utils/TaleUtils.class b/target/classes/com/wip/utils/TaleUtils.class deleted file mode 100644 index 899ec5d1de4c64a7034cc6bd13dbbfa015bcc788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9203 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 lx|B5*c+CmFmC$eX?cd}dMB#_{ z;FC{2*#|$?3NBg8AK;I2x$jL#!wPHGntSKmea_kEoPFot|Nj05zzmvEyoIF*mZKQJ ziiS@k_$-Q16eIXN3KdT@tcs&GVO$rxry9P9VhBs(^`(YqQN+YY3?&U40`^?IHpT0! z2wsSFYXB2?8ATe~8eWNYNyFC~zEKcvm~OdNRS;i2G`}~ErtegYXVRAE>Ad4Q{$mBf zOmzgQ3Px5P*IsW{ckRZ8xm%$nzFM=)%BIHIFCl7)C-}{ubn#Y6(5XTl6sBC|y-f&9e|QBt z1xZAqxwj|oN=V?ub?0T|pJ6O>sZ+ROyZinDJD(8>)T*X$9f;eYxs-a*C0jK^adJ=- z{K)|dQergRg}JBr_`bz2gR8D8hGZXf z$^J@Pm?!x@vH?jpB*>m2Mv7NRIX<94bp@qCx~gD&yg9pYIQ{ZJCW&yIh{UFbpyvv|Z}M899KU@@!-CHD)GL9)Es zLgHr(=i=8|xc(DD>g(WZ0)ldg!(73>Bsn-i@69kLFef{jmslmuM$O}+PL?IQ1$Yqq z1Ics?sdTEW?$lE|B56ViuHgW#YPg2$8kaYuG$DtSmzMH5FU=-vt3BRVe150Crg1AsYuJk^ z1vfS9tGc}n)|nUNTn&8k3n~q5Ga$assY)r_+fGjOQymkr^wJNOUF`qF`FY=SaqV2CL#} zjC5Av<_&AHJ7t$mYmvu0B0G|BT<&V-Udqvx7^C~*!UD6aR0INV9wi9V%1TRDhKNOy z{|O=}7^^E3^8)oL+sLep8zm<<1@j8p9f*=8VN$GA%q-8Z&I=rP3vjGr=Cipnaf<>A zC*U8<EZ6Uw?Gq^qG-Z{KCc2 zOP3R4SCZpbuU)?}k(x|T-Mlq@d)AoGWOECPOXl)QzF-wgAD36{%H4bS*FMo8 z+s*E_?4h^Yqz1`J?ArWtE@KNcY&WkYOF*%5_w9tmEl&rz!Aq^wsB(1oL1sW^t?)X2jzhH-Ijcmh{TbJjDr33v0{kJRk+(&%^z zS1oaZA?4G6lTL7z?boyAuhoe}h|l494)0Gi6FcCvGB|s+YAn8HCiS%V-aQxy|LPs@ z+JrC0K^gEi!atw{&PLUcsyxDxwy+XX*VaSog8}VW%Z3n7poO)Eed!JLTT>!c@*p8kBTqN_dY zRKLL9>0{3jl$p4lOh)Fx&0^|6WuXkCP66$DQ&+kD$G_7#CR*zPowm5 - - - - - - t_attach - - - - - aa.id, aa.fname, aa.ftype, aa.fkey, aa.authorId, aa.created, - - - - - - - - - - u.username - - - - - - INSERT INTO - - - fname, - ftype, - fkey, - authorId, - created - - - #{fname, jdbcType=VARCHAR}, - #{ftype, jdbcType=VARCHAR}, - #{fkey, jdbcType=VARCHAR}, - #{authorId, jdbcType=INTEGER}, - UNIX_TIMESTAMP(NOW()) - - - - - - - - - - - - - - - DELETE FROM - - WHERE - id = #{id, jdbcType=INTEGER} - - - \ No newline at end of file diff --git a/target/classes/mapper/CommentMapper.xml b/target/classes/mapper/CommentMapper.xml deleted file mode 100644 index 256fdf4..0000000 --- a/target/classes/mapper/CommentMapper.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - t_comments - - - - cm.coid, cm.cid, cm.created, cm.author, cm.authorId, cm.ownerId, cm.mail, - cm.url, cm.ip, cm.agent, cm.type, cm.status, cm.parent, cm.content - - - - - INSERT INTO - - - cid, created, author,authorId,ownerId,mail, - url, ip, agent, type, status, parent, content - - - #{cid, jdbcType=INTEGER}, - #{created, jdbcType=INTEGER}, - #{author, jdbcType=VARCHAR}, - #{authorId, jdbcType=INTEGER}, - #{ownerId, jdbcType=INTEGER}, - #{email, jdbcType=VARCHAR}, - #{url, jdbcType=VARCHAR}, - #{ip, jdbcType=VARCHAR}, - #{agent, jdbcType=VARCHAR}, - #{type, jdbcType=VARCHAR}, - #{status, jdbcType=VARCHAR}, - #{parent, jdbcType=INTEGER}, - #{content, jdbcType=LONGVARCHAR} - - - - - - - - DELETE FROM - - WHERE - coid = #{coid, jdbcType=INTEGER} - - - - - - - - - - - - - - UPDATE - - SET - status = #{status, jdbcType=VARCHAR} - WHERE - coid = #{coid, jdbcType=INTEGER} - - - - \ No newline at end of file diff --git a/target/classes/mapper/ContentMapper.xml b/target/classes/mapper/ContentMapper.xml deleted file mode 100644 index 0888fd4..0000000 --- a/target/classes/mapper/ContentMapper.xml +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - t_contents - - - - c.cid, c.title, c.titlePic, c.slug, c.created, c.modified, c.content, c.authorId, - c.type, c.status, c.tags, c.categories, c.hits, c.commentsNum, c.allowComment, - c.allowPing, c.allowFeed - - - - - - - - - - INSERT INTO - - - title, titlePic, slug, created, content, authorId, - type, status, tags, categories, hits, commentsNum, allowComment, - allowPing, allowFeed - - - #{title, jdbcType=VARCHAR}, - #{titlePic, jdbcType=VARCHAR}, - #{slug, jdbcType=VARCHAR}, - UNIX_TIMESTAMP(NOW()), - #{content, jdbcType=LONGVARCHAR}, - #{authorId, jdbcType=INTEGER}, - #{type, jdbcType=VARCHAR}, - #{status, jdbcType=VARCHAR}, - #{tags, jdbcType=VARCHAR}, - #{categories, jdbcType=VARCHAR}, - #{hits, jdbcType=INTEGER}, - #{commentsNum, jdbcType=INTEGER}, - #{allowComment, jdbcType=INTEGER}, - #{allowPing, jdbcType=INTEGER}, - #{allowFeed, jdbcType=INTEGER} - - - - - - - - - UPDATE - - - - title = #{title, jdbcType=VARCHAR}, - - - titlePic = #{titlePic, jdbcType=VARCHAR}, - - - slug = #{slug, jdbcType=VARCHAR}, - - - content = #{content, jdbcType=LONGVARCHAR}, - - modified = UNIX_TIMESTAMP(NOW()), - - type = #{type, jdbcType=VARCHAR}, - - - status = #{status, jdbcType=VARCHAR}, - - - tags = #{tags, jdbcType=VARCHAR}, - - - categories = #{categories, jdbcType=VARCHAR}, - - - hits = #{hits, jdbcType=INTEGER}, - - - commentsNum = #{commentsNum, jdbcType=INTEGER}, - - - allowComment = #{allowComment, jdbcType=INTEGER}, - - - allowPing = #{allowPing, jdbcType=INTEGER}, - - - allowFeed = #{allowFeed, jdbcType=INTEGER}, - - - WHERE - cid = #{cid, jdbcType=INTEGER} - - - - - - - - DELETE FROM - - WHERE - cid = #{cid, jdbcType=INTEGER} - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/LogMapper.xml b/target/classes/mapper/LogMapper.xml deleted file mode 100644 index 600a200..0000000 --- a/target/classes/mapper/LogMapper.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - t_logs - - - - - l.id, l.action, l.data, l.authorId, l.ip, l.created - - - - - INSERT INTO - - - action, data, authorId, ip, created, - - - #{action, jdbcType=VARCHAR}, - #{data, jdbcType=VARCHAR}, - #{authorId, jdbcType=INTEGER}, - #{ip, jdbcType=VARCHAR}, - UNIX_TIMESTAMP(NOW()) - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/MetaMapper.xml b/target/classes/mapper/MetaMapper.xml deleted file mode 100644 index 110b679..0000000 --- a/target/classes/mapper/MetaMapper.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - t_metas - - - - m.mid, m.name, m.slug, m.type, m.contentType, m.description, m.sort, m.parent - - - - - - - - - - UPDATE - - - - name = #{name, jdbcType=VARCHAR}, - - - slug = #{slug, jdbcType=VARCHAR}, - - - type = #{type, jdbcType=VARCHAR}, - - - description = #{description, jdbcType=VARCHAR}, - - - sort = #{sort, jdbcType=INTEGER}, - - - parent = #{parent, jdbcType=INTEGER}, - - - WHERE mid = #{mid, jdbcType=INTEGER} - - - - - - - - INSERT INTO - - - name, slug, type, description, sort, parent - - VALUES - - #{name, jdbcType=VARCHAR}, - #{slug, jdbcType=VARCHAR}, - #{type, jdbcType=VARCHAR}, - #{description, jdbcType=VARCHAR}, - #{sort, jdbcType=INTEGER}, - #{parent, jdbcType=INTEGER} - - - - - - - - - DELETE FROM - - WHERE - mid = #{mid, jdbcType=INTEGER} - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/OptionMapper.xml b/target/classes/mapper/OptionMapper.xml deleted file mode 100644 index 6380648..0000000 --- a/target/classes/mapper/OptionMapper.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - t_options - - - - o.name, o.value, o.description - - - - - - - - UPDATE - - - - value = #{value, jdbcType=VARCHAR} - - - description = #{description, jdbcType=VARCHAR} - - - WHERE - name = #{name, jdbcType=VARCHAR} - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/RelationShipMapper.xml b/target/classes/mapper/RelationShipMapper.xml deleted file mode 100644 index 19c2786..0000000 --- a/target/classes/mapper/RelationShipMapper.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - t_relationships - - - - - rs.cid, rs.mid - - - - - - - - - - DELETE FROM - - WHERE - mid = #{mid, jdbcType=INTEGER} - - - - DELETE FROM - - WHERE - cid = #{cid, jdbcType=INTEGER} - - - - - - - - INSERT INTO - - - cid, mid, - - - #{cid, jdbcType=INTEGER}, - #{mid, jdbcType=INTEGER} - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/UserMapper.xml b/target/classes/mapper/UserMapper.xml deleted file mode 100644 index b0c15ab..0000000 --- a/target/classes/mapper/UserMapper.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - t_users - - - - uid,username,password,email,homeUrl,screenName,created,activated,logged,groupName - - - - - - - - - UPDATE - - - - password = #{password, jdbcType=VARCHAR}, - - - screenName = #{screenName, jdbcType=VARCHAR}, - - - email = #{email, jdbcType=VARCHAR} - - - WHERE - uid = #{uid,jdbcType=INTEGER} - - - - \ No newline at end of file diff --git a/target/classes/static/admin/css/contact.css b/target/classes/static/admin/css/contact.css deleted file mode 100644 index d9b1f6e..0000000 --- a/target/classes/static/admin/css/contact.css +++ /dev/null @@ -1,21 +0,0 @@ -/* Form style */ -input, textarea, select { font-size: 15px; font-family:Lora, "Helvetica Neue", Helvetica, Arial, sans-serif; color:#888; border:0; -webkit-transition: all 0.2s ease 0s; -moz-transition: all 0.2s ease 0s; -o-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; float:none; display:block; margin:0px; -webkit-appearance: none; background:none } -textarea { resize: none; } -#message { margin: 0; padding: 0px; z-index:200; height:auto; } -.error_message, #success_page { display: block; height:auto; color:#d31800; font-style:italic; font-size: 12px; padding: 10px 0px 0px 0px; line-height:1.5; margin-bottom:-10px; position:relative; } -#success_page { color:#2b2b2b !important; } -.loader { display:none; } - -/* Form Element Styling */ -.form-part { padding: 0; margin-top:0px; } -.form-part > textarea, .form-part > select, .form-part > input:not([type="submit"]):not([type="image"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]) { - display: block; - width: 100%; - padding: 12px 15px 14px; margin-bottom: 10px; border:1px dotted #d8d8d8; text-align: left; border-radius:3px; line-height: 20px; -} -.lt-ie9 .form-part textarea, .lt-ie9 .form-part select, .lt-ie9 .form-part input { display: block; width: 100%; padding: 25px 29px; font-size: 17px; border-bottom:1px solid #d8d8d8; text-align: left; font-style: normal; } -.form-part > textarea { height: 200px; resize: none; } -.form-part > .input-wrapper { position: relative; } -.send-btn { border-radius:30px; border:1px solid #d8d8d8; padding:10px 25px 12px; line-height:1; height:36px; display:inline-block; margin-bottom:20px; margin-top:20px; font-size:11px !important; text-transform:uppercase; font-weight:400; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; color:#2b2b2b; position:relative; -} -.send-btn:hover { background:#d8d8d8; } diff --git a/target/classes/static/admin/css/flexslider.css b/target/classes/static/admin/css/flexslider.css deleted file mode 100644 index cd9bb05..0000000 --- a/target/classes/static/admin/css/flexslider.css +++ /dev/null @@ -1,71 +0,0 @@ -/* - * jQuery FlexSlider v2.0 - * http://www.woothemes.com/flexslider/ - * - * Copyright 2012 WooThemes - * Free to use under the GPLv2 license. - * http://www.gnu.org/licenses/gpl-2.0-rainbow.html - * - * Contributing author: Tyler Smith (@mbmufffin) - */ - - -/* Browser Resets */ -.flex-container a:active, -.flexslider a:active, -.flex-container a:focus, -.flexslider a:focus {outline: none;} -.slides, -.flex-control-nav, -.flex-direction-nav {margin: 0; padding: 0; list-style: none;} - -/* FlexSlider Necessary Styles -*********************************/ -.flexslider {margin: 0; padding: 0; } -.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */ -.flexslider .slides img {width: 100%; display: block;} -.flex-pauseplay span {text-transform: capitalize;} - -/* Clearfix for the .slides element */ -.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;} -html[xmlns] .slides {display: block;} -* html .slides {height: 1%;} - -/* No JavaScript Fallback */ -/* If you are not using another script, such as Modernizr, make sure you - * include js that eliminates this class on page load */ -.no-js .slides > li:first-child {display: block;} - - -/* FlexSlider Default Theme -*********************************/ -.flexslider { position:relative;} -.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;} -.loading .flex-viewport {max-height: 300px;} -.flexslider .slides {zoom: 1;} - -.carousel li {margin-right: 5px} - - -/* Direction Nav */ -.flex-direction-nav {*height: 0; z-index:20;} -.flex-direction-nav a { margin: 0px 0 0; z-index:20; display: block; position: absolute; top: 50%; margin-top:-32px; cursor: pointer; text-indent: -9999px; opacity: 0; -webkit-transition: all 0.2s ease-in-out 0s; -moz-transition: all 0.2s ease-in-out 0s; -o-transition: all 0.2s ease-in-out 0s; transition: all 0.2s ease-in-out 0s; display:inline-block; width:54px; height:54px;} - -.flex-direction-nav .flex-next {background:url("../images/bg-next.png") center no-repeat; background-size:24px 24px; right: -55px; border: 0; } -.flex-direction-nav .flex-prev {background:url("../images/bg-prev.png") center no-repeat; background-size:24px 24px; left: -55px; border: 0; } - -.flexslider/*:hover*/ .flex-next {opacity: 1; right:35px; } -.flexslider/*:hover*/ .flex-prev {opacity: 1; left:35px; } - -/* Control Nav */ -.flex-control-nav {width: 100%; position: absolute; bottom: -40px; text-align: center; display:none !important;} -.flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;} -.flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);} -.flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); } -.flex-control-paging li a.flex-active { background: #000; background: rgba(0,0,0,0.9); cursor: default; } - -.flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;} -.flex-control-thumbs li {width: 25%; float: left; margin: 0;} -.flex-control-thumbs img {width: 100%; display: block; opacity: .7; cursor: pointer;} -.flex-control-thumbs img:hover {opacity: 1;} -.flex-control-thumbs .flex-active {opacity: 1; cursor: default;} diff --git a/target/classes/static/admin/css/reset.css b/target/classes/static/admin/css/reset.css deleted file mode 100644 index e1de754..0000000 --- a/target/classes/static/admin/css/reset.css +++ /dev/null @@ -1,97 +0,0 @@ -@charset "utf-8"; - -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -font, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td { - margin: 0; - padding: 0; - border: 0; - outline: 0; - font-weight: inherit; - font-style: inherit; - font-size: 100%; - font-family: inherit; - vertical-align: baseline; -} - -:focus { - outline: 0; -} - -body { - line-height: 1; - color: black; - /*background: white;*/ -} - -ol, -ul { - list-style: none; -} - -table { - border-collapse: separate; - border-spacing: 0; -} - -caption, -th, -td { - text-align: left; - font-weight: normal; -} diff --git a/target/classes/static/admin/css/responsive.css b/target/classes/static/admin/css/responsive.css deleted file mode 100644 index 7d4fa1a..0000000 --- a/target/classes/static/admin/css/responsive.css +++ /dev/null @@ -1,65 +0,0 @@ -@charset "utf-8"; - -@media only screen and (max-width: 1350px) { - #header, #footer .padding-wrapper { padding:23px 25px 13px; } -} - -@media only screen and (max-width: 1320px) { - #container { width:960px; } -} - -@media only screen and (max-width: 992px) { - #container { width:640px !important; } - .col3-3, .col4-3 { width:620px; } -} - -@media only screen and (max-width: 667px) { - #container { width:100% !important; } - .col3-3, .col4-3, .col2-3.half, .col1-3.double, .col2-3, .col1-3 { width:calc(100% - 40px); margin-left:20px; height:auto; } - .col2-3 .parent { width:300px; height:auto; } - - .col2-3 .parent, .parent { width:100%; position:relative } - - .tweet-icon { margin-top:15px; } - .tweets-container { margin-bottom:20px; } -} - -@media only screen and (max-width: 480px) { - .logo-wrapper { position:absolute; left:0; margin-left:15px; } - #header .social-list { display:none; } - nav .social-list { display:block; } - - #container { width:100%; } - .col3-3, .col4-3, .col2-3.half, .col1-3.double, .col2-3, .col1-3 { width:calc(100% - 20px); margin-bottom:0px; margin-left:10px; height:auto; } - - .col2-3 .parent, .boxed { padding:27px 35px !important; position:relative } - - h1 { font-size:44px; line-height:1.2; letter-spacing:-2px; margin-bottom:20px; } - h2 { font-size:34px; line-height:1.25; letter-spacing:-1px; } - h2 strong { letter-spacing:0px; } - h3 { font-size:26px; } - .col2-3 h2, .col2-3 h3, .col3-3 h2 { padding-bottom:0; } - - .email { font-size:22px; } - - .comment { padding:30px 0 25px } - .commenter-avatar { padding: 0; margin: 0 auto; width: 150px; display:inline-block; float:none } - .comment-content { padding-top:20px; display:block; width:100%; max-width:100%; } - .comment.reply.level-1 { padding-left:0 } - .comment-form-wrapper { padding-top:29px; } - .comment-form-icon-wrapper { position: relative; top: 0; left: 0; text-align:center; margin:0 auto; margin-bottom:30px; } - .comment-form-icon-wrapper:before { display: inline-block; } - .comment-form { padding: 0; } - input, textarea { width: 100% !important; } - .left-to-avatar { padding-left:0px; } - .avatar { float:none; margin-right:0px; margin-bottom:20px; display:inline-block } - .form-part { padding-top:15px; } -} - -/* Safari 6.1+ (9.0 is the latest version of Safari at this time) */ - -@media screen and (min-color-index:0) -and(-webkit-min-device-pixel-ratio:0) { @media -{ - .button { padding:11px 25px 0px; } -}} diff --git a/target/classes/static/admin/css/style.min.css b/target/classes/static/admin/css/style.min.css deleted file mode 100644 index 6e8ec58..0000000 --- a/target/classes/static/admin/css/style.min.css +++ /dev/null @@ -1 +0,0 @@ -body{background:#f5f5f5;font-family:'Noto Sans',sans-serif;margin:0}html{overflow-x:hidden;position:relative;min-height:100%;background:#f5f5f5}h1,h2,h3,h4,h5,h6{color:#505458;font-family:'Roboto',sans-serif;margin:10px 0}h1{line-height:43px}h2{line-height:35px}h3{line-height:30px}h3 small{color:#444}h4{line-height:22px}h4 small{color:#444}h5 small{color:#444}*{outline:none!important}a:hover{outline:0;text-decoration:none}a:active{outline:0;text-decoration:none}a:focus{outline:0;text-decoration:none}.container{width:auto}.container-alt{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px}.footer{background-color:#f9f9f9;border-top:1px solid rgba(0,0,0,0.05);bottom:0;color:#58666e;text-align:left!important;padding:20px 30px;position:absolute;right:0;left:240px}#wrapper{height:100%;overflow:hidden;width:100%}.page{bottom:0;left:0;right:0;top:0}.page-title{margin-bottom:24px}.social-links li a{-webkit-border-radius:50%;background:#EFF0F4;border-radius:50%;color:#7A7676;display:inline-block;height:30px;line-height:30px;text-align:center;width:30px}.row{margin-right:-10px;margin-left:-10px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{padding-left:10px;padding-right:10px}.breadcrumb{background-color:transparent;margin-bottom:15px;margin-top:5px}.dropdown-menu{padding:4px 0;-webkit-animation:dropdownOpen .3s ease-out;-o-animation:dropdownOpen .3s ease-out;animation:dropdownOpen .3s ease-out;border:0;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26)}.dropdown-menu > li > a{padding:6px 20px}.bg-primary{background-color:#6e8cd7!important}.bg-success{background-color:#33b86c!important}.bg-info{background-color:#29b6f6!important}.bg-warning{background-color:#ffd740!important}.bg-danger{background-color:#ef5350!important}.bg-muted{background-color:#d0d0d0!important}.bg-inverse{background-color:#212121!important}.bg-purple{background-color:#7e57c2!important}.bg-pink{background-color:#ec407a!important}.bg-white{background-color:#fff!important}.text-white{color:#fff}.text-danger{color:#ef5350}.text-muted{color:#98a6ad}.text-primary{color:#6e8cd7}.text-warning{color:#ffd740}.text-success{color:#33b86c}.text-info{color:#29b6f6}.text-inverse{color:#212121}.text-pink{color:#ec407a}.text-purple{color:#7e57c2}.text-dark{color:#797979!important}.form-control{-moz-border-radius:2px;-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);background-color:#fafafa;border-radius:2px;border:1px solid #eee;box-shadow:none;color:rgba(0,0,0,0.6);font-size:14px}.form-control:focus{background:#fff;border:1px solid #e0e0e0;box-shadow:none}.label-primary{background-color:#6e8cd7}.label-success{background-color:#33b86c}.label-info{background-color:#29b6f6}.label-warning{background-color:#ffd740}.label-danger{background-color:#ef5350}.label-purple{background-color:#7e57c2}.label-pink{background-color:#ec407a}.label-inverse{background-color:#212121}.badge{text-transform:uppercase;font-weight:400;padding:3px 5px;font-size:12px;margin-top:1px}.badge-xs{font-size:9px}.badge-xs,.badge-sm{-webkit-transform:translate(0,-2px);-ms-transform:translate(0,-2px);-o-transform:translate(0,-2px);transform:translate(0,-2px)}.badge-primary{background-color:#6e8cd7}.badge-success{background-color:#33b86c}.badge-info{background-color:#29b6f6}.badge-warning{background-color:#ffd740}.badge-danger{background-color:#ef5350}.badge-purple{background-color:#7e57c2}.badge-pink{background-color:#ec407a}.badge-inverse{background-color:#212121}.pagination > li > a{background-color:#fff;border:1px solid #ddd;color:#373e4a}.pagination > li > span{background-color:#fff;border:1px solid #ddd;color:#373e4a}.pagination > .active > a,.pagination > .active > span,.pagination > .active > a:hover,.pagination > .active > span:hover,.pagination > .active > a:focus,.pagination > .active > span:focus{background-color:#6e8cd7;border-color:#6e8cd7}.tabs{background-color:#fff;margin:0 auto;padding:0;position:relative;white-space:nowrap;width:100%}.tabs li.tab{background-color:#fff;display:block;float:left;margin:0;text-align:center}.tabs li.tab a{-moz-transition:color .28s ease;-ms-transition:color .28s ease;-o-transition:color .28s ease;-webkit-transition:color .28s ease;color:#ee6e73;display:block;height:100%;text-decoration:none;transition:color .28s ease;width:100%}.tabs li.tab a.active{color:#6e8cd7!important}.tabs .indicator{background-color:#6e8cd7;bottom:0;height:2px;position:absolute;will-change:left,right}.tabs-top .indicator{top:0}.nav.nav-tabs + .tab-content{background:#fff;margin-bottom:30px;padding:30px}.tabs-vertical-env{background-color:#eee;margin-bottom:30px}.tabs-vertical-env .tab-content{background:#fff;display:table-cell;margin-bottom:30px;padding:30px;vertical-align:top}.tabs-vertical-env .nav.tabs-vertical{display:table-cell;min-width:120px;vertical-align:top;width:150px}.tabs-vertical-env .nav.tabs-vertical li.active > a{background-color:#fff;border:0}.tabs-vertical-env .nav.tabs-vertical li > a{color:#333;text-align:center;white-space:nowrap}.nav.nav-tabs > li.active > a{background-color:#fff;border:0}.nav.nav-tabs > li > a,.nav.tabs-vertical > li > a{background-color:transparent;border-radius:0;border:none;color:#333!important;cursor:pointer;line-height:50px;font-weight:500;padding-left:20px;padding-right:20px}.nav.nav-tabs > li > a:hover,.nav.tabs-vertical > li > a:hover{color:#6e8cd7!important}.tab-content{box-shadow:0 1px 1px rgba(0,0,0,0.05);color:#777}.nav.nav-tabs > li:last-of-type a{margin-right:0}.nav.nav-tabs{border-bottom:0;box-shadow:0 1px 1px rgba(0,0,0,0.05)}.navtab-bg{background-color:#eee}.nav-tabs.nav-justified > .active > a,.nav-tabs.nav-justified > .active > a:hover,.nav-tabs.nav-justified > .active > a:focus,.tabs-vertical-env .nav.tabs-vertical li.active > a{border:none}.nav-tabs > li.active > a,.nav-tabs > li.active > a:focus,.nav-tabs > li.active > a:hover,.tabs-vertical > li.active > a,.tabs-vertical > li.active > a:focus,.tabs-vertical > li.active > a:hover{color:#6e8cd7!important}.dropcap{font-size:3.1em}.dropcap,.dropcap-circle,.dropcap-square{display:block;float:left;font-weight:400;line-height:36px;margin-right:6px;text-shadow:none}.modal .modal-dialog .modal-content{-moz-box-shadow:none;-webkit-box-shadow:none;border-color:#DDD;border-radius:2px;box-shadow:none;padding:30px}.modal .modal-dialog .modal-content .modal-header{border-bottom-width:2px;margin:0;padding:0}.modal .modal-dialog .modal-content .modal-body{padding:20px 0}.modal .modal-dialog .modal-content .modal-footer{padding:0}.modal-full{width:98%}.modal-content .nav.nav-tabs + .tab-content{margin-bottom:0}.modal-content .panel-group{margin-bottom:0}.modal-content .panel{border-top:none}.tabs-vertical-env .tab-content{margin-bottom:0}.table > thead > tr > td.middle-align,.table > tbody > tr > td.middle-align,.table > tfood > tr > td.middle-align,.table > thead > tr > th.middle-align,.table > tbody > tr > th.middle-align,.table > tfood > tr > th.middle-align{vertical-align:middle}.legendLabel{padding-left:10px!important}.alert-success{background-color:#ccedda;border-color:#7ad19f;color:#33b86c}.alert-success .alert-link{color:#268a51}.list-group-item.active{background-color:#ddd;border-color:#ddd;color:#444;z-index:2}.list-group-item.active:hover{background-color:#ddd;border-color:#ddd;color:#444;z-index:2}.list-group-item.active:hover .list-group-item-text{color:#6e8cd7}.list-group-item.active:focus{background-color:#ddd;border-color:#ddd;color:#444;z-index:2}.list-group-item.active:focus .list-group-item-text{color:#6e8cd7}.list-group-item.active .list-group-item-text{color:#6e8cd7}.list-group-item{border-radius:0;padding:12px 20px}.list-group-item:first-child{border-radius:0;padding:12px 20px}.list-group-item:last-child{border-radius:0;padding:12px 20px}.list-group-item-heading{font-weight:300}.list-group-item.active > .badge{color:#6e8cd7}.nav-pills > .active > a > .badge{color:#6e8cd7}.has-success .form-control{border-color:#33b86c;box-shadow:none!important}.has-warning .form-control{border-color:#ffd740;box-shadow:none!important}.has-error .form-control{border-color:#ef5350;box-shadow:none!important}.input-group-addon{border-radius:2px;border:1px solid #eee}.p-0{padding:0!important}.p-t-0{padding-top:0!important}.p-t-10{padding-top:10px!important}.p-b-10{padding-bottom:10px!important}.m-0{margin:0!important}.m-r-5{margin-right:5px}.m-r-10{margin-right:10px}.m-r-15{margin-right:15px!important}.m-l-10{margin-left:10px}.m-l-15{margin-left:15px}.m-t-5{margin-top:5px!important}.m-t-0{margin-top:0}.m-t-10{margin-top:10px!important}.m-t-15{margin-top:15px!important}.m-t-20{margin-top:20px}.m-t-30{margin-top:30px!important}.m-t-40{margin-top:40px!important}.m-b-0{margin-bottom:0}.m-b-5{margin-bottom:5px}.m-b-10{margin-bottom:10px}.m-b-15{margin-bottom:15px}.m-b-30{margin-bottom:30px}.w-xs{min-width:80px}.w-sm{min-width:95px}.w-md{min-width:110px}.w-lg{min-width:140px}.m-h-50{min-height:50px}.l-h-34{line-height:34px}.font-light{font-weight:300}.wrapper-md{padding:20px}.pull-in{margin-left:-15px;margin-right:-15px}.b-0{border:none!important}.no-border{border:none}.bx-shadow{-moz-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);box-shadow:0 1px 2px 0 rgba(0,0,0,0.1)}.mx-box{max-height:380px;min-height:380px}.thumb-sm{height:32px;width:32px}.thumb-md{height:48px;width:48px}.thumb-lg{height:88px;width:88px}.grid-structure .grid-container{background-color:#f5f5f5;margin-bottom:10px;padding:10px 20px}.icon-list div{cursor:pointer;line-height:40px;white-space:nowrap}.icon-list i{-webkit-transition:all .2s;-webkit-transition:font-size .2s;display:inline-block;font-size:14px;margin:0;text-align:center;transition:all .2s;transition:font-size .2s;vertical-align:middle;width:40px}.icon-list .col-md-3:hover i{-o-transform:scale(2);-webkit-transform:scale(2);moz-transform:scale(2);transform:scale(2)}.ionicon-list i{font-size:16px}.ionicon-list .col-md-3:hover i{-o-transform:scale(2);-webkit-transform:scale(2);moz-transform:scale(2);transform:scale(2)}.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;will-change:opacity,transform;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);-webkit-transition:all .7s ease-out;-moz-transition:all .7s ease-out;-o-transition:all .7s ease-out;-ms-transition:all .7s ease-out;transition:all .7s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}.waves-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle,white 100%,black 100%);text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-block{display:block}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(0.5)}60%{opacity:1;-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cd-bounce-1{0%{opacity:0;-moz-transform:scale(0.5)}60%{opacity:1;-moz-transform:scale(1.2)}100%{-moz-transform:scale(1)}}@-o-keyframes cd-bounce-1{0%{opacity:0;-o-transform:scale(0.5)}60%{opacity:1;-o-transform:scale(1.2)}100%{-o-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-ms-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}60%{opacity:1;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}100%{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2{0%{opacity:0;-moz-transform:translateX(-100px)}60%{opacity:1;-moz-transform:translateX(20px)}100%{-moz-transform:translateX(0)}}@-o-keyframes cd-bounce-2{0%{opacity:0;-o-transform:translateX(-100px)}60%{opacity:1;-o-transform:translateX(20px)}100%{opacity:1;-o-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);-moz-transform:translateX(-100px);-ms-transform:translateX(-100px);-o-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);-moz-transform:translateX(20px);-ms-transform:translateX(20px);-o-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes dropdownOpen{0%{opacity:0;-webkit-transform:scale(0)}100%{-webkit-transform:scale(1)}}@-moz-keyframes dropdownOpen{0%{opacity:0;-moz-transform:scale(0)}100%{-moz-transform:scale(1)}}@-o-keyframes dropdownOpen{0%{opacity:0;-o-transform:scale(0)}100%{-o-transform:scale(1)}}@keyframes dropdownOpen{0%{opacity:0;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@-webkit-keyframes animationProgress{from{width:0}}@keyframes animationProgress{from{width:0}}@-webkit-keyframes loaderAnimate{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(220deg)}}@-moz-keyframes loaderAnimate{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(220deg)}}@-o-keyframes loaderAnimate{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(220deg)}}@keyframes loaderAnimate{0%{transform:rotate(0deg)}100%{transform:rotate(220deg)}}@-webkit-keyframes loaderAnimate2{0%{box-shadow:inset #555 0 0 0 8px;-webkit-transform:rotate(-140deg)}50%{box-shadow:inset #555 0 0 0 2px}100%{box-shadow:inset #555 0 0 0 8px;-webkit-transform:rotate(140deg)}}@-moz-keyframes loaderAnimate2{0%{box-shadow:inset #555 0 0 0 8px;-moz-transform:rotate(-140deg)}50%{box-shadow:inset #555 0 0 0 2px}100%{box-shadow:inset #555 0 0 0 8px;-moz-transform:rotate(140deg)}}@-o-keyframes loaderAnimate2{0%{box-shadow:inset #555 0 0 0 8px;-o-transform:rotate(-140deg)}50%{box-shadow:inset #555 0 0 0 2px}100%{box-shadow:inset #555 0 0 0 8px;-o-transform:rotate(140deg)}}@keyframes loaderAnimate2{0%{box-shadow:inset #555 0 0 0 8px;-webkit-transform:rotate(-140deg);-moz-transform:rotate(-140deg);-ms-transform:rotate(-140deg);transform:rotate(-140deg)}50%{box-shadow:inset #555 0 0 0 2px}100%{box-shadow:inset #555 0 0 0 8px;-webkit-transform:rotate(140deg);-moz-transform:rotate(140deg);-ms-transform:rotate(140deg);transform:rotate(140deg)}0%{box-shadow:inset #999 0 0 0 17px;transform:rotate(-140deg)}50%{box-shadow:inset #999 0 0 0 2px}100%{box-shadow:inset #999 0 0 0 17px;transform:rotate(140deg)}}@media print{.logo,.page-title,.breadcrumb,.footer{display:none!important;margin:0!important;padding:0!important}.left{display:none}.right-bar{display:none!important}.content{margin-top:0;padding-top:0}.content-page{margin-left:0!important;margin-top:0}}.btn{-moz-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);border-radius:2px;box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);font-family:'Nunito',sans-serif;letter-spacing:.2px;opacity:.93}.btn:hover{-moz-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);opacity:1}.btn:focus{-moz-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);opacity:1}.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger,.btn-inverse,.btn-purple,.btn-pink{color:#fff!important}.btn-default:hover{background-color:#f9f9f9}.btn-default:focus{background-color:#f9f9f9}.btn-default:active{background-color:#f9f9f9}.btn-primary,.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open > .dropdown-toggle.btn-primary{background-color:#6e8cd7!important;border:1px solid #6e8cd7!important}.btn-success,.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open > .dropdown-toggle.btn-success{background-color:#33b86c!important;border:1px solid #33b86c!important}.btn-info,.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open > .dropdown-toggle.btn-info{background-color:#29b6f6!important;border:1px solid #29b6f6!important}.btn-warning,.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open > .dropdown-toggle.btn-warning{background-color:#ffd740!important;border:1px solid #ffd740!important;color:#333!important}.btn-danger,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open > .dropdown-toggle.btn-danger{background-color:#ef5350!important;border:1px solid #ef5350!important}.btn-inverse,.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.focus,.btn-inverse:active,.btn-inverse:focus,.btn-inverse:hover,.open > .dropdown-toggle.btn-inverse{background-color:#212121!important;border:1px solid #212121!important;color:#fff}.btn-purple,.btn-purple:hover,.btn-purple:focus,.btn-purple:active{background-color:#7e57c2!important;border:1px solid #7e57c2!important;color:#fff}.btn-pink,.btn-pink:hover,.btn-pink:focus,.btn-pink:active{background-color:#ec407a!important;border:1px solid #ec407a!important;color:#fff}.btn-custom.btn-default:hover{color:#333!important}.btn-custom.btn-default:active{color:#333!important}.btn-custom.btn-default:focus{color:#333!important}.btn-custom.btn-primary{color:#6e8cd7!important}.btn-custom.btn-success{color:#33b86c!important}.btn-custom.btn-info{color:#29b6f6!important}.btn-custom.btn-warning{color:#ffd740!important}.btn-custom.btn-danger{color:#ef5350!important}.btn-custom.btn-inverse{color:#212121!important}.btn-custom.btn-purple{color:#7e57c2!important}.btn-custom.btn-pink{color:#ec407a!important}.btn-rounded{border-radius:2em;padding:6px 18px}.btn-custom{-moz-border-radius:2px;-moz-transition:all 400ms ease-in-out;-o-transition:all 400ms ease-in-out;-webkit-border-radius:2px;-webkit-transition:all 400ms ease-in-out;background:transparent;background-color:transparent!important;border-radius:2px;border-width:1px;transition:all 400ms ease-in-out}.btn-custom:hover{color:#fff!important}.btn-custom:focus{color:#fff!important}.fileupload{overflow:hidden;position:relative}.fileupload input.upload{cursor:pointer;filter:alpha(opacity=0);font-size:20px;margin:0;opacity:0;padding:0;position:absolute;right:0;top:0}.panel{-moz-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);border-radius:0;border:none;box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);margin-bottom:20px}.panel .panel-body{padding:20px}.panel .panel-body p{margin:0}.panel .panel-body p + p{margin-top:15px}.panel-heading{border-radius:0;border:none!important;padding:10px 20px}.panel-default > .panel-heading{background-color:#fafafa;border-bottom:none;color:#797979}.panel-title{font-size:14px;font-weight:600;margin-bottom:0;margin-top:0;text-transform:uppercase}.panel-footer{background:#fafafa;border-top:0}.panel-color .panel-title{color:#fff}.panel-primary > .panel-heading{background-color:#6e8cd7}.panel-success > .panel-heading{background-color:#33b86c}.panel-info > .panel-heading{background-color:#29b6f6}.panel-warning > .panel-heading{background-color:#ffd740}.panel-danger > .panel-heading{background-color:#ef5350}.panel-purple > .panel-heading{background-color:#7e57c2}.panel-pink > .panel-heading{background-color:#ec407a}.panel-inverse > .panel-heading{background-color:#212121}.panel-border{border-radius:3px}.panel-border .panel-heading{background-color:#fff;border-top:3px solid #ccc!important;border-radius:3px;padding:10px 20px 0}.panel-border .panel-body{padding:15px 20px 20px}.panel-border.panel-primary .panel-heading{border-color:#6e8cd7!important;color:#6e8cd7!important}.panel-border.panel-success .panel-heading{border-color:#33b86c!important;color:#33b86c!important}.panel-border.panel-info .panel-heading{border-color:#29b6f6!important;color:#29b6f6!important}.panel-border.panel-warning .panel-heading{border-color:#ffd740!important;color:#ffd740!important}.panel-border.panel-danger .panel-heading{border-color:#ef5350!important;color:#ef5350!important}.panel-border.panel-purple .panel-heading{border-color:#7e57c2!important;color:#7e57c2!important}.panel-border.panel-pink .panel-heading{border-color:#ec407a!important;color:#ec407a!important}.panel-border.panel-inverse .panel-heading{border-color:#212121!important;color:#212121!important}.panel-fill{border-radius:3px}.panel-fill .panel-heading{background-color:transparent;color:#fff;border-bottom:1px solid rgba(255,255,255,0.5)!important}.panel-fill .panel-body{color:rgba(255,255,255,0.85)}.panel-fill.panel-default .panel-body{color:#666}.panel-fill.panel-default .panel-heading{background-color:transparent;color:#333;border-bottom:1px solid rgba(0,0,0,0.1)!important}.panel-fill.panel-primary{background-color:#489ce7}.panel-fill.panel-success{background-color:#58c386}.panel-fill.panel-info{background-color:#50c1f4}.panel-fill.panel-warning{background-color:#fcdc63}.panel-fill.panel-danger{background-color:#ef7270}.panel-fill.panel-purple{background-color:#9475cb}.panel-fill.panel-pink{background-color:#ec6391}.panel-fill.panel-inverse{background-color:#4a4a4a}.panel-group .panel .panel-heading a[data-toggle=collapse].collapsed:before{content:'\f067'}.panel-group .panel .panel-heading .accordion-toggle.collapsed:before{content:'\f067'}.panel-group .panel .panel-heading a[data-toggle=collapse]{display:block}.panel-group .panel .panel-heading a[data-toggle=collapse]:before{content:'\f068';display:block;float:right;font-family:'FontAwesome';font-size:14px;text-align:right;width:25px}.panel-group .panel .panel-heading .accordion-toggle{display:block}.panel-group .panel .panel-heading .accordion-toggle:before{content:'\f068';display:block;float:right;font-family:'FontAwesome';font-size:14px;text-align:right;width:25px}.panel-group .panel .panel-heading + .panel-collapse .panel-body{border-top:none}.panel-group .panel-heading{padding:12px 26px}.panel-group.panel-group-joined .panel + .panel{border-top:1px solid #eee;margin-top:0}.panel-group-joined .panel-group .panel + .panel{border-top:1px solid #eee;margin-top:0}.portlet{-moz-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);-moz-transition:all .4s;-o-transition:all .4s;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);-webkit-transition:all .4s;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);margin-bottom:20px;transition:all .4s}.portlet .portlet-heading{border-radius:3px;color:#fff;padding:12px 20px}.portlet .portlet-heading .portlet-title{color:#fff;float:left;font-size:16px;font-weight:600;margin-bottom:0;margin-top:0}.portlet .portlet-heading .portlet-widgets{display:inline-block;float:right;font-size:15px;line-height:30px;padding-left:15px;position:relative;text-align:right}.portlet .portlet-heading .portlet-widgets .divider{margin:0 5px}.portlet .portlet-heading a{color:#999}.portlet .portlet-body{-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;background:#fff;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:15px}.portlet-default .portlet-title{color:#797979!important}.portlet .portlet-heading.bg-purple a,.portlet .portlet-heading.bg-info a,.portlet .portlet-heading.bg-success a,.portlet .portlet-heading.bg-primary a,.portlet .portlet-heading.bg-danger a,.portlet .portlet-heading.bg-warning a,.portlet .portlet-heading.bg-inverse a,.portlet .portlet-heading.bg-pink a{color:#fff}.panel-disabled{background:rgba(243,242,241,0.5);bottom:15px;left:0;position:absolute;right:-5px;top:0}.loader-1{-moz-animation:loaderAnimate 1000ms linear infinite;-o-animation:loaderAnimate 1000ms linear infinite;-webkit-animation:loaderAnimate 1000ms linear infinite;animation:loaderAnimate 1000ms linear infinite;clip:rect(0,30px,30px,15px);height:30px;left:50%;margin-left:-15px;margin-top:-15px;position:absolute;top:50%;width:30px}.loader-1:after{-moz-animation:loaderAnimate2 1000ms ease-in-out infinite;-o-animation:loaderAnimate2 1000ms ease-in-out infinite;-webkit-animation:loaderAnimate2 1000ms ease-in-out infinite;animation:loaderAnimate2 1000ms ease-in-out infinite;border-radius:50%;clip:rect(0,30px,30px,15px);content:'';height:30px;position:absolute;width:30px}.checkbox{padding-left:20px}.checkbox label{display:inline-block;padding-left:5px;position:relative}.checkbox label::before{-o-transition:.3s ease-in-out;-webkit-transition:.3s ease-in-out;background-color:#fff;border-radius:3px;border:1px solid #ccc;content:"";display:inline-block;height:17px;left:0;margin-left:-20px;position:absolute;transition:.3s ease-in-out;width:17px;outline:none!important}.checkbox label::after{color:#555;display:inline-block;font-size:11px;height:16px;left:0;margin-left:-20px;padding-left:3px;padding-top:1px;position:absolute;top:0;width:16px}.checkbox input[type="checkbox"]{cursor:pointer;opacity:0;z-index:1;outline:none!important}.checkbox input[type="checkbox"]:disabled + label{opacity:.65}.checkbox input[type="checkbox"]:focus + label::before{outline-offset:-2px;outline:none}.checkbox input[type="checkbox"]:checked + label::after{content:"\f00c";font-family:'FontAwesome'}.checkbox input[type="checkbox"]:disabled + label::before{background-color:#eee;cursor:not-allowed}.checkbox.checkbox-circle label::before{border-radius:50%}.checkbox.checkbox-inline{margin-top:0}.checkbox.checkbox-single label{height:17px}.checkbox-primary input[type="checkbox"]:checked + label::before{background-color:#6e8cd7;border-color:#6e8cd7}.checkbox-primary input[type="checkbox"]:checked + label::after{color:#fff}.checkbox-danger input[type="checkbox"]:checked + label::before{background-color:#ef5350;border-color:#ef5350}.checkbox-danger input[type="checkbox"]:checked + label::after{color:#fff}.checkbox-info input[type="checkbox"]:checked + label::before{background-color:#29b6f6;border-color:#29b6f6}.checkbox-info input[type="checkbox"]:checked + label::after{color:#fff}.checkbox-warning input[type="checkbox"]:checked + label::before{background-color:#ffd740;border-color:#ffd740}.checkbox-warning input[type="checkbox"]:checked + label::after{color:#fff}.checkbox-success input[type="checkbox"]:checked + label::before{background-color:#33b86c;border-color:#33b86c}.checkbox-success input[type="checkbox"]:checked + label::after{color:#fff}.radio{padding-left:20px}.radio label{display:inline-block;padding-left:5px;position:relative}.radio label::before{-o-transition:border .5s ease-in-out;-webkit-transition:border .5s ease-in-out;background-color:#fff;border-radius:50%;border:1px solid #ccc;content:"";display:inline-block;height:17px;left:0;margin-left:-20px;outline:none!important;position:absolute;transition:border .5s ease-in-out;width:17px}.radio label::after{-moz-transition:-moz-transform .1s cubic-bezier(0.8,-0.33,0.2,1.33);-ms-transform:scale(0,0);-o-transform:scale(0,0);-o-transition:-o-transform .1s cubic-bezier(0.8,-0.33,0.2,1.33);-webkit-transform:scale(0,0);-webkit-transition:-webkit-transform .1s cubic-bezier(0.8,-0.33,0.2,1.33);background-color:#555;border-radius:50%;content:" ";display:inline-block;height:11px;left:3px;margin-left:-20px;position:absolute;top:3px;transform:scale(0,0);transition:transform .1s cubic-bezier(0.8,-0.33,0.2,1.33);width:11px}.radio input[type="radio"]{cursor:pointer;opacity:0;z-index:1;outline:none!important}.radio input[type="radio"]:disabled + label{opacity:.65}.radio input[type="radio"]:focus + label::before{outline-offset:-2px;outline:none}.radio input[type="radio"]:checked + label::after{-ms-transform:scale(1,1);-o-transform:scale(1,1);-webkit-transform:scale(1,1);transform:scale(1,1)}.radio input[type="radio"]:disabled + label::before{cursor:not-allowed}.radio.radio-inline{margin-top:0}.radio.radio-single label{height:17px}.radio-primary input[type="radio"] + label::after{background-color:#6e8cd7}.radio-primary input[type="radio"]:checked + label::before{border-color:#6e8cd7}.radio-primary input[type="radio"]:checked + label::after{background-color:#6e8cd7}.radio-danger input[type="radio"] + label::after{background-color:#ef5350}.radio-danger input[type="radio"]:checked + label::before{border-color:#ef5350}.radio-danger input[type="radio"]:checked + label::after{background-color:#ef5350}.radio-info input[type="radio"] + label::after{background-color:#29b6f6}.radio-info input[type="radio"]:checked + label::before{border-color:#29b6f6}.radio-info input[type="radio"]:checked + label::after{background-color:#29b6f6}.radio-warning input[type="radio"] + label::after{background-color:#ffd740}.radio-warning input[type="radio"]:checked + label::before{border-color:#ffd740}.radio-warning input[type="radio"]:checked + label::after{background-color:#ffd740}.radio-success input[type="radio"] + label::after{background-color:#33b86c}.radio-success input[type="radio"]:checked + label::before{border-color:#33b86c}.radio-success input[type="radio"]:checked + label::after{background-color:#33b86c}.progress{-webkit-box-shadow:none!important;background-color:#f5f5f5;box-shadow:none!important;height:10px;margin-bottom:18px;overflow:hidden}.progress-bar{box-shadow:none;font-size:8px;font-weight:600;line-height:12px}.progress.progress-sm{height:5px!important}.progress.progress-sm .progress-bar{font-size:8px;line-height:5px}.progress.progress-md{height:15px!important}.progress.progress-md .progress-bar{font-size:10.8px;line-height:14.4px}.progress.progress-lg{height:20px!important}.progress.progress-lg .progress-bar{font-size:12px;line-height:20px}.progress-bar-primary{background-color:#6e8cd7}.progress-bar-success{background-color:#33b86c}.progress-bar-info{background-color:#29b6f6}.progress-bar-warning{background-color:#ffd740}.progress-bar-danger{background-color:#ef5350}.progress-bar-inverse{background-color:#212121}.progress-bar-purple{background-color:#7e57c2}.progress-bar-pink{background-color:#ec407a}.progress-animated{-webkit-animation-duration:5s;-webkit-animation-name:animationProgress;-webkit-transition:5s all;animation-duration:5s;animation-name:animationProgress;transition:5s all}.table{margin-bottom:10px}tbody{color:#797979}th{color:#666;font-size:15px}table.focus-on tbody tr.focused th{background-color:#6e8cd7;color:#fff}table.focus-on tbody tr.focused td{background-color:#6e8cd7;color:#fff}.table-rep-plugin tbody th{font-size:14px;font-weight:400}.modal-block{background:transparent;margin:40px auto;max-width:600px;padding:0;position:relative;text-align:left}.dt-buttons{float:left}div#datatable-buttons_info{float:left}table.dataTable th.focus,table.dataTable td.focus{outline:3px solid #6e8cd7!important;outline-offset:-1px}.fixedHeader-floating{top:70px!important}#datatable-editable .actions a{padding:5px}#datatable-editable .form-control{background-color:#fff;width:100%}#datatable-editable .fa-trash-o{color:#ef5350}#datatable-editable .fa-times{color:#ef5350}#datatable-editable .fa-pencil{color:#29b6f6}#datatable-editable .fa-save{color:#33b86c}#datatable td{font-weight:400}div.dataTables_paginate ul.pagination{margin-top:30px}div.dataTables_info{padding-top:38px}.error{color:red}.datepicker{border:1px solid #ddd;padding:8px}.datepicker th{font-size:14px!important}.search-input{margin-bottom:10px}.ms-selectable{box-shadow:none;outline:none!important}.ms-container .ms-list.ms-focus{box-shadow:none}.ms-container .ms-selectable li.ms-hover{background-color:#6e8cd7}.ms-container .ms-selection li.ms-hover{background-color:#6e8cd7}.spinner-buttons.btn-group-vertical .btn{background-color:#eee;border:none!important;box-shadow:none!important;height:17px;line-height:16px;margin:0;padding-left:6px;padding-right:6px;text-align:center;width:22px}.spinner-buttons.btn-group-vertical .btn i{color:#333!important;line-height:10px;margin-top:-3px}.spinner-buttons.btn-group-vertical .btn:first-child{-webkit-border-radius:0 0 0 0!important;border-radius:0 0 0 0!important}.spinner-buttons.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 0!important;border-radius:0 0 0!important}.note-editor{border:1px solid #ddd;position:relative}.note-editor .note-toolbar{background-color:#f3f3f3;border-bottom:1px solid #ddd;margin:0}.note-editor .note-statusbar{background-color:#fff}.note-editor .note-statusbar .note-resizebar{border-top:1px solid #ddd;height:15px;padding-top:3px}.note-popover .popover .popover-content{padding:5px 0 10px 5px}.note-toolbar{padding:5px 0 10px 5px}.code-edit-wrap{padding:0!important}.cm-s-ambiance .CodeMirror-linenumber{color:#bcbcbc}.cm-s-ambiance .CodeMirror-gutters{background-color:#212121!important;box-shadow:none}.cm-s-ambiance.CodeMirror{background-color:#212121!important;box-shadow:none}.bootstrap-timepicker-widget table td a:hover{background-color:transparent;border-color:transparent;border-radius:4px;color:#6e8cd7;text-decoration:none}.editor-horizontal .popover-content{padding:9px 30px}.wizard > .content{background:#fff;min-height:240px;padding:20px}.wizard > .content > .body{padding:0}.wizard > .content > .body input{border:1px solid #eee}.wizard > .content > .body ul > li{display:block;line-height:30px}.wizard > .content > .body label.error{color:#e55957;margin-left:0}.wizard > .content > .body label{display:inline-block;margin-top:10px}.wizard > .steps .number{border-radius:50%;display:inline-block;line-height:30px;margin-right:10px}.wizard > .steps .disabled a{background:#f2f2f2;color:#333;cursor:default}.wizard > .steps .disabled a:hover{background:#f2f2f2;color:#333;cursor:default}.wizard > .steps .disabled a:active{background:#f2f2f2;color:#333;cursor:default}.wizard > .steps .current a{background:#6e8cd7}.wizard > .steps .current a:hover{background:#6e8cd7}.wizard > .steps .current a:hover .number{background:transparent;color:#fff}.wizard > .steps .current a:active{background:#6e8cd7}.wizard > .steps .current a:active .number{background:transparent;color:#fff}.wizard > .steps .current a .number{background:transparent;color:#fff}.wizard > .steps .done a{background:#ccc}.wizard > .steps .done a:hover{background:#ccc}.wizard > .steps .done a:active{background:#ccc}.wizard > .steps a,.wizard > .steps a:hover,.wizard > .steps a:active,.wizard > .content{border-radius:2px}.wizard > .actions{margin-bottom:30px}.wizard > .actions a{background:#6e8cd7;border-radius:2px;color:#fff}.wizard > .actions a:hover{background:#6e8cd7;border-radius:2px;color:#fff}.wizard > .actions a:active{background:#6e8cd7;border-radius:2px;color:#fff}.wizard > .actions .disabled a{background:#e2e2e2;color:#333}.wizard > .actions .disabled a:hover{background:#e2e2e2;color:#333}.wizard > .actions .disabled a:active{background:#e2e2e2;color:#333}.datepicker table tr td.active,.datepicker table tr td.active:hover,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover{background-color:#6e8cd7!important;background-image:none;box-shadow:none}.select2-container .select2-choice{background-image:none!important;border:none!important;height:auto!important;padding:0!important;line-height:22px!important;background-color:transparent!important;box-shadow:none!important}.select2-container .select2-choice .select2-arrow{background-image:none!important;background:transparent;border:none;width:14px;top:2px;right:5px}.select2-container .select2-container-multi.form-control{height:auto}.select2-results .select2-highlighted{background-color:#6e8cd7}.select2-drop-active{border:1px solid #e3e3e3!important;padding-top:5px;-webkit-box-shadow:0 2px 2px rgba(0,0,0,0.15);box-shadow:0 2px 2px rgba(0,0,0,0.15);-moz-box-shadow:0 2px 2px rgba(0,0,0,0.15)}.select2-search input{border:1px solid #e3e3e3}.select2-container-multi{width:100%}.select2-container-multi .select2-choices{border:2px solid rgba(255,255,255,0.2)!important;box-shadow:none!important;background:transparent!important;background-image:none!important;-webkit-border-radius:4px!important;border-radius:4px!important;-moz-border-radius:4px!important;background-clip:padding-box!important;min-height:34px}.select2-container-multi .select2-choices .select2-search-choice{padding:6px 8px 7px 19px;margin:5px 0 3px 5px;background:#eee;border:none;-webkit-box-shadow:none;box-shadow:none}.select2-container-multi .select2-choices .select2-search-field input{padding:7px 7px 7px 10px;font-family:inherit}.select2-container-multi .select2-choices .select2-search-choice-close{top:3px}.select2-chosen{line-height:34px;padding-left:15px;color:#444}.bootstrap-timepicker-widget table td input{border:none}.dropzone{min-height:230px;border:2px dashed rgba(0,0,0,0.3);background:#fff;border-radius:6px}.dropzone .dz-message{font-size:30px}.calendar{float:left;margin-bottom:0}.none-border .modal-footer{border-top:none}.fc-toolbar{margin-bottom:5px}.fc-toolbar h2{font-size:18px;font-weight:600;line-height:30px;text-transform:uppercase}.fc-day{background:#fff}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active,.fc-toolbar button:focus,.fc-toolbar button:hover,.fc-toolbar .ui-state-hover{z-index:0}.fc-widget-header{border:1px solid #d5d5d5}.fc-widget-content{border:1px solid #d5d5d5}.fc th.fc-widget-header{background:#ddd;font-size:14px;line-height:20px;padding:10px 0;text-transform:uppercase}.fc-button{background:#fff;border:1px solid #d5d5d5;color:#555;text-transform:capitalize}.fc-text-arrow{font-family:arial;font-size:16px}.fc-state-hover{background:#F5F5F5}.fc-state-highlight{background:#f0f0f0}.fc-cell-overlay{background:#f0f0f0}.fc-unthemed .fc-today{background:#fff}.fc-event{border-radius:2px;border:none;cursor:move;font-size:13px;margin:5px 7px;padding:5px;text-align:center}.external-event{color:#fff;cursor:move;margin:10px 0;padding:6px 10px}.fc-basic-view td.fc-week-number span{padding-right:5px}.fc-basic-view td.fc-day-number{padding-right:5px}.widget-s-1{border-radius:6px}.mini-stat{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;margin-bottom:20px;padding:20px;color:#fff}.mini-stat-icon{-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;background-color:rgba(255,255,255,0.2);display:inline-block;float:left;font-size:30px;height:60px;line-height:60px;margin-right:10px;text-align:center;width:60px}.mini-stat-info{padding-top:2px;color:#eee}.mini-stat-info span{color:#fff;display:block;font-size:24px;font-weight:600}.mini-stat-info span.name{color:#fff;display:block;font-size:18px;font-weight:600;margin-top:5px}.inbox-widget .inbox-item{border-bottom:1px solid #f1f1f1;overflow:hidden;padding:10px 0;position:relative}.inbox-widget .inbox-item .inbox-item-img{display:block;float:left;margin-right:15px;width:40px}.inbox-widget .inbox-item img{width:40px}.inbox-widget .inbox-item .inbox-item-author{color:#333;display:block;margin:0}.inbox-widget .inbox-item .inbox-item-text{color:#a0a0a0;display:block;font-size:12px;margin:0}.inbox-widget .inbox-item .inbox-item-date{color:#a9a9a9;font-size:11px;position:absolute;right:7px;top:2px}.conversation-list{list-style:none;max-height:330px;padding:0 20px}.conversation-list li{margin-bottom:24px}.conversation-list .chat-avatar{display:inline-block;float:left;text-align:center;width:40px}.conversation-list .chat-avatar img{border-radius:100%;width:100%}.conversation-list .chat-avatar i{font-size:12px;font-style:normal}.conversation-list .ctext-wrap{-moz-border-radius:3px;-webkit-border-radius:3px;background:#f5f5f5;border-radius:3px;display:inline-block;padding:10px;position:relative}.conversation-list .ctext-wrap i{color:#1a2942;display:block;font-size:12px;font-style:normal;font-weight:700;position:relative}.conversation-list .ctext-wrap p{margin:0;padding-top:3px}.conversation-list .ctext-wrap:after{right:100%;top:20%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(213,242,239,0);border-right-color:#f5f5f5;border-width:5px;margin-top:-5px}.conversation-list .conversation-text{display:inline-block;float:left;font-size:12px;margin-left:12px;width:70%}.conversation-list .odd .chat-avatar{float:right!important}.conversation-list .odd .conversation-text{float:right!important;margin-right:12px;text-align:right;width:70%!important}.conversation-list .odd .ctext-wrap{background:#e8e9ec!important}.conversation-list .odd .ctext-wrap i{color:#acacac}.conversation-list .odd .ctext-wrap:after{border-color:rgba(238,238,242,0)!important;border-left-color:#e8e9ec!important;left:100%!important;top:20%!important}.chat-send{padding-left:0;padding-right:30px}.chat-send button{width:100%}.chat-inputbar{padding-left:30px}#todo-message{font-size:16px}.todoapp{padding:10px 30px 20px!important}.todo-list li{border-bottom:1px solid #eee;border-radius:0;border:0;margin:0;padding-left:0!important;padding-right:0!important}.todo-list li:last-of-type{border-bottom:none}.todo-send{padding-left:0}.topbar{-webkit-box-shadow:1px 0 3px 0 rgba(0,0,0,0.2);background:#fff;box-shadow:1px 0 3px 0 rgba(0,0,0,0.2);left:0;position:fixed;right:0;top:0;z-index:999}.topbar .topbar-left{background-color:#eee;float:left;height:70px;position:relative;width:240px;z-index:1}.logo{color:#212121!important;font-size:18px;font-weight:700;letter-spacing:.05em;line-height:70px;text-transform:uppercase}.logo h1{height:50px;margin:0 auto;text-align:center}.logo i{color:#ee6e73;font-size:30px;margin-right:5px}.navbar-default{background-color:#fff;border-radius:0;border:none;margin-bottom:0}.navbar-default .navbar-nav > .open > a{background-color:transparent}.navbar-default .navbar-nav > .open > a:focus{background-color:transparent}.navbar-default .navbar-nav > .open > a:hover{background-color:transparent}.nav > li > a{color:#333!important;line-height:70px;padding:0 15px;position:relative}.nav > li > a i{font-size:20px}.nav > li > a .badge{position:absolute;right:10px;top:18px}.profile img{border:2px solid #edf0f0;height:36px;width:36px}.dropdown-menu-lg{width:300px}.dropdown-menu-lg .list-group{margin-bottom:0}.dropdown-menu-lg .list-group-item{border:none;padding:10px 20px}.dropdown-menu-lg .media-heading{margin-bottom:0}.dropdown-menu-lg .media-body p{color:#828282}.notifi-title{border-bottom:1px solid rgba(0,0,0,0.1);color:#000;font-size:16px;font-weight:400;padding:5px 0 10px}.navbar-form{border:none;box-shadow:none;padding:0}.search-bar{background-color:transparent!important;border:none!important;box-shadow:none!important;color:#212121;font-size:14px;height:50px;margin-top:3px}.btn-search{display:none}input.search-bar::-webkit-input-placeholder{color:rgba(0,0,0,0.9)}input.search-bar:-moz-placeholder{color:rgba(0,0,0,0.9)}input.search-bar::-moz-placeholder{color:rgba(0,0,0,0.9)}input.search-bar:-ms-input-placeholder{color:rgba(0,0,0,0.9)}.navbar-nav{margin:0}.side-menu{bottom:0;top:0;width:240px;z-index:2}.side-menu.left{background:#2f353f;box-shadow:0 1px 3px rgba(0,0,0,0.15);position:absolute;top:70px}body.fixed-left .side-menu.left{bottom:50px;height:100%;margin-bottom:-70px;margin-top:0;padding-bottom:70px;position:fixed}.content-page{margin-left:240px;overflow:hidden}.content-page > .content{margin-bottom:60px;margin-top:70px;padding:20px 5px 15px}.button-menu-mobile{background:transparent;border:none;color:#888;font-size:21px;line-height:70px;padding:0 15px}.button-menu-mobile:hover{color:#212121}.sidebar-inner{height:100%}#sidebar-menu,#sidebar-menu ul,#sidebar-menu li,#sidebar-menu a{border:0;font-weight:400;line-height:1;list-style:none;margin:0;padding:0;position:relative;text-decoration:none}#sidebar-menu{background-color:#2f353f;padding-bottom:50px;width:100%}#sidebar-menu a{line-height:1.3}#sidebar-menu ul ul{display:none}#sidebar-menu ul ul li{border-top:0}#sidebar-menu ul ul li.active a{color:#fff}#sidebar-menu ul ul a{color:#75798B;display:block;padding:10px 25px 10px 65px}#sidebar-menu ul ul a:hover{color:#fff}#sidebar-menu ul ul a i{margin-right:5px}#sidebar-menu ul ul ul a{padding-left:80px}#sidebar-menu > ul > li > a{color:#a7b1c2;display:block;padding:15px 25px;background:#2f353f}#sidebar-menu > ul > li > a:hover{background:#272c35;text-decoration:none}#sidebar-menu > ul > li > a > span{vertical-align:middle}#sidebar-menu > ul > li > a > i{display:inline-block;font-size:18px;line-height:17px;margin-left:3px;margin-right:15px;text-align:center;vertical-align:middle;width:20px}#sidebar-menu > ul > li > a > i.i-right{float:right;margin:3px 0 0}#sidebar-menu > ul > li > a.active{background:#272c35!important;color:#fff}#sidebar-menu > ul > li > a.active.subdrop{background:#272c35!important}.subdrop{background:#272c35!important}#wrapper.enlarged #sidebar-menu ul ul{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}#wrapper.enlarged .left.side-menu{padding-top:80px;width:70px;z-index:5}#wrapper.enlarged .left.side-menu #sidebar-menu > ul > li > a:hover{background-color:#272c35!important}#wrapper.enlarged .left.side-menu #sidebar-menu > ul > li > a:active{background-color:#272c35!important}#wrapper.enlarged .left.side-menu #sidebar-menu > ul > li > a:focus{background-color:#272c35!important}#wrapper.enlarged .left.side-menu #sidebar-menu > ul > li > a i{margin-right:20px!important;margin-left:0!important;font-size:20px}#wrapper.enlarged .left.side-menu span.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul > li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li{position:relative;white-space:nowrap}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li:hover > a{position:relative;width:260px}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li:hover > ul{display:block;left:70px;position:absolute;width:190px}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li:hover > ul a{background:#fff;border-left:3px solid #edf0f0;border:none;box-shadow:none;padding-left:15px;position:relative;width:190px;z-index:6}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li:hover > ul a:hover{color:#212121}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li:hover a span{display:inline}#wrapper.enlarged .left.side-menu #sidebar-menu a.subdrop{color:#fff!important}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li > ul{display:none}#wrapper.enlarged .left.side-menu #sidebar-menu ul ul li:hover > ul{display:block;left:190px;margin-top:-36px;position:absolute;width:190px}#wrapper.enlarged .left.side-menu #sidebar-menu ul ul li > a span.pull-right{-ms-transform:rotate(270deg);-webkit-transform:rotate(270deg);position:absolute;right:20px;top:12px;transform:rotate(270deg)}#wrapper.enlarged .left.side-menu #sidebar-menu ul ul li.active a{color:#212121}#wrapper.enlarged .left.side-menu #sidebar-menu ul > li > a span{display:none;padding-left:10px}#wrapper.enlarged .left.side-menu .user-details{display:none}#wrapper.enlarged .content-page{margin-left:70px}#wrapper.enlarged .topbar .topbar-left{width:70px!important}#wrapper.enlarged .topbar .topbar-left .logo span{display:none;opacity:0}#wrapper.enlarged .topbar .topbar-left .logo i{margin-right:0}#wrapper.enlarged #sidebar-menu > ul > li:hover > a.open after{display:none}#wrapper.enlarged #sidebar-menu > ul > li:hover > a.active after{display:none}#wrapper.enlarged .footer{left:70px}.user-details{min-height:80px;padding:20px;position:relative}.user-details img{position:relative;z-index:9999}.user-details .user-info{color:#444;margin-left:60px;position:relative;z-index:99999}.user-details .user-info a.dropdown-toggle{color:#fff;display:block;font-family:'Roboto',sans-serif;font-size:16px;font-weight:600;padding-top:5px}#wrapper.right-bar-enabled .right-bar{right:0}#wrapper.right-bar-enabled .left-layout{left:0}.side-bar.right-bar{float:right!important;right:-266px;top:70px}.side-bar{-moz-transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out;background-color:#fff;box-shadow:0 0 8px 1px rgba(0,0,0,0.1);display:block;float:left;height:100%;overflow-y:auto;position:fixed;transition:all 200ms ease-out;width:240px}.right-bar{background:#fff!important;z-index:99!important}.right-bar h4{border-bottom:1px solid #eee;padding-bottom:10px}.contact-list{max-height:600px}.contact-list .list-group-item{border:none}.contact-list .list-group-item:hover{background:#f5f5f5}.contact-list i.offline{color:#ef5350}.contact-list i.away{color:#ffd740}.contacts-list .avatar{display:inline-block;float:left;margin-right:5px;width:30px}.contacts-list .avatar img{border-radius:50%;width:100%}.contacts-list .list-group-item span.name{color:#707780;display:inline-block;float:left;overflow:hidden;padding-left:5px;padding-top:6px;text-overflow:ellipsis;white-space:nowrap;width:130px}.contacts-list i.online{color:#a0d269}.contacts-list i{color:#ddd;float:right;font-size:9px;line-height:30px}@media only screen and (max-width: 6000px) and (min-width: 700px){.wrapper.right-bar-enabled .right-bar{right:0;z-index:99}}@media (min-width: 768px) and (max-width: 991px){body{overflow-x:hidden}}@media (max-width: 767px){body{overflow-x:hidden}.content-page{margin-left:0!important}.enlarged .left.side-menu{margin-left:-75px}.mobile-sidebar{left:0}.mobile-content{left:250px;right:-250px}.wrapper-page{width:90%}.navbar-nav .open .dropdown-menu{background-color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);left:auto;position:absolute;right:0}.todo-send{margin-top:10px;padding-left:15px}.chat-inputbar{padding-left:15px}.chat-send{margin-top:10px;padding-left:15px;padding-right:15px}.wizard > .steps > ul > li{width:100%}.wizard > .content{padding:0!important}.wizard > .content > .body{float:none;position:relative;width:100%;height:100%;padding:0}.wizard.vertical > .steps{display:inline;float:none;width:100%}.wizard.vertical > .content{display:inline;float:none;margin:0;width:100%}.footer{left:0!important}}@media (max-width: 480px){.side-menu{z-index:10!important}.button-menu-mobile{display:block}.search-bar{display:none!important}}@media (max-width: 420px){.hide-phone{display:none!important}.topbar-left{width:70px!important}.logo span{display:none!important}.logo i{margin-right:0}}@media (min-width: 768px){.container-alt{width:750px}}@media (min-width: 992px){.container-alt{width:970px}}@media (min-width: 1200px){.container-alt{width:1170px}}.bg-img{background:url(../images/small/bg.jpg) center}.bg-overlay{-moz-border-radius:6px 6px 0 0;-webkit-border-radius:6px 6px 0 0;background-color:rgba(49,126,235,0.4);border-radius:6px 6px 0 0;height:100%;left:0;position:absolute;top:0;width:100%}.bg-picture{-webkit-background-size:cover;background-position:center;background-repeat:no-repeat;background-size:cover;margin:-20px -25px 0;padding:100px 0;position:relative}.bg-picture > .bg-picture-overlay{background-image:-o-linear-gradient(top,rgba(255,255,255,0) 0,rgba(0,0,0,0.4) 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(rgba(0,0,0,0.4)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,0) 0,rgba(0,0,0,0.4) 100%);background-image:linear-gradient(to bottom,rgba(255,255,255,0) 0,rgba(0,0,0,0.4) 100%);bottom:0;left:0;position:absolute;right:0;top:0}.profile-info-name{position:relative}.profile-tab-content{background-color:transparent!important;box-shadow:none!important;margin-top:35px}.user-tabs{background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.05);margin-left:-35px;padding-left:25px}.user-tabs .nav.nav-tabs{box-shadow:none!important}.user-tabs .nav.nav-tabs a{text-transform:uppercase}.user-tabs .pull-right .btn{margin-top:8px}.about-info-p{margin-bottom:20px}.about-info-p p{font-size:16px}.wrapper-page{margin:7.5% auto;width:420px}.panel-pages{border-radius:6px}.panel-pages .panel-body{padding:30px}.panel-pages .panel-heading{-moz-border-radius:6px 6px 0 0;-webkit-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;padding:40px 20px;position:relative}.panel-pages .panel-heading h3{position:relative;z-index:999}.user-thumb{margin-top:-44px;position:relative;z-index:999}.user-thumb img{height:88px;margin:0 auto;width:88px}.ex-page-content h1{color:#252932;font-size:98px;font-weight:700;line-height:150px;text-shadow:rgba(61,61,61,0.3) 1px 1px,rgba(61,61,61,0.2) 2px 2px,rgba(61,61,61,0.3) 3px 3px}@media only screen and (max-width: 6000px) and (min-width: 700px){.wrapper.right-bar-enabled .right-bar{right:0;z-index:99}}@media (min-width: 768px) and (max-width: 991px){body{overflow-x:hidden}}@media (max-width: 767px){body{overflow-x:hidden}.content-page{margin-left:0!important}.enlarged .left.side-menu{margin-left:-75px}.mobile-sidebar{left:0}.mobile-content{left:250px;right:-250px}.wrapper-page{width:90%}.navbar-nav .open .dropdown-menu{background-color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,0.26);left:auto;position:absolute;right:0}.todo-send{margin-top:10px;padding-left:15px}.chat-inputbar{padding-left:15px}.chat-send{margin-top:10px;padding-left:15px;padding-right:15px}.wizard > .steps > ul > li{width:100%}.wizard > .content{padding:0!important}.wizard > .content > .body{float:none;position:relative;width:100%;height:100%;padding:0}.wizard.vertical > .steps{display:inline;float:none;width:100%}.wizard.vertical > .content{display:inline;float:none;margin:0;width:100%}.footer{left:0!important}}@media (max-width: 480px){.side-menu{z-index:10!important}.button-menu-mobile{display:block}.search-bar{display:none!important}}@media (max-width: 420px){.hide-phone{display:none!important}.topbar-left{width:70px!important}.logo span{display:none!important}.logo i{margin-right:0}}@media (min-width: 768px){.container-alt{width:750px}}@media (min-width: 992px){.container-alt{width:970px}}@media (min-width: 1200px){.container-alt{width:1170px}}#tale-loading{position:fixed;_position:absolute;top:50%;left:50%;width:120px;height:120px;overflow:hidden;background:url(/admin/images/loading.gif) no-repeat;z-index:10;display:none;} \ No newline at end of file diff --git a/target/classes/static/admin/css/styles.css b/target/classes/static/admin/css/styles.css deleted file mode 100644 index a69f857..0000000 --- a/target/classes/static/admin/css/styles.css +++ /dev/null @@ -1,459 +0,0 @@ - @charset "utf-8"; -/* CSS Document */ - -/*------------------------------------------------------------------ -[Table of contents] -0. Fonts -1. Clearfix -2. Preloader -3. Typography -4. Headings -5. Main Nav -6. Main Content -7. Column Grid -8. Content Elements -9. Icons -10. Image Hover -11. Compatibility Rules -12. Footer -13. Lists -14. Blog --------------------------------------------------------------------*/ - - -/* =1. Clearfix ---------------------------------------------------------------------------------------------------------*/ -.clear { clear: both; } -.clearfix:after { content: "."; display:block; height:0; clear:both; visibility:hidden; }/* ----- clear fix for floats ----- */ -.clearfix { display:inline-block; } -* html .clearfix { height:1%; }/* hides clearfix from IE-mac */ -.clearfix { display:block; }/* end hide from IE-mac */ -.alignleft { float:left; } -.alignright { float:right; } -.aligncenter { display:inline-block; } -.alignnone { clear:both; font-size:0; line-height:0; margin:0; padding:0; border:0; height:0; width:0; } -.centered { text-align:center; } -.hidden { display: none; visibility: hidden; } -/* Preventing font-rendering switches during CSS transitions inside Flexslider for Safari and Chrome under MacOSX */ -*, *:before, *:after { -webkit-font-smoothing: antialiased; } -.flexslider { -webkit-transform: translateZ(0px); } -/* End Clearfix ---------------------------------------------------------------------------------------------------------*/ - - -/* =2. Preloader ---------------------------------------------------------------------------------------------------------*/ -#preloader { position:fixed; top:0; left:0; right:0; bottom:0; background:#fff; z-index:9999999; } -#status { z-index:28; position:absolute; color:#555 !important; top:50%; height:220px; width:100%; margin-top:-115px; } -/* horizontal centering */ -.parent { width:100%; margin:0px auto; position:absolute; top:0; left:0; height:100%; padding:17px 35px; z-index:11 } -.col2-3 .parent { padding:55px 80px; } -.teaser .parent .child { padding-top:10px; } -#preloader .child { text-align:center; } -/* vertical centering */ -.parent { display: table } -.child { display: table-cell; vertical-align: middle; padding:0; } -.box-parent .child { padding-top:10px; } -/* End Preloader ---------------------------------------------------------------------------------------------------------*/ - - -/* =3. Typography ---------------------------------------------------------------------------------------------------------*/ -html { -webkit-overflow-scrolling: touch; overflow-x: hidden; } -body.full-height { height:100%; } -#wrap { z-index:1001; position:relative; background:#f2f2f2; min-height:100vh; } -html { overflow: -moz-scrollbars-vertical; overflow-y: scroll; } -body { font-size: 15px; font-family:Lora, "Helvetica Neue", Helvetica, Arial, sans-serif; color:#888; background:#1D1D1D; -webkit-text-size-adjust: 100%; -moz-osx-font-smoothing:grayscale; -webkit-font-smoothing: antialiased;} - -strong { font-weight:600; } -p strong { color:#555; } -a, a * { -webkit-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; } -a, a:hover, a:focus { color:#2b2b2b; text-decoration:none; outline: 0; } -*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; margin: 0; text-rendering: optimizeLegibility; outline: 0; } -*:focus, *:after:focus, *:before:focus { outline: 0; } - -p { line-height:1.5; padding:0; -webkit-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; position:relative;} -a { text-decoration:none; } -p a { color:#555; text-decoration:underline; } -p a:hover { color:#2b2b2b; text-decoration:underline; } -a p { color:#555; } -p.small { font-size:11px !important; text-transform:uppercase; font-weight:400; color:#555; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; padding-left:1px;} -a p.small { color:#2b2b2b } -#preloader p.small { color:#555 !important; padding:0 !important } -p.lefted, .lefted p { text-align:left } -p.large { font-size:20px !important; padding:15px 0 15px; } -p.large.no-padding { padding:0; } -.with-bg p { color:#fff; } -.with-bg p.small { opacity:0.7; } -.info-box-content p.large, .header-wrapper p.large { max-width:474px; margin-left:auto; margin-right:auto; } -.extra-padding-top, .bg-white p, .auto-height p { padding-top:10px; } -p.below-button { position:relative; top:-10px; font-style:italic; font-size:13px; } -.agency p.below-button { top:-5px; } -.with-bg a p.below-button { color:#fff; text-decoration:underline; opacity:0.7; } -.with-bg a:hover p.below-button { color:#fff; opacity:1; } - -blockquote { border:0; color:#888; font-style:italic; position:relative; margin:35px 0 20px; text-align:center; padding-bottom:0; } -blockquote p { margin-top:0 !important; font-size:18px; color:#888; } -blockquote::before { content:"“”" !important; position:absolute; display:block; font-family:Georgia, "Times New Roman", Times, serif; font-size:36px; left:50%; top:-25px; font-weight:600; width:50px; margin-left:-25px; color:#888; letter-spacing:0.1em; } -blockquote p.name { font-style:normal; color:#888; letter-spacing:0; font-weight:400; font-size:13px; margin-top:-5px; position:relative; } - -.button { border-radius:30px; border:1px solid rgba(255, 255, 255, 1); padding:10px 25px 0px; line-height:1; height:36px; display:inline-block; margin-bottom:20px; margin-top:20px; font-size:11px !important; text-transform:uppercase; font-weight:400; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; color:#2b2b2b; background:rgba(255, 255, 255, 0.8); position:relative; } -.button span.italic { font-family:Lora, "Helvetica Neue", Helvetica, Arial, sans-serif; font-style:italic; letter-spacing:0; text-transform:none; padding-right:1px;} -.button:hover { background:rgba(255, 255, 255, 1); } -.white .button { border:1px solid #d8d8d8; color:#2b2b2b; background:rgba(29, 29, 29, 0); } -.white .button:hover { background:#d8d8d8; } - -.twitter-feed-inner .user { display: block; margin-bottom: 10px; font-size:11px !important; text-transform:uppercase; font-weight:400; color:#555; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; padding-left:1px; } -.tweet-icon { font-size:60px; line-height:1; margin-bottom:10px; } -.tweet-icon i.fa { color:#888 !important; opacity:0.75 } -/* End Typography ---------------------------------------------------------------------------------------------------------*/ - - -/* =4. Headings ---------------------------------------------------------------------------------------------------------*/ -.logo-wrapper { position:absolute; left:50%; margin-left:-100px; } -h1#logo { display:table; position:relative; margin:0; height:75px; padding:0 !important; } -h1#logo a { display:table-cell; background:url("../images/bg-logo.png") center no-repeat; background-size:200px 75px; width:200px; /*try to keep it below 75px*/ height:75px; text-indent:-9999px; vertical-align:middle } - -.numbers, h1, h2, h3, h4, h5, h6 { line-height:1.3; color:#2b2b2b; display:block; position:relative; font-family:"Montserrat", Arial, Helvetica, sans-serif; font-weight:400; } -.col2-3 h2, .col2-3 h3, .col3-3 h2 { padding-bottom:15px } -.col2-3.half h2, .col2-3.half h3 { padding-bottom:0; } -.with-bg h1, .with-bg h2, .with-bg h3, .with-bg h4, .with-bg h5, .with-bg h6 { color:#fff; } -h1 { font-size:60px; line-height:1.1; letter-spacing:-3px; margin-bottom:20px; } -h2 { font-size:44px; line-height:1.2; letter-spacing:-2px; } -h2 strong { letter-spacing:-1px; } -h3 { font-size:28px; line-height:1.25; letter-spacing:-1px; } -h4 { font-size:22px; } -h5 { font-size:18px; } -h6 { font-size:16px; } -.numbers { font-weight:400; font-size:48px; line-height:1; letter-spacing:-2px; padding-bottom:10px; padding-top:10px } - -h1 span.italic, h2 span.italic, h3 span.italic, h4 span.italic, h5 span.italic { font-family:"Lora", Arial, Helvetica, sans-serif; font-weight:400; font-style:italic; } - -span.heading { font-family:"Montserrat", Arial, Helvetica, sans-serif; font-style:normal; } - -.header-wrapper h2 { max-width:674px; margin-left:auto; margin-right:auto; } -.below-icon { margin-top:0px; margin-bottom:0px; } -.header { margin-top:0px; } -.lone-header { margin-top:-10px; } -.more-margin { margin-top:20px; } -.no-margin-nor-padding { padding:0; margin:0; } -.header-section h5 { margin-bottom:13px; } -/* End Headings ---------------------------------------------------------------------------------------------------------*/ - - -/* =5. Main Nav ---------------------------------------------------------------------------------------------------------*/ -#menu-button { float:right; font-size:14px; display:table; height:75px; position: relative; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); z-index:1111 } -.lt-ie10 #menu-button { position:relative; float:right; right:auto } -#menu-button .centralizer { display: table-cell; vertical-align: middle; } -#menu-button .centralizer .cursor { display:block; cursor:pointer; border:1px solid #d8d8d8; padding-top:0; border-radius:51%; height:48px; width:48px; -webkit-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; } -#menu-button .centralizer .cursor:hover { background:#d8d8d8; -webkit-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; } -#nav-button { display:inline-block; width:46px; height:46px; margin:0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); padding-top:18px; text-align:center; } -.nav-bar { background-color:#2b2b2b; border-radius:1px; display:block; width:16px; height:2px; margin:0px auto 2px; position:relative; } - -#main-nav { background-color: #1d1d1d; top: 0; right: 0; padding: 31px 34px 20px; width: 200px; position:absolute; } -#main-nav ul { position:relative; line-height:1.4} -#main-nav ul li a { position:relative; color:rgba(255,255,255,0.6); padding:9px 0; display:block; border-bottom:1px solid rgba(255,255,255,0.1); font-size:12px !important; text-transform:uppercase; font-weight:400; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; } -#main-nav ul li a:hover, #main-nav ul li a.selected { color:rgba(255,255,255,1); } -#main-nav ul li ul { padding-top:6px; } -#main-nav ul li ul li a { font-size:13px; border:0; padding:3px 0; padding-left:15px; } -#main-nav ul li ul li:last-child a { border-bottom:1px solid rgba(255,255,255,0.1); padding-bottom:8px } - -.pushed-left #nav-button span:nth-child(1), .pushed-left-alt #nav-button span:nth-child(1) { -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); position: relative; top: 3px; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } -.pushed-left #nav-button span:nth-child(2), .pushed-left-alt #nav-button span:nth-child(2) { -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -o-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); position: relative; top: -1px; -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } -.pushed-left #nav-button span:nth-child(3), .pushed-left-alt #nav-button span:nth-child(3) { display: none; } - -#main-nav ul#options li a:before { position: absolute; top: 11px; left: -26px; speak: none; font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; font-size: 13px; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: #fff; content: "\f105"; font-family: FontAwesome; -moz-opacity: 0; -khtml-opacity: 0; -webkit-opacity: 0; opacity: 0; -ms-filter: alpha(opacity=0); filter: alpha(opacity=0); -webkit-transition: .5s left,.5s opacity; -moz-transition: .5s left,.5s opacity; -o-transition: .5s left,.5s opacity; transition: .5s left,.5s opacity; -moz-transition-timing-function: cubic-bezier(.19,1,.22,1); -webkit-transition-timing-function: cubic-bezier(.19,1,.22,1); -o-transition-timing-function: cubic-bezier(.19,1,.22,1); transition-timing-function: cubic-bezier(.19,1,.22,1); } -#main-nav ul#options li ul li a:before { top:5px; left:-11px; } -#main-nav ul#options li a:hover:before { left: -13px; -ms-filter: alpha(opacity=100); filter: alpha(opacity=100); -moz-opacity: 1; -khtml-opacity: 1; -webkit-opacity: 1; opacity: 1; -ms-filter: none; filter: none; } -#main-nav ul#options li ul li a:hover:before { left:2px; } -/* End Main Nav ---------------------------------------------------------------------------------------------------------*/ - - -/* =6. Main Content ---------------------------------------------------------------------------------------------------------*/ -#header { position:relative; z-index:155; width:100%; padding:23px 45px 13px; -webkit-transform: translateZ(0); background:#f2f2f2; } -#content { width:100%; position:relative; z-index:55; height:auto; background:#f2f2f2; } -section.white { background:#fff; } -.container { position:relative; margin:0 auto; } -#container { position:relative; margin:0 auto; width:1280px; padding-bottom:40px; } -.only-3columns #container { width:960px; } - -.pushed-left #wrap, .pushed-left #footer { -webkit-transform: translate3d(-200px, 0px, 0px); transform: translate3d(-200px, 0px, 0px); } -.pushed-left-alt #wrap, .no-csstransforms3d .pushed-left #wrap, .pushed-left-alt #footer, .no-csstransforms3d .pushed-left #footer { -webkit-transform: translateX(-200px); -ms-transform: translateX(-200px); transform: translateX(-200px); } -#wrap, #footer { -webkit-transition: -webkit-transform 0.33s cubic-bezier(0.33, 0, 0.2, 1) 0s; transition: transform 0.33s cubic-bezier(0.33, 0, 0.2, 1) 0s; } - -.bottom-section { margin-top:15px; } -.header-section { margin-bottom:45px; border-bottom:1px dotted #d8d8d8; padding-bottom:15px; } -/* =End Main Content ---------------------------------------------------------------------------------------------------------*/ - - -/* =7. Column Grid ---------------------------------------------------------------------------------------------------------*/ -.col3-3 { width:940px; height:auto; margin:10px; float:left; position:relative } -.col4-3 { width:1260px; height:auto; margin:10px; position:relative } -.col1-3 { width:300px; height:280px; margin:10px; float:left; position:relative } -.col2-3 { width:620px; height:580px; margin:10px; float:left; position:relative } -.col1-3.auto, .col2-3.auto { height:auto !important; } -.col1-3.double {height:580px; } -.col2-3.half {height:280px; } -.col1-3.with-padding { padding:17px 35px; } -.col2-3.with-padding, .col3-3.with-padding, .col4-3.with-padding { padding:55px 80px; } -.element .col1-3, .element .col2-3, .element .col3-3 { margin:0 } - -.boxed { padding:17px 35px; } -.col2-3 .boxed, .col3-3 .boxed, .col4-3 .boxed { padding:55px 80px; } - -.top { position:absolute; top:0; right:0; padding:17px 35px; } - -body.centered-tiles .element { text-align:center; } -.with-bg { -webkit-text-shadow: 0px 0 30px rgba(0, 0, 0, 0.2); text-shadow: 0px 0 30px rgba(0, 0, 0, 0.2); } - -.white { background:#fff; } - -.description-header { padding:17px 35px 10px; } -/* =End Column Grid ---------------------------------------------------------------------------------------------------------*/ - - -/* =8. Content Elements ---------------------------------------------------------------------------------------------------------*/ -.overflow, .element { overflow:hidden; } -.break { display:block; position:relative; height:20px; width:100%; } -.borderline { border-bottom:1px dotted #d8d8d8; height:1px; position:relative; width:100%; margin:15px 0 30px; } -.borderline.above { margin-top:30px; } - -.background-image1 { background:url("../images/fullscreen07.jpg") no-repeat center; height:100%; display:block; width:100%; -webkit-background-size: 100% auto; -moz-background-size: 100% auto; -o-background-size: 100% auto; background-size: 100% auto; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; position:absolute; left:0; top:0; } -.background-image2 { background:url("../images/fullscreen06.jpg") no-repeat center; height:100%; display:block; width:100%; -webkit-background-size: 100% auto; -moz-background-size: 100% auto; -o-background-size: 100% auto; background-size: 100% auto; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; position:absolute; left:0; top:0; } -.background-image3 { background:url("../images/fullscreen23.jpg") no-repeat center; height:100%; display:block; width:100%; -webkit-background-size: 100% auto; -moz-background-size: 100% auto; -o-background-size: 100% auto; background-size: 100% auto; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; position:absolute; left:0; top:0; } -.background-image4 { background:url("../images/fullscreen08.jpg") no-repeat center; height:100%; display:block; width:100%; -webkit-background-size: 100% auto; -moz-background-size: 100% auto; -o-background-size: 100% auto; background-size: 100% auto; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; position:absolute; left:0; top:0; } -.background-image5 { background:url("../images/fullscreen09.jpg") no-repeat center; height:100%; display:block; width:100%; -webkit-background-size: 100% auto; -moz-background-size: 100% auto; -o-background-size: 100% auto; background-size: 100% auto; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; position:absolute; left:0; top:0; } - -.min-full-height { min-height:100vh; } -/* =End Content Elements ---------------------------------------------------------------------------------------------------------*/ - - -/* =9. Icons ---------------------------------------------------------------------------------------------------------*/ -.social-list { padding-bottom:20px; padding-top:10px; margin:0; font-size:0; } -.social-list li { display:inline-block; padding:0 3px; position:relative; } -.social-list li a i { color:#888; font-size:16px; } -.social-list li a:hover i { color:#2b2b2b; } -.social-list.aligncenter { padding:0 !important; margin:0 !important; position:relative; top:18px; margin-left:10px !important; } - -header .social-list { float:left; padding-bottom:0; padding-top:15px; } -header .social-list li a i { color:#2b2b2b; } - -nav .social-list { display:none; } -nav .social-list li { padding:0 10px 0 0; } -nav .social-list li a { border:0 !important; } -nav .social-list li a i, #footer .social-list li a i { color:rgba(255,255,255,0.6); } -nav .social-list li a:hover i, #footer .social-list li a:hover i { color:rgba(255,255,255,1); } - -.social-list.alignright li { padding:0 0 0 10px } - -i.fa { margin-right:3px; color:#2b2b2b } -p i.fa { color:#888; } -.button i.fa { color:#2b2b2b; font-size:11px !important; } -.info-box-content i.fa, .bottom i.fa { color:#fff; opacity:1 } - -.circled { border:1px solid #d8d8d8; border-radius:51%; width:42px; height:42px; text-align:center; display:table !important; -webkit-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; } -.circled:hover { background:#d8d8d8; -webkit-transition: all 0.2s ease 0s; transition: all 0.2s ease 0s; } -.circled i.fa { vertical-align:middle; display:table-cell; font-size:16px; margin:0 !important; width:100%; padding:0 !important; } - -.with-bg .circled { background:#fff; border:1px solid #fff; } -.with-bg .social-list { margin-bottom:20px; padding-bottom:0; } -.with-bg i.fa { color:#2b2b2b !important; } - -.absolute-button { position:absolute; right:35px; bottom:35px; } - -.icons.map { background:url("../images/icons/bg-map@2x.png") no-repeat center left; background-size:48px 48px; } -.icons.winner { background:url("../images/icons/bg-winner@2x.png") no-repeat center; background-size:48px 48px; } -.icons.time { background:url("../images/icons/bg-time@2x.png") no-repeat center; background-size:48px 48px; } -.icons.pig { background:url("../images/icons/bg-pig@2x.png") no-repeat center; background-size:48px 48px; } -.icons.adjust { background:url("../images/icons/bg-adjust@2x.png") no-repeat center; background-size:48px 48px; } -.icons.team { background:url("../images/icons/bg-team@2x.png") no-repeat center; background-size:48px 48px; } -.icons.works { background:url("../images/icons/bg-works@2x.png") no-repeat center; background-size:48px 48px; } -.icons.chat { background:url("../images/icons/bg-chat@2x.png") no-repeat center; background-size:48px 48px; } -.icons.notes { background:url("../images/icons/bg-notes@2x.png") no-repeat center; background-size:48px 48px; } -.icons.camera { background:url("../images/icons/bg-camera@2x.png") no-repeat center; background-size:48px 48px; margin-bottom:7px;} -.icons.illustration { background:url("../images/icons/bg-illustration@2x.png") no-repeat center; background-size:48px 48px; } -.icons.social { background:url("../images/icons/bg-social@2x.png") no-repeat center; background-size:48px 48px; } -.icons.vector { background:url("../images/icons/bg-vector@2x.png") no-repeat center; background-size:48px 48px; margin-bottom:8px; } -.icons.commerce { background:url("../images/icons/bg-commerce@2x.png") no-repeat center; background-size:48px 48px; } -.icons.search { background:url("../images/icons/bg-search@2x.png") no-repeat center; background-size:48px 48px; } -.icons.like { background:url("../images/icons/bg-like@2x.png") center no-repeat; background-size:48px 48px; } -.icons.share { background:url("../images/icons/bg-share@2x.png") center no-repeat; background-size:48px 48px; } -.icons.document { background:url("../images/icons/bg-document@2x.png") center no-repeat; background-size:48px 48px; } -.icons.apple { background:url("../images/icons/bg-apple@2x.png") center no-repeat; background-size:48px 48px; } -.icons.balance { background:url("../images/icons/bg-balance@2x.png") center no-repeat; background-size:48px 48px; } -.icons.beaker { background:url("../images/icons/bg-beaker@2x.png") center no-repeat; background-size:48px 48px; margin-bottom:10px; } -.icons.beer { background:url("../images/icons/bg-beer@2x.png") center no-repeat; background-size:48px 48px; } -.icons.books { background:url("../images/icons/bg-books@2x.png") center no-repeat; background-size:48px 48px; } -.icons.box { background:url("../images/icons/bg-box@2x.png") center no-repeat; background-size:48px 48px; } -.icons.cake { background:url("../images/icons/bg-cake@2x.png") center no-repeat; background-size:48px 48px; } -.icons.calcuLator { background:url("../images/icons/bg-calcuLator@2x.png") center no-repeat; background-size:48px 48px; } -.icons.cd { background:url("../images/icons/bg-cd@2x.png") center no-repeat; background-size:48px 48px; } -.icons.champagne { background:url("../images/icons/bg-champagne@2x.png") center no-repeat; background-size:48px 48px; } -.icons.chart { background:url("../images/icons/bg-chart@2x.png") center no-repeat; background-size:48px 48px; } -.icons.cheese { background:url("../images/icons/bg-cheese@2x.png") center no-repeat; background-size:48px 48px; } -.icons.court { background:url("../images/icons/bg-court@2x.png") center no-repeat; background-size:48px 48px; } -.icons.delivery { background:url("../images/icons/bg-delivery@2x.png") center no-repeat; background-size:48px 48px; } -.icons.dvd { background:url("../images/icons/bg-dvd@2x.png") center no-repeat; background-size:48px 48px; } -.icons.eco { background:url("../images/icons/bg-eco@2x.png") center no-repeat; background-size:48px 48px; } -.icons.film { background:url("../images/icons/bg-film@2x.png") center no-repeat; background-size:48px 48px; } -.icons.grape { background:url("../images/icons/bg-grape@2x.png") center no-repeat; background-size:48px 48px; } -.icons.hot { background:url("../images/icons/bg-hot@2x.png") center no-repeat; background-size:48px 48px; } -.icons.house { background:url("../images/icons/bg-house@2x.png") center no-repeat; background-size:48px 48px; } -.icons.icecream { background:url("../images/icons/bg-icecream@2x.png") center no-repeat; background-size:48px 48px; } -.icons.joystick { background:url("../images/icons/bg-joystick@2x.png") center no-repeat; background-size:48px 48px; } -.icons.keynote { background:url("../images/icons/bg-keynote@2x.png") center no-repeat; background-size:48px 48px; } -.icons.link { background:url("../images/icons/bg-link@2x.png") center no-repeat; background-size:48px 48px; } -.icons.magic { background:url("../images/icons/bg-magic@2x.png") center no-repeat; background-size:48px 48px; } -.icons.mail { background:url("../images/icons/bg-mail@2x.png") center no-repeat; background-size:48px 48px; } -.icons.microphone { background:url("../images/icons/bg-microphone@2x.png") center no-repeat; background-size:48px 48px; } -.icons.network { background:url("../images/icons/bg-network@2x.png") center no-repeat; background-size:48px 48px; margin-bottom:10px; } -.icons.palette { background:url("../images/icons/bg-palette@2x.png") center no-repeat; background-size:48px 48px; } -.icons.plaster { background:url("../images/icons/bg-plaster@2x.png") center no-repeat; background-size:48px 48px; } -.icons.player { background:url("../images/icons/bg-player@2x.png") center no-repeat; background-size:48px 48px; } -.icons.polaroid { background:url("../images/icons/bg-polaroid@2x.png") center no-repeat; background-size:48px 48px; } -.icons.printer { background:url("../images/icons/bg-printer@2x.png") center no-repeat; background-size:48px 48px; } -.icons.pulse { background:url("../images/icons/bg-pulse@2x.png") center no-repeat; background-size:48px 48px; } -.icons.radio { background:url("../images/icons/bg-radio@2x.png") center no-repeat; background-size:48px 48px; } -.icons.recorder { background:url("../images/icons/bg-recorder@2x.png") center no-repeat; background-size:48px 48px; } -.icons.scissors { background:url("../images/icons/bg-scissors@2x.png") center no-repeat; background-size:48px 48px; } -.icons.select { background:url("../images/icons/bg-select@2x.png") center no-repeat; background-size:48px 48px; } -.icons.serving { background:url("../images/icons/bg-serving@2x.png") center no-repeat; background-size:48px 48px; } -.icons.share { background:url("../images/icons/bg-share@2x.png") center no-repeat; background-size:48px 48px; } -.icons.shop { background:url("../images/icons/bg-shop@2x.png") center no-repeat; background-size:48px 48px; } -.icons.shopping { background:url("../images/icons/bg-shopping@2x.png") center no-repeat; background-size:48px 48px; } -.icons.smartphone { background:url("../images/icons/bg-smartphone@2x.png") center no-repeat; background-size:48px 48px; } -.icons.sofa { background:url("../images/icons/bg-sofa@2x.png") center no-repeat; background-size:48px 48px; } -.icons.syringe { background:url("../images/icons/bg-syringe@2x.png") center no-repeat; background-size:48px 48px; } -.icons.tape { background:url("../images/icons/bg-tape@2x.png") center no-repeat; background-size:48px 48px; } -.icons.target { background:url("../images/icons/bg-target@2x.png") center no-repeat; background-size:48px 48px; } -.icons.television { background:url("../images/icons/bg-television@2x.png") center no-repeat; background-size:48px 48px; } -.icons.video { background:url("../images/icons/bg-video@2x.png") center no-repeat; background-size:48px 48px; } -.icons.walkman { background:url("../images/icons/bg-walkman@2x.png") center no-repeat; background-size:48px 48px; } -.icons.zoom { background:url("../images/icons/bg-zoom@2x.png") center no-repeat; background-size:48px 48px; } -.icons.tags { background:url("../images/icons/bg-tags@2x.png") center no-repeat; background-size:48px 48px; } -.icons.quote { background:url("../images/icons/bg-quote@2x.png") center no-repeat; background-size:48px 48px; } -.icons.certified { background:url("../images/icons/bg-certified@2x.png") center no-repeat; background-size:48px 48px; } -.icons.mediation { background:url("../images/icons/bg-mediation@2x.png") center no-repeat; background-size:48px 48px; } - -.icons { position:relative; height:48px; width:48px; display:inline-block; } -.centered .icons, .header-section .icons { float:none; display:inline-block; height:48px; width:48px; margin-top:5px; margin-bottom:0px; z-index:2; } -.next-to-icon { margin-left:73px; } -/* End Icons ---------------------------------------------------------------------------------------------------------*/ - - -/* =10. Image Hover ---------------------------------------------------------------------------------------------------------*/ -.images { display:block; position:relative; } -article .images { margin:40px 0; } -img { width:100%; display: block; max-width: 100%; z-index:9; box-shadow: #fff 0 0 0; -webkit-box-shadow:#fff 0 0 0; } -.round img { border:0 none; border-radius:50%; } - -.videos { width:1140px; height:650px; border:0;} -.videoWrapper { position:relative; padding-bottom:56.25%; /* 16:9 */ height:0; margin:30px 0; } -.videoWrapper iframe { position:absolute; top:0; left:0; width:100%; height:100%; } -.musicWrapper { position:relative; height:auto; margin-bottom:-6px; padding:30px 0 35px; } -.musicWrapper iframe { width:100%; height:auto; } - -.overlay { display:block; position:absolute; top:0; left:0; background-color:rgba(29, 29, 29, 0.5); width:100%; height:100%; -webkit-transition: all 0.2s ease 0.0s; transition: all 0.2s ease 0.0s; } - -.info-box-content { height:100%; width:100%; position:absolute; left:0; top:0; } - -.sliphoveritemTitle { line-height:1.3; color:#fff; display:block; position:relative; font-family:"Montserrat", Arial, Helvetica, sans-serif; font-weight:400; font-size:22px; } -.sliphoveritemTitle span { font-size:11px !important; text-transform:uppercase; font-weight:400; opacity:0.7; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; padding-left:1px; display:block; margin-bottom:10px; } -.sliphoveritemTitle i { font-family:"Lora", Arial, Helvetica, sans-serif; font-weight:400; font-style:italic; } -/* End Image Hover ---------------------------------------------------------------------------------------------------------*/ - - -/* =11. Compatibility Rules ---------------------------------------------------------------------------------------------------------*/ -.lt-ie9 .pushed-left #wrap, .lt-ie9 .pushed-left #footer, .lt-ie9 .pushed-left #background-color { position: relative; margin-left: -200px; } -.lt-ie9 #header { min-width: 960px; padding-left: 10px; padding-right: 10px; } -.lt-ie9 body, .lt-ie9 .content-wrapper { min-width: 960px; } -.lt-ie9 .pushed-left #main-nav { z-index: 200; } -/* =End Compatibility Rules ---------------------------------------------------------------------------------------------------------*/ - - -/* =12. Footer ---------------------------------------------------------------------------------------------------------*/ -#footer { background:#1d1d1d; min-height:91px; margin:0px; width:100%; z-index:1; position:relative; bottom:0px; webkit-transform: translateZ(0); -webkit-transform: translate3d(0, 0, 0); } -#footer .padding-wrapper { padding:31px 45px 29px; } -footer p { color:rgba(255, 255, 255, 0.6); font-size:13px; padding:0; border:0; text-decoration:none } -footer p a { color:rgba(255, 255, 255, 0.6); } -footer p a:hover { color:rgba(255, 255, 255, 1) } -span.padding { padding:0 3px; } -footer .social-list { margin-left:20px; padding:0; padding-top:2px; } -footer i.fa-heart { color:rgba(146, 170, 99, 1); } -/* End Footer ---------------------------------------------------------------------------------------------------------*/ - - -/* =13. Lists ---------------------------------------------------------------------------------------------------------*/ -ul.unordered-list, .hentry ul, ol { list-style: disc; line-height:1.5; padding:10px 0px 10px 30px; font-size: 15px; font-family:Lora, "Helvetica Neue", Helvetica, Arial, sans-serif; font-style:italic; margin-bottom:0; } -ol { list-style: decimal; } -.bottom-section ul.unordered-list, .bottom-section ol { padding:0px; padding-top:10px; list-style: none; } -ul.unordered-list li, ol li { padding-bottom:7px; } -ul.unordered-list li:last-child, ol li:last-child { padding-bottom:0px; } -ul.unordered-list li a, .hentry ul li a, ol li a { color:#555; text-decoration:underline; } -ul.unordered-list li a:hover, .hentry ul li a:hover, ol li a:hover { color:#2b2b2b; text-decoration:underline; } -.with-bg ul, .with-bg ol { color:#fff; } -.centered-tiles ul.unordered-list, .centered-tiles ol { padding-left:11px; } - -ul.tag-list { list-style: none; line-height:1.5; padding:17px 0px 10px 0px; font-size:0; max-width:574px; margin:0 auto; } -ul.tag-list li { display:inline-block } -ul.tag-list li a { background:none; width:auto; height:auto; border:1px solid #d8d8d8; padding: 10px 12px 12px; margin: 10px 5px 0px 5px; font-size:10px !important; text-transform:uppercase; font-weight:400; letter-spacing:1px; font-family:"Montserrat", Arial, Helvetica, sans-serif; line-height:1; display: inline-block; color:#555; border-radius:3px; } -ul.tag-list li a:hover { background:#d8d8d8; } -ul.tag-list li a span { border-left:1px solid #d8d8d8; padding-left:13px; margin-left:10px } -/* =End Lists ---------------------------------------------------------------------------------------------------------*/ - - -/* =14. Blog ---------------------------------------------------------------------------------------------------------*/ -.avatar { display:inline-block; margin:20px 0 7px; } -.avatar img { width:74px; height:74px; border-radius:51%; } -.avatar.larger img { width:94px; height:94px; } - -.left-to-avatar { text-align:left !important; padding-left:140px; } - -.comment { padding: 40px 0 35px 0; border-top: 1px dotted #d8d8d8; position:relative; text-align:left } -.comment.reply.level-1 { padding-left: 6.6%; } -.commenter-avatar { float: left; padding: 0 30px 30px 0; width:auto; } -.commenter-avatar > img { width: 65px; height:65px; border-radius:51%; } -.comment-content { float: left; width:calc(100% - 95px); } -.comment-content h5 { margin-top:-5px; margin-bottom:20px; } -p.time { font-size:13px; font-style:italic; color:#888; } -.comment-reply-button-column { position:absolute; right:0; top:40px; width: auto; } -.comment-reply-button-column a { margin:5px 0px 0px 0px !important; font-size:10px !important; padding:8px 20px 10px !important; height:auto !important } -.comment-form-wrapper { padding: 39px 0 0px 0; position: relative; border-top: 1px dotted #d8d8d8; } -.comment-form-icon-wrapper { position: relative; display: block; height: 66px; width: 66px; border:0 none; border:1px solid #d8d8d8; cursor:pointer; border-radius:51%; float:left; margin-right:30px; background:url("../images/icons/bg-upload@2x.png") center no-repeat; background-size:24px 24px; } -.comment-form { text-align:left; padding-left:95px; width:100%; } -.comment-form > input, .comment-form > textarea { padding: 12px 15px 14px; margin-bottom: 10px; border:1px solid #d8d8d8; text-align: left; border-radius:3px; line-height: 20px; width:calc(100% - 1px) } -input:focus, textarea:focus { background:#f5f5f5; } -.comment-form.contact-form input { float:left; margin-right:10px; } -input.last { margin-right:0 !important } -.comment-form > textarea { width: calc(100% - 1px); height: 174px; } -.comment-form .send-btn { margin-left:0; margin-right:0; } - -article p, article ul.unordered-list, article ol {text-align:left !important; } -.centered-tiles article ul.unordered-list, .centered-tiles article ol { padding-left:30px; } -article blockquote p, .header-section p { text-align:center !important; } -article ul.unordered-list, article .hentry ul, article ol { padding-bottom:15px; } -/* End Blog ---------------------------------------------------------------------------------------------------------*/ diff --git a/target/classes/static/admin/editormd/.jshintrc b/target/classes/static/admin/editormd/.jshintrc deleted file mode 100644 index d689d8f..0000000 --- a/target/classes/static/admin/editormd/.jshintrc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "esnext": true, - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "immed": true, - "indent": 4, - "latedef": true, - "newcap": true, - "noarg": true, - "quotmark": "double", - "regexp": true, - "undef": true, - "unused": true, - "strict": true, - "trailing": true, - "smarttabs": true, - "white": true -} \ No newline at end of file diff --git a/target/classes/static/admin/editormd/BUGS.md b/target/classes/static/admin/editormd/BUGS.md deleted file mode 100644 index f16f9ad..0000000 --- a/target/classes/static/admin/editormd/BUGS.md +++ /dev/null @@ -1,22 +0,0 @@ -#Bugs - -> 说明:删除线表示已经解决。 - -####IE8 - -- ~~不能加载;~~ -- flowChart(流程图)、sequenceDiagram(序列图)不支持IE8; -- ~~不支持Markdown转HTML页面解析预览;~~ - -####IE8 & IE9 & IE10 - -- KaTeX会出现解析错误,但不影响程序运行; - -####Sea.js - -- ~~Raphael.js无法加载;~~ - -####Require.js - -- ~~CodeMirror编辑器的代码无法高亮;~~ -- ~~sequenceDiagram不支持: `Uncaught TypeError: Cannot call method 'isArray' of undefined.`~~ diff --git a/target/classes/static/admin/editormd/CHANGE.md b/target/classes/static/admin/editormd/CHANGE.md deleted file mode 100644 index 5198137..0000000 --- a/target/classes/static/admin/editormd/CHANGE.md +++ /dev/null @@ -1,534 +0,0 @@ -## 更新日志 - -### v1.0.x - -##### v1.0.0 beta - -预览版:基本功能完成; - -##### v1.0.0 releases - -发布 v1.0.0 正式版。 - -主要更新: - -- 新建分支 `mathjax-version`,但不打算继续对此分支进行开发; - -- 移除 MathJax,改用 KaTeX [#2](https://github.com/pandao/editor.md/issues/2),解析和预览响应速度大幅度提高 [#3](https://github.com/pandao/editor.md/issues/3); - - 移除 `mathjax` 配置项; - - 移除 `mathjaxURL` 属性; - - 移除 `setMathJaxConfig()` 方法; - - 移除 `loadMathJax()` 方法; - - 移除MathJax的所有示例; - - 新增 `tex` 配置项,表示是否开启支持科学公式 TeX ,基于 KaTeX; - - 新增 `katexURL` 属性; - - 新增 `loadKaTeX` 方法; - - 新增 KaTeX 的示例; - -- `setCodeEditor()` 方法更名为 `setCodeMirror()`; - -- 合并 CodeMirror 使用到的多个 JS 模块文件,大幅减少 HTTP 请求,加快下载速度; - - 新增合并后的两个模块文件:`./lib/codemirror/modes.min.js`、`./lib/codemirror/addons.min.js` ; - - `Gulpfile.js` 新增合并 CodeMirror 模块文件的任务方法 `codemirror-mode` 和 `codemirror-addon` ; - - 另外在使用 Require.js 时,因为 CodeMirror 的严格模块依赖的限制,不能使用上述合并的模块文件,仍然采用动态加载多个模块文件; - -- 更新 `README.md` 等相关文档和示例; - -- 解决 Sea.js 环境下 Raphael.js 无法运行导致不支持流程图和时序图的问题,即必须先加载 Raphael.js ,后加载 Sea.js ; - -### v1.1.x - -##### v1.1.0 - -主要更新: - -- 设计并更换了 Logo; -- 新增添加图片、链接、锚点链接、代码块、预格式文本等操作弹出对话框层及示例; -- 新增支持图片(跨域)上传; -- 改用 ` - -``` - -> Tip: Editor.md can auto append `"); - markdownTextarea = this.markdownTextarea = editor.children("textarea"); - } - - markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); - - if (typeof markdownTextarea.attr("name") === "undefined" || markdownTextarea.attr("name") === "") - { - markdownTextarea.attr("name", (settings.name !== "") ? settings.name : id + "-markdown-doc"); - } - - var appendElements = [ - (!settings.readOnly) ? "" : "", - ( (settings.saveHTMLToTextarea) ? "" : "" ), - "
", - "
", - "
" - ].join("\n"); - - editor.append(appendElements).addClass(classPrefix + "vertical"); - - if (settings.theme !== "") - { - editor.addClass(classPrefix + "theme-" + settings.theme); - } - - this.mask = editor.children("." + classPrefix + "mask"); - this.containerMask = editor.children("." + classPrefix + "container-mask"); - - if (settings.markdown !== "") - { - markdownTextarea.val(settings.markdown); - } - - if (settings.appendMarkdown !== "") - { - markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown); - } - - this.htmlTextarea = editor.children("." + classNames.textarea.html); - this.preview = editor.children("." + classPrefix + "preview"); - this.previewContainer = this.preview.children("." + classPrefix + "preview-container"); - - if (settings.previewTheme !== "") - { - this.preview.addClass(classPrefix + "preview-theme-" + settings.previewTheme); - } - - if (typeof define === "function" && define.amd) - { - if (typeof katex !== "undefined") - { - editormd.$katex = katex; - } - - if (settings.searchReplace && !settings.readOnly) - { - editormd.loadCSS(settings.path + "codemirror/addon/dialog/dialog"); - editormd.loadCSS(settings.path + "codemirror/addon/search/matchesonscrollbar"); - } - } - - if ((typeof define === "function" && define.amd) || !settings.autoLoadModules) - { - if (typeof CodeMirror !== "undefined") { - editormd.$CodeMirror = CodeMirror; - } - - if (typeof marked !== "undefined") { - editormd.$marked = marked; - } - - this.setCodeMirror().setToolbar().loadedDisplay(); - } - else - { - this.loadQueues(); - } - - return this; - }, - - /** - * 所需组件加载队列 - * Required components loading queue - * - * @returns {editormd} 返回editormd的实例对象 - */ - - loadQueues : function() { - var _this = this; - var settings = this.settings; - var loadPath = settings.path; - - var loadFlowChartOrSequenceDiagram = function() { - - if (editormd.isIE8) - { - _this.loadedDisplay(); - - return ; - } - - if (settings.flowChart || settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "raphael.min", function() { - - editormd.loadScript(loadPath + "underscore.min", function() { - - if (!settings.flowChart && settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "sequence-diagram.min", function() { - _this.loadedDisplay(); - }); - } - else if (settings.flowChart && !settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "flowchart.min", function() { - editormd.loadScript(loadPath + "jquery.flowchart.min", function() { - _this.loadedDisplay(); - }); - }); - } - else if (settings.flowChart && settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "flowchart.min", function() { - editormd.loadScript(loadPath + "jquery.flowchart.min", function() { - editormd.loadScript(loadPath + "sequence-diagram.min", function() { - _this.loadedDisplay(); - }); - }); - }); - } - }); - - }); - } - else - { - _this.loadedDisplay(); - } - }; - - editormd.loadCSS(loadPath + "codemirror/codemirror.min"); - - if (settings.searchReplace && !settings.readOnly) - { - editormd.loadCSS(loadPath + "codemirror/addon/dialog/dialog"); - editormd.loadCSS(loadPath + "codemirror/addon/search/matchesonscrollbar"); - } - - if (settings.codeFold) - { - editormd.loadCSS(loadPath + "codemirror/addon/fold/foldgutter"); - } - - editormd.loadScript(loadPath + "codemirror/codemirror.min", function() { - editormd.$CodeMirror = CodeMirror; - - editormd.loadScript(loadPath + "codemirror/modes.min", function() { - - editormd.loadScript(loadPath + "codemirror/addons.min", function() { - - _this.setCodeMirror(); - - if (settings.mode !== "gfm" && settings.mode !== "markdown") - { - _this.loadedDisplay(); - - return false; - } - - _this.setToolbar(); - - editormd.loadScript(loadPath + "marked.min", function() { - - editormd.$marked = marked; - - if (settings.previewCodeHighlight) - { - editormd.loadScript(loadPath + "prettify.min", function() { - loadFlowChartOrSequenceDiagram(); - }); - } - else - { - loadFlowChartOrSequenceDiagram(); - } - }); - - }); - - }); - - }); - - return this; - }, - - /** - * 设置 Editor.md 的整体主题,主要是工具栏 - * Setting Editor.md theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setTheme : function(theme) { - var editor = this.editor; - var oldTheme = this.settings.theme; - var themePrefix = this.classPrefix + "theme-"; - - editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme); - - this.settings.theme = theme; - - return this; - }, - - /** - * 设置 CodeMirror(编辑区)的主题 - * Setting CodeMirror (Editor area) theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setEditorTheme : function(theme) { - var settings = this.settings; - settings.editorTheme = theme; - - if (theme !== "default") - { - editormd.loadCSS(settings.path + "codemirror/theme/" + settings.editorTheme); - } - - this.cm.setOption("theme", theme); - - return this; - }, - - /** - * setEditorTheme() 的别名 - * setEditorTheme() alias - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirrorTheme : function (theme) { - this.setEditorTheme(theme); - - return this; - }, - - /** - * 设置 Editor.md 的主题 - * Setting Editor.md theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setPreviewTheme : function(theme) { - var preview = this.preview; - var oldTheme = this.settings.previewTheme; - var themePrefix = this.classPrefix + "preview-theme-"; - - preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme); - - this.settings.previewTheme = theme; - - return this; - }, - - /** - * 配置和初始化CodeMirror组件 - * CodeMirror initialization - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirror : function() { - var settings = this.settings; - var editor = this.editor; - - if (settings.editorTheme !== "default") - { - editormd.loadCSS(settings.path + "codemirror/theme/" + settings.editorTheme); - } - - var codeMirrorConfig = { - mode : settings.mode, - theme : settings.editorTheme, - tabSize : settings.tabSize, - dragDrop : false, - autofocus : settings.autoFocus, - autoCloseTags : settings.autoCloseTags, - readOnly : (settings.readOnly) ? "nocursor" : false, - indentUnit : settings.indentUnit, - lineNumbers : settings.lineNumbers, - lineWrapping : settings.lineWrapping, - extraKeys : { - "Ctrl-Q": function(cm) { - cm.foldCode(cm.getCursor()); - } - }, - foldGutter : settings.codeFold, - gutters : ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - matchBrackets : settings.matchBrackets, - indentWithTabs : settings.indentWithTabs, - styleActiveLine : settings.styleActiveLine, - styleSelectedText : settings.styleSelectedText, - autoCloseBrackets : settings.autoCloseBrackets, - showTrailingSpace : settings.showTrailingSpace, - highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === "onselected") ? false : /\w/ } ) - }; - - this.codeEditor = this.cm = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig); - this.codeMirror = this.cmElement = editor.children(".CodeMirror"); - - if (settings.value !== "") - { - this.cm.setValue(settings.value); - } - - this.codeMirror.css({ - fontSize : settings.fontSize, - width : (!settings.watch) ? "100%" : "50%" - }); - - if (settings.autoHeight) - { - this.codeMirror.css("height", "auto"); - this.cm.setOption("viewportMargin", Infinity); - } - - if (!settings.lineNumbers) - { - this.codeMirror.find(".CodeMirror-gutters").css("border-right", "none"); - } - - return this; - }, - - /** - * 获取CodeMirror的配置选项 - * Get CodeMirror setting options - * - * @returns {Mixed} return CodeMirror setting option value - */ - - getCodeMirrorOption : function(key) { - return this.cm.getOption(key); - }, - - /** - * 配置和重配置CodeMirror的选项 - * CodeMirror setting options / resettings - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirrorOption : function(key, value) { - - this.cm.setOption(key, value); - - return this; - }, - - /** - * 添加 CodeMirror 键盘快捷键 - * Add CodeMirror keyboard shortcuts key map - * - * @returns {editormd} 返回editormd的实例对象 - */ - - addKeyMap : function(map, bottom) { - this.cm.addKeyMap(map, bottom); - - return this; - }, - - /** - * 移除 CodeMirror 键盘快捷键 - * Remove CodeMirror keyboard shortcuts key map - * - * @returns {editormd} 返回editormd的实例对象 - */ - - removeKeyMap : function(map) { - this.cm.removeKeyMap(map); - - return this; - }, - - /** - * 跳转到指定的行 - * Goto CodeMirror line - * - * @param {String|Intiger} line line number or "first"|"last" - * @returns {editormd} 返回editormd的实例对象 - */ - - gotoLine : function (line) { - - var settings = this.settings; - - if (!settings.gotoLine) - { - return this; - } - - var cm = this.cm; - var editor = this.editor; - var count = cm.lineCount(); - var preview = this.preview; - - if (typeof line === "string") - { - if(line === "last") - { - line = count; - } - - if (line === "first") - { - line = 1; - } - } - - if (typeof line !== "number") - { - alert("Error: The line number must be an integer."); - return this; - } - - line = parseInt(line) - 1; - - if (line > count) - { - alert("Error: The line number range 1-" + count); - - return this; - } - - cm.setCursor( {line : line, ch : 0} ); - - var scrollInfo = cm.getScrollInfo(); - var clientHeight = scrollInfo.clientHeight; - var coords = cm.charCoords({line : line, ch : 0}, "local"); - - cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2); - - if (settings.watch) - { - var cmScroll = this.codeMirror.find(".CodeMirror-scroll")[0]; - var height = $(cmScroll).height(); - var scrollTop = cmScroll.scrollTop; - var percent = (scrollTop / cmScroll.scrollHeight); - - if (scrollTop === 0) - { - preview.scrollTop(0); - } - else if (scrollTop + height >= cmScroll.scrollHeight - 16) - { - preview.scrollTop(preview[0].scrollHeight); - } - else - { - preview.scrollTop(preview[0].scrollHeight * percent); - } - } - - cm.focus(); - - return this; - }, - - /** - * 扩展当前实例对象,可同时设置多个或者只设置一个 - * Extend editormd instance object, can mutil setting. - * - * @returns {editormd} this(editormd instance object.) - */ - - extend : function() { - if (typeof arguments[1] !== "undefined") - { - if (typeof arguments[1] === "function") - { - arguments[1] = $.proxy(arguments[1], this); - } - - this[arguments[0]] = arguments[1]; - } - - if (typeof arguments[0] === "object" && typeof arguments[0].length === "undefined") - { - $.extend(true, this, arguments[0]); - } - - return this; - }, - - /** - * 设置或扩展当前实例对象,单个设置 - * Extend editormd instance object, one by one - * - * @param {String|Object} key option key - * @param {String|Object} value option value - * @returns {editormd} this(editormd instance object.) - */ - - set : function (key, value) { - - if (typeof value !== "undefined" && typeof value === "function") - { - value = $.proxy(value, this); - } - - this[key] = value; - - return this; - }, - - /** - * 重新配置 - * Resetting editor options - * - * @param {String|Object} key option key - * @param {String|Object} value option value - * @returns {editormd} this(editormd instance object.) - */ - - config : function(key, value) { - var settings = this.settings; - - if (typeof key === "object") - { - settings = $.extend(true, settings, key); - } - - if (typeof key === "string") - { - settings[key] = value; - } - - this.settings = settings; - this.recreate(); - - return this; - }, - - /** - * 注册事件处理方法 - * Bind editor event handle - * - * @param {String} eventType event type - * @param {Function} callback 回调函数 - * @returns {editormd} this(editormd instance object.) - */ - - on : function(eventType, callback) { - var settings = this.settings; - - if (typeof settings["on" + eventType] !== "undefined") - { - settings["on" + eventType] = $.proxy(callback, this); - } - - return this; - }, - - /** - * 解除事件处理方法 - * Unbind editor event handle - * - * @param {String} eventType event type - * @returns {editormd} this(editormd instance object.) - */ - - off : function(eventType) { - var settings = this.settings; - - if (typeof settings["on" + eventType] !== "undefined") - { - settings["on" + eventType] = function(){}; - } - - return this; - }, - - /** - * 显示工具栏 - * Display toolbar - * - * @param {Function} [callback=function(){}] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - showToolbar : function(callback) { - var settings = this.settings; - - if(settings.readOnly) { - return this; - } - - if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find("." + this.classPrefix + "menu").html() === "") ) - { - this.setToolbar(); - } - - settings.toolbar = true; - - this.toolbar.show(); - this.resize(); - - $.proxy(callback || function(){}, this)(); - - return this; - }, - - /** - * 隐藏工具栏 - * Hide toolbar - * - * @param {Function} [callback=function(){}] 回调函数 - * @returns {editormd} this(editormd instance object.) - */ - - hideToolbar : function(callback) { - var settings = this.settings; - - settings.toolbar = false; - this.toolbar.hide(); - this.resize(); - - $.proxy(callback || function(){}, this)(); - - return this; - }, - - /** - * 页面滚动时工具栏的固定定位 - * Set toolbar in window scroll auto fixed position - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbarAutoFixed : function(fixed) { - - var state = this.state; - var editor = this.editor; - var toolbar = this.toolbar; - var settings = this.settings; - - if (typeof fixed !== "undefined") - { - settings.toolbarAutoFixed = fixed; - } - - var autoFixedHandle = function(){ - var $window = $(window); - var top = $window.scrollTop(); - - if (!settings.toolbarAutoFixed) - { - return false; - } - - if (top - editor.offset().top > 10 && top < editor.height()) - { - toolbar.css({ - position : "fixed", - width : editor.width() + "px", - left : ($window.width() - editor.width()) / 2 + "px" - }); - } - else - { - toolbar.css({ - position : "absolute", - width : "100%", - left : 0 - }); - } - }; - - if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed) - { - $(window).bind("scroll", autoFixedHandle); - } - - return this; - }, - - /** - * 配置和初始化工具栏 - * Set toolbar and Initialization - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbar : function() { - var settings = this.settings; - - if(settings.readOnly) { - return this; - } - - var editor = this.editor; - var preview = this.preview; - var classPrefix = this.classPrefix; - - var toolbar = this.toolbar = editor.children("." + classPrefix + "toolbar"); - - if (settings.toolbar && toolbar.length < 1) - { - var toolbarHTML = "
    "; - - editor.append(toolbarHTML); - toolbar = this.toolbar = editor.children("." + classPrefix + "toolbar"); - } - - if (!settings.toolbar) - { - toolbar.hide(); - - return this; - } - - toolbar.show(); - - var icons = (typeof settings.toolbarIcons === "function") ? settings.toolbarIcons() - : ((typeof settings.toolbarIcons === "string") ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons); - - var toolbarMenu = toolbar.find("." + this.classPrefix + "menu"), menu = ""; - var pullRight = false; - - for (var i = 0, len = icons.length; i < len; i++) - { - var name = icons[i]; - - if (name === "||") - { - pullRight = true; - } - else if (name === "|") - { - menu += "
  • |
  • "; - } - else - { - var isHeader = (/h(\d)/.test(name)); - var index = name; - - if (name === "watch" && !settings.watch) { - index = "unwatch"; - } - - var title = settings.lang.toolbar[index]; - var iconTexts = settings.toolbarIconTexts[index]; - var iconClass = settings.toolbarIconsClass[index]; - - title = (typeof title === "undefined") ? "" : title; - iconTexts = (typeof iconTexts === "undefined") ? "" : iconTexts; - iconClass = (typeof iconClass === "undefined") ? "" : iconClass; - - var menuItem = pullRight ? "
  • " : "
  • "; - - if (typeof settings.toolbarCustomIcons[name] !== "undefined" && typeof settings.toolbarCustomIcons[name] !== "function") - { - menuItem += settings.toolbarCustomIcons[name]; - } - else - { - menuItem += ""; - menuItem += ""+((isHeader) ? name.toUpperCase() : ( (iconClass === "") ? iconTexts : "") ) + ""; - menuItem += ""; - } - - menuItem += "
  • "; - - menu = pullRight ? menuItem + menu : menu + menuItem; - } - } - - toolbarMenu.html(menu); - - toolbarMenu.find("[title=\"Lowercase\"]").attr("title", settings.lang.toolbar.lowercase); - toolbarMenu.find("[title=\"ucwords\"]").attr("title", settings.lang.toolbar.ucwords); - - this.setToolbarHandler(); - this.setToolbarAutoFixed(); - - return this; - }, - - /** - * 工具栏图标事件处理对象序列 - * Get toolbar icons event handlers - * - * @param {Object} cm CodeMirror的实例对象 - * @param {String} name 要获取的事件处理器名称 - * @returns {Object} 返回处理对象序列 - */ - - dialogLockScreen : function() { - $.proxy(editormd.dialogLockScreen, this)(); - - return this; - }, - - dialogShowMask : function(dialog) { - $.proxy(editormd.dialogShowMask, this)(dialog); - - return this; - }, - - getToolbarHandles : function(name) { - var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers; - - return (name && typeof toolbarIconHandlers[name] !== "undefined") ? toolbarHandlers[name] : toolbarHandlers; - }, - - /** - * 工具栏图标事件处理器 - * Bind toolbar icons event handle - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbarHandler : function() { - var _this = this; - var settings = this.settings; - - if (!settings.toolbar || settings.readOnly) { - return this; - } - - var toolbar = this.toolbar; - var cm = this.cm; - var classPrefix = this.classPrefix; - var toolbarIcons = this.toolbarIcons = toolbar.find("." + classPrefix + "menu > li > a"); - var toolbarIconHandlers = this.getToolbarHandles(); - - toolbarIcons.bind(editormd.mouseOrTouch("click", "touchend"), function(event) { - - var icon = $(this).children(".fa"); - var name = icon.attr("name"); - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (name === "") { - return ; - } - - _this.activeIcon = icon; - - if (typeof toolbarIconHandlers[name] !== "undefined") - { - $.proxy(toolbarIconHandlers[name], _this)(cm); - } - else - { - if (typeof settings.toolbarHandlers[name] !== "undefined") - { - $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection); - } - } - - if (name !== "link" && name !== "reference-link" && name !== "image" && name !== "code-block" && - name !== "preformatted-text" && name !== "watch" && name !== "preview" && name !== "search" && name !== "fullscreen" && name !== "info") - { - cm.focus(); - } - - return false; - - }); - - return this; - }, - - /** - * 动态创建对话框 - * Creating custom dialogs - * - * @param {Object} options 配置项键值对 Key/Value - * @returns {dialog} 返回创建的dialog的jQuery实例对象 - */ - - createDialog : function(options) { - return $.proxy(editormd.createDialog, this)(options); - }, - - /** - * 创建关于Editor.md的对话框 - * Create about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - createInfoDialog : function() { - var _this = this; - var editor = this.editor; - var classPrefix = this.classPrefix; - - var infoDialogHTML = [ - "
    ", - "
    ", - "

    " + editormd.title + "v" + editormd.version + "

    ", - "

    " + this.lang.description + "

    ", - "

    " + editormd.homePage + "

    ", - "

    Copyright © 2015 Pandao, The MIT License.

    ", - "
    ", - "", - "
    " - ].join("\n"); - - editor.append(infoDialogHTML); - - var infoDialog = this.infoDialog = editor.children("." + classPrefix + "dialog-info"); - - infoDialog.find("." + classPrefix + "dialog-close").bind(editormd.mouseOrTouch("click", "touchend"), function() { - _this.hideInfoDialog(); - }); - - infoDialog.css("border", (editormd.isIE8) ? "1px solid #ddd" : "").css("z-index", editormd.dialogZindex).show(); - - this.infoDialogPosition(); - - return this; - }, - - /** - * 关于Editor.md对话居中定位 - * Editor.md dialog position handle - * - * @returns {editormd} 返回editormd的实例对象 - */ - - infoDialogPosition : function() { - var infoDialog = this.infoDialog; - - var _infoDialogPosition = function() { - infoDialog.css({ - top : ($(window).height() - infoDialog.height()) / 2 + "px", - left : ($(window).width() - infoDialog.width()) / 2 + "px" - }); - }; - - _infoDialogPosition(); - - $(window).resize(_infoDialogPosition); - - return this; - }, - - /** - * 显示关于Editor.md - * Display about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - showInfoDialog : function() { - - $("html,body").css("overflow-x", "hidden"); - - var _this = this; - var editor = this.editor; - var settings = this.settings; - var infoDialog = this.infoDialog = editor.children("." + this.classPrefix + "dialog-info"); - - if (infoDialog.length < 1) - { - this.createInfoDialog(); - } - - this.lockScreen(true); - - this.mask.css({ - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }).show(); - - infoDialog.css("z-index", editormd.dialogZindex).show(); - - this.infoDialogPosition(); - - return this; - }, - - /** - * 隐藏关于Editor.md - * Hide about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - hideInfoDialog : function() { - $("html,body").css("overflow-x", ""); - this.infoDialog.hide(); - this.mask.hide(); - this.lockScreen(false); - - return this; - }, - - /** - * 锁屏 - * lock screen - * - * @param {Boolean} lock Boolean 布尔值,是否锁屏 - * @returns {editormd} 返回editormd的实例对象 - */ - - lockScreen : function(lock) { - editormd.lockScreen(lock); - this.resize(); - - return this; - }, - - /** - * 编辑器界面重建,用于动态语言包或模块加载等 - * Recreate editor - * - * @returns {editormd} 返回editormd的实例对象 - */ - - recreate : function() { - var _this = this; - var editor = this.editor; - var settings = this.settings; - - this.codeMirror.remove(); - - this.setCodeMirror(); - - if (!settings.readOnly) - { - if (editor.find(".editormd-dialog").length > 0) { - editor.find(".editormd-dialog").remove(); - } - - if (settings.toolbar) - { - this.getToolbarHandles(); - this.setToolbar(); - } - } - - this.loadedDisplay(true); - - return this; - }, - - /** - * 高亮预览HTML的pre代码部分 - * highlight of preview codes - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewCodeHighlight : function() { - var settings = this.settings; - var previewContainer = this.previewContainer; - - if (settings.previewCodeHighlight) - { - previewContainer.find("pre").addClass("prettyprint linenums"); - - if (typeof prettyPrint !== "undefined") - { - prettyPrint(); - } - } - - return this; - }, - - /** - * 解析TeX(KaTeX)科学公式 - * TeX(KaTeX) Renderer - * - * @returns {editormd} 返回editormd的实例对象 - */ - - katexRender : function() { - - if (timer === null) - { - return this; - } - - this.previewContainer.find("." + editormd.classNames.tex).each(function(){ - var tex = $(this); - editormd.$katex.render(tex.text(), tex[0]); - - tex.find(".katex").css("font-size", "1.6em"); - }); - - return this; - }, - - /** - * 解析和渲染流程图及时序图 - * FlowChart and SequenceDiagram Renderer - * - * @returns {editormd} 返回editormd的实例对象 - */ - - flowChartAndSequenceDiagramRender : function() { - var $this = this; - var settings = this.settings; - var previewContainer = this.previewContainer; - - if (editormd.isIE8) { - return this; - } - - if (settings.flowChart) { - if (flowchartTimer === null) { - return this; - } - - previewContainer.find(".flowchart").flowChart(); - } - - if (settings.sequenceDiagram) { - previewContainer.find(".sequence-diagram").sequenceDiagram({theme: "simple"}); - } - - var preview = $this.preview; - var codeMirror = $this.codeMirror; - var codeView = codeMirror.find(".CodeMirror-scroll"); - - var height = codeView.height(); - var scrollTop = codeView.scrollTop(); - var percent = (scrollTop / codeView[0].scrollHeight); - var tocHeight = 0; - - preview.find(".markdown-toc-list").each(function(){ - tocHeight += $(this).height(); - }); - - var tocMenuHeight = preview.find(".editormd-toc-menu").height(); - tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight; - - if (scrollTop === 0) - { - preview.scrollTop(0); - } - else if (scrollTop + height >= codeView[0].scrollHeight - 16) - { - preview.scrollTop(preview[0].scrollHeight); - } - else - { - preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent); - } - - return this; - }, - - /** - * 注册键盘快捷键处理 - * Register CodeMirror keyMaps (keyboard shortcuts). - * - * @param {Object} keyMap KeyMap key/value {"(Ctrl/Shift/Alt)-Key" : function(){}} - * @returns {editormd} return this - */ - - registerKeyMaps : function(keyMap) { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - var toolbarHandlers = editormd.toolbarHandlers; - var disabledKeyMaps = settings.disabledKeyMaps; - - keyMap = keyMap || null; - - if (keyMap) - { - for (var i in keyMap) - { - if ($.inArray(i, disabledKeyMaps) < 0) - { - var map = {}; - map[i] = keyMap[i]; - - cm.addKeyMap(keyMap); - } - } - } - else - { - for (var k in editormd.keyMaps) - { - var _keyMap = editormd.keyMaps[k]; - var handle = (typeof _keyMap === "string") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this); - - if ($.inArray(k, ["F9", "F10", "F11"]) < 0 && $.inArray(k, disabledKeyMaps) < 0) - { - var _map = {}; - _map[k] = handle; - - cm.addKeyMap(_map); - } - } - - $(window).keydown(function(event) { - - var keymaps = { - "120" : "F9", - "121" : "F10", - "122" : "F11" - }; - - if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0 ) - { - switch (event.keyCode) - { - case 120: - $.proxy(toolbarHandlers["watch"], _this)(); - return false; - break; - - case 121: - $.proxy(toolbarHandlers["preview"], _this)(); - return false; - break; - - case 122: - $.proxy(toolbarHandlers["fullscreen"], _this)(); - return false; - break; - - default: - break; - } - } - }); - } - - return this; - }, - - /** - * 绑定同步滚动 - * - * @returns {editormd} return this - */ - - bindScrollEvent : function() { - - var _this = this; - var preview = this.preview; - var settings = this.settings; - var codeMirror = this.codeMirror; - var mouseOrTouch = editormd.mouseOrTouch; - - if (!settings.syncScrolling) { - return this; - } - - var cmBindScroll = function() { - codeMirror.find(".CodeMirror-scroll").bind(mouseOrTouch("scroll", "touchmove"), function(event) { - var height = $(this).height(); - var scrollTop = $(this).scrollTop(); - var percent = (scrollTop / $(this)[0].scrollHeight); - - var tocHeight = 0; - - preview.find(".markdown-toc-list").each(function(){ - tocHeight += $(this).height(); - }); - - var tocMenuHeight = preview.find(".editormd-toc-menu").height(); - tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight; - - if (scrollTop === 0) - { - preview.scrollTop(0); - } - else if (scrollTop + height >= $(this)[0].scrollHeight - 16) - { - preview.scrollTop(preview[0].scrollHeight); - } - else - { - preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent); - } - - $.proxy(settings.onscroll, _this)(event); - }); - }; - - var cmUnbindScroll = function() { - codeMirror.find(".CodeMirror-scroll").unbind(mouseOrTouch("scroll", "touchmove")); - }; - - var previewBindScroll = function() { - - preview.bind(mouseOrTouch("scroll", "touchmove"), function(event) { - var height = $(this).height(); - var scrollTop = $(this).scrollTop(); - var percent = (scrollTop / $(this)[0].scrollHeight); - var codeView = codeMirror.find(".CodeMirror-scroll"); - - if(scrollTop === 0) - { - codeView.scrollTop(0); - } - else if (scrollTop + height >= $(this)[0].scrollHeight) - { - codeView.scrollTop(codeView[0].scrollHeight); - } - else - { - codeView.scrollTop(codeView[0].scrollHeight * percent); - } - - $.proxy(settings.onpreviewscroll, _this)(event); - }); - - }; - - var previewUnbindScroll = function() { - preview.unbind(mouseOrTouch("scroll", "touchmove")); - }; - - codeMirror.bind({ - mouseover : cmBindScroll, - mouseout : cmUnbindScroll, - touchstart : cmBindScroll, - touchend : cmUnbindScroll - }); - - if (settings.syncScrolling === "single") { - return this; - } - - preview.bind({ - mouseover : previewBindScroll, - mouseout : previewUnbindScroll, - touchstart : previewBindScroll, - touchend : previewUnbindScroll - }); - - return this; - }, - - bindChangeEvent : function() { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - - if (!settings.syncScrolling) { - return this; - } - - cm.on("change", function(_cm, changeObj) { - - if (settings.watch) - { - _this.previewContainer.css("padding", settings.autoHeight ? "20px 20px 50px 40px" : "20px"); - } - - timer = setTimeout(function() { - clearTimeout(timer); - _this.save(); - timer = null; - }, settings.delay); - }); - - return this; - }, - - /** - * 加载队列完成之后的显示处理 - * Display handle of the module queues loaded after. - * - * @param {Boolean} recreate 是否为重建编辑器 - * @returns {editormd} 返回editormd的实例对象 - */ - - loadedDisplay : function(recreate) { - - recreate = recreate || false; - - var _this = this; - var editor = this.editor; - var preview = this.preview; - var settings = this.settings; - - this.containerMask.hide(); - - this.save(); - - if (settings.watch) { - preview.show(); - } - - editor.data("oldWidth", editor.width()).data("oldHeight", editor.height()); // 为了兼容Zepto - - this.resize(); - this.registerKeyMaps(); - - $(window).resize(function(){ - _this.resize(); - }); - - this.bindScrollEvent().bindChangeEvent(); - - if (!recreate) - { - $.proxy(settings.onload, this)(); - } - - this.state.loaded = true; - - return this; - }, - - /** - * 设置编辑器的宽度 - * Set editor width - * - * @param {Number|String} width 编辑器宽度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - width : function(width) { - - this.editor.css("width", (typeof width === "number") ? width + "px" : width); - this.resize(); - - return this; - }, - - /** - * 设置编辑器的高度 - * Set editor height - * - * @param {Number|String} height 编辑器高度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - height : function(height) { - - this.editor.css("height", (typeof height === "number") ? height + "px" : height); - this.resize(); - - return this; - }, - - /** - * 调整编辑器的尺寸和布局 - * Resize editor layout - * - * @param {Number|String} [width=null] 编辑器宽度值 - * @param {Number|String} [height=null] 编辑器高度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - resize : function(width, height) { - - width = width || null; - height = height || null; - - var state = this.state; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var codeMirror = this.codeMirror; - - if (width) - { - editor.css("width", (typeof width === "number") ? width + "px" : width); - } - - if (settings.autoHeight && !state.fullscreen && !state.preview) - { - editor.css("height", "auto"); - codeMirror.css("height", "auto"); - } - else - { - if (height) - { - editor.css("height", (typeof height === "number") ? height + "px" : height); - } - - if (state.fullscreen) - { - editor.height($(window).height()); - } - - if (settings.toolbar && !settings.readOnly) - { - codeMirror.css("margin-top", toolbar.height() + 1).height(editor.height() - toolbar.height()); - } - else - { - codeMirror.css("margin-top", 0).height(editor.height()); - } - } - - if(settings.watch) - { - codeMirror.width(editor.width() / 2); - preview.width((!state.preview) ? editor.width() / 2 : editor.width()); - - this.previewContainer.css("padding", settings.autoHeight ? "20px 20px 50px 40px" : "20px"); - - if (settings.toolbar && !settings.readOnly) - { - preview.css("top", toolbar.height() + 1); - } - else - { - preview.css("top", 0); - } - - if (settings.autoHeight && !state.fullscreen && !state.preview) - { - preview.height(""); - } - else - { - var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height(); - - preview.height(previewHeight); - } - } - else - { - codeMirror.width(editor.width()); - preview.hide(); - } - - if (state.loaded) - { - $.proxy(settings.onresize, this)(); - } - - return this; - }, - - /** - * 解析和保存Markdown代码 - * Parse & Saving Markdown source code - * - * @returns {editormd} 返回editormd的实例对象 - */ - - save : function() { - - if (timer === null) - { - return this; - } - - var _this = this; - var state = this.state; - var settings = this.settings; - var cm = this.cm; - var cmValue = cm.getValue(); - var previewContainer = this.previewContainer; - - if (settings.mode !== "gfm" && settings.mode !== "markdown") - { - this.markdownTextarea.val(cmValue); - - return this; - } - - var marked = editormd.$marked; - var markdownToC = this.markdownToC = []; - var rendererOptions = this.markedRendererOptions = { - toc : settings.toc, - tocm : settings.tocm, - tocStartLevel : settings.tocStartLevel, - pageBreak : settings.pageBreak, - taskList : settings.taskList, - emoji : settings.emoji, - tex : settings.tex, - atLink : settings.atLink, // for @link - emailLink : settings.emailLink, // for mail address auto link - flowChart : settings.flowChart, - sequenceDiagram : settings.sequenceDiagram, - previewCodeHighlight : settings.previewCodeHighlight, - }; - - var markedOptions = this.markedOptions = { - renderer : editormd.markedRenderer(markdownToC, rendererOptions), - gfm : true, - tables : true, - breaks : true, - pedantic : false, - sanitize : (settings.htmlDecode) ? false : true, // 关闭忽略HTML标签,即开启识别HTML标签,默认为false - smartLists : true, - smartypants : true - }; - - marked.setOptions(markedOptions); - - var newMarkdownDoc = editormd.$marked(cmValue, markedOptions); - - //console.info("cmValue", cmValue, newMarkdownDoc); - - newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode); - - //console.error("cmValue", cmValue, newMarkdownDoc); - - this.markdownTextarea.text(cmValue); - - cm.save(); - - if (settings.saveHTMLToTextarea) - { - this.htmlTextarea.text(newMarkdownDoc); - } - - if(settings.watch || (!settings.watch && state.preview)) - { - previewContainer.html(newMarkdownDoc); - - this.previewCodeHighlight(); - - if (settings.toc) - { - var tocContainer = (settings.tocContainer === "") ? previewContainer : $(settings.tocContainer); - var tocMenu = tocContainer.find("." + this.classPrefix + "toc-menu"); - - tocContainer.attr("previewContainer", (settings.tocContainer === "") ? "true" : "false"); - - if (settings.tocContainer !== "" && tocMenu.length > 0) - { - tocMenu.remove(); - } - - editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel); - - if (settings.tocDropdown || tocContainer.find("." + this.classPrefix + "toc-menu").length > 0) - { - editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== "") ? settings.tocTitle : this.lang.tocTitle); - } - - if (settings.tocContainer !== "") - { - previewContainer.find(".markdown-toc").css("border", "none"); - } - } - - if (settings.tex) - { - if (!editormd.kaTeXLoaded && settings.autoLoadModules) - { - editormd.loadKaTeX(function() { - editormd.$katex = katex; - editormd.kaTeXLoaded = true; - _this.katexRender(); - }); - } - else - { - editormd.$katex = katex; - this.katexRender(); - } - } - - if (settings.flowChart || settings.sequenceDiagram) - { - flowchartTimer = setTimeout(function(){ - clearTimeout(flowchartTimer); - _this.flowChartAndSequenceDiagramRender(); - flowchartTimer = null; - }, 10); - } - - if (state.loaded) - { - $.proxy(settings.onchange, this)(); - } - } - - return this; - }, - - /** - * 聚焦光标位置 - * Focusing the cursor position - * - * @returns {editormd} 返回editormd的实例对象 - */ - - focus : function() { - this.cm.focus(); - - return this; - }, - - /** - * 设置光标的位置 - * Set cursor position - * - * @param {Object} cursor 要设置的光标位置键值对象,例:{line:1, ch:0} - * @returns {editormd} 返回editormd的实例对象 - */ - - setCursor : function(cursor) { - this.cm.setCursor(cursor); - - return this; - }, - - /** - * 获取当前光标的位置 - * Get the current position of the cursor - * - * @returns {Cursor} 返回一个光标Cursor对象 - */ - - getCursor : function() { - return this.cm.getCursor(); - }, - - /** - * 设置光标选中的范围 - * Set cursor selected ranges - * - * @param {Object} from 开始位置的光标键值对象,例:{line:1, ch:0} - * @param {Object} to 结束位置的光标键值对象,例:{line:1, ch:0} - * @returns {editormd} 返回editormd的实例对象 - */ - - setSelection : function(from, to) { - - this.cm.setSelection(from, to); - - return this; - }, - - /** - * 获取光标选中的文本 - * Get the texts from cursor selected - * - * @returns {String} 返回选中文本的字符串形式 - */ - - getSelection : function() { - return this.cm.getSelection(); - }, - - /** - * 设置光标选中的文本范围 - * Set the cursor selection ranges - * - * @param {Array} ranges cursor selection ranges array - * @returns {Array} return this - */ - - setSelections : function(ranges) { - this.cm.setSelections(ranges); - - return this; - }, - - /** - * 获取光标选中的文本范围 - * Get the cursor selection ranges - * - * @returns {Array} return selection ranges array - */ - - getSelections : function() { - return this.cm.getSelections(); - }, - - /** - * 替换当前光标选中的文本或在当前光标处插入新字符 - * Replace the text at the current cursor selected or insert a new character at the current cursor position - * - * @param {String} value 要插入的字符值 - * @returns {editormd} 返回editormd的实例对象 - */ - - replaceSelection : function(value) { - this.cm.replaceSelection(value); - - return this; - }, - - /** - * 在当前光标处插入新字符 - * Insert a new character at the current cursor position - * - * 同replaceSelection()方法 - * With the replaceSelection() method - * - * @param {String} value 要插入的字符值 - * @returns {editormd} 返回editormd的实例对象 - */ - - insertValue : function(value) { - this.replaceSelection(value); - - return this; - }, - - /** - * 追加markdown - * append Markdown to editor - * - * @param {String} md 要追加的markdown源文档 - * @returns {editormd} 返回editormd的实例对象 - */ - - appendMarkdown : function(md) { - var settings = this.settings; - var cm = this.cm; - - cm.setValue(cm.getValue() + md); - - return this; - }, - - /** - * 设置和传入编辑器的markdown源文档 - * Set Markdown source document - * - * @param {String} md 要传入的markdown源文档 - * @returns {editormd} 返回editormd的实例对象 - */ - - setMarkdown : function(md) { - this.cm.setValue(md || this.settings.markdown); - - return this; - }, - - /** - * 获取编辑器的markdown源文档 - * Set Editor.md markdown/CodeMirror value - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getMarkdown : function() { - return this.cm.getValue(); - }, - - /** - * 获取编辑器的源文档 - * Get CodeMirror value - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getValue : function() { - return this.cm.getValue(); - }, - - /** - * 设置编辑器的源文档 - * Set CodeMirror value - * - * @param {String} value set code/value/string/text - * @returns {editormd} 返回editormd的实例对象 - */ - - setValue : function(value) { - this.cm.setValue(value); - - return this; - }, - - /** - * 清空编辑器 - * Empty CodeMirror editor container - * - * @returns {editormd} 返回editormd的实例对象 - */ - - clear : function() { - this.cm.setValue(""); - - return this; - }, - - /** - * 获取解析后存放在Textarea的HTML源码 - * Get parsed html code from Textarea - * - * @returns {String} 返回HTML源码 - */ - - getHTML : function() { - if (!this.settings.saveHTMLToTextarea) - { - alert("Error: settings.saveHTMLToTextarea == false"); - - return false; - } - - return this.htmlTextarea.val(); - }, - - /** - * getHTML()的别名 - * getHTML (alias) - * - * @returns {String} Return html code 返回HTML源码 - */ - - getTextareaSavedHTML : function() { - return this.getHTML(); - }, - - /** - * 获取预览窗口的HTML源码 - * Get html from preview container - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getPreviewedHTML : function() { - if (!this.settings.watch) - { - alert("Error: settings.watch == false"); - - return false; - } - - return this.previewContainer.html(); - }, - - /** - * 开启实时预览 - * Enable real-time watching - * - * @returns {editormd} 返回editormd的实例对象 - */ - - watch : function(callback) { - var settings = this.settings; - - if ($.inArray(settings.mode, ["gfm", "markdown"]) < 0) - { - return this; - } - - this.state.watching = settings.watch = true; - this.preview.show(); - - if (this.toolbar) - { - var watchIcon = settings.toolbarIconsClass.watch; - var unWatchIcon = settings.toolbarIconsClass.unwatch; - - var icon = this.toolbar.find(".fa[name=watch]"); - icon.parent().attr("title", settings.lang.toolbar.watch); - icon.removeClass(unWatchIcon).addClass(watchIcon); - } - - this.codeMirror.css("border-right", "1px solid #ddd").width(this.editor.width() / 2); - - timer = 0; - - this.save().resize(); - - if (!settings.onwatch) - { - settings.onwatch = callback || function() {}; - } - - $.proxy(settings.onwatch, this)(); - - return this; - }, - - /** - * 关闭实时预览 - * Disable real-time watching - * - * @returns {editormd} 返回editormd的实例对象 - */ - - unwatch : function(callback) { - var settings = this.settings; - this.state.watching = settings.watch = false; - this.preview.hide(); - - if (this.toolbar) - { - var watchIcon = settings.toolbarIconsClass.watch; - var unWatchIcon = settings.toolbarIconsClass.unwatch; - - var icon = this.toolbar.find(".fa[name=watch]"); - icon.parent().attr("title", settings.lang.toolbar.unwatch); - icon.removeClass(watchIcon).addClass(unWatchIcon); - } - - this.codeMirror.css("border-right", "none").width(this.editor.width()); - - this.resize(); - - if (!settings.onunwatch) - { - settings.onunwatch = callback || function() {}; - } - - $.proxy(settings.onunwatch, this)(); - - return this; - }, - - /** - * 显示编辑器 - * Show editor - * - * @param {Function} [callback=function()] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - show : function(callback) { - callback = callback || function() {}; - - var _this = this; - this.editor.show(0, function() { - $.proxy(callback, _this)(); - }); - - return this; - }, - - /** - * 隐藏编辑器 - * Hide editor - * - * @param {Function} [callback=function()] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - hide : function(callback) { - callback = callback || function() {}; - - var _this = this; - this.editor.hide(0, function() { - $.proxy(callback, _this)(); - }); - - return this; - }, - - /** - * 隐藏编辑器部分,只预览HTML - * Enter preview html state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewing : function() { - - var _this = this; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var codeMirror = this.codeMirror; - var previewContainer = this.previewContainer; - - if ($.inArray(settings.mode, ["gfm", "markdown"]) < 0) { - return this; - } - - if (settings.toolbar && toolbar) { - toolbar.toggle(); - toolbar.find(".fa[name=preview]").toggleClass("active"); - } - - codeMirror.toggle(); - - var escHandle = function(event) { - if (event.shiftKey && event.keyCode === 27) { - _this.previewed(); - } - }; - - if (codeMirror.css("display") === "none") // 为了兼容Zepto,而不使用codeMirror.is(":hidden") - { - this.state.preview = true; - - if (this.state.fullscreen) { - preview.css("background", "#fff"); - } - - editor.find("." + this.classPrefix + "preview-close-btn").show().bind(editormd.mouseOrTouch("click", "touchend"), function(){ - _this.previewed(); - }); - - if (!settings.watch) - { - this.save(); - } - else - { - previewContainer.css("padding", ""); - } - - previewContainer.addClass(this.classPrefix + "preview-active"); - - preview.show().css({ - position : "", - top : 0, - width : editor.width(), - height : (settings.autoHeight && !this.state.fullscreen) ? "auto" : editor.height() - }); - - if (this.state.loaded) - { - $.proxy(settings.onpreviewing, this)(); - } - - $(window).bind("keyup", escHandle); - } - else - { - $(window).unbind("keyup", escHandle); - this.previewed(); - } - }, - - /** - * 显示编辑器部分,退出只预览HTML - * Exit preview html state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewed : function() { - - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var previewContainer = this.previewContainer; - var previewCloseBtn = editor.find("." + this.classPrefix + "preview-close-btn"); - - this.state.preview = false; - - this.codeMirror.show(); - - if (settings.toolbar) { - toolbar.show(); - } - - preview[(settings.watch) ? "show" : "hide"](); - - previewCloseBtn.hide().unbind(editormd.mouseOrTouch("click", "touchend")); - - previewContainer.removeClass(this.classPrefix + "preview-active"); - - if (settings.watch) - { - previewContainer.css("padding", "20px"); - } - - preview.css({ - background : null, - position : "absolute", - width : editor.width() / 2, - height : (settings.autoHeight && !this.state.fullscreen) ? "auto" : editor.height() - toolbar.height(), - top : (settings.toolbar) ? toolbar.height() : 0 - }); - - if (this.state.loaded) - { - $.proxy(settings.onpreviewed, this)(); - } - - return this; - }, - - /** - * 编辑器全屏显示 - * Fullscreen show - * - * @returns {editormd} 返回editormd的实例对象 - */ - - fullscreen : function() { - - var _this = this; - var state = this.state; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var fullscreenClass = this.classPrefix + "fullscreen"; - - if (toolbar) { - toolbar.find(".fa[name=fullscreen]").parent().toggleClass("active"); - } - - var escHandle = function(event) { - if (!event.shiftKey && event.keyCode === 27) - { - if (state.fullscreen) - { - _this.fullscreenExit(); - } - } - }; - - if (!editor.hasClass(fullscreenClass)) - { - state.fullscreen = true; - - $("html,body").css("overflow", "hidden"); - - editor.css({ - width : $(window).width(), - height : $(window).height() - }).addClass(fullscreenClass); - - this.resize(); - - $.proxy(settings.onfullscreen, this)(); - - $(window).bind("keyup", escHandle); - } - else - { - $(window).unbind("keyup", escHandle); - this.fullscreenExit(); - } - - return this; - }, - - /** - * 编辑器退出全屏显示 - * Exit fullscreen state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - fullscreenExit : function() { - - var editor = this.editor; - var settings = this.settings; - var toolbar = this.toolbar; - var fullscreenClass = this.classPrefix + "fullscreen"; - - this.state.fullscreen = false; - - if (toolbar) { - toolbar.find(".fa[name=fullscreen]").parent().removeClass("active"); - } - - $("html,body").css("overflow", ""); - - editor.css({ - width : editor.data("oldWidth"), - height : editor.data("oldHeight") - }).removeClass(fullscreenClass); - - this.resize(); - - $.proxy(settings.onfullscreenExit, this)(); - - return this; - }, - - /** - * 加载并执行插件 - * Load and execute the plugin - * - * @param {String} name plugin name / function name - * @param {String} path plugin load path - * @returns {editormd} 返回editormd的实例对象 - */ - - executePlugin : function(name, path) { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - - path = settings.pluginPath + path; - - if (typeof define === "function") - { - if (typeof this[name] === "undefined") - { - alert("Error: " + name + " plugin is not found, you are not load this plugin."); - - return this; - } - - this[name](cm); - - return this; - } - - if ($.inArray(path, editormd.loadFiles.plugin) < 0) - { - editormd.loadPlugin(path, function() { - editormd.loadPlugins[name] = _this[name]; - _this[name](cm); - }); - } - else - { - $.proxy(editormd.loadPlugins[name], this)(cm); - } - - return this; - }, - - /** - * 搜索替换 - * Search & replace - * - * @param {String} command CodeMirror serach commands, "find, fintNext, fintPrev, clearSearch, replace, replaceAll" - * @returns {editormd} return this - */ - - search : function(command) { - var settings = this.settings; - - if (!settings.searchReplace) - { - alert("Error: settings.searchReplace == false"); - return this; - } - - if (!settings.readOnly) - { - this.cm.execCommand(command || "find"); - } - - return this; - }, - - searchReplace : function() { - this.search("replace"); - - return this; - }, - - searchReplaceAll : function() { - this.search("replaceAll"); - - return this; - } - }; - - editormd.fn.init.prototype = editormd.fn; - - /** - * 锁屏 - * lock screen when dialog opening - * - * @returns {void} - */ - - editormd.dialogLockScreen = function() { - var settings = this.settings || {dialogLockScreen : true}; - - if (settings.dialogLockScreen) - { - $("html,body").css("overflow", "hidden"); - this.resize(); - } - }; - - /** - * 显示透明背景层 - * Display mask layer when dialog opening - * - * @param {Object} dialog dialog jQuery object - * @returns {void} - */ - - editormd.dialogShowMask = function(dialog) { - var editor = this.editor; - var settings = this.settings || {dialogShowMask : true}; - - dialog.css({ - top : ($(window).height() - dialog.height()) / 2 + "px", - left : ($(window).width() - dialog.width()) / 2 + "px" - }); - - if (settings.dialogShowMask) { - editor.children("." + this.classPrefix + "mask").css("z-index", parseInt(dialog.css("z-index")) - 1).show(); - } - }; - - editormd.toolbarHandlers = { - undo : function() { - this.cm.undo(); - }, - - redo : function() { - this.cm.redo(); - }, - - bold : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("**" + selection + "**"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - del : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("~~" + selection + "~~"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - italic : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("*" + selection + "*"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - quote : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("> " + selection); - cm.setCursor(cursor.line, cursor.ch + 2); - } - else - { - cm.replaceSelection("> " + selection); - } - - //cm.replaceSelection("> " + selection); - //cm.setCursor(cursor.line, (selection === "") ? cursor.ch + 2 : cursor.ch + selection.length + 2); - }, - - ucfirst : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(editormd.firstUpperCase(selection)); - cm.setSelections(selections); - }, - - ucwords : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(editormd.wordsFirstUpperCase(selection)); - cm.setSelections(selections); - }, - - uppercase : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(selection.toUpperCase()); - cm.setSelections(selections); - }, - - lowercase : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(selection.toLowerCase()); - cm.setSelections(selections); - }, - - h1 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("# " + selection); - cm.setCursor(cursor.line, cursor.ch + 2); - } - else - { - cm.replaceSelection("# " + selection); - } - }, - - h2 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("## " + selection); - cm.setCursor(cursor.line, cursor.ch + 3); - } - else - { - cm.replaceSelection("## " + selection); - } - }, - - h3 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("### " + selection); - cm.setCursor(cursor.line, cursor.ch + 4); - } - else - { - cm.replaceSelection("### " + selection); - } - }, - - h4 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("#### " + selection); - cm.setCursor(cursor.line, cursor.ch + 5); - } - else - { - cm.replaceSelection("#### " + selection); - } - }, - - h5 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("##### " + selection); - cm.setCursor(cursor.line, cursor.ch + 6); - } - else - { - cm.replaceSelection("##### " + selection); - } - }, - - h6 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("###### " + selection); - cm.setCursor(cursor.line, cursor.ch + 7); - } - else - { - cm.replaceSelection("###### " + selection); - } - }, - - "list-ul" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (selection === "") - { - cm.replaceSelection("- " + selection); - } - else - { - var selectionText = selection.split("\n"); - - for (var i = 0, len = selectionText.length; i < len; i++) - { - selectionText[i] = (selectionText[i] === "") ? "" : "- " + selectionText[i]; - } - - cm.replaceSelection(selectionText.join("\n")); - } - }, - - "list-ol" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if(selection === "") - { - cm.replaceSelection("1. " + selection); - } - else - { - var selectionText = selection.split("\n"); - - for (var i = 0, len = selectionText.length; i < len; i++) - { - selectionText[i] = (selectionText[i] === "") ? "" : (i+1) + ". " + selectionText[i]; - } - - cm.replaceSelection(selectionText.join("\n")); - } - }, - - hr : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection(((cursor.ch !== 0) ? "\n\n" : "\n") + "------------\n\n"); - }, - - tex : function() { - if (!this.settings.tex) - { - alert("settings.tex === false"); - return this; - } - - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("$$" + selection + "$$"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - link : function() { - this.executePlugin("linkDialog", "link-dialog/link-dialog"); - }, - - "reference-link" : function() { - this.executePlugin("referenceLinkDialog", "reference-link-dialog/reference-link-dialog"); - }, - - pagebreak : function() { - if (!this.settings.pageBreak) - { - alert("settings.pageBreak === false"); - return this; - } - - var cm = this.cm; - var selection = cm.getSelection(); - - cm.replaceSelection("\r\n[========]\r\n"); - }, - - image : function() { - this.executePlugin("imageDialog", "image-dialog/image-dialog"); - }, - - code : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("`" + selection + "`"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - "code-block" : function() { - this.executePlugin("codeBlockDialog", "code-block-dialog/code-block-dialog"); - }, - - "preformatted-text" : function() { - this.executePlugin("preformattedTextDialog", "preformatted-text-dialog/preformatted-text-dialog"); - }, - - table : function() { - this.executePlugin("tableDialog", "table-dialog/table-dialog"); - }, - - datetime : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var date = new Date(); - var langName = this.settings.lang.name; - var datefmt = editormd.dateFormat() + " " + editormd.dateFormat((langName === "zh-cn" || langName === "zh-tw") ? "cn-week-day" : "week-day"); - - cm.replaceSelection(datefmt); - }, - - emoji : function() { - this.executePlugin("emojiDialog", "emoji-dialog/emoji-dialog"); - }, - - "html-entities" : function() { - this.executePlugin("htmlEntitiesDialog", "html-entities-dialog/html-entities-dialog"); - }, - - "goto-line" : function() { - this.executePlugin("gotoLineDialog", "goto-line-dialog/goto-line-dialog"); - }, - - watch : function() { - this[this.settings.watch ? "unwatch" : "watch"](); - }, - - preview : function() { - this.previewing(); - }, - - fullscreen : function() { - this.fullscreen(); - }, - - clear : function() { - this.clear(); - }, - - search : function() { - this.search(); - }, - - help : function() { - this.executePlugin("helpDialog", "help-dialog/help-dialog"); - }, - - info : function() { - this.showInfoDialog(); - } - }; - - editormd.keyMaps = { - "Ctrl-1" : "h1", - "Ctrl-2" : "h2", - "Ctrl-3" : "h3", - "Ctrl-4" : "h4", - "Ctrl-5" : "h5", - "Ctrl-6" : "h6", - "Ctrl-B" : "bold", // if this is string == editormd.toolbarHandlers.xxxx - "Ctrl-D" : "datetime", - - "Ctrl-E" : function() { // emoji - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (!this.settings.emoji) - { - alert("Error: settings.emoji == false"); - return ; - } - - cm.replaceSelection(":" + selection + ":"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - "Ctrl-Alt-G" : "goto-line", - "Ctrl-H" : "hr", - "Ctrl-I" : "italic", - "Ctrl-K" : "code", - - "Ctrl-L" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - var title = (selection === "") ? "" : " \""+selection+"\""; - - cm.replaceSelection("[" + selection + "]("+title+")"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - "Ctrl-U" : "list-ul", - - "Shift-Ctrl-A" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (!this.settings.atLink) - { - alert("Error: settings.atLink == false"); - return ; - } - - cm.replaceSelection("@" + selection); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - "Shift-Ctrl-C" : "code", - "Shift-Ctrl-Q" : "quote", - "Shift-Ctrl-S" : "del", - "Shift-Ctrl-K" : "tex", // KaTeX - - "Shift-Alt-C" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection(["```", selection, "```"].join("\n")); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 3); - } - }, - - "Shift-Ctrl-Alt-C" : "code-block", - "Shift-Ctrl-H" : "html-entities", - "Shift-Alt-H" : "help", - "Shift-Ctrl-E" : "emoji", - "Shift-Ctrl-U" : "uppercase", - "Shift-Alt-U" : "ucwords", - "Shift-Ctrl-Alt-U" : "ucfirst", - "Shift-Alt-L" : "lowercase", - - "Shift-Ctrl-I" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - var title = (selection === "") ? "" : " \""+selection+"\""; - - cm.replaceSelection("![" + selection + "]("+title+")"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 4); - } - }, - - "Shift-Ctrl-Alt-I" : "image", - "Shift-Ctrl-L" : "link", - "Shift-Ctrl-O" : "list-ol", - "Shift-Ctrl-P" : "preformatted-text", - "Shift-Ctrl-T" : "table", - "Shift-Alt-P" : "pagebreak", - "F9" : "watch", - "F10" : "preview", - "F11" : "fullscreen", - }; - - /** - * 清除字符串两边的空格 - * Clear the space of strings both sides. - * - * @param {String} str string - * @returns {String} trimed string - */ - - var trim = function(str) { - return (!String.prototype.trim) ? str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") : str.trim(); - }; - - editormd.trim = trim; - - /** - * 所有单词首字母大写 - * Words first to uppercase - * - * @param {String} str string - * @returns {String} string - */ - - var ucwords = function (str) { - return str.toLowerCase().replace(/\b(\w)|\s(\w)/g, function($1) { - return $1.toUpperCase(); - }); - }; - - editormd.ucwords = editormd.wordsFirstUpperCase = ucwords; - - /** - * 字符串首字母大写 - * Only string first char to uppercase - * - * @param {String} str string - * @returns {String} string - */ - - var firstUpperCase = function(str) { - return str.toLowerCase().replace(/\b(\w)/, function($1){ - return $1.toUpperCase(); - }); - }; - - var ucfirst = firstUpperCase; - - editormd.firstUpperCase = editormd.ucfirst = firstUpperCase; - - editormd.urls = { - atLinkBase : "https://github.com/" - }; - - editormd.regexs = { - atLink : /@(\w+)/g, - email : /(\w+)@(\w+)\.(\w+)\.?(\w+)?/g, - emailLink : /(mailto:)?([\w\.\_]+)@(\w+)\.(\w+)\.?(\w+)?/g, - emoji : /:([\w\+-]+):/g, - emojiDatetime : /(\d{2}:\d{2}:\d{2})/g, - twemoji : /:(tw-([\w]+)-?(\w+)?):/g, - fontAwesome : /:(fa-([\w]+)(-(\w+)){0,}):/g, - editormdLogo : /:(editormd-logo-?(\w+)?):/g, - pageBreak : /^\[[=]{8,}\]$/ - }; - - // Emoji graphics files url path - editormd.emoji = { - path : "http://www.emoji-cheat-sheet.com/graphics/emojis/", - ext : ".png" - }; - - // Twitter Emoji (Twemoji) graphics files url path - editormd.twemoji = { - path : "http://twemoji.maxcdn.com/36x36/", - ext : ".png" - }; - - /** - * 自定义marked的解析器 - * Custom Marked renderer rules - * - * @param {Array} markdownToC 传入用于接收TOC的数组 - * @returns {Renderer} markedRenderer 返回marked的Renderer自定义对象 - */ - - editormd.markedRenderer = function(markdownToC, options) { - var defaults = { - toc : true, // Table of contents - tocm : false, - tocStartLevel : 1, // Said from H1 to create ToC - pageBreak : true, - atLink : true, // for @link - emailLink : true, // for mail address auto link - taskList : false, // Enable Github Flavored Markdown task lists - emoji : false, // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis. - tex : false, // TeX(LaTeX), based on KaTeX - flowChart : false, // flowChart.js only support IE9+ - sequenceDiagram : false, // sequenceDiagram.js only support IE9+ - }; - - var settings = $.extend(defaults, options || {}); - var marked = editormd.$marked; - var markedRenderer = new marked.Renderer(); - markdownToC = markdownToC || []; - - var regexs = editormd.regexs; - var atLinkReg = regexs.atLink; - var emojiReg = regexs.emoji; - var emailReg = regexs.email; - var emailLinkReg = regexs.emailLink; - var twemojiReg = regexs.twemoji; - var faIconReg = regexs.fontAwesome; - var editormdLogoReg = regexs.editormdLogo; - var pageBreakReg = regexs.pageBreak; - - markedRenderer.emoji = function(text) { - - text = text.replace(editormd.regexs.emojiDatetime, function($1) { - return $1.replace(/:/g, ":"); - }); - - var matchs = text.match(emojiReg); - - if (!matchs || !settings.emoji) { - return text; - } - - for (var i = 0, len = matchs.length; i < len; i++) - { - if (matchs[i] === ":+1:") { - matchs[i] = ":\\+1:"; - } - - text = text.replace(new RegExp(matchs[i]), function($1, $2){ - var faMatchs = $1.match(faIconReg); - var name = $1.replace(/:/g, ""); - - if (faMatchs) - { - for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++) - { - var faName = faMatchs[fa].replace(/:/g, ""); - - return ""; - } - } - else - { - var emdlogoMathcs = $1.match(editormdLogoReg); - var twemojiMatchs = $1.match(twemojiReg); - - if (emdlogoMathcs) - { - for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++) - { - var logoName = emdlogoMathcs[x].replace(/:/g, ""); - return ""; - } - } - else if (twemojiMatchs) - { - for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++) - { - var twe = twemojiMatchs[t].replace(/:/g, "").replace("tw-", ""); - return "\"twemoji-""; - } - } - else - { - var src = (name === "+1") ? "plus1" : name; - src = (src === "black_large_square") ? "black_square" : src; - src = (src === "moon") ? "waxing_gibbous_moon" : src; - - return "\":""; - } - } - }); - } - - return text; - }; - - markedRenderer.atLink = function(text) { - - if (atLinkReg.test(text)) - { - if (settings.atLink) - { - text = text.replace(emailReg, function($1, $2, $3, $4) { - return $1.replace(/@/g, "_#_@_#_"); - }); - - text = text.replace(atLinkReg, function($1, $2) { - return "" + $1 + ""; - }).replace(/_#_@_#_/g, "@"); - } - - if (settings.emailLink) - { - text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) { - return (!$2 && $.inArray($5, "jpg|jpeg|png|gif|webp|ico|icon|pdf".split("|")) < 0) ? ""+$1+"" : $1; - }); - } - - return text; - } - - return text; - }; - - markedRenderer.link = function (href, title, text) { - - if (this.options.sanitize) { - try { - var prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase(); - } catch(e) { - return ""; - } - - if (prot.indexOf("javascript:") === 0) { - return ""; - } - } - - var out = "" + text.replace(/@/g, "@") + ""; - } - - if (title) { - out += " title=\"" + title + "\""; - } - - out += ">" + text + ""; - - return out; - }; - - markedRenderer.heading = function(text, level, raw) { - - var linkText = text; - var hasLinkReg = /\s*\]*)\>(.*)\<\/a\>\s*/; - var getLinkTextReg = /\s*\]+)\>([^\>]*)\<\/a\>\s*/g; - - if (hasLinkReg.test(text)) - { - var tempText = []; - text = text.split(/\]+)\>([^\>]*)\<\/a\>/); - - for (var i = 0, len = text.length; i < len; i++) - { - tempText.push(text[i].replace(/\s*href\=\"(.*)\"\s*/g, "")); - } - - text = tempText.join(" "); - } - - text = trim(text); - - var escapedText = text.toLowerCase().replace(/[^\w]+/g, "-"); - var toc = { - text : text, - level : level, - slug : escapedText - }; - - var isChinese = /^[\u4e00-\u9fa5]+$/.test(text); - var id = (isChinese) ? escape(text).replace(/\%/g, "") : text.toLowerCase().replace(/[^\w]+/g, "-"); - - markdownToC.push(toc); - - var headingHTML = ""; - - headingHTML += ""; - headingHTML += ""; - headingHTML += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text)); - headingHTML += ""; - - return headingHTML; - }; - - markedRenderer.pageBreak = function(text) { - if (pageBreakReg.test(text) && settings.pageBreak) - { - text = "
    "; - } - - return text; - }; - - markedRenderer.paragraph = function(text) { - var isTeXInline = /\$\$(.*)\$\$/g.test(text); - var isTeXLine = /^\$\$(.*)\$\$$/.test(text); - var isTeXAddClass = (isTeXLine) ? " class=\"" + editormd.classNames.tex + "\"" : ""; - var isToC = (settings.tocm) ? /^(\[TOC\]|\[TOCM\])$/.test(text) : /^\[TOC\]$/.test(text); - var isToCMenu = /^\[TOCM\]$/.test(text); - - if (!isTeXLine && isTeXInline) - { - text = text.replace(/(\$\$([^\$]*)\$\$)+/g, function($1, $2) { - return "" + $2.replace(/\$/g, "") + ""; - }); - } - else - { - text = (isTeXLine) ? text.replace(/\$/g, "") : text; - } - - var tocHTML = "
    " + text + "
    "; - - return (isToC) ? ( (isToCMenu) ? "
    " + tocHTML + "

    " : tocHTML ) - : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : "" + this.atLink(this.emoji(text)) + "

    \n" ); - }; - - markedRenderer.code = function (code, lang, escaped) { - - if (lang === "seq" || lang === "sequence") - { - return "
    " + code + "
    "; - } - else if ( lang === "flow") - { - return "
    " + code + "
    "; - } - else if ( lang === "math" || lang === "latex" || lang === "katex") - { - return "

    " + code + "

    "; - } - else - { - - return marked.Renderer.prototype.code.apply(this, arguments); - } - }; - - markedRenderer.tablecell = function(content, flags) { - var type = (flags.header) ? "th" : "td"; - var tag = (flags.align) ? "<" + type +" style=\"text-align:" + flags.align + "\">" : "<" + type + ">"; - - return tag + this.atLink(this.emoji(content)) + "\n"; - }; - - markedRenderer.listitem = function(text) { - if (settings.taskList && /^\s*\[[x\s]\]\s*/.test(text)) - { - text = text.replace(/^\s*\[\s\]\s*/, " ") - .replace(/^\s*\[x\]\s*/, " "); - - return "
  • " + this.atLink(this.emoji(text)) + "
  • "; - } - else - { - return "
  • " + this.atLink(this.emoji(text)) + "
  • "; - } - }; - - return markedRenderer; - }; - - /** - * - * 生成TOC(Table of Contents) - * Creating ToC (Table of Contents) - * - * @param {Array} toc 从marked获取的TOC数组列表 - * @param {Element} container 插入TOC的容器元素 - * @param {Integer} startLevel Hx 起始层级 - * @returns {Object} tocContainer 返回ToC列表容器层的jQuery对象元素 - */ - - editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) { - - var html = ""; - var lastLevel = 0; - var classPrefix = this.classPrefix; - - startLevel = startLevel || 1; - - for (var i = 0, len = toc.length; i < len; i++) - { - var text = toc[i].text; - var level = toc[i].level; - - if (level < startLevel) { - continue; - } - - if (level > lastLevel) - { - html += ""; - } - else if (level < lastLevel) - { - html += (new Array(lastLevel - level + 2)).join(""); - } - else - { - html += ""; - } - - html += "
  • " + text + "
      "; - lastLevel = level; - } - - var tocContainer = container.find(".markdown-toc"); - - if ((tocContainer.length < 1 && container.attr("previewContainer") === "false")) - { - var tocHTML = "
      "; - - tocHTML = (tocDropdown) ? "
      " + tocHTML + "
      " : tocHTML; - - container.html(tocHTML); - - tocContainer = container.find(".markdown-toc"); - } - - if (tocDropdown) - { - tocContainer.wrap("

      "); - } - - tocContainer.html("
        ").children(".markdown-toc-list").html(html.replace(/\r?\n?\\<\/ul\>/g, "")); - - return tocContainer; - }; - - /** - * - * 生成TOC下拉菜单 - * Creating ToC dropdown menu - * - * @param {Object} container 插入TOC的容器jQuery对象元素 - * @param {String} tocTitle ToC title - * @returns {Object} return toc-menu object - */ - - editormd.tocDropdownMenu = function(container, tocTitle) { - - tocTitle = tocTitle || "Table of Contents"; - - var zindex = 400; - var tocMenus = container.find("." + this.classPrefix + "toc-menu"); - - tocMenus.each(function() { - var $this = $(this); - var toc = $this.children(".markdown-toc"); - var icon = ""; - var btn = "" + icon + tocTitle + ""; - var menu = toc.children("ul"); - var list = menu.find("li"); - - toc.append(btn); - - list.first().before("
      • " + tocTitle + " " + icon + "

      • "); - - $this.mouseover(function(){ - menu.show(); - - list.each(function(){ - var li = $(this); - var ul = li.children("ul"); - - if (ul.html() === "") - { - ul.remove(); - } - - if (ul.length > 0 && ul.html() !== "") - { - var firstA = li.children("a").first(); - - if (firstA.children(".fa").length < 1) - { - firstA.append( $(icon).css({ float:"right", paddingTop:"4px" }) ); - } - } - - li.mouseover(function(){ - ul.css("z-index", zindex).show(); - zindex += 1; - }).mouseleave(function(){ - ul.hide(); - }); - }); - }).mouseleave(function(){ - menu.hide(); - }); - }); - - return tocMenus; - }; - - /** - * 简单地过滤指定的HTML标签 - * Filter custom html tags - * - * @param {String} html 要过滤HTML - * @param {String} filters 要过滤的标签 - * @returns {String} html 返回过滤的HTML - */ - - editormd.filterHTMLTags = function(html, filters) { - - if (typeof html !== "string") { - html = new String(html); - } - - if (typeof filters !== "string") { - return html; - } - - var expression = filters.split("|"); - var filterTags = expression[0].split(","); - var attrs = expression[1]; - - for (var i = 0, len = filterTags.length; i < len; i++) - { - var tag = filterTags[i]; - - html = html.replace(new RegExp("\<\s*" + tag + "\s*([^\>]*)\>([^\>]*)\<\s*\/" + tag + "\s*\>", "igm"), ""); - } - - //return html; - - if (typeof attrs !== "undefined") - { - var htmlTagRegex = /\<(\w+)\s*([^\>]*)\>([^\>]*)\<\/(\w+)\>/ig; - - if (attrs === "*") - { - html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) { - return "<" + $2 + ">" + $4 + ""; - }); - } - else if (attrs === "on*") - { - html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) { - var el = $("<" + $2 + ">" + $4 + ""); - var _attrs = $($1)[0].attributes; - var $attrs = {}; - - $.each(_attrs, function(i, e) { - if (e.nodeName !== '"') $attrs[e.nodeName] = e.nodeValue; - }); - - $.each($attrs, function(i) { - if (i.indexOf("on") === 0) { - delete $attrs[i]; - } - }); - - el.attr($attrs); - - var text = (typeof el[1] !== "undefined") ? $(el[1]).text() : ""; - - return el[0].outerHTML + text; - }); - } - else - { - html = html.replace(htmlTagRegex, function($1, $2, $3, $4) { - var filterAttrs = attrs.split(","); - var el = $($1); - el.html($4); - - $.each(filterAttrs, function(i) { - el.attr(filterAttrs[i], null); - }); - - return el[0].outerHTML; - }); - } - } - - return html; - }; - - /** - * 将Markdown文档解析为HTML用于前台显示 - * Parse Markdown to HTML for Font-end preview. - * - * @param {String} id 用于显示HTML的对象ID - * @param {Object} [options={}] 配置选项,可选 - * @returns {Object} div 返回jQuery对象元素 - */ - - editormd.markdownToHTML = function(id, options) { - var defaults = { - gfm : true, - toc : true, - tocm : false, - tocStartLevel : 1, - tocTitle : "目录", - tocDropdown : false, - tocContainer : "", - markdown : "", - markdownSourceCode : false, - htmlDecode : false, - autoLoadKaTeX : true, - pageBreak : true, - atLink : true, // for @link - emailLink : true, // for mail address auto link - tex : false, - taskList : false, // Github Flavored Markdown task lists - emoji : false, - flowChart : false, - sequenceDiagram : false, - previewCodeHighlight : true - }; - - editormd.$marked = marked; - - var div = $("#" + id); - var settings = div.settings = $.extend(true, defaults, options || {}); - var saveTo = div.find("textarea"); - - if (saveTo.length < 1) - { - div.append(""); - saveTo = div.find("textarea"); - } - - var markdownDoc = (settings.markdown === "") ? saveTo.val() : settings.markdown; - var markdownToC = []; - - var rendererOptions = { - toc : settings.toc, - tocm : settings.tocm, - tocStartLevel : settings.tocStartLevel, - taskList : settings.taskList, - emoji : settings.emoji, - tex : settings.tex, - pageBreak : settings.pageBreak, - atLink : settings.atLink, // for @link - emailLink : settings.emailLink, // for mail address auto link - flowChart : settings.flowChart, - sequenceDiagram : settings.sequenceDiagram, - previewCodeHighlight : settings.previewCodeHighlight, - }; - - var markedOptions = { - renderer : editormd.markedRenderer(markdownToC, rendererOptions), - gfm : settings.gfm, - tables : true, - breaks : true, - pedantic : false, - sanitize : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签,即是否开启HTML标签解析,为了安全性,默认不开启 - smartLists : true, - smartypants : true - }; - - markdownDoc = new String(markdownDoc); - - var markdownParsed = marked(markdownDoc, markedOptions); - - markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode); - - if (settings.markdownSourceCode) { - saveTo.text(markdownDoc); - } else { - saveTo.remove(); - } - - div.addClass("markdown-body " + this.classPrefix + "html-preview").append(markdownParsed); - - var tocContainer = (settings.tocContainer !== "") ? $(settings.tocContainer) : div; - - if (settings.tocContainer !== "") - { - tocContainer.attr("previewContainer", false); - } - - if (settings.toc) - { - div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel); - - if (settings.tocDropdown || div.find("." + this.classPrefix + "toc-menu").length > 0) - { - this.tocDropdownMenu(div, settings.tocTitle); - } - - if (settings.tocContainer !== "") - { - div.find(".editormd-toc-menu, .editormd-markdown-toc").remove(); - } - } - - if (settings.previewCodeHighlight) - { - div.find("pre").addClass("prettyprint linenums"); - prettyPrint(); - } - - if (!editormd.isIE8) - { - if (settings.flowChart) { - div.find(".flowchart").flowChart(); - } - - if (settings.sequenceDiagram) { - div.find(".sequence-diagram").sequenceDiagram({theme: "simple"}); - } - } - - if (settings.tex) - { - var katexHandle = function() { - div.find("." + editormd.classNames.tex).each(function(){ - var tex = $(this); - katex.render(tex.html().replace(/</g, "<").replace(/>/g, ">"), tex[0]); - tex.find(".katex").css("font-size", "1.6em"); - }); - }; - - if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded) - { - this.loadKaTeX(function() { - editormd.$katex = katex; - editormd.kaTeXLoaded = true; - katexHandle(); - }); - } - else - { - katexHandle(); - } - } - - div.getMarkdown = function() { - return saveTo.val(); - }; - - return div; - }; - - // Editor.md themes, change toolbar themes etc. - // added @1.5.0 - editormd.themes = ["default", "dark"]; - - // Preview area themes - // added @1.5.0 - editormd.previewThemes = ["default", "dark"]; - - // CodeMirror / editor area themes - // @1.5.0 rename -> editorThemes, old version -> themes - editormd.editorThemes = [ - "default", "3024-day", "3024-night", - "ambiance", "ambiance-mobile", - "base16-dark", "base16-light", "blackboard", - "cobalt", - "eclipse", "elegant", "erlang-dark", - "lesser-dark", - "mbo", "mdn-like", "midnight", "monokai", - "neat", "neo", "night", - "paraiso-dark", "paraiso-light", "pastel-on-dark", - "rubyblue", - "solarized", - "the-matrix", "tomorrow-night-eighties", "twilight", - "vibrant-ink", - "xq-dark", "xq-light" - ]; - - editormd.loadPlugins = {}; - - editormd.loadFiles = { - js : [], - css : [], - plugin : [] - }; - - /** - * 动态加载Editor.md插件,但不立即执行 - * Load editor.md plugins - * - * @param {String} fileName 插件文件路径 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadPlugin = function(fileName, callback, into) { - callback = callback || function() {}; - - this.loadScript(fileName, function() { - editormd.loadFiles.plugin.push(fileName); - callback(); - }, into); - }; - - /** - * 动态加载CSS文件的方法 - * Load css file method - * - * @param {String} fileName CSS文件名 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadCSS = function(fileName, callback, into) { - into = into || "head"; - callback = callback || function() {}; - - var css = document.createElement("link"); - css.type = "text/css"; - css.rel = "stylesheet"; - css.onload = css.onreadystatechange = function() { - editormd.loadFiles.css.push(fileName); - callback(); - }; - - css.href = fileName + ".css"; - - if(into === "head") { - document.getElementsByTagName("head")[0].appendChild(css); - } else { - document.body.appendChild(css); - } - }; - - editormd.isIE = (navigator.appName == "Microsoft Internet Explorer"); - editormd.isIE8 = (editormd.isIE && navigator.appVersion.match(/8./i) == "8."); - - /** - * 动态加载JS文件的方法 - * Load javascript file method - * - * @param {String} fileName JS文件名 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadScript = function(fileName, callback, into) { - - into = into || "head"; - callback = callback || function() {}; - - var script = null; - script = document.createElement("script"); - script.id = fileName.replace(/[\./]+/g, "-"); - script.type = "text/javascript"; - script.src = fileName + ".js"; - - if (editormd.isIE8) - { - script.onreadystatechange = function() { - if(script.readyState) - { - if (script.readyState === "loaded" || script.readyState === "complete") - { - script.onreadystatechange = null; - editormd.loadFiles.js.push(fileName); - callback(); - } - } - }; - } - else - { - script.onload = function() { - editormd.loadFiles.js.push(fileName); - callback(); - }; - } - - if (into === "head") { - document.getElementsByTagName("head")[0].appendChild(script); - } else { - document.body.appendChild(script); - } - }; - - // 使用国外的CDN,加载速度有时会很慢,或者自定义URL - // You can custom KaTeX load url. - editormd.katexURL = { - css : "//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min", - js : "//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min" - }; - - editormd.kaTeXLoaded = false; - - /** - * 加载KaTeX文件 - * load KaTeX files - * - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - */ - - editormd.loadKaTeX = function (callback) { - editormd.loadCSS(editormd.katexURL.css, function(){ - editormd.loadScript(editormd.katexURL.js, callback || function(){}); - }); - }; - - /** - * 锁屏 - * lock screen - * - * @param {Boolean} lock Boolean 布尔值,是否锁屏 - * @returns {void} - */ - - editormd.lockScreen = function(lock) { - $("html,body").css("overflow", (lock) ? "hidden" : ""); - }; - - /** - * 动态创建对话框 - * Creating custom dialogs - * - * @param {Object} options 配置项键值对 Key/Value - * @returns {dialog} 返回创建的dialog的jQuery实例对象 - */ - - editormd.createDialog = function(options) { - var defaults = { - name : "", - width : 420, - height: 240, - title : "", - drag : true, - closed : true, - content : "", - mask : true, - maskStyle : { - backgroundColor : "#fff", - opacity : 0.1 - }, - lockScreen : true, - footer : true, - buttons : false - }; - - options = $.extend(true, defaults, options); - - var $this = this; - var editor = this.editor; - var classPrefix = editormd.classPrefix; - var guid = (new Date()).getTime(); - var dialogName = ( (options.name === "") ? classPrefix + "dialog-" + guid : options.name); - var mouseOrTouch = editormd.mouseOrTouch; - - var html = "
        "; - - if (options.title !== "") - { - html += "
        "; - html += "" + options.title + ""; - html += "
        "; - } - - if (options.closed) - { - html += ""; - } - - html += "
        " + options.content; - - if (options.footer || typeof options.footer === "string") - { - html += "
        " + ( (typeof options.footer === "boolean") ? "" : options.footer) + "
        "; - } - - html += "
        "; - - html += "
        "; - html += "
        "; - html += "
        "; - - editor.append(html); - - var dialog = editor.find("." + dialogName); - - dialog.lockScreen = function(lock) { - if (options.lockScreen) - { - $("html,body").css("overflow", (lock) ? "hidden" : ""); - $this.resize(); - } - - return dialog; - }; - - dialog.showMask = function() { - if (options.mask) - { - editor.find("." + classPrefix + "mask").css(options.maskStyle).css("z-index", editormd.dialogZindex - 1).show(); - } - return dialog; - }; - - dialog.hideMask = function() { - if (options.mask) - { - editor.find("." + classPrefix + "mask").hide(); - } - - return dialog; - }; - - dialog.loading = function(show) { - var loading = dialog.find("." + classPrefix + "dialog-mask"); - loading[(show) ? "show" : "hide"](); - - return dialog; - }; - - dialog.lockScreen(true).showMask(); - - dialog.show().css({ - zIndex : editormd.dialogZindex, - border : (editormd.isIE8) ? "1px solid #ddd" : "", - width : (typeof options.width === "number") ? options.width + "px" : options.width, - height : (typeof options.height === "number") ? options.height + "px" : options.height - }); - - var dialogPosition = function(){ - dialog.css({ - top : ($(window).height() - dialog.height()) / 2 + "px", - left : ($(window).width() - dialog.width()) / 2 + "px" - }); - }; - - dialogPosition(); - - $(window).resize(dialogPosition); - - dialog.children("." + classPrefix + "dialog-close").bind(mouseOrTouch("click", "touchend"), function() { - dialog.hide().lockScreen(false).hideMask(); - }); - - if (typeof options.buttons === "object") - { - var footer = dialog.footer = dialog.find("." + classPrefix + "dialog-footer"); - - for (var key in options.buttons) - { - var btn = options.buttons[key]; - var btnClassName = classPrefix + key + "-btn"; - - footer.append(""); - btn[1] = $.proxy(btn[1], dialog); - footer.children("." + btnClassName).bind(mouseOrTouch("click", "touchend"), btn[1]); - } - } - - if (options.title !== "" && options.drag) - { - var posX, posY; - var dialogHeader = dialog.children("." + classPrefix + "dialog-header"); - - if (!options.mask) { - dialogHeader.bind(mouseOrTouch("click", "touchend"), function(){ - editormd.dialogZindex += 2; - dialog.css("z-index", editormd.dialogZindex); - }); - } - - dialogHeader.mousedown(function(e) { - e = e || window.event; //IE - posX = e.clientX - parseInt(dialog[0].style.left); - posY = e.clientY - parseInt(dialog[0].style.top); - - document.onmousemove = moveAction; - }); - - var userCanSelect = function (obj) { - obj.removeClass(classPrefix + "user-unselect").off("selectstart"); - }; - - var userUnselect = function (obj) { - obj.addClass(classPrefix + "user-unselect").on("selectstart", function(event) { // selectstart for IE - return false; - }); - }; - - var moveAction = function (e) { - e = e || window.event; //IE - - var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top); - - if( nowLeft >= 0 ) { - if( nowLeft + dialog.width() <= $(window).width()) { - left = e.clientX - posX; - } else { - left = $(window).width() - dialog.width(); - document.onmousemove = null; - } - } else { - left = 0; - document.onmousemove = null; - } - - if( nowTop >= 0 ) { - top = e.clientY - posY; - } else { - top = 0; - document.onmousemove = null; - } - - - document.onselectstart = function() { - return false; - }; - - userUnselect($("body")); - userUnselect(dialog); - dialog[0].style.left = left + "px"; - dialog[0].style.top = top + "px"; - }; - - document.onmouseup = function() { - userCanSelect($("body")); - userCanSelect(dialog); - - document.onselectstart = null; - document.onmousemove = null; - }; - - dialogHeader.touchDraggable = function() { - var offset = null; - var start = function(e) { - var orig = e.originalEvent; - var pos = $(this).parent().position(); - - offset = { - x : orig.changedTouches[0].pageX - pos.left, - y : orig.changedTouches[0].pageY - pos.top - }; - }; - - var move = function(e) { - e.preventDefault(); - var orig = e.originalEvent; - - $(this).parent().css({ - top : orig.changedTouches[0].pageY - offset.y, - left : orig.changedTouches[0].pageX - offset.x - }); - }; - - this.bind("touchstart", start).bind("touchmove", move); - }; - - dialogHeader.touchDraggable(); - } - - editormd.dialogZindex += 2; - - return dialog; - }; - - /** - * 鼠标和触摸事件的判断/选择方法 - * MouseEvent or TouchEvent type switch - * - * @param {String} [mouseEventType="click"] 供选择的鼠标事件 - * @param {String} [touchEventType="touchend"] 供选择的触摸事件 - * @returns {String} EventType 返回事件类型名称 - */ - - editormd.mouseOrTouch = function(mouseEventType, touchEventType) { - mouseEventType = mouseEventType || "click"; - touchEventType = touchEventType || "touchend"; - - var eventType = mouseEventType; - - try { - document.createEvent("TouchEvent"); - eventType = touchEventType; - } catch(e) {} - - return eventType; - }; - - /** - * 日期时间的格式化方法 - * Datetime format method - * - * @param {String} [format=""] 日期时间的格式,类似PHP的格式 - * @returns {String} datefmt 返回格式化后的日期时间字符串 - */ - - editormd.dateFormat = function(format) { - format = format || ""; - - var addZero = function(d) { - return (d < 10) ? "0" + d : d; - }; - - var date = new Date(); - var year = date.getFullYear(); - var year2 = year.toString().slice(2, 4); - var month = addZero(date.getMonth() + 1); - var day = addZero(date.getDate()); - var weekDay = date.getDay(); - var hour = addZero(date.getHours()); - var min = addZero(date.getMinutes()); - var second = addZero(date.getSeconds()); - var ms = addZero(date.getMilliseconds()); - var datefmt = ""; - - var ymd = year2 + "-" + month + "-" + day; - var fymd = year + "-" + month + "-" + day; - var hms = hour + ":" + min + ":" + second; - - switch (format) - { - case "UNIX Time" : - datefmt = date.getTime(); - break; - - case "UTC" : - datefmt = date.toUTCString(); - break; - - case "yy" : - datefmt = year2; - break; - - case "year" : - case "yyyy" : - datefmt = year; - break; - - case "month" : - case "mm" : - datefmt = month; - break; - - case "cn-week-day" : - case "cn-wd" : - var cnWeekDays = ["日", "一", "二", "三", "四", "五", "六"]; - datefmt = "星期" + cnWeekDays[weekDay]; - break; - - case "week-day" : - case "wd" : - var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - datefmt = weekDays[weekDay]; - break; - - case "day" : - case "dd" : - datefmt = day; - break; - - case "hour" : - case "hh" : - datefmt = hour; - break; - - case "min" : - case "ii" : - datefmt = min; - break; - - case "second" : - case "ss" : - datefmt = second; - break; - - case "ms" : - datefmt = ms; - break; - - case "yy-mm-dd" : - datefmt = ymd; - break; - - case "yyyy-mm-dd" : - datefmt = fymd; - break; - - case "yyyy-mm-dd h:i:s ms" : - case "full + ms" : - datefmt = fymd + " " + hms + " " + ms; - break; - - case "full" : - case "yyyy-mm-dd h:i:s" : - default: - datefmt = fymd + " " + hms; - break; - } - - return datefmt; - }; - - return editormd; - -})); diff --git a/target/classes/static/admin/editormd/editormd.amd.min.js b/target/classes/static/admin/editormd/editormd.amd.min.js deleted file mode 100644 index 2301369..0000000 --- a/target/classes/static/admin/editormd/editormd.amd.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! Editor.md v1.5.0 | editormd.amd.min.js | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ -!function(e){"use strict";if("function"==typeof require&&"object"==typeof exports&&"object"==typeof module)module.exports=e;else if("function"==typeof define)if(define.amd){var t="codemirror/mode/",i="codemirror/addon/",o=["jquery","marked","prettify","katex","raphael","underscore","flowchart","jqueryflowchart","sequenceDiagram","codemirror/lib/codemirror",t+"css/css",t+"sass/sass",t+"shell/shell",t+"sql/sql",t+"clike/clike",t+"php/php",t+"xml/xml",t+"markdown/markdown",t+"javascript/javascript",t+"htmlmixed/htmlmixed",t+"gfm/gfm",t+"http/http",t+"go/go",t+"dart/dart",t+"coffeescript/coffeescript",t+"nginx/nginx",t+"python/python",t+"perl/perl",t+"lua/lua",t+"r/r",t+"ruby/ruby",t+"rst/rst",t+"smartymixed/smartymixed",t+"vb/vb",t+"vbscript/vbscript",t+"velocity/velocity",t+"xquery/xquery",t+"yaml/yaml",t+"erlang/erlang",t+"jade/jade",i+"edit/trailingspace",i+"dialog/dialog",i+"search/searchcursor",i+"search/search",i+"scroll/annotatescrollbar",i+"search/matchesonscrollbar",i+"display/placeholder",i+"edit/closetag",i+"fold/foldcode",i+"fold/foldgutter",i+"fold/indent-fold",i+"fold/brace-fold",i+"fold/xml-fold",i+"fold/markdown-fold",i+"fold/comment-fold",i+"mode/overlay",i+"selection/active-line",i+"edit/closebrackets",i+"display/fullscreen",i+"search/match-highlighter"];define(o,e)}else define(["jquery"],e);else window.editormd=e()}(function(){"function"==typeof define&&define.amd&&(e=arguments[0],marked=arguments[1],prettify=arguments[2],katex=arguments[3],Raphael=arguments[4],_=arguments[5],flowchart=arguments[6],CodeMirror=arguments[9]);var e="undefined"!=typeof jQuery?jQuery:Zepto;if("undefined"!=typeof e){var t=function(e,i){return new t.fn.init(e,i)};t.title=t.$name="Editor.md",t.version="1.5.0",t.homePage="https://pandao.github.io/editor.md/",t.classPrefix="editormd-",t.toolbarModes={full:["undo","redo","|","bold","del","italic","quote","ucwords","uppercase","lowercase","|","h1","h2","h3","h4","h5","h6","|","list-ul","list-ol","hr","|","link","reference-link","image","code","preformatted-text","code-block","table","datetime","emoji","html-entities","pagebreak","|","goto-line","watch","preview","fullscreen","clear","search","|","help","info"],simple:["undo","redo","|","bold","del","italic","quote","uppercase","lowercase","|","h1","h2","h3","h4","h5","h6","|","list-ul","list-ol","hr","|","watch","preview","fullscreen","|","help","info"],mini:["undo","redo","|","watch","preview","|","help","info"]},t.defaults={mode:"gfm",name:"",value:"",theme:"",editorTheme:"default",previewTheme:"",markdown:"",appendMarkdown:"",width:"100%",height:"100%",path:"./lib/",pluginPath:"",delay:300,autoLoadModules:!0,watch:!0,placeholder:"Enjoy Markdown! coding now...",gotoLine:!0,codeFold:!1,autoHeight:!1,autoFocus:!0,autoCloseTags:!0,searchReplace:!0,syncScrolling:!0,readOnly:!1,tabSize:4,indentUnit:4,lineNumbers:!0,lineWrapping:!0,autoCloseBrackets:!0,showTrailingSpace:!0,matchBrackets:!0,indentWithTabs:!0,styleSelectedText:!0,matchWordHighlight:!0,styleActiveLine:!0,dialogLockScreen:!0,dialogShowMask:!0,dialogDraggable:!0,dialogMaskBgColor:"#fff",dialogMaskOpacity:.1,fontSize:"13px",saveHTMLToTextarea:!1,disabledKeyMaps:[],onload:function(){},onresize:function(){},onchange:function(){},onwatch:null,onunwatch:null,onpreviewing:function(){},onpreviewed:function(){},onfullscreen:function(){},onfullscreenExit:function(){},onscroll:function(){},onpreviewscroll:function(){},imageUpload:!1,imageFormats:["jpg","jpeg","gif","png","bmp","webp"],imageUploadURL:"",crossDomainUpload:!1,uploadCallbackURL:"",toc:!0,tocm:!1,tocTitle:"",tocDropdown:!1,tocContainer:"",tocStartLevel:1,htmlDecode:!1,pageBreak:!0,atLink:!0,emailLink:!0,taskList:!1,emoji:!1,tex:!1,flowChart:!1,sequenceDiagram:!1,previewCodeHighlight:!0,toolbar:!0,toolbarAutoFixed:!0,toolbarIcons:"full",toolbarTitles:{},toolbarHandlers:{ucwords:function(){return t.toolbarHandlers.ucwords},lowercase:function(){return t.toolbarHandlers.lowercase}},toolbarCustomIcons:{lowercase:'a',ucwords:'Aa'},toolbarIconsClass:{undo:"fa-undo",redo:"fa-repeat",bold:"fa-bold",del:"fa-strikethrough",italic:"fa-italic",quote:"fa-quote-left",uppercase:"fa-font",h1:t.classPrefix+"bold",h2:t.classPrefix+"bold",h3:t.classPrefix+"bold",h4:t.classPrefix+"bold",h5:t.classPrefix+"bold",h6:t.classPrefix+"bold","list-ul":"fa-list-ul","list-ol":"fa-list-ol",hr:"fa-minus",link:"fa-link","reference-link":"fa-anchor",image:"fa-picture-o",code:"fa-code","preformatted-text":"fa-file-code-o","code-block":"fa-file-code-o",table:"fa-table",datetime:"fa-clock-o",emoji:"fa-smile-o","html-entities":"fa-copyright",pagebreak:"fa-newspaper-o","goto-line":"fa-terminal",watch:"fa-eye-slash",unwatch:"fa-eye",preview:"fa-desktop",search:"fa-search",fullscreen:"fa-arrows-alt",clear:"fa-eraser",help:"fa-question-circle",info:"fa-info-circle"},toolbarIconTexts:{},lang:{name:"zh-cn",description:"开源在线Markdown编辑器
        Open source online Markdown editor.",tocTitle:"目录",toolbar:{undo:"撤销(Ctrl+Z)",redo:"重做(Ctrl+Y)",bold:"粗体",del:"删除线",italic:"斜体",quote:"引用",ucwords:"将每个单词首字母转成大写",uppercase:"将所选转换成大写",lowercase:"将所选转换成小写",h1:"标题1",h2:"标题2",h3:"标题3",h4:"标题4",h5:"标题5",h6:"标题6","list-ul":"无序列表","list-ol":"有序列表",hr:"横线",link:"链接","reference-link":"引用链接",image:"添加图片",code:"行内代码","preformatted-text":"预格式文本 / 代码块(缩进风格)","code-block":"代码块(多语言风格)",table:"添加表格",datetime:"日期时间",emoji:"Emoji表情","html-entities":"HTML实体字符",pagebreak:"插入分页符","goto-line":"跳转到行",watch:"关闭实时预览",unwatch:"开启实时预览",preview:"全窗口预览HTML(按 Shift + ESC还原)",fullscreen:"全屏(按ESC还原)",clear:"清空",search:"搜索",help:"使用帮助",info:"关于"+t.title},buttons:{enter:"确定",cancel:"取消",close:"关闭"},dialog:{link:{title:"添加链接",url:"链接地址",urlTitle:"链接标题",urlEmpty:"错误:请填写链接地址。"},referenceLink:{title:"添加引用链接",name:"引用名称",url:"链接地址",urlId:"链接ID",urlTitle:"链接标题",nameEmpty:"错误:引用链接的名称不能为空。",idEmpty:"错误:请填写引用链接的ID。",urlEmpty:"错误:请填写引用链接的URL地址。"},image:{title:"添加图片",url:"图片地址",link:"图片链接",alt:"图片描述",uploadButton:"本地上传",imageURLEmpty:"错误:图片地址不能为空。",uploadFileEmpty:"错误:上传的图片不能为空。",formatNotAllowed:"错误:只允许上传图片文件,允许上传的图片文件格式有:"},preformattedText:{title:"添加预格式文本或代码块",emptyAlert:"错误:请填写预格式文本或代码的内容。"},codeBlock:{title:"添加代码块",selectLabel:"代码语言:",selectDefaultText:"请选择代码语言",otherLanguage:"其他语言",unselectedLanguageAlert:"错误:请选择代码所属的语言类型。",codeEmptyAlert:"错误:请填写代码内容。"},htmlEntities:{title:"HTML 实体字符"},help:{title:"使用帮助"}}}},t.classNames={tex:t.classPrefix+"tex"},t.dialogZindex=99999,t.$katex=null,t.$marked=null,t.$CodeMirror=null,t.$prettyPrint=null;var i,o;t.prototype=t.fn={state:{watching:!1,loaded:!1,preview:!1,fullscreen:!1},init:function(i,o){o=o||{},"object"==typeof i&&(o=i);var r=this.classPrefix=t.classPrefix,n=this.settings=e.extend(!0,t.defaults,o);i="object"==typeof i?n.id:i;var a=this.editor=e("#"+i);this.id=i,this.lang=n.lang;var s=this.classNames={textarea:{html:r+"html-textarea",markdown:r+"markdown-textarea"}};n.pluginPath=""===n.pluginPath?n.path+"../plugins/":n.pluginPath,this.state.watching=n.watch?!0:!1,a.hasClass("editormd")||a.addClass("editormd"),a.css({width:"number"==typeof n.width?n.width+"px":n.width,height:"number"==typeof n.height?n.height+"px":n.height}),n.autoHeight&&a.css("height","auto");var l=this.markdownTextarea=a.children("textarea");l.length<1&&(a.append(""),l=this.markdownTextarea=a.children("textarea")),l.addClass(s.textarea.markdown).attr("placeholder",n.placeholder),("undefined"==typeof l.attr("name")||""===l.attr("name"))&&l.attr("name",""!==n.name?n.name:i+"-markdown-doc");var c=[n.readOnly?"":'',n.saveHTMLToTextarea?'':"",'
        ','
        ','
        '].join("\n");return a.append(c).addClass(r+"vertical"),""!==n.theme&&a.addClass(r+"theme-"+n.theme),this.mask=a.children("."+r+"mask"),this.containerMask=a.children("."+r+"container-mask"),""!==n.markdown&&l.val(n.markdown),""!==n.appendMarkdown&&l.val(l.val()+n.appendMarkdown),this.htmlTextarea=a.children("."+s.textarea.html),this.preview=a.children("."+r+"preview"),this.previewContainer=this.preview.children("."+r+"preview-container"),""!==n.previewTheme&&this.preview.addClass(r+"preview-theme-"+n.previewTheme),"function"==typeof define&&define.amd&&("undefined"!=typeof katex&&(t.$katex=katex),n.searchReplace&&!n.readOnly&&(t.loadCSS(n.path+"codemirror/addon/dialog/dialog"),t.loadCSS(n.path+"codemirror/addon/search/matchesonscrollbar"))),"function"==typeof define&&define.amd||!n.autoLoadModules?("undefined"!=typeof CodeMirror&&(t.$CodeMirror=CodeMirror),"undefined"!=typeof marked&&(t.$marked=marked),this.setCodeMirror().setToolbar().loadedDisplay()):this.loadQueues(),this},loadQueues:function(){var e=this,i=this.settings,o=i.path,r=function(){return t.isIE8?void e.loadedDisplay():void(i.flowChart||i.sequenceDiagram?t.loadScript(o+"raphael.min",function(){t.loadScript(o+"underscore.min",function(){!i.flowChart&&i.sequenceDiagram?t.loadScript(o+"sequence-diagram.min",function(){e.loadedDisplay()}):i.flowChart&&!i.sequenceDiagram?t.loadScript(o+"flowchart.min",function(){t.loadScript(o+"jquery.flowchart.min",function(){e.loadedDisplay()})}):i.flowChart&&i.sequenceDiagram&&t.loadScript(o+"flowchart.min",function(){t.loadScript(o+"jquery.flowchart.min",function(){t.loadScript(o+"sequence-diagram.min",function(){e.loadedDisplay()})})})})}):e.loadedDisplay())};return t.loadCSS(o+"codemirror/codemirror.min"),i.searchReplace&&!i.readOnly&&(t.loadCSS(o+"codemirror/addon/dialog/dialog"),t.loadCSS(o+"codemirror/addon/search/matchesonscrollbar")),i.codeFold&&t.loadCSS(o+"codemirror/addon/fold/foldgutter"),t.loadScript(o+"codemirror/codemirror.min",function(){t.$CodeMirror=CodeMirror,t.loadScript(o+"codemirror/modes.min",function(){t.loadScript(o+"codemirror/addons.min",function(){return e.setCodeMirror(),"gfm"!==i.mode&&"markdown"!==i.mode?(e.loadedDisplay(),!1):(e.setToolbar(),void t.loadScript(o+"marked.min",function(){t.$marked=marked,i.previewCodeHighlight?t.loadScript(o+"prettify.min",function(){r()}):r()}))})})}),this},setTheme:function(e){var t=this.editor,i=this.settings.theme,o=this.classPrefix+"theme-";return t.removeClass(o+i).addClass(o+e),this.settings.theme=e,this},setEditorTheme:function(e){var i=this.settings;return i.editorTheme=e,"default"!==e&&t.loadCSS(i.path+"codemirror/theme/"+i.editorTheme),this.cm.setOption("theme",e),this},setCodeMirrorTheme:function(e){return this.setEditorTheme(e),this},setPreviewTheme:function(e){var t=this.preview,i=this.settings.previewTheme,o=this.classPrefix+"preview-theme-";return t.removeClass(o+i).addClass(o+e),this.settings.previewTheme=e,this},setCodeMirror:function(){var e=this.settings,i=this.editor;"default"!==e.editorTheme&&t.loadCSS(e.path+"codemirror/theme/"+e.editorTheme);var o={mode:e.mode,theme:e.editorTheme,tabSize:e.tabSize,dragDrop:!1,autofocus:e.autoFocus,autoCloseTags:e.autoCloseTags,readOnly:e.readOnly?"nocursor":!1,indentUnit:e.indentUnit,lineNumbers:e.lineNumbers,lineWrapping:e.lineWrapping,extraKeys:{"Ctrl-Q":function(e){e.foldCode(e.getCursor())}},foldGutter:e.codeFold,gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],matchBrackets:e.matchBrackets,indentWithTabs:e.indentWithTabs,styleActiveLine:e.styleActiveLine,styleSelectedText:e.styleSelectedText,autoCloseBrackets:e.autoCloseBrackets,showTrailingSpace:e.showTrailingSpace,highlightSelectionMatches:e.matchWordHighlight?{showToken:"onselected"===e.matchWordHighlight?!1:/\w/}:!1};return this.codeEditor=this.cm=t.$CodeMirror.fromTextArea(this.markdownTextarea[0],o),this.codeMirror=this.cmElement=i.children(".CodeMirror"),""!==e.value&&this.cm.setValue(e.value),this.codeMirror.css({fontSize:e.fontSize,width:e.watch?"50%":"100%"}),e.autoHeight&&(this.codeMirror.css("height","auto"),this.cm.setOption("viewportMargin",1/0)),e.lineNumbers||this.codeMirror.find(".CodeMirror-gutters").css("border-right","none"),this},getCodeMirrorOption:function(e){return this.cm.getOption(e)},setCodeMirrorOption:function(e,t){return this.cm.setOption(e,t),this},addKeyMap:function(e,t){return this.cm.addKeyMap(e,t),this},removeKeyMap:function(e){return this.cm.removeKeyMap(e),this},gotoLine:function(t){var i=this.settings;if(!i.gotoLine)return this;var o=this.cm,r=(this.editor,o.lineCount()),n=this.preview;if("string"==typeof t&&("last"===t&&(t=r),"first"===t&&(t=1)),"number"!=typeof t)return alert("Error: The line number must be an integer."),this;if(t=parseInt(t)-1,t>r)return alert("Error: The line number range 1-"+r),this;o.setCursor({line:t,ch:0});var a=o.getScrollInfo(),s=a.clientHeight,l=o.charCoords({line:t,ch:0},"local");if(o.scrollTo(null,(l.top+l.bottom-s)/2),i.watch){var c=this.codeMirror.find(".CodeMirror-scroll")[0],h=e(c).height(),d=c.scrollTop,u=d/c.scrollHeight;n.scrollTop(0===d?0:d+h>=c.scrollHeight-16?n[0].scrollHeight:n[0].scrollHeight*u)}return o.focus(),this},extend:function(){return"undefined"!=typeof arguments[1]&&("function"==typeof arguments[1]&&(arguments[1]=e.proxy(arguments[1],this)),this[arguments[0]]=arguments[1]),"object"==typeof arguments[0]&&"undefined"==typeof arguments[0].length&&e.extend(!0,this,arguments[0]),this},set:function(t,i){return"undefined"!=typeof i&&"function"==typeof i&&(i=e.proxy(i,this)),this[t]=i,this},config:function(t,i){var o=this.settings;return"object"==typeof t&&(o=e.extend(!0,o,t)),"string"==typeof t&&(o[t]=i),this.settings=o,this.recreate(),this},on:function(t,i){var o=this.settings;return"undefined"!=typeof o["on"+t]&&(o["on"+t]=e.proxy(i,this)),this},off:function(e){var t=this.settings;return"undefined"!=typeof t["on"+e]&&(t["on"+e]=function(){}),this},showToolbar:function(t){var i=this.settings;return i.readOnly?this:(i.toolbar&&(this.toolbar.length<1||""===this.toolbar.find("."+this.classPrefix+"menu").html())&&this.setToolbar(),i.toolbar=!0,this.toolbar.show(),this.resize(),e.proxy(t||function(){},this)(),this)},hideToolbar:function(t){var i=this.settings;return i.toolbar=!1,this.toolbar.hide(),this.resize(),e.proxy(t||function(){},this)(),this},setToolbarAutoFixed:function(t){var i=this.state,o=this.editor,r=this.toolbar,n=this.settings;"undefined"!=typeof t&&(n.toolbarAutoFixed=t);var a=function(){var t=e(window),i=t.scrollTop();return n.toolbarAutoFixed?void r.css(i-o.offset().top>10&&i
          ';i.append(n),r=this.toolbar=i.children("."+o+"toolbar")}if(!e.toolbar)return r.hide(),this;r.show();for(var a="function"==typeof e.toolbarIcons?e.toolbarIcons():"string"==typeof e.toolbarIcons?t.toolbarModes[e.toolbarIcons]:e.toolbarIcons,s=r.find("."+this.classPrefix+"menu"),l="",c=!1,h=0,d=a.length;d>h;h++){var u=a[h];if("||"===u)c=!0;else if("|"===u)l+='
        • |
        • ';else{var f=/h(\d)/.test(u),g=u;"watch"!==u||e.watch||(g="unwatch");var p=e.lang.toolbar[g],m=e.toolbarIconTexts[g],w=e.toolbarIconsClass[g];p="undefined"==typeof p?"":p,m="undefined"==typeof m?"":m,w="undefined"==typeof w?"":w;var v=c?'
        • ':"
        • ";"undefined"!=typeof e.toolbarCustomIcons[u]&&"function"!=typeof e.toolbarCustomIcons[u]?v+=e.toolbarCustomIcons[u]:(v+='',v+=''+(f?u.toUpperCase():""===w?m:"")+"",v+=""),v+="
        • ",l=c?v+l:l+v}}return s.html(l),s.find('[title="Lowercase"]').attr("title",e.lang.toolbar.lowercase),s.find('[title="ucwords"]').attr("title",e.lang.toolbar.ucwords),this.setToolbarHandler(),this.setToolbarAutoFixed(),this},dialogLockScreen:function(){return e.proxy(t.dialogLockScreen,this)(),this},dialogShowMask:function(i){return e.proxy(t.dialogShowMask,this)(i),this},getToolbarHandles:function(e){var i=this.toolbarHandlers=t.toolbarHandlers;return e&&"undefined"!=typeof toolbarIconHandlers[e]?i[e]:i},setToolbarHandler:function(){var i=this,o=this.settings;if(!o.toolbar||o.readOnly)return this;var r=this.toolbar,n=this.cm,a=this.classPrefix,s=this.toolbarIcons=r.find("."+a+"menu > li > a"),l=this.getToolbarHandles();return s.bind(t.mouseOrTouch("click","touchend"),function(t){var r=e(this).children(".fa"),a=r.attr("name"),s=n.getCursor(),c=n.getSelection();return""!==a?(i.activeIcon=r,"undefined"!=typeof l[a]?e.proxy(l[a],i)(n):"undefined"!=typeof o.toolbarHandlers[a]&&e.proxy(o.toolbarHandlers[a],i)(n,r,s,c),"link"!==a&&"reference-link"!==a&&"image"!==a&&"code-block"!==a&&"preformatted-text"!==a&&"watch"!==a&&"preview"!==a&&"search"!==a&&"fullscreen"!==a&&"info"!==a&&n.focus(),!1):void 0}),this},createDialog:function(i){return e.proxy(t.createDialog,this)(i)},createInfoDialog:function(){var e=this,i=this.editor,o=this.classPrefix,r=['
          ','
          ','

          '+t.title+"v"+t.version+"

          ","

          "+this.lang.description+"

          ",'

          '+t.homePage+'

          ','

          Copyright © 2015 Pandao, The MIT License.

          ',"
          ",'',"
          "].join("\n");i.append(r);var n=this.infoDialog=i.children("."+o+"dialog-info");return n.find("."+o+"dialog-close").bind(t.mouseOrTouch("click","touchend"),function(){e.hideInfoDialog()}),n.css("border",t.isIE8?"1px solid #ddd":"").css("z-index",t.dialogZindex).show(),this.infoDialogPosition(),this},infoDialogPosition:function(){var t=this.infoDialog,i=function(){t.css({top:(e(window).height()-t.height())/2+"px",left:(e(window).width()-t.width())/2+"px"})};return i(),e(window).resize(i),this},showInfoDialog:function(){e("html,body").css("overflow-x","hidden");var i=this.editor,o=this.settings,r=this.infoDialog=i.children("."+this.classPrefix+"dialog-info");return r.length<1&&this.createInfoDialog(),this.lockScreen(!0),this.mask.css({opacity:o.dialogMaskOpacity,backgroundColor:o.dialogMaskBgColor}).show(),r.css("z-index",t.dialogZindex).show(),this.infoDialogPosition(),this},hideInfoDialog:function(){return e("html,body").css("overflow-x",""),this.infoDialog.hide(),this.mask.hide(),this.lockScreen(!1),this},lockScreen:function(e){return t.lockScreen(e),this.resize(),this},recreate:function(){var e=this.editor,t=this.settings;return this.codeMirror.remove(),this.setCodeMirror(),t.readOnly||(e.find(".editormd-dialog").length>0&&e.find(".editormd-dialog").remove(),t.toolbar&&(this.getToolbarHandles(),this.setToolbar())),this.loadedDisplay(!0),this},previewCodeHighlight:function(){var e=this.settings,t=this.previewContainer;return e.previewCodeHighlight&&(t.find("pre").addClass("prettyprint linenums"),"undefined"!=typeof prettyPrint&&prettyPrint()),this},katexRender:function(){return null===i?this:(this.previewContainer.find("."+t.classNames.tex).each(function(){var i=e(this);t.$katex.render(i.text(),i[0]),i.find(".katex").css("font-size","1.6em")}),this)},flowChartAndSequenceDiagramRender:function(){var i=this,r=this.settings,n=this.previewContainer;if(t.isIE8)return this;if(r.flowChart){if(null===o)return this;n.find(".flowchart").flowChart()}r.sequenceDiagram&&n.find(".sequence-diagram").sequenceDiagram({theme:"simple"});var a=i.preview,s=i.codeMirror,l=s.find(".CodeMirror-scroll"),c=l.height(),h=l.scrollTop(),d=h/l[0].scrollHeight,u=0;a.find(".markdown-toc-list").each(function(){u+=e(this).height()});var f=a.find(".editormd-toc-menu").height();return f=f?f:0,a.scrollTop(0===h?0:h+c>=l[0].scrollHeight-16?a[0].scrollHeight:(a[0].scrollHeight+u+f)*d),this},registerKeyMaps:function(i){var o=this,r=this.cm,n=this.settings,a=t.toolbarHandlers,s=n.disabledKeyMaps;if(i=i||null){for(var l in i)if(e.inArray(l,s)<0){var c={};c[l]=i[l],r.addKeyMap(i)}}else{for(var h in t.keyMaps){var d=t.keyMaps[h],u="string"==typeof d?e.proxy(a[d],o):e.proxy(d,o);if(e.inArray(h,["F9","F10","F11"])<0&&e.inArray(h,s)<0){var f={};f[h]=u,r.addKeyMap(f)}}e(window).keydown(function(t){var i={120:"F9",121:"F10",122:"F11"};if(e.inArray(i[t.keyCode],s)<0)switch(t.keyCode){case 120:return e.proxy(a.watch,o)(),!1;case 121:return e.proxy(a.preview,o)(),!1;case 122:return e.proxy(a.fullscreen,o)(),!1}})}return this},bindScrollEvent:function(){var i=this,o=this.preview,r=this.settings,n=this.codeMirror,a=t.mouseOrTouch;if(!r.syncScrolling)return this;var s=function(){n.find(".CodeMirror-scroll").bind(a("scroll","touchmove"),function(t){var n=e(this).height(),a=e(this).scrollTop(),s=a/e(this)[0].scrollHeight,l=0;o.find(".markdown-toc-list").each(function(){l+=e(this).height()});var c=o.find(".editormd-toc-menu").height();c=c?c:0,o.scrollTop(0===a?0:a+n>=e(this)[0].scrollHeight-16?o[0].scrollHeight:(o[0].scrollHeight+l+c)*s),e.proxy(r.onscroll,i)(t)})},l=function(){n.find(".CodeMirror-scroll").unbind(a("scroll","touchmove"))},c=function(){o.bind(a("scroll","touchmove"),function(t){var o=e(this).height(),a=e(this).scrollTop(),s=a/e(this)[0].scrollHeight,l=n.find(".CodeMirror-scroll");l.scrollTop(0===a?0:a+o>=e(this)[0].scrollHeight?l[0].scrollHeight:l[0].scrollHeight*s),e.proxy(r.onpreviewscroll,i)(t)})},h=function(){o.unbind(a("scroll","touchmove"))};return n.bind({mouseover:s,mouseout:l,touchstart:s,touchend:l}),"single"===r.syncScrolling?this:(o.bind({mouseover:c,mouseout:h,touchstart:c,touchend:h}),this)},bindChangeEvent:function(){var e=this,t=this.cm,o=this.settings;return o.syncScrolling?(t.on("change",function(t,r){o.watch&&e.previewContainer.css("padding",o.autoHeight?"20px 20px 50px 40px":"20px"),i=setTimeout(function(){clearTimeout(i),e.save(),i=null},o.delay)}),this):this},loadedDisplay:function(t){t=t||!1;var i=this,o=this.editor,r=this.preview,n=this.settings;return this.containerMask.hide(),this.save(),n.watch&&r.show(),o.data("oldWidth",o.width()).data("oldHeight",o.height()),this.resize(),this.registerKeyMaps(),e(window).resize(function(){i.resize()}),this.bindScrollEvent().bindChangeEvent(),t||e.proxy(n.onload,this)(),this.state.loaded=!0,this},width:function(e){return this.editor.css("width","number"==typeof e?e+"px":e),this.resize(),this},height:function(e){return this.editor.css("height","number"==typeof e?e+"px":e),this.resize(),this},resize:function(t,i){t=t||null,i=i||null;var o=this.state,r=this.editor,n=this.preview,a=this.toolbar,s=this.settings,l=this.codeMirror;if(t&&r.css("width","number"==typeof t?t+"px":t),!s.autoHeight||o.fullscreen||o.preview?(i&&r.css("height","number"==typeof i?i+"px":i),o.fullscreen&&r.height(e(window).height()),s.toolbar&&!s.readOnly?l.css("margin-top",a.height()+1).height(r.height()-a.height()):l.css("margin-top",0).height(r.height())):(r.css("height","auto"),l.css("height","auto")),s.watch)if(l.width(r.width()/2),n.width(o.preview?r.width():r.width()/2),this.previewContainer.css("padding",s.autoHeight?"20px 20px 50px 40px":"20px"),s.toolbar&&!s.readOnly?n.css("top",a.height()+1):n.css("top",0),!s.autoHeight||o.fullscreen||o.preview){var c=s.toolbar&&!s.readOnly?r.height()-a.height():r.height();n.height(c)}else n.height("");else l.width(r.width()),n.hide();return o.loaded&&e.proxy(s.onresize,this)(),this},save:function(){if(null===i)return this;var r=this,n=this.state,a=this.settings,s=this.cm,l=s.getValue(),c=this.previewContainer;if("gfm"!==a.mode&&"markdown"!==a.mode)return this.markdownTextarea.val(l),this;var h=t.$marked,d=this.markdownToC=[],u=this.markedRendererOptions={toc:a.toc,tocm:a.tocm,tocStartLevel:a.tocStartLevel,pageBreak:a.pageBreak,taskList:a.taskList,emoji:a.emoji,tex:a.tex,atLink:a.atLink,emailLink:a.emailLink,flowChart:a.flowChart,sequenceDiagram:a.sequenceDiagram,previewCodeHighlight:a.previewCodeHighlight},f=this.markedOptions={renderer:t.markedRenderer(d,u),gfm:!0,tables:!0,breaks:!0,pedantic:!1,sanitize:a.htmlDecode?!1:!0,smartLists:!0,smartypants:!0};h.setOptions(f);var g=t.$marked(l,f);if(g=t.filterHTMLTags(g,a.htmlDecode),this.markdownTextarea.text(l),s.save(),a.saveHTMLToTextarea&&this.htmlTextarea.text(g),a.watch||!a.watch&&n.preview){if(c.html(g),this.previewCodeHighlight(),a.toc){var p=""===a.tocContainer?c:e(a.tocContainer),m=p.find("."+this.classPrefix+"toc-menu");p.attr("previewContainer",""===a.tocContainer?"true":"false"),""!==a.tocContainer&&m.length>0&&m.remove(),t.markdownToCRenderer(d,p,a.tocDropdown,a.tocStartLevel),(a.tocDropdown||p.find("."+this.classPrefix+"toc-menu").length>0)&&t.tocDropdownMenu(p,""!==a.tocTitle?a.tocTitle:this.lang.tocTitle),""!==a.tocContainer&&c.find(".markdown-toc").css("border","none")}a.tex&&(!t.kaTeXLoaded&&a.autoLoadModules?t.loadKaTeX(function(){t.$katex=katex,t.kaTeXLoaded=!0,r.katexRender()}):(t.$katex=katex,this.katexRender())),(a.flowChart||a.sequenceDiagram)&&(o=setTimeout(function(){clearTimeout(o),r.flowChartAndSequenceDiagramRender(),o=null},10)),n.loaded&&e.proxy(a.onchange,this)()}return this},focus:function(){return this.cm.focus(),this},setCursor:function(e){return this.cm.setCursor(e),this},getCursor:function(){return this.cm.getCursor()},setSelection:function(e,t){return this.cm.setSelection(e,t),this},getSelection:function(){return this.cm.getSelection()},setSelections:function(e){return this.cm.setSelections(e),this},getSelections:function(){return this.cm.getSelections()},replaceSelection:function(e){return this.cm.replaceSelection(e),this},insertValue:function(e){return this.replaceSelection(e),this},appendMarkdown:function(e){var t=(this.settings,this.cm);return t.setValue(t.getValue()+e),this},setMarkdown:function(e){return this.cm.setValue(e||this.settings.markdown),this},getMarkdown:function(){return this.cm.getValue()},getValue:function(){return this.cm.getValue()},setValue:function(e){return this.cm.setValue(e),this},clear:function(){return this.cm.setValue(""),this},getHTML:function(){return this.settings.saveHTMLToTextarea?this.htmlTextarea.val():(alert("Error: settings.saveHTMLToTextarea == false"),!1)},getTextareaSavedHTML:function(){return this.getHTML()},getPreviewedHTML:function(){return this.settings.watch?this.previewContainer.html():(alert("Error: settings.watch == false"),!1)},watch:function(t){var o=this.settings;if(e.inArray(o.mode,["gfm","markdown"])<0)return this;if(this.state.watching=o.watch=!0,this.preview.show(),this.toolbar){var r=o.toolbarIconsClass.watch,n=o.toolbarIconsClass.unwatch,a=this.toolbar.find(".fa[name=watch]");a.parent().attr("title",o.lang.toolbar.watch),a.removeClass(n).addClass(r)}return this.codeMirror.css("border-right","1px solid #ddd").width(this.editor.width()/2),i=0,this.save().resize(),o.onwatch||(o.onwatch=t||function(){}),e.proxy(o.onwatch,this)(),this},unwatch:function(t){var i=this.settings;if(this.state.watching=i.watch=!1,this.preview.hide(),this.toolbar){var o=i.toolbarIconsClass.watch,r=i.toolbarIconsClass.unwatch,n=this.toolbar.find(".fa[name=watch]");n.parent().attr("title",i.lang.toolbar.unwatch),n.removeClass(o).addClass(r)}return this.codeMirror.css("border-right","none").width(this.editor.width()),this.resize(),i.onunwatch||(i.onunwatch=t||function(){}),e.proxy(i.onunwatch,this)(),this},show:function(t){t=t||function(){};var i=this;return this.editor.show(0,function(){e.proxy(t,i)()}),this},hide:function(t){t=t||function(){};var i=this;return this.editor.hide(0,function(){e.proxy(t,i)()}),this},previewing:function(){var i=this,o=this.editor,r=this.preview,n=this.toolbar,a=this.settings,s=this.codeMirror,l=this.previewContainer;if(e.inArray(a.mode,["gfm","markdown"])<0)return this;a.toolbar&&n&&(n.toggle(),n.find(".fa[name=preview]").toggleClass("active")),s.toggle();var c=function(e){e.shiftKey&&27===e.keyCode&&i.previewed()};"none"===s.css("display")?(this.state.preview=!0,this.state.fullscreen&&r.css("background","#fff"),o.find("."+this.classPrefix+"preview-close-btn").show().bind(t.mouseOrTouch("click","touchend"),function(){i.previewed()}),a.watch?l.css("padding",""):this.save(),l.addClass(this.classPrefix+"preview-active"),r.show().css({position:"",top:0,width:o.width(),height:a.autoHeight&&!this.state.fullscreen?"auto":o.height()}),this.state.loaded&&e.proxy(a.onpreviewing,this)(),e(window).bind("keyup",c)):(e(window).unbind("keyup",c),this.previewed())},previewed:function(){var i=this.editor,o=this.preview,r=this.toolbar,n=this.settings,a=this.previewContainer,s=i.find("."+this.classPrefix+"preview-close-btn");return this.state.preview=!1,this.codeMirror.show(),n.toolbar&&r.show(),o[n.watch?"show":"hide"](),s.hide().unbind(t.mouseOrTouch("click","touchend")),a.removeClass(this.classPrefix+"preview-active"),n.watch&&a.css("padding","20px"),o.css({background:null,position:"absolute",width:i.width()/2,height:n.autoHeight&&!this.state.fullscreen?"auto":i.height()-r.height(),top:n.toolbar?r.height():0}),this.state.loaded&&e.proxy(n.onpreviewed,this)(),this},fullscreen:function(){var t=this,i=this.state,o=this.editor,r=(this.preview,this.toolbar),n=this.settings,a=this.classPrefix+"fullscreen";r&&r.find(".fa[name=fullscreen]").parent().toggleClass("active");var s=function(e){e.shiftKey||27!==e.keyCode||i.fullscreen&&t.fullscreenExit()};return o.hasClass(a)?(e(window).unbind("keyup",s),this.fullscreenExit()):(i.fullscreen=!0,e("html,body").css("overflow","hidden"),o.css({width:e(window).width(),height:e(window).height()}).addClass(a),this.resize(),e.proxy(n.onfullscreen,this)(),e(window).bind("keyup",s)),this},fullscreenExit:function(){var t=this.editor,i=this.settings,o=this.toolbar,r=this.classPrefix+"fullscreen";return this.state.fullscreen=!1,o&&o.find(".fa[name=fullscreen]").parent().removeClass("active"),e("html,body").css("overflow",""),t.css({width:t.data("oldWidth"),height:t.data("oldHeight")}).removeClass(r),this.resize(),e.proxy(i.onfullscreenExit,this)(),this},executePlugin:function(i,o){var r=this,n=this.cm,a=this.settings;return o=a.pluginPath+o,"function"==typeof define?"undefined"==typeof this[i]?(alert("Error: "+i+" plugin is not found, you are not load this plugin."),this):(this[i](n),this):(e.inArray(o,t.loadFiles.plugin)<0?t.loadPlugin(o,function(){t.loadPlugins[i]=r[i],r[i](n)}):e.proxy(t.loadPlugins[i],this)(n),this)},search:function(e){var t=this.settings;return t.searchReplace?(t.readOnly||this.cm.execCommand(e||"find"),this):(alert("Error: settings.searchReplace == false"),this)},searchReplace:function(){return this.search("replace"),this},searchReplaceAll:function(){return this.search("replaceAll"),this}},t.fn.init.prototype=t.fn,t.dialogLockScreen=function(){var t=this.settings||{dialogLockScreen:!0};t.dialogLockScreen&&(e("html,body").css("overflow","hidden"),this.resize())},t.dialogShowMask=function(t){var i=this.editor,o=this.settings||{dialogShowMask:!0};t.css({top:(e(window).height()-t.height())/2+"px",left:(e(window).width()-t.width())/2+"px"}),o.dialogShowMask&&i.children("."+this.classPrefix+"mask").css("z-index",parseInt(t.css("z-index"))-1).show()},t.toolbarHandlers={undo:function(){this.cm.undo()},redo:function(){this.cm.redo()},bold:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(); - -e.replaceSelection("**"+i+"**"),""===i&&e.setCursor(t.line,t.ch+2)},del:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("~~"+i+"~~"),""===i&&e.setCursor(t.line,t.ch+2)},italic:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("*"+i+"*"),""===i&&e.setCursor(t.line,t.ch+1)},quote:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("> "+i),e.setCursor(t.line,t.ch+2)):e.replaceSelection("> "+i)},ucfirst:function(){var e=this.cm,i=e.getSelection(),o=e.listSelections();e.replaceSelection(t.firstUpperCase(i)),e.setSelections(o)},ucwords:function(){var e=this.cm,i=e.getSelection(),o=e.listSelections();e.replaceSelection(t.wordsFirstUpperCase(i)),e.setSelections(o)},uppercase:function(){var e=this.cm,t=e.getSelection(),i=e.listSelections();e.replaceSelection(t.toUpperCase()),e.setSelections(i)},lowercase:function(){var e=this.cm,t=(e.getCursor(),e.getSelection()),i=e.listSelections();e.replaceSelection(t.toLowerCase()),e.setSelections(i)},h1:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("# "+i),e.setCursor(t.line,t.ch+2)):e.replaceSelection("# "+i)},h2:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("## "+i),e.setCursor(t.line,t.ch+3)):e.replaceSelection("## "+i)},h3:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("### "+i),e.setCursor(t.line,t.ch+4)):e.replaceSelection("### "+i)},h4:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("#### "+i),e.setCursor(t.line,t.ch+5)):e.replaceSelection("#### "+i)},h5:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("##### "+i),e.setCursor(t.line,t.ch+6)):e.replaceSelection("##### "+i)},h6:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("###### "+i),e.setCursor(t.line,t.ch+7)):e.replaceSelection("###### "+i)},"list-ul":function(){var e=this.cm,t=(e.getCursor(),e.getSelection());if(""===t)e.replaceSelection("- "+t);else{for(var i=t.split("\n"),o=0,r=i.length;r>o;o++)i[o]=""===i[o]?"":"- "+i[o];e.replaceSelection(i.join("\n"))}},"list-ol":function(){var e=this.cm,t=(e.getCursor(),e.getSelection());if(""===t)e.replaceSelection("1. "+t);else{for(var i=t.split("\n"),o=0,r=i.length;r>o;o++)i[o]=""===i[o]?"":o+1+". "+i[o];e.replaceSelection(i.join("\n"))}},hr:function(){{var e=this.cm,t=e.getCursor();e.getSelection()}e.replaceSelection((0!==t.ch?"\n\n":"\n")+"------------\n\n")},tex:function(){if(!this.settings.tex)return alert("settings.tex === false"),this;var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("$$"+i+"$$"),""===i&&e.setCursor(t.line,t.ch+2)},link:function(){this.executePlugin("linkDialog","link-dialog/link-dialog")},"reference-link":function(){this.executePlugin("referenceLinkDialog","reference-link-dialog/reference-link-dialog")},pagebreak:function(){if(!this.settings.pageBreak)return alert("settings.pageBreak === false"),this;{var e=this.cm;e.getSelection()}e.replaceSelection("\r\n[========]\r\n")},image:function(){this.executePlugin("imageDialog","image-dialog/image-dialog")},code:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("`"+i+"`"),""===i&&e.setCursor(t.line,t.ch+1)},"code-block":function(){this.executePlugin("codeBlockDialog","code-block-dialog/code-block-dialog")},"preformatted-text":function(){this.executePlugin("preformattedTextDialog","preformatted-text-dialog/preformatted-text-dialog")},table:function(){this.executePlugin("tableDialog","table-dialog/table-dialog")},datetime:function(){var e=this.cm,i=(e.getSelection(),new Date,this.settings.lang.name),o=t.dateFormat()+" "+t.dateFormat("zh-cn"===i||"zh-tw"===i?"cn-week-day":"week-day");e.replaceSelection(o)},emoji:function(){this.executePlugin("emojiDialog","emoji-dialog/emoji-dialog")},"html-entities":function(){this.executePlugin("htmlEntitiesDialog","html-entities-dialog/html-entities-dialog")},"goto-line":function(){this.executePlugin("gotoLineDialog","goto-line-dialog/goto-line-dialog")},watch:function(){this[this.settings.watch?"unwatch":"watch"]()},preview:function(){this.previewing()},fullscreen:function(){this.fullscreen()},clear:function(){this.clear()},search:function(){this.search()},help:function(){this.executePlugin("helpDialog","help-dialog/help-dialog")},info:function(){this.showInfoDialog()}},t.keyMaps={"Ctrl-1":"h1","Ctrl-2":"h2","Ctrl-3":"h3","Ctrl-4":"h4","Ctrl-5":"h5","Ctrl-6":"h6","Ctrl-B":"bold","Ctrl-D":"datetime","Ctrl-E":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();return this.settings.emoji?(e.replaceSelection(":"+i+":"),void(""===i&&e.setCursor(t.line,t.ch+1))):void alert("Error: settings.emoji == false")},"Ctrl-Alt-G":"goto-line","Ctrl-H":"hr","Ctrl-I":"italic","Ctrl-K":"code","Ctrl-L":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(),o=""===i?"":' "'+i+'"';e.replaceSelection("["+i+"]("+o+")"),""===i&&e.setCursor(t.line,t.ch+1)},"Ctrl-U":"list-ul","Shift-Ctrl-A":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();return this.settings.atLink?(e.replaceSelection("@"+i),void(""===i&&e.setCursor(t.line,t.ch+1))):void alert("Error: settings.atLink == false")},"Shift-Ctrl-C":"code","Shift-Ctrl-Q":"quote","Shift-Ctrl-S":"del","Shift-Ctrl-K":"tex","Shift-Alt-C":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection(["```",i,"```"].join("\n")),""===i&&e.setCursor(t.line,t.ch+3)},"Shift-Ctrl-Alt-C":"code-block","Shift-Ctrl-H":"html-entities","Shift-Alt-H":"help","Shift-Ctrl-E":"emoji","Shift-Ctrl-U":"uppercase","Shift-Alt-U":"ucwords","Shift-Ctrl-Alt-U":"ucfirst","Shift-Alt-L":"lowercase","Shift-Ctrl-I":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(),o=""===i?"":' "'+i+'"';e.replaceSelection("!["+i+"]("+o+")"),""===i&&e.setCursor(t.line,t.ch+4)},"Shift-Ctrl-Alt-I":"image","Shift-Ctrl-L":"link","Shift-Ctrl-O":"list-ol","Shift-Ctrl-P":"preformatted-text","Shift-Ctrl-T":"table","Shift-Alt-P":"pagebreak",F9:"watch",F10:"preview",F11:"fullscreen"};var r=function(e){return String.prototype.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};t.trim=r;var n=function(e){return e.toLowerCase().replace(/\b(\w)|\s(\w)/g,function(e){return e.toUpperCase()})};t.ucwords=t.wordsFirstUpperCase=n;var a=function(e){return e.toLowerCase().replace(/\b(\w)/,function(e){return e.toUpperCase()})};return t.firstUpperCase=t.ucfirst=a,t.urls={atLinkBase:"https://github.com/"},t.regexs={atLink:/@(\w+)/g,email:/(\w+)@(\w+)\.(\w+)\.?(\w+)?/g,emailLink:/(mailto:)?([\w\.\_]+)@(\w+)\.(\w+)\.?(\w+)?/g,emoji:/:([\w\+-]+):/g,emojiDatetime:/(\d{2}:\d{2}:\d{2})/g,twemoji:/:(tw-([\w]+)-?(\w+)?):/g,fontAwesome:/:(fa-([\w]+)(-(\w+)){0,}):/g,editormdLogo:/:(editormd-logo-?(\w+)?):/g,pageBreak:/^\[[=]{8,}\]$/},t.emoji={path:"http://www.emoji-cheat-sheet.com/graphics/emojis/",ext:".png"},t.twemoji={path:"http://twemoji.maxcdn.com/36x36/",ext:".png"},t.markedRenderer=function(i,o){var n={toc:!0,tocm:!1,tocStartLevel:1,pageBreak:!0,atLink:!0,emailLink:!0,taskList:!1,emoji:!1,tex:!1,flowChart:!1,sequenceDiagram:!1},a=e.extend(n,o||{}),s=t.$marked,l=new s.Renderer;i=i||[];var c=t.regexs,h=c.atLink,d=c.emoji,u=c.email,f=c.emailLink,g=c.twemoji,p=c.fontAwesome,m=c.editormdLogo,w=c.pageBreak;return l.emoji=function(e){e=e.replace(t.regexs.emojiDatetime,function(e){return e.replace(/:/g,":")});var i=e.match(d);if(!i||!a.emoji)return e;for(var o=0,r=i.length;r>o;o++)":+1:"===i[o]&&(i[o]=":\\+1:"),e=e.replace(new RegExp(i[o]),function(e,i){var o=e.match(p),r=e.replace(/:/g,"");if(o)for(var n=0,a=o.length;a>n;n++){var s=o[n].replace(/:/g,"");return''}else{var l=e.match(m),c=e.match(g);if(l)for(var h=0,d=l.length;d>h;h++){var u=l[h].replace(/:/g,"");return''}else{if(!c){var f="+1"===r?"plus1":r;return f="black_large_square"===f?"black_square":f,f="moon"===f?"waxing_gibbous_moon":f,':'+r+':'}for(var w=0,v=c.length;v>w;w++){var k=c[w].replace(/:/g,"").replace("tw-","");return'twemoji-'+k+''}}}});return e},l.atLink=function(i){return h.test(i)?(a.atLink&&(i=i.replace(u,function(e,t,i,o){return e.replace(/@/g,"_#_@_#_")}),i=i.replace(h,function(e,i){return''+e+""}).replace(/_#_@_#_/g,"@")),a.emailLink&&(i=i.replace(f,function(t,i,o,r,n){return!i&&e.inArray(n,"jpg|jpeg|png|gif|webp|ico|icon|pdf".split("|"))<0?''+t+"":t})),i):i},l.link=function(e,t,i){if(this.options.sanitize){try{var o=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(r){return""}if(0===o.indexOf("javascript:"))return""}var n=''+i.replace(/@/g,"@")+""):(t&&(n+=' title="'+t+'"'),n+=">"+i+"")},l.heading=function(e,t,o){var n=e,a=/\s*\]*)\>(.*)\<\/a\>\s*/;if(a.test(e)){var s=[];e=e.split(/\]+)\>([^\>]*)\<\/a\>/);for(var l=0,c=e.length;c>l;l++)s.push(e[l].replace(/\s*href\=\"(.*)\"\s*/g,""));e=s.join(" ")}e=r(e);var h=e.toLowerCase().replace(/[^\w]+/g,"-"),d={text:e,level:t,slug:h},u=/^[\u4e00-\u9fa5]+$/.test(e),f=u?escape(e).replace(/\%/g,""):e.toLowerCase().replace(/[^\w]+/g,"-");i.push(d);var g="';return g+='',g+='',g+=this.atLink(a?this.emoji(n):this.emoji(e)),g+=""},l.pageBreak=function(e){return w.test(e)&&a.pageBreak&&(e='
          '),e},l.paragraph=function(e){var i=/\$\$(.*)\$\$/g.test(e),o=/^\$\$(.*)\$\$$/.test(e),r=o?' class="'+t.classNames.tex+'"':"",n=a.tocm?/^(\[TOC\]|\[TOCM\])$/.test(e):/^\[TOC\]$/.test(e),s=/^\[TOCM\]$/.test(e);e=!o&&i?e.replace(/(\$\$([^\$]*)\$\$)+/g,function(e,i){return''+i.replace(/\$/g,"")+""}):o?e.replace(/\$/g,""):e;var l='
          '+e+"
          ";return n?s?'
          '+l+"

          ":l:w.test(e)?this.pageBreak(e):""+this.atLink(this.emoji(e))+"

          \n"},l.code=function(e,i,o){return"seq"===i||"sequence"===i?'
          '+e+"
          ":"flow"===i?'
          '+e+"
          ":"math"===i||"latex"===i||"katex"===i?'

          '+e+"

          ":s.Renderer.prototype.code.apply(this,arguments)},l.tablecell=function(e,t){var i=t.header?"th":"td",o=t.align?"<"+i+' style="text-align:'+t.align+'">':"<"+i+">";return o+this.atLink(this.emoji(e))+"\n"},l.listitem=function(e){return a.taskList&&/^\s*\[[x\s]\]\s*/.test(e)?(e=e.replace(/^\s*\[\s\]\s*/,' ').replace(/^\s*\[x\]\s*/,' '),'
        • '+this.atLink(this.emoji(e))+"
        • "):"
        • "+this.atLink(this.emoji(e))+"
        • "},l},t.markdownToCRenderer=function(e,t,i,o){var r="",n=0,a=this.classPrefix;o=o||1;for(var s=0,l=e.length;l>s;s++){var c=e[s].text,h=e[s].level;o>h||(r+=h>n?"":n>h?new Array(n-h+2).join("
      • "):"",r+='
      • '+c+"
          ",n=h)}var d=t.find(".markdown-toc");if(d.length<1&&"false"===t.attr("previewContainer")){var u='
          ';u=i?'
          '+u+"
          ":u,t.html(u),d=t.find(".markdown-toc")}return i&&d.wrap('

          '),d.html('
            ').children(".markdown-toc-list").html(r.replace(/\r?\n?\\<\/ul\>/g,"")),d},t.tocDropdownMenu=function(t,i){i=i||"Table of Contents";var o=400,r=t.find("."+this.classPrefix+"toc-menu");return r.each(function(){var t=e(this),r=t.children(".markdown-toc"),n='',a=''+n+i+"",s=r.children("ul"),l=s.find("li");r.append(a),l.first().before("
          • "+i+" "+n+"

          • "),t.mouseover(function(){s.show(),l.each(function(){var t=e(this),i=t.children("ul");if(""===i.html()&&i.remove(),i.length>0&&""!==i.html()){var r=t.children("a").first();r.children(".fa").length<1&&r.append(e(n).css({"float":"right",paddingTop:"4px"}))}t.mouseover(function(){i.css("z-index",o).show(),o+=1}).mouseleave(function(){i.hide()})})}).mouseleave(function(){s.hide()})}),r},t.filterHTMLTags=function(t,i){if("string"!=typeof t&&(t=new String(t)),"string"!=typeof i)return t;for(var o=i.split("|"),r=o[0].split(","),n=o[1],a=0,s=r.length;s>a;a++){var l=r[a];t=t.replace(new RegExp("]*)>([^>]*)","igm"),"")}if("undefined"!=typeof n){var c=/\<(\w+)\s*([^\>]*)\>([^\>]*)\<\/(\w+)\>/gi;t="*"===n?t.replace(c,function(e,t,i,o,r){return"<"+t+">"+o+""}):"on*"===n?t.replace(c,function(t,i,o,r,n){var a=e("<"+i+">"+r+""),s=e(t)[0].attributes,l={};e.each(s,function(e,t){'"'!==t.nodeName&&(l[t.nodeName]=t.nodeValue)}),e.each(l,function(e){0===e.indexOf("on")&&delete l[e]}),a.attr(l);var c="undefined"!=typeof a[1]?e(a[1]).text():"";return a[0].outerHTML+c}):t.replace(c,function(t,i,o,r){var a=n.split(","),s=e(t);return s.html(r),e.each(a,function(e){s.attr(a[e],null)}),s[0].outerHTML})}return t},t.markdownToHTML=function(i,o){var r={gfm:!0,toc:!0,tocm:!1,tocStartLevel:1,tocTitle:"目录",tocDropdown:!1,tocContainer:"",markdown:"",markdownSourceCode:!1,htmlDecode:!1,autoLoadKaTeX:!0,pageBreak:!0,atLink:!0,emailLink:!0,tex:!1,taskList:!1,emoji:!1,flowChart:!1,sequenceDiagram:!1,previewCodeHighlight:!0};t.$marked=marked;var n=e("#"+i),a=n.settings=e.extend(!0,r,o||{}),s=n.find("textarea");s.length<1&&(n.append(""),s=n.find("textarea"));var l=""===a.markdown?s.val():a.markdown,c=[],h={toc:a.toc,tocm:a.tocm,tocStartLevel:a.tocStartLevel,taskList:a.taskList,emoji:a.emoji,tex:a.tex,pageBreak:a.pageBreak,atLink:a.atLink,emailLink:a.emailLink,flowChart:a.flowChart,sequenceDiagram:a.sequenceDiagram,previewCodeHighlight:a.previewCodeHighlight},d={renderer:t.markedRenderer(c,h),gfm:a.gfm,tables:!0,breaks:!0,pedantic:!1,sanitize:a.htmlDecode?!1:!0,smartLists:!0,smartypants:!0};l=new String(l);var u=marked(l,d);u=t.filterHTMLTags(u,a.htmlDecode),a.markdownSourceCode?s.text(l):s.remove(),n.addClass("markdown-body "+this.classPrefix+"html-preview").append(u);var f=""!==a.tocContainer?e(a.tocContainer):n;if(""!==a.tocContainer&&f.attr("previewContainer",!1),a.toc&&(n.tocContainer=this.markdownToCRenderer(c,f,a.tocDropdown,a.tocStartLevel),(a.tocDropdown||n.find("."+this.classPrefix+"toc-menu").length>0)&&this.tocDropdownMenu(n,a.tocTitle),""!==a.tocContainer&&n.find(".editormd-toc-menu, .editormd-markdown-toc").remove()),a.previewCodeHighlight&&(n.find("pre").addClass("prettyprint linenums"),prettyPrint()),t.isIE8||(a.flowChart&&n.find(".flowchart").flowChart(),a.sequenceDiagram&&n.find(".sequence-diagram").sequenceDiagram({theme:"simple"})),a.tex){var g=function(){n.find("."+t.classNames.tex).each(function(){var t=e(this);katex.render(t.html().replace(/</g,"<").replace(/>/g,">"),t[0]),t.find(".katex").css("font-size","1.6em")})};!a.autoLoadKaTeX||t.$katex||t.kaTeXLoaded?g():this.loadKaTeX(function(){t.$katex=katex,t.kaTeXLoaded=!0,g()})}return n.getMarkdown=function(){return s.val()},n},t.themes=["default","dark"],t.previewThemes=["default","dark"],t.editorThemes=["default","3024-day","3024-night","ambiance","ambiance-mobile","base16-dark","base16-light","blackboard","cobalt","eclipse","elegant","erlang-dark","lesser-dark","mbo","mdn-like","midnight","monokai","neat","neo","night","paraiso-dark","paraiso-light","pastel-on-dark","rubyblue","solarized","the-matrix","tomorrow-night-eighties","twilight","vibrant-ink","xq-dark","xq-light"],t.loadPlugins={},t.loadFiles={js:[],css:[],plugin:[]},t.loadPlugin=function(e,i,o){i=i||function(){},this.loadScript(e,function(){t.loadFiles.plugin.push(e),i()},o)},t.loadCSS=function(e,i,o){o=o||"head",i=i||function(){};var r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.onload=r.onreadystatechange=function(){t.loadFiles.css.push(e),i()},r.href=e+".css","head"===o?document.getElementsByTagName("head")[0].appendChild(r):document.body.appendChild(r)},t.isIE="Microsoft Internet Explorer"==navigator.appName,t.isIE8=t.isIE&&"8."==navigator.appVersion.match(/8./i),t.loadScript=function(e,i,o){o=o||"head",i=i||function(){};var r=null;r=document.createElement("script"),r.id=e.replace(/[\./]+/g,"-"),r.type="text/javascript",r.src=e+".js",t.isIE8?r.onreadystatechange=function(){r.readyState&&("loaded"===r.readyState||"complete"===r.readyState)&&(r.onreadystatechange=null,t.loadFiles.js.push(e),i())}:r.onload=function(){t.loadFiles.js.push(e),i()},"head"===o?document.getElementsByTagName("head")[0].appendChild(r):document.body.appendChild(r)},t.katexURL={css:"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min",js:"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min"},t.kaTeXLoaded=!1,t.loadKaTeX=function(e){t.loadCSS(t.katexURL.css,function(){t.loadScript(t.katexURL.js,e||function(){})})},t.lockScreen=function(t){e("html,body").css("overflow",t?"hidden":"")},t.createDialog=function(i){var o={name:"",width:420,height:240,title:"",drag:!0,closed:!0,content:"",mask:!0,maskStyle:{backgroundColor:"#fff",opacity:.1},lockScreen:!0,footer:!0,buttons:!1};i=e.extend(!0,o,i);var r=this,n=this.editor,a=t.classPrefix,s=(new Date).getTime(),l=""===i.name?a+"dialog-"+s:i.name,c=t.mouseOrTouch,h='
            ';""!==i.title&&(h+='
            ",h+=''+i.title+"",h+="
            "),i.closed&&(h+=''),h+='
            '+i.content,(i.footer||"string"==typeof i.footer)&&(h+='"),h+="
            ",h+='
            ',h+='
            ',h+="
            ",n.append(h);var d=n.find("."+l);d.lockScreen=function(t){return i.lockScreen&&(e("html,body").css("overflow",t?"hidden":""),r.resize()),d},d.showMask=function(){return i.mask&&n.find("."+a+"mask").css(i.maskStyle).css("z-index",t.dialogZindex-1).show(),d},d.hideMask=function(){return i.mask&&n.find("."+a+"mask").hide(),d},d.loading=function(e){var t=d.find("."+a+"dialog-mask");return t[e?"show":"hide"](),d},d.lockScreen(!0).showMask(),d.show().css({zIndex:t.dialogZindex,border:t.isIE8?"1px solid #ddd":"",width:"number"==typeof i.width?i.width+"px":i.width,height:"number"==typeof i.height?i.height+"px":i.height});var u=function(){d.css({top:(e(window).height()-d.height())/2+"px",left:(e(window).width()-d.width())/2+"px"})};if(u(),e(window).resize(u),d.children("."+a+"dialog-close").bind(c("click","touchend"),function(){d.hide().lockScreen(!1).hideMask()}),"object"==typeof i.buttons){var f=d.footer=d.find("."+a+"dialog-footer");for(var g in i.buttons){var p=i.buttons[g],m=a+g+"-btn";f.append('"),p[1]=e.proxy(p[1],d),f.children("."+m).bind(c("click","touchend"),p[1])}}if(""!==i.title&&i.drag){var w,v,k=d.children("."+a+"dialog-header");i.mask||k.bind(c("click","touchend"),function(){t.dialogZindex+=2,d.css("z-index",t.dialogZindex)}),k.mousedown(function(e){e=e||window.event,w=e.clientX-parseInt(d[0].style.left),v=e.clientY-parseInt(d[0].style.top),document.onmousemove=y});var b=function(e){e.removeClass(a+"user-unselect").off("selectstart")},x=function(e){e.addClass(a+"user-unselect").on("selectstart",function(e){return!1})},y=function(t){t=t||window.event;var i,o,r=parseInt(d[0].style.left),n=parseInt(d[0].style.top);r>=0?r+d.width()<=e(window).width()?i=t.clientX-w:(i=e(window).width()-d.width(),document.onmousemove=null):(i=0,document.onmousemove=null),n>=0?o=t.clientY-v:(o=0,document.onmousemove=null),document.onselectstart=function(){return!1},x(e("body")),x(d),d[0].style.left=i+"px",d[0].style.top=o+"px"};document.onmouseup=function(){b(e("body")),b(d),document.onselectstart=null,document.onmousemove=null},k.touchDraggable=function(){var t=null,i=function(i){var o=i.originalEvent,r=e(this).parent().position();t={x:o.changedTouches[0].pageX-r.left,y:o.changedTouches[0].pageY-r.top}},o=function(i){i.preventDefault();var o=i.originalEvent;e(this).parent().css({top:o.changedTouches[0].pageY-t.y,left:o.changedTouches[0].pageX-t.x})};this.bind("touchstart",i).bind("touchmove",o)},k.touchDraggable()}return t.dialogZindex+=2,d},t.mouseOrTouch=function(e,t){e=e||"click",t=t||"touchend";var i=e;try{document.createEvent("TouchEvent"),i=t}catch(o){}return i},t.dateFormat=function(e){e=e||"";var t=function(e){return 10>e?"0"+e:e},i=new Date,o=i.getFullYear(),r=o.toString().slice(2,4),n=t(i.getMonth()+1),a=t(i.getDate()),s=i.getDay(),l=t(i.getHours()),c=t(i.getMinutes()),h=t(i.getSeconds()),d=t(i.getMilliseconds()),u="",f=r+"-"+n+"-"+a,g=o+"-"+n+"-"+a,p=l+":"+c+":"+h;switch(e){case"UNIX Time":u=i.getTime();break;case"UTC":u=i.toUTCString();break;case"yy":u=r;break;case"year":case"yyyy":u=o;break;case"month":case"mm":u=n;break;case"cn-week-day":case"cn-wd":var m=["日","一","二","三","四","五","六"];u="星期"+m[s];break;case"week-day":case"wd":var w=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];u=w[s];break;case"day":case"dd":u=a;break;case"hour":case"hh":u=l;break;case"min":case"ii":u=c;break;case"second":case"ss":u=h;break;case"ms":u=d;break;case"yy-mm-dd":u=f;break;case"yyyy-mm-dd":u=g;break;case"yyyy-mm-dd h:i:s ms":case"full + ms":u=g+" "+p+" "+d;break;case"full":case"yyyy-mm-dd h:i:s":default:u=g+" "+p}return u},t}}); \ No newline at end of file diff --git a/target/classes/static/admin/editormd/editormd.js b/target/classes/static/admin/editormd/editormd.js deleted file mode 100644 index 157d0c2..0000000 --- a/target/classes/static/admin/editormd/editormd.js +++ /dev/null @@ -1,4598 +0,0 @@ -/* - * Editor.md - * - * @file editormd.js - * @version v1.5.0 - * @description Open source online markdown editor. - * @license MIT License - * @author Pandao - * {@link https://github.com/pandao/editor.md} - * @updateTime 2015-06-09 - */ - -;(function(factory) { - "use strict"; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) // for Require.js - { - /* Require.js define replace */ - } - else - { - define(["jquery"], factory); // for Sea.js - } - } - else - { - window.editormd = factory(); - } - -}(function() { - - /* Require.js assignment replace */ - - "use strict"; - - var $ = (typeof (jQuery) !== "undefined") ? jQuery : Zepto; - - if (typeof ($) === "undefined") { - return ; - } - - /** - * editormd - * - * @param {String} id 编辑器的ID - * @param {Object} options 配置选项 Key/Value - * @returns {Object} editormd 返回editormd对象 - */ - - var editormd = function (id, options) { - return new editormd.fn.init(id, options); - }; - - editormd.title = editormd.$name = "Editor.md"; - editormd.version = "1.5.0"; - editormd.homePage = "https://pandao.github.io/editor.md/"; - editormd.classPrefix = "editormd-"; - - editormd.toolbarModes = { - full : [ - "undo", "redo", "|", - "bold", "del", "italic", "quote", "ucwords", "uppercase", "lowercase", "|", - "h1", "h2", "h3", "h4", "h5", "h6", "|", - "list-ul", "list-ol", "hr", "|", - "link", "reference-link", "image", "code", "preformatted-text", "code-block", "table", "datetime", "emoji", "html-entities", "pagebreak", "|", - "goto-line", "watch", "preview", "fullscreen", "clear", "search", "|", - "help", "info" - ], - simple : [ - "undo", "redo", "|", - "bold", "del", "italic", "quote", "uppercase", "lowercase", "|", - "h1", "h2", "h3", "h4", "h5", "h6", "|", - "list-ul", "list-ol", "hr", "|", - "watch", "preview", "fullscreen", "|", - "help", "info" - ], - mini : [ - "undo", "redo", "|", - "watch", "preview", "|", - "help", "info" - ] - }; - - editormd.defaults = { - mode : "gfm", //gfm or markdown - name : "", // Form element name - value : "", // value for CodeMirror, if mode not gfm/markdown - theme : "", // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty - editorTheme : "default", // Editor area, this is CodeMirror theme at v1.5.0 - previewTheme : "", // Preview area theme, default empty - markdown : "", // Markdown source code - appendMarkdown : "", // if in init textarea value not empty, append markdown to textarea - width : "100%", - height : "100%", - path : "./lib/", // Dependents module file directory - pluginPath : "", // If this empty, default use settings.path + "../plugins/" - delay : 300, // Delay parse markdown to html, Uint : ms - autoLoadModules : true, // Automatic load dependent module files - watch : true, - placeholder : "Enjoy Markdown! coding now...", - gotoLine : true, - codeFold : false, - autoHeight : false, - autoFocus : true, - autoCloseTags : true, - searchReplace : true, - syncScrolling : true, // true | false | "single", default true - readOnly : false, - tabSize : 4, - indentUnit : 4, - lineNumbers : true, - lineWrapping : true, - autoCloseBrackets : true, - showTrailingSpace : true, - matchBrackets : true, - indentWithTabs : true, - styleSelectedText : true, - matchWordHighlight : true, // options: true, false, "onselected" - styleActiveLine : true, // Highlight the current line - dialogLockScreen : true, - dialogShowMask : true, - dialogDraggable : true, - dialogMaskBgColor : "#fff", - dialogMaskOpacity : 0.1, - fontSize : "13px", - saveHTMLToTextarea : false, - disabledKeyMaps : [], - - onload : function() {}, - onresize : function() {}, - onchange : function() {}, - onwatch : null, - onunwatch : null, - onpreviewing : function() {}, - onpreviewed : function() {}, - onfullscreen : function() {}, - onfullscreenExit : function() {}, - onscroll : function() {}, - onpreviewscroll : function() {}, - - imageUpload : false, - imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"], - imageUploadURL : "", - crossDomainUpload : false, - uploadCallbackURL : "", - - toc : true, // Table of contents - tocm : false, // Using [TOCM], auto create ToC dropdown menu - tocTitle : "", // for ToC dropdown menu btn - tocDropdown : false, - tocContainer : "", - tocStartLevel : 1, // Said from H1 to create ToC - htmlDecode : false, // Open the HTML tag identification - pageBreak : true, // Enable parse page break [========] - atLink : true, // for @link - emailLink : true, // for email address auto link - taskList : false, // Enable Github Flavored Markdown task lists - emoji : false, // :emoji: , Support Github emoji, Twitter Emoji (Twemoji); - // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts; - // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x; - tex : false, // TeX(LaTeX), based on KaTeX - flowChart : false, // flowChart.js only support IE9+ - sequenceDiagram : false, // sequenceDiagram.js only support IE9+ - previewCodeHighlight : true, - - toolbar : true, // show/hide toolbar - toolbarAutoFixed : true, // on window scroll auto fixed position - toolbarIcons : "full", - toolbarTitles : {}, - toolbarHandlers : { - ucwords : function() { - return editormd.toolbarHandlers.ucwords; - }, - lowercase : function() { - return editormd.toolbarHandlers.lowercase; - } - }, - toolbarCustomIcons : { // using html tag create toolbar icon, unused default tag. - lowercase : "a", - "ucwords" : "Aa" - }, - toolbarIconsClass : { - undo : "fa-undo", - redo : "fa-repeat", - bold : "fa-bold", - del : "fa-strikethrough", - italic : "fa-italic", - quote : "fa-quote-left", - uppercase : "fa-font", - h1 : editormd.classPrefix + "bold", - h2 : editormd.classPrefix + "bold", - h3 : editormd.classPrefix + "bold", - h4 : editormd.classPrefix + "bold", - h5 : editormd.classPrefix + "bold", - h6 : editormd.classPrefix + "bold", - "list-ul" : "fa-list-ul", - "list-ol" : "fa-list-ol", - hr : "fa-minus", - link : "fa-link", - "reference-link" : "fa-anchor", - image : "fa-picture-o", - code : "fa-code", - "preformatted-text" : "fa-file-code-o", - "code-block" : "fa-file-code-o", - table : "fa-table", - datetime : "fa-clock-o", - emoji : "fa-smile-o", - "html-entities" : "fa-copyright", - pagebreak : "fa-newspaper-o", - "goto-line" : "fa-terminal", // fa-crosshairs - watch : "fa-eye-slash", - unwatch : "fa-eye", - preview : "fa-desktop", - search : "fa-search", - fullscreen : "fa-arrows-alt", - clear : "fa-eraser", - help : "fa-question-circle", - info : "fa-info-circle" - }, - toolbarIconTexts : {}, - - lang : { - name : "zh-cn", - description : "开源在线Markdown编辑器
            Open source online Markdown editor.", - tocTitle : "目录", - toolbar : { - undo : "撤销(Ctrl+Z)", - redo : "重做(Ctrl+Y)", - bold : "粗体", - del : "删除线", - italic : "斜体", - quote : "引用", - ucwords : "将每个单词首字母转成大写", - uppercase : "将所选转换成大写", - lowercase : "将所选转换成小写", - h1 : "标题1", - h2 : "标题2", - h3 : "标题3", - h4 : "标题4", - h5 : "标题5", - h6 : "标题6", - "list-ul" : "无序列表", - "list-ol" : "有序列表", - hr : "横线", - link : "链接", - "reference-link" : "引用链接", - image : "添加图片", - code : "行内代码", - "preformatted-text" : "预格式文本 / 代码块(缩进风格)", - "code-block" : "代码块(多语言风格)", - table : "添加表格", - datetime : "日期时间", - emoji : "Emoji表情", - "html-entities" : "HTML实体字符", - pagebreak : "插入分页符", - "goto-line" : "跳转到行", - watch : "关闭实时预览", - unwatch : "开启实时预览", - preview : "全窗口预览HTML(按 Shift + ESC还原)", - fullscreen : "全屏(按ESC还原)", - clear : "清空", - search : "搜索", - help : "使用帮助", - info : "关于" + editormd.title - }, - buttons : { - enter : "确定", - cancel : "取消", - close : "关闭" - }, - dialog : { - link : { - title : "添加链接", - url : "链接地址", - urlTitle : "链接标题", - urlEmpty : "错误:请填写链接地址。" - }, - referenceLink : { - title : "添加引用链接", - name : "引用名称", - url : "链接地址", - urlId : "链接ID", - urlTitle : "链接标题", - nameEmpty: "错误:引用链接的名称不能为空。", - idEmpty : "错误:请填写引用链接的ID。", - urlEmpty : "错误:请填写引用链接的URL地址。" - }, - image : { - title : "添加图片", - url : "图片地址", - link : "图片链接", - alt : "图片描述", - uploadButton : "本地上传", - imageURLEmpty : "错误:图片地址不能为空。", - uploadFileEmpty : "错误:上传的图片不能为空。", - formatNotAllowed : "错误:只允许上传图片文件,允许上传的图片文件格式有:" - }, - preformattedText : { - title : "添加预格式文本或代码块", - emptyAlert : "错误:请填写预格式文本或代码的内容。" - }, - codeBlock : { - title : "添加代码块", - selectLabel : "代码语言:", - selectDefaultText : "请选择代码语言", - otherLanguage : "其他语言", - unselectedLanguageAlert : "错误:请选择代码所属的语言类型。", - codeEmptyAlert : "错误:请填写代码内容。" - }, - htmlEntities : { - title : "HTML 实体字符" - }, - help : { - title : "使用帮助" - } - } - } - }; - - editormd.classNames = { - tex : editormd.classPrefix + "tex" - }; - - editormd.dialogZindex = 99999; - - editormd.$katex = null; - editormd.$marked = null; - editormd.$CodeMirror = null; - editormd.$prettyPrint = null; - - var timer, flowchartTimer; - - editormd.prototype = editormd.fn = { - state : { - watching : false, - loaded : false, - preview : false, - fullscreen : false - }, - - /** - * 构造函数/实例初始化 - * Constructor / instance initialization - * - * @param {String} id 编辑器的ID - * @param {Object} [options={}] 配置选项 Key/Value - * @returns {editormd} 返回editormd的实例对象 - */ - - init : function (id, options) { - - options = options || {}; - - if (typeof id === "object") - { - options = id; - } - - var _this = this; - var classPrefix = this.classPrefix = editormd.classPrefix; - var settings = this.settings = $.extend(true, editormd.defaults, options); - - id = (typeof id === "object") ? settings.id : id; - - var editor = this.editor = $("#" + id); - - this.id = id; - this.lang = settings.lang; - - var classNames = this.classNames = { - textarea : { - html : classPrefix + "html-textarea", - markdown : classPrefix + "markdown-textarea" - } - }; - - settings.pluginPath = (settings.pluginPath === "") ? settings.path + "../plugins/" : settings.pluginPath; - - this.state.watching = (settings.watch) ? true : false; - - if ( !editor.hasClass("editormd") ) { - editor.addClass("editormd"); - } - - editor.css({ - width : (typeof settings.width === "number") ? settings.width + "px" : settings.width, - height : (typeof settings.height === "number") ? settings.height + "px" : settings.height - }); - - if (settings.autoHeight) - { - editor.css("height", "auto"); - } - - var markdownTextarea = this.markdownTextarea = editor.children("textarea"); - - if (markdownTextarea.length < 1) - { - editor.append(""); - markdownTextarea = this.markdownTextarea = editor.children("textarea"); - } - - markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); - - if (typeof markdownTextarea.attr("name") === "undefined" || markdownTextarea.attr("name") === "") - { - markdownTextarea.attr("name", (settings.name !== "") ? settings.name : id + "-markdown-doc"); - } - - var appendElements = [ - (!settings.readOnly) ? "" : "", - ( (settings.saveHTMLToTextarea) ? "" : "" ), - "
            ", - "
            ", - "
            " - ].join("\n"); - - editor.append(appendElements).addClass(classPrefix + "vertical"); - - if (settings.theme !== "") - { - editor.addClass(classPrefix + "theme-" + settings.theme); - } - - this.mask = editor.children("." + classPrefix + "mask"); - this.containerMask = editor.children("." + classPrefix + "container-mask"); - - if (settings.markdown !== "") - { - markdownTextarea.val(settings.markdown); - } - - if (settings.appendMarkdown !== "") - { - markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown); - } - - this.htmlTextarea = editor.children("." + classNames.textarea.html); - this.preview = editor.children("." + classPrefix + "preview"); - this.previewContainer = this.preview.children("." + classPrefix + "preview-container"); - - if (settings.previewTheme !== "") - { - this.preview.addClass(classPrefix + "preview-theme-" + settings.previewTheme); - } - - if (typeof define === "function" && define.amd) - { - if (typeof katex !== "undefined") - { - editormd.$katex = katex; - } - - if (settings.searchReplace && !settings.readOnly) - { - editormd.loadCSS(settings.path + "codemirror/addon/dialog/dialog"); - editormd.loadCSS(settings.path + "codemirror/addon/search/matchesonscrollbar"); - } - } - - if ((typeof define === "function" && define.amd) || !settings.autoLoadModules) - { - if (typeof CodeMirror !== "undefined") { - editormd.$CodeMirror = CodeMirror; - } - - if (typeof marked !== "undefined") { - editormd.$marked = marked; - } - - this.setCodeMirror().setToolbar().loadedDisplay(); - } - else - { - this.loadQueues(); - } - - return this; - }, - - /** - * 所需组件加载队列 - * Required components loading queue - * - * @returns {editormd} 返回editormd的实例对象 - */ - - loadQueues : function() { - var _this = this; - var settings = this.settings; - var loadPath = settings.path; - - var loadFlowChartOrSequenceDiagram = function() { - - if (editormd.isIE8) - { - _this.loadedDisplay(); - - return ; - } - - if (settings.flowChart || settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "raphael.min", function() { - - editormd.loadScript(loadPath + "underscore.min", function() { - - if (!settings.flowChart && settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "sequence-diagram.min", function() { - _this.loadedDisplay(); - }); - } - else if (settings.flowChart && !settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "flowchart.min", function() { - editormd.loadScript(loadPath + "jquery.flowchart.min", function() { - _this.loadedDisplay(); - }); - }); - } - else if (settings.flowChart && settings.sequenceDiagram) - { - editormd.loadScript(loadPath + "flowchart.min", function() { - editormd.loadScript(loadPath + "jquery.flowchart.min", function() { - editormd.loadScript(loadPath + "sequence-diagram.min", function() { - _this.loadedDisplay(); - }); - }); - }); - } - }); - - }); - } - else - { - _this.loadedDisplay(); - } - }; - - editormd.loadCSS(loadPath + "codemirror/codemirror.min"); - - if (settings.searchReplace && !settings.readOnly) - { - editormd.loadCSS(loadPath + "codemirror/addon/dialog/dialog"); - editormd.loadCSS(loadPath + "codemirror/addon/search/matchesonscrollbar"); - } - - if (settings.codeFold) - { - editormd.loadCSS(loadPath + "codemirror/addon/fold/foldgutter"); - } - - editormd.loadScript(loadPath + "codemirror/codemirror.min", function() { - editormd.$CodeMirror = CodeMirror; - - editormd.loadScript(loadPath + "codemirror/modes.min", function() { - - editormd.loadScript(loadPath + "codemirror/addons.min", function() { - - _this.setCodeMirror(); - - if (settings.mode !== "gfm" && settings.mode !== "markdown") - { - _this.loadedDisplay(); - - return false; - } - - _this.setToolbar(); - - editormd.loadScript(loadPath + "marked.min", function() { - - editormd.$marked = marked; - - if (settings.previewCodeHighlight) - { - editormd.loadScript(loadPath + "prettify.min", function() { - loadFlowChartOrSequenceDiagram(); - }); - } - else - { - loadFlowChartOrSequenceDiagram(); - } - }); - - }); - - }); - - }); - - return this; - }, - - /** - * 设置 Editor.md 的整体主题,主要是工具栏 - * Setting Editor.md theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setTheme : function(theme) { - var editor = this.editor; - var oldTheme = this.settings.theme; - var themePrefix = this.classPrefix + "theme-"; - - editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme); - - this.settings.theme = theme; - - return this; - }, - - /** - * 设置 CodeMirror(编辑区)的主题 - * Setting CodeMirror (Editor area) theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setEditorTheme : function(theme) { - var settings = this.settings; - settings.editorTheme = theme; - - if (theme !== "default") - { - editormd.loadCSS(settings.path + "codemirror/theme/" + settings.editorTheme); - } - - this.cm.setOption("theme", theme); - - return this; - }, - - /** - * setEditorTheme() 的别名 - * setEditorTheme() alias - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirrorTheme : function (theme) { - this.setEditorTheme(theme); - - return this; - }, - - /** - * 设置 Editor.md 的主题 - * Setting Editor.md theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setPreviewTheme : function(theme) { - var preview = this.preview; - var oldTheme = this.settings.previewTheme; - var themePrefix = this.classPrefix + "preview-theme-"; - - preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme); - - this.settings.previewTheme = theme; - - return this; - }, - - /** - * 配置和初始化CodeMirror组件 - * CodeMirror initialization - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirror : function() { - var settings = this.settings; - var editor = this.editor; - - if (settings.editorTheme !== "default") - { - editormd.loadCSS(settings.path + "codemirror/theme/" + settings.editorTheme); - } - - var codeMirrorConfig = { - mode : settings.mode, - theme : settings.editorTheme, - tabSize : settings.tabSize, - dragDrop : false, - autofocus : settings.autoFocus, - autoCloseTags : settings.autoCloseTags, - readOnly : (settings.readOnly) ? "nocursor" : false, - indentUnit : settings.indentUnit, - lineNumbers : settings.lineNumbers, - lineWrapping : settings.lineWrapping, - extraKeys : { - "Ctrl-Q": function(cm) { - cm.foldCode(cm.getCursor()); - } - }, - foldGutter : settings.codeFold, - gutters : ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - matchBrackets : settings.matchBrackets, - indentWithTabs : settings.indentWithTabs, - styleActiveLine : settings.styleActiveLine, - styleSelectedText : settings.styleSelectedText, - autoCloseBrackets : settings.autoCloseBrackets, - showTrailingSpace : settings.showTrailingSpace, - highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === "onselected") ? false : /\w/ } ) - }; - - this.codeEditor = this.cm = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig); - this.codeMirror = this.cmElement = editor.children(".CodeMirror"); - - if (settings.value !== "") - { - this.cm.setValue(settings.value); - } - - this.codeMirror.css({ - fontSize : settings.fontSize, - width : (!settings.watch) ? "100%" : "50%" - }); - - if (settings.autoHeight) - { - this.codeMirror.css("height", "auto"); - this.cm.setOption("viewportMargin", Infinity); - } - - if (!settings.lineNumbers) - { - this.codeMirror.find(".CodeMirror-gutters").css("border-right", "none"); - } - - return this; - }, - - /** - * 获取CodeMirror的配置选项 - * Get CodeMirror setting options - * - * @returns {Mixed} return CodeMirror setting option value - */ - - getCodeMirrorOption : function(key) { - return this.cm.getOption(key); - }, - - /** - * 配置和重配置CodeMirror的选项 - * CodeMirror setting options / resettings - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirrorOption : function(key, value) { - - this.cm.setOption(key, value); - - return this; - }, - - /** - * 添加 CodeMirror 键盘快捷键 - * Add CodeMirror keyboard shortcuts key map - * - * @returns {editormd} 返回editormd的实例对象 - */ - - addKeyMap : function(map, bottom) { - this.cm.addKeyMap(map, bottom); - - return this; - }, - - /** - * 移除 CodeMirror 键盘快捷键 - * Remove CodeMirror keyboard shortcuts key map - * - * @returns {editormd} 返回editormd的实例对象 - */ - - removeKeyMap : function(map) { - this.cm.removeKeyMap(map); - - return this; - }, - - /** - * 跳转到指定的行 - * Goto CodeMirror line - * - * @param {String|Intiger} line line number or "first"|"last" - * @returns {editormd} 返回editormd的实例对象 - */ - - gotoLine : function (line) { - - var settings = this.settings; - - if (!settings.gotoLine) - { - return this; - } - - var cm = this.cm; - var editor = this.editor; - var count = cm.lineCount(); - var preview = this.preview; - - if (typeof line === "string") - { - if(line === "last") - { - line = count; - } - - if (line === "first") - { - line = 1; - } - } - - if (typeof line !== "number") - { - alert("Error: The line number must be an integer."); - return this; - } - - line = parseInt(line) - 1; - - if (line > count) - { - alert("Error: The line number range 1-" + count); - - return this; - } - - cm.setCursor( {line : line, ch : 0} ); - - var scrollInfo = cm.getScrollInfo(); - var clientHeight = scrollInfo.clientHeight; - var coords = cm.charCoords({line : line, ch : 0}, "local"); - - cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2); - - if (settings.watch) - { - var cmScroll = this.codeMirror.find(".CodeMirror-scroll")[0]; - var height = $(cmScroll).height(); - var scrollTop = cmScroll.scrollTop; - var percent = (scrollTop / cmScroll.scrollHeight); - - if (scrollTop === 0) - { - preview.scrollTop(0); - } - else if (scrollTop + height >= cmScroll.scrollHeight - 16) - { - preview.scrollTop(preview[0].scrollHeight); - } - else - { - preview.scrollTop(preview[0].scrollHeight * percent); - } - } - - cm.focus(); - - return this; - }, - - /** - * 扩展当前实例对象,可同时设置多个或者只设置一个 - * Extend editormd instance object, can mutil setting. - * - * @returns {editormd} this(editormd instance object.) - */ - - extend : function() { - if (typeof arguments[1] !== "undefined") - { - if (typeof arguments[1] === "function") - { - arguments[1] = $.proxy(arguments[1], this); - } - - this[arguments[0]] = arguments[1]; - } - - if (typeof arguments[0] === "object" && typeof arguments[0].length === "undefined") - { - $.extend(true, this, arguments[0]); - } - - return this; - }, - - /** - * 设置或扩展当前实例对象,单个设置 - * Extend editormd instance object, one by one - * - * @param {String|Object} key option key - * @param {String|Object} value option value - * @returns {editormd} this(editormd instance object.) - */ - - set : function (key, value) { - - if (typeof value !== "undefined" && typeof value === "function") - { - value = $.proxy(value, this); - } - - this[key] = value; - - return this; - }, - - /** - * 重新配置 - * Resetting editor options - * - * @param {String|Object} key option key - * @param {String|Object} value option value - * @returns {editormd} this(editormd instance object.) - */ - - config : function(key, value) { - var settings = this.settings; - - if (typeof key === "object") - { - settings = $.extend(true, settings, key); - } - - if (typeof key === "string") - { - settings[key] = value; - } - - this.settings = settings; - this.recreate(); - - return this; - }, - - /** - * 注册事件处理方法 - * Bind editor event handle - * - * @param {String} eventType event type - * @param {Function} callback 回调函数 - * @returns {editormd} this(editormd instance object.) - */ - - on : function(eventType, callback) { - var settings = this.settings; - - if (typeof settings["on" + eventType] !== "undefined") - { - settings["on" + eventType] = $.proxy(callback, this); - } - - return this; - }, - - /** - * 解除事件处理方法 - * Unbind editor event handle - * - * @param {String} eventType event type - * @returns {editormd} this(editormd instance object.) - */ - - off : function(eventType) { - var settings = this.settings; - - if (typeof settings["on" + eventType] !== "undefined") - { - settings["on" + eventType] = function(){}; - } - - return this; - }, - - /** - * 显示工具栏 - * Display toolbar - * - * @param {Function} [callback=function(){}] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - showToolbar : function(callback) { - var settings = this.settings; - - if(settings.readOnly) { - return this; - } - - if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find("." + this.classPrefix + "menu").html() === "") ) - { - this.setToolbar(); - } - - settings.toolbar = true; - - this.toolbar.show(); - this.resize(); - - $.proxy(callback || function(){}, this)(); - - return this; - }, - - /** - * 隐藏工具栏 - * Hide toolbar - * - * @param {Function} [callback=function(){}] 回调函数 - * @returns {editormd} this(editormd instance object.) - */ - - hideToolbar : function(callback) { - var settings = this.settings; - - settings.toolbar = false; - this.toolbar.hide(); - this.resize(); - - $.proxy(callback || function(){}, this)(); - - return this; - }, - - /** - * 页面滚动时工具栏的固定定位 - * Set toolbar in window scroll auto fixed position - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbarAutoFixed : function(fixed) { - - var state = this.state; - var editor = this.editor; - var toolbar = this.toolbar; - var settings = this.settings; - - if (typeof fixed !== "undefined") - { - settings.toolbarAutoFixed = fixed; - } - - var autoFixedHandle = function(){ - var $window = $(window); - var top = $window.scrollTop(); - - if (!settings.toolbarAutoFixed) - { - return false; - } - - if (top - editor.offset().top > 10 && top < editor.height()) - { - toolbar.css({ - position : "fixed", - width : editor.width() + "px", - left : ($window.width() - editor.width()) / 2 + "px" - }); - } - else - { - toolbar.css({ - position : "absolute", - width : "100%", - left : 0 - }); - } - }; - - if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed) - { - $(window).bind("scroll", autoFixedHandle); - } - - return this; - }, - - /** - * 配置和初始化工具栏 - * Set toolbar and Initialization - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbar : function() { - var settings = this.settings; - - if(settings.readOnly) { - return this; - } - - var editor = this.editor; - var preview = this.preview; - var classPrefix = this.classPrefix; - - var toolbar = this.toolbar = editor.children("." + classPrefix + "toolbar"); - - if (settings.toolbar && toolbar.length < 1) - { - var toolbarHTML = "
              "; - - editor.append(toolbarHTML); - toolbar = this.toolbar = editor.children("." + classPrefix + "toolbar"); - } - - if (!settings.toolbar) - { - toolbar.hide(); - - return this; - } - - toolbar.show(); - - var icons = (typeof settings.toolbarIcons === "function") ? settings.toolbarIcons() - : ((typeof settings.toolbarIcons === "string") ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons); - - var toolbarMenu = toolbar.find("." + this.classPrefix + "menu"), menu = ""; - var pullRight = false; - - for (var i = 0, len = icons.length; i < len; i++) - { - var name = icons[i]; - - if (name === "||") - { - pullRight = true; - } - else if (name === "|") - { - menu += "
            • |
            • "; - } - else - { - var isHeader = (/h(\d)/.test(name)); - var index = name; - - if (name === "watch" && !settings.watch) { - index = "unwatch"; - } - - var title = settings.lang.toolbar[index]; - var iconTexts = settings.toolbarIconTexts[index]; - var iconClass = settings.toolbarIconsClass[index]; - - title = (typeof title === "undefined") ? "" : title; - iconTexts = (typeof iconTexts === "undefined") ? "" : iconTexts; - iconClass = (typeof iconClass === "undefined") ? "" : iconClass; - - var menuItem = pullRight ? "
            • " : "
            • "; - - if (typeof settings.toolbarCustomIcons[name] !== "undefined" && typeof settings.toolbarCustomIcons[name] !== "function") - { - menuItem += settings.toolbarCustomIcons[name]; - } - else - { - menuItem += ""; - menuItem += ""+((isHeader) ? name.toUpperCase() : ( (iconClass === "") ? iconTexts : "") ) + ""; - menuItem += ""; - } - - menuItem += "
            • "; - - menu = pullRight ? menuItem + menu : menu + menuItem; - } - } - - toolbarMenu.html(menu); - - toolbarMenu.find("[title=\"Lowercase\"]").attr("title", settings.lang.toolbar.lowercase); - toolbarMenu.find("[title=\"ucwords\"]").attr("title", settings.lang.toolbar.ucwords); - - this.setToolbarHandler(); - this.setToolbarAutoFixed(); - - return this; - }, - - /** - * 工具栏图标事件处理对象序列 - * Get toolbar icons event handlers - * - * @param {Object} cm CodeMirror的实例对象 - * @param {String} name 要获取的事件处理器名称 - * @returns {Object} 返回处理对象序列 - */ - - dialogLockScreen : function() { - $.proxy(editormd.dialogLockScreen, this)(); - - return this; - }, - - dialogShowMask : function(dialog) { - $.proxy(editormd.dialogShowMask, this)(dialog); - - return this; - }, - - getToolbarHandles : function(name) { - var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers; - - return (name && typeof toolbarIconHandlers[name] !== "undefined") ? toolbarHandlers[name] : toolbarHandlers; - }, - - /** - * 工具栏图标事件处理器 - * Bind toolbar icons event handle - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbarHandler : function() { - var _this = this; - var settings = this.settings; - - if (!settings.toolbar || settings.readOnly) { - return this; - } - - var toolbar = this.toolbar; - var cm = this.cm; - var classPrefix = this.classPrefix; - var toolbarIcons = this.toolbarIcons = toolbar.find("." + classPrefix + "menu > li > a"); - var toolbarIconHandlers = this.getToolbarHandles(); - - toolbarIcons.bind(editormd.mouseOrTouch("click", "touchend"), function(event) { - - var icon = $(this).children(".fa"); - var name = icon.attr("name"); - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (name === "") { - return ; - } - - _this.activeIcon = icon; - - if (typeof toolbarIconHandlers[name] !== "undefined") - { - $.proxy(toolbarIconHandlers[name], _this)(cm); - } - else - { - if (typeof settings.toolbarHandlers[name] !== "undefined") - { - $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection); - } - } - - if (name !== "link" && name !== "reference-link" && name !== "image" && name !== "code-block" && - name !== "preformatted-text" && name !== "watch" && name !== "preview" && name !== "search" && name !== "fullscreen" && name !== "info") - { - cm.focus(); - } - - return false; - - }); - - return this; - }, - - /** - * 动态创建对话框 - * Creating custom dialogs - * - * @param {Object} options 配置项键值对 Key/Value - * @returns {dialog} 返回创建的dialog的jQuery实例对象 - */ - - createDialog : function(options) { - return $.proxy(editormd.createDialog, this)(options); - }, - - /** - * 创建关于Editor.md的对话框 - * Create about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - createInfoDialog : function() { - var _this = this; - var editor = this.editor; - var classPrefix = this.classPrefix; - - var infoDialogHTML = [ - "
              ", - "
              ", - "

              " + editormd.title + "v" + editormd.version + "

              ", - "

              " + this.lang.description + "

              ", - "

              " + editormd.homePage + "

              ", - "

              Copyright © 2015 Pandao, The MIT License.

              ", - "
              ", - "", - "
              " - ].join("\n"); - - editor.append(infoDialogHTML); - - var infoDialog = this.infoDialog = editor.children("." + classPrefix + "dialog-info"); - - infoDialog.find("." + classPrefix + "dialog-close").bind(editormd.mouseOrTouch("click", "touchend"), function() { - _this.hideInfoDialog(); - }); - - infoDialog.css("border", (editormd.isIE8) ? "1px solid #ddd" : "").css("z-index", editormd.dialogZindex).show(); - - this.infoDialogPosition(); - - return this; - }, - - /** - * 关于Editor.md对话居中定位 - * Editor.md dialog position handle - * - * @returns {editormd} 返回editormd的实例对象 - */ - - infoDialogPosition : function() { - var infoDialog = this.infoDialog; - - var _infoDialogPosition = function() { - infoDialog.css({ - top : ($(window).height() - infoDialog.height()) / 2 + "px", - left : ($(window).width() - infoDialog.width()) / 2 + "px" - }); - }; - - _infoDialogPosition(); - - $(window).resize(_infoDialogPosition); - - return this; - }, - - /** - * 显示关于Editor.md - * Display about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - showInfoDialog : function() { - - $("html,body").css("overflow-x", "hidden"); - - var _this = this; - var editor = this.editor; - var settings = this.settings; - var infoDialog = this.infoDialog = editor.children("." + this.classPrefix + "dialog-info"); - - if (infoDialog.length < 1) - { - this.createInfoDialog(); - } - - this.lockScreen(true); - - this.mask.css({ - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }).show(); - - infoDialog.css("z-index", editormd.dialogZindex).show(); - - this.infoDialogPosition(); - - return this; - }, - - /** - * 隐藏关于Editor.md - * Hide about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - hideInfoDialog : function() { - $("html,body").css("overflow-x", ""); - this.infoDialog.hide(); - this.mask.hide(); - this.lockScreen(false); - - return this; - }, - - /** - * 锁屏 - * lock screen - * - * @param {Boolean} lock Boolean 布尔值,是否锁屏 - * @returns {editormd} 返回editormd的实例对象 - */ - - lockScreen : function(lock) { - editormd.lockScreen(lock); - this.resize(); - - return this; - }, - - /** - * 编辑器界面重建,用于动态语言包或模块加载等 - * Recreate editor - * - * @returns {editormd} 返回editormd的实例对象 - */ - - recreate : function() { - var _this = this; - var editor = this.editor; - var settings = this.settings; - - this.codeMirror.remove(); - - this.setCodeMirror(); - - if (!settings.readOnly) - { - if (editor.find(".editormd-dialog").length > 0) { - editor.find(".editormd-dialog").remove(); - } - - if (settings.toolbar) - { - this.getToolbarHandles(); - this.setToolbar(); - } - } - - this.loadedDisplay(true); - - return this; - }, - - /** - * 高亮预览HTML的pre代码部分 - * highlight of preview codes - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewCodeHighlight : function() { - var settings = this.settings; - var previewContainer = this.previewContainer; - - if (settings.previewCodeHighlight) - { - previewContainer.find("pre").addClass("prettyprint linenums"); - - if (typeof prettyPrint !== "undefined") - { - prettyPrint(); - } - } - - return this; - }, - - /** - * 解析TeX(KaTeX)科学公式 - * TeX(KaTeX) Renderer - * - * @returns {editormd} 返回editormd的实例对象 - */ - - katexRender : function() { - - if (timer === null) - { - return this; - } - - this.previewContainer.find("." + editormd.classNames.tex).each(function(){ - var tex = $(this); - editormd.$katex.render(tex.text(), tex[0]); - - tex.find(".katex").css("font-size", "1.6em"); - }); - - return this; - }, - - /** - * 解析和渲染流程图及时序图 - * FlowChart and SequenceDiagram Renderer - * - * @returns {editormd} 返回editormd的实例对象 - */ - - flowChartAndSequenceDiagramRender : function() { - var $this = this; - var settings = this.settings; - var previewContainer = this.previewContainer; - - if (editormd.isIE8) { - return this; - } - - if (settings.flowChart) { - if (flowchartTimer === null) { - return this; - } - - previewContainer.find(".flowchart").flowChart(); - } - - if (settings.sequenceDiagram) { - previewContainer.find(".sequence-diagram").sequenceDiagram({theme: "simple"}); - } - - var preview = $this.preview; - var codeMirror = $this.codeMirror; - var codeView = codeMirror.find(".CodeMirror-scroll"); - - var height = codeView.height(); - var scrollTop = codeView.scrollTop(); - var percent = (scrollTop / codeView[0].scrollHeight); - var tocHeight = 0; - - preview.find(".markdown-toc-list").each(function(){ - tocHeight += $(this).height(); - }); - - var tocMenuHeight = preview.find(".editormd-toc-menu").height(); - tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight; - - if (scrollTop === 0) - { - preview.scrollTop(0); - } - else if (scrollTop + height >= codeView[0].scrollHeight - 16) - { - preview.scrollTop(preview[0].scrollHeight); - } - else - { - preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent); - } - - return this; - }, - - /** - * 注册键盘快捷键处理 - * Register CodeMirror keyMaps (keyboard shortcuts). - * - * @param {Object} keyMap KeyMap key/value {"(Ctrl/Shift/Alt)-Key" : function(){}} - * @returns {editormd} return this - */ - - registerKeyMaps : function(keyMap) { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - var toolbarHandlers = editormd.toolbarHandlers; - var disabledKeyMaps = settings.disabledKeyMaps; - - keyMap = keyMap || null; - - if (keyMap) - { - for (var i in keyMap) - { - if ($.inArray(i, disabledKeyMaps) < 0) - { - var map = {}; - map[i] = keyMap[i]; - - cm.addKeyMap(keyMap); - } - } - } - else - { - for (var k in editormd.keyMaps) - { - var _keyMap = editormd.keyMaps[k]; - var handle = (typeof _keyMap === "string") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this); - - if ($.inArray(k, ["F9", "F10", "F11"]) < 0 && $.inArray(k, disabledKeyMaps) < 0) - { - var _map = {}; - _map[k] = handle; - - cm.addKeyMap(_map); - } - } - - $(window).keydown(function(event) { - - var keymaps = { - "120" : "F9", - "121" : "F10", - "122" : "F11" - }; - - if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0 ) - { - switch (event.keyCode) - { - case 120: - $.proxy(toolbarHandlers["watch"], _this)(); - return false; - break; - - case 121: - $.proxy(toolbarHandlers["preview"], _this)(); - return false; - break; - - case 122: - $.proxy(toolbarHandlers["fullscreen"], _this)(); - return false; - break; - - default: - break; - } - } - }); - } - - return this; - }, - - /** - * 绑定同步滚动 - * - * @returns {editormd} return this - */ - - bindScrollEvent : function() { - - var _this = this; - var preview = this.preview; - var settings = this.settings; - var codeMirror = this.codeMirror; - var mouseOrTouch = editormd.mouseOrTouch; - - if (!settings.syncScrolling) { - return this; - } - - var cmBindScroll = function() { - codeMirror.find(".CodeMirror-scroll").bind(mouseOrTouch("scroll", "touchmove"), function(event) { - var height = $(this).height(); - var scrollTop = $(this).scrollTop(); - var percent = (scrollTop / $(this)[0].scrollHeight); - - var tocHeight = 0; - - preview.find(".markdown-toc-list").each(function(){ - tocHeight += $(this).height(); - }); - - var tocMenuHeight = preview.find(".editormd-toc-menu").height(); - tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight; - - if (scrollTop === 0) - { - preview.scrollTop(0); - } - else if (scrollTop + height >= $(this)[0].scrollHeight - 16) - { - preview.scrollTop(preview[0].scrollHeight); - } - else - { - preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent); - } - - $.proxy(settings.onscroll, _this)(event); - }); - }; - - var cmUnbindScroll = function() { - codeMirror.find(".CodeMirror-scroll").unbind(mouseOrTouch("scroll", "touchmove")); - }; - - var previewBindScroll = function() { - - preview.bind(mouseOrTouch("scroll", "touchmove"), function(event) { - var height = $(this).height(); - var scrollTop = $(this).scrollTop(); - var percent = (scrollTop / $(this)[0].scrollHeight); - var codeView = codeMirror.find(".CodeMirror-scroll"); - - if(scrollTop === 0) - { - codeView.scrollTop(0); - } - else if (scrollTop + height >= $(this)[0].scrollHeight) - { - codeView.scrollTop(codeView[0].scrollHeight); - } - else - { - codeView.scrollTop(codeView[0].scrollHeight * percent); - } - - $.proxy(settings.onpreviewscroll, _this)(event); - }); - - }; - - var previewUnbindScroll = function() { - preview.unbind(mouseOrTouch("scroll", "touchmove")); - }; - - codeMirror.bind({ - mouseover : cmBindScroll, - mouseout : cmUnbindScroll, - touchstart : cmBindScroll, - touchend : cmUnbindScroll - }); - - if (settings.syncScrolling === "single") { - return this; - } - - preview.bind({ - mouseover : previewBindScroll, - mouseout : previewUnbindScroll, - touchstart : previewBindScroll, - touchend : previewUnbindScroll - }); - - return this; - }, - - bindChangeEvent : function() { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - - if (!settings.syncScrolling) { - return this; - } - - cm.on("change", function(_cm, changeObj) { - - if (settings.watch) - { - _this.previewContainer.css("padding", settings.autoHeight ? "20px 20px 50px 40px" : "20px"); - } - - timer = setTimeout(function() { - clearTimeout(timer); - _this.save(); - timer = null; - }, settings.delay); - }); - - return this; - }, - - /** - * 加载队列完成之后的显示处理 - * Display handle of the module queues loaded after. - * - * @param {Boolean} recreate 是否为重建编辑器 - * @returns {editormd} 返回editormd的实例对象 - */ - - loadedDisplay : function(recreate) { - - recreate = recreate || false; - - var _this = this; - var editor = this.editor; - var preview = this.preview; - var settings = this.settings; - - this.containerMask.hide(); - - this.save(); - - if (settings.watch) { - preview.show(); - } - - editor.data("oldWidth", editor.width()).data("oldHeight", editor.height()); // 为了兼容Zepto - - this.resize(); - this.registerKeyMaps(); - - $(window).resize(function(){ - _this.resize(); - }); - - this.bindScrollEvent().bindChangeEvent(); - - if (!recreate) - { - $.proxy(settings.onload, this)(); - } - - this.state.loaded = true; - - return this; - }, - - /** - * 设置编辑器的宽度 - * Set editor width - * - * @param {Number|String} width 编辑器宽度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - width : function(width) { - - this.editor.css("width", (typeof width === "number") ? width + "px" : width); - this.resize(); - - return this; - }, - - /** - * 设置编辑器的高度 - * Set editor height - * - * @param {Number|String} height 编辑器高度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - height : function(height) { - - this.editor.css("height", (typeof height === "number") ? height + "px" : height); - this.resize(); - - return this; - }, - - /** - * 调整编辑器的尺寸和布局 - * Resize editor layout - * - * @param {Number|String} [width=null] 编辑器宽度值 - * @param {Number|String} [height=null] 编辑器高度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - resize : function(width, height) { - - width = width || null; - height = height || null; - - var state = this.state; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var codeMirror = this.codeMirror; - - if (width) - { - editor.css("width", (typeof width === "number") ? width + "px" : width); - } - - if (settings.autoHeight && !state.fullscreen && !state.preview) - { - editor.css("height", "auto"); - codeMirror.css("height", "auto"); - } - else - { - if (height) - { - editor.css("height", (typeof height === "number") ? height + "px" : height); - } - - if (state.fullscreen) - { - editor.height($(window).height()); - } - - if (settings.toolbar && !settings.readOnly) - { - codeMirror.css("margin-top", toolbar.height() + 1).height(editor.height() - toolbar.height()); - } - else - { - codeMirror.css("margin-top", 0).height(editor.height()); - } - } - - if(settings.watch) - { - codeMirror.width(editor.width() / 2); - preview.width((!state.preview) ? editor.width() / 2 : editor.width()); - - this.previewContainer.css("padding", settings.autoHeight ? "20px 20px 50px 40px" : "20px"); - - if (settings.toolbar && !settings.readOnly) - { - preview.css("top", toolbar.height() + 1); - } - else - { - preview.css("top", 0); - } - - if (settings.autoHeight && !state.fullscreen && !state.preview) - { - preview.height(""); - } - else - { - var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height(); - - preview.height(previewHeight); - } - } - else - { - codeMirror.width(editor.width()); - preview.hide(); - } - - if (state.loaded) - { - $.proxy(settings.onresize, this)(); - } - - return this; - }, - - /** - * 解析和保存Markdown代码 - * Parse & Saving Markdown source code - * - * @returns {editormd} 返回editormd的实例对象 - */ - - save : function() { - - var _this = this; - var state = this.state; - var settings = this.settings; - - if (timer === null && !(!settings.watch && state.preview)) - { - return this; - } - - var cm = this.cm; - var cmValue = cm.getValue(); - var previewContainer = this.previewContainer; - - if (settings.mode !== "gfm" && settings.mode !== "markdown") - { - this.markdownTextarea.val(cmValue); - - return this; - } - - var marked = editormd.$marked; - var markdownToC = this.markdownToC = []; - var rendererOptions = this.markedRendererOptions = { - toc : settings.toc, - tocm : settings.tocm, - tocStartLevel : settings.tocStartLevel, - pageBreak : settings.pageBreak, - taskList : settings.taskList, - emoji : settings.emoji, - tex : settings.tex, - atLink : settings.atLink, // for @link - emailLink : settings.emailLink, // for mail address auto link - flowChart : settings.flowChart, - sequenceDiagram : settings.sequenceDiagram, - previewCodeHighlight : settings.previewCodeHighlight, - }; - - var markedOptions = this.markedOptions = { - renderer : editormd.markedRenderer(markdownToC, rendererOptions), - gfm : true, - tables : true, - breaks : true, - pedantic : false, - sanitize : (settings.htmlDecode) ? false : true, // 关闭忽略HTML标签,即开启识别HTML标签,默认为false - smartLists : true, - smartypants : true - }; - - marked.setOptions(markedOptions); - - var newMarkdownDoc = editormd.$marked(cmValue, markedOptions); - - //console.info("cmValue", cmValue, newMarkdownDoc); - - newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode); - - //console.error("cmValue", cmValue, newMarkdownDoc); - - this.markdownTextarea.text(cmValue); - - cm.save(); - - if (settings.saveHTMLToTextarea) - { - this.htmlTextarea.text(newMarkdownDoc); - } - - if(settings.watch || (!settings.watch && state.preview)) - { - previewContainer.html(newMarkdownDoc); - - this.previewCodeHighlight(); - - if (settings.toc) - { - var tocContainer = (settings.tocContainer === "") ? previewContainer : $(settings.tocContainer); - var tocMenu = tocContainer.find("." + this.classPrefix + "toc-menu"); - - tocContainer.attr("previewContainer", (settings.tocContainer === "") ? "true" : "false"); - - if (settings.tocContainer !== "" && tocMenu.length > 0) - { - tocMenu.remove(); - } - - editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel); - - if (settings.tocDropdown || tocContainer.find("." + this.classPrefix + "toc-menu").length > 0) - { - editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== "") ? settings.tocTitle : this.lang.tocTitle); - } - - if (settings.tocContainer !== "") - { - previewContainer.find(".markdown-toc").css("border", "none"); - } - } - - if (settings.tex) - { - if (!editormd.kaTeXLoaded && settings.autoLoadModules) - { - editormd.loadKaTeX(function() { - editormd.$katex = katex; - editormd.kaTeXLoaded = true; - _this.katexRender(); - }); - } - else - { - editormd.$katex = katex; - this.katexRender(); - } - } - - if (settings.flowChart || settings.sequenceDiagram) - { - flowchartTimer = setTimeout(function(){ - clearTimeout(flowchartTimer); - _this.flowChartAndSequenceDiagramRender(); - flowchartTimer = null; - }, 10); - } - - if (state.loaded) - { - $.proxy(settings.onchange, this)(); - } - } - - return this; - }, - - /** - * 聚焦光标位置 - * Focusing the cursor position - * - * @returns {editormd} 返回editormd的实例对象 - */ - - focus : function() { - this.cm.focus(); - - return this; - }, - - /** - * 设置光标的位置 - * Set cursor position - * - * @param {Object} cursor 要设置的光标位置键值对象,例:{line:1, ch:0} - * @returns {editormd} 返回editormd的实例对象 - */ - - setCursor : function(cursor) { - this.cm.setCursor(cursor); - - return this; - }, - - /** - * 获取当前光标的位置 - * Get the current position of the cursor - * - * @returns {Cursor} 返回一个光标Cursor对象 - */ - - getCursor : function() { - return this.cm.getCursor(); - }, - - /** - * 设置光标选中的范围 - * Set cursor selected ranges - * - * @param {Object} from 开始位置的光标键值对象,例:{line:1, ch:0} - * @param {Object} to 结束位置的光标键值对象,例:{line:1, ch:0} - * @returns {editormd} 返回editormd的实例对象 - */ - - setSelection : function(from, to) { - - this.cm.setSelection(from, to); - - return this; - }, - - /** - * 获取光标选中的文本 - * Get the texts from cursor selected - * - * @returns {String} 返回选中文本的字符串形式 - */ - - getSelection : function() { - return this.cm.getSelection(); - }, - - /** - * 设置光标选中的文本范围 - * Set the cursor selection ranges - * - * @param {Array} ranges cursor selection ranges array - * @returns {Array} return this - */ - - setSelections : function(ranges) { - this.cm.setSelections(ranges); - - return this; - }, - - /** - * 获取光标选中的文本范围 - * Get the cursor selection ranges - * - * @returns {Array} return selection ranges array - */ - - getSelections : function() { - return this.cm.getSelections(); - }, - - /** - * 替换当前光标选中的文本或在当前光标处插入新字符 - * Replace the text at the current cursor selected or insert a new character at the current cursor position - * - * @param {String} value 要插入的字符值 - * @returns {editormd} 返回editormd的实例对象 - */ - - replaceSelection : function(value) { - this.cm.replaceSelection(value); - - return this; - }, - - /** - * 在当前光标处插入新字符 - * Insert a new character at the current cursor position - * - * 同replaceSelection()方法 - * With the replaceSelection() method - * - * @param {String} value 要插入的字符值 - * @returns {editormd} 返回editormd的实例对象 - */ - - insertValue : function(value) { - this.replaceSelection(value); - - return this; - }, - - /** - * 追加markdown - * append Markdown to editor - * - * @param {String} md 要追加的markdown源文档 - * @returns {editormd} 返回editormd的实例对象 - */ - - appendMarkdown : function(md) { - var settings = this.settings; - var cm = this.cm; - - cm.setValue(cm.getValue() + md); - - return this; - }, - - /** - * 设置和传入编辑器的markdown源文档 - * Set Markdown source document - * - * @param {String} md 要传入的markdown源文档 - * @returns {editormd} 返回editormd的实例对象 - */ - - setMarkdown : function(md) { - this.cm.setValue(md || this.settings.markdown); - - return this; - }, - - /** - * 获取编辑器的markdown源文档 - * Set Editor.md markdown/CodeMirror value - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getMarkdown : function() { - return this.cm.getValue(); - }, - - /** - * 获取编辑器的源文档 - * Get CodeMirror value - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getValue : function() { - return this.cm.getValue(); - }, - - /** - * 设置编辑器的源文档 - * Set CodeMirror value - * - * @param {String} value set code/value/string/text - * @returns {editormd} 返回editormd的实例对象 - */ - - setValue : function(value) { - this.cm.setValue(value); - - return this; - }, - - /** - * 清空编辑器 - * Empty CodeMirror editor container - * - * @returns {editormd} 返回editormd的实例对象 - */ - - clear : function() { - this.cm.setValue(""); - - return this; - }, - - /** - * 获取解析后存放在Textarea的HTML源码 - * Get parsed html code from Textarea - * - * @returns {String} 返回HTML源码 - */ - - getHTML : function() { - if (!this.settings.saveHTMLToTextarea) - { - alert("Error: settings.saveHTMLToTextarea == false"); - - return false; - } - - return this.htmlTextarea.val(); - }, - - /** - * getHTML()的别名 - * getHTML (alias) - * - * @returns {String} Return html code 返回HTML源码 - */ - - getTextareaSavedHTML : function() { - return this.getHTML(); - }, - - /** - * 获取预览窗口的HTML源码 - * Get html from preview container - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getPreviewedHTML : function() { - if (!this.settings.watch) - { - alert("Error: settings.watch == false"); - - return false; - } - - return this.previewContainer.html(); - }, - - /** - * 开启实时预览 - * Enable real-time watching - * - * @returns {editormd} 返回editormd的实例对象 - */ - - watch : function(callback) { - var settings = this.settings; - - if ($.inArray(settings.mode, ["gfm", "markdown"]) < 0) - { - return this; - } - - this.state.watching = settings.watch = true; - this.preview.show(); - - if (this.toolbar) - { - var watchIcon = settings.toolbarIconsClass.watch; - var unWatchIcon = settings.toolbarIconsClass.unwatch; - - var icon = this.toolbar.find(".fa[name=watch]"); - icon.parent().attr("title", settings.lang.toolbar.watch); - icon.removeClass(unWatchIcon).addClass(watchIcon); - } - - this.codeMirror.css("border-right", "1px solid #ddd").width(this.editor.width() / 2); - - timer = 0; - - this.save().resize(); - - if (!settings.onwatch) - { - settings.onwatch = callback || function() {}; - } - - $.proxy(settings.onwatch, this)(); - - return this; - }, - - /** - * 关闭实时预览 - * Disable real-time watching - * - * @returns {editormd} 返回editormd的实例对象 - */ - - unwatch : function(callback) { - var settings = this.settings; - this.state.watching = settings.watch = false; - this.preview.hide(); - - if (this.toolbar) - { - var watchIcon = settings.toolbarIconsClass.watch; - var unWatchIcon = settings.toolbarIconsClass.unwatch; - - var icon = this.toolbar.find(".fa[name=watch]"); - icon.parent().attr("title", settings.lang.toolbar.unwatch); - icon.removeClass(watchIcon).addClass(unWatchIcon); - } - - this.codeMirror.css("border-right", "none").width(this.editor.width()); - - this.resize(); - - if (!settings.onunwatch) - { - settings.onunwatch = callback || function() {}; - } - - $.proxy(settings.onunwatch, this)(); - - return this; - }, - - /** - * 显示编辑器 - * Show editor - * - * @param {Function} [callback=function()] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - show : function(callback) { - callback = callback || function() {}; - - var _this = this; - this.editor.show(0, function() { - $.proxy(callback, _this)(); - }); - - return this; - }, - - /** - * 隐藏编辑器 - * Hide editor - * - * @param {Function} [callback=function()] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - hide : function(callback) { - callback = callback || function() {}; - - var _this = this; - this.editor.hide(0, function() { - $.proxy(callback, _this)(); - }); - - return this; - }, - - /** - * 隐藏编辑器部分,只预览HTML - * Enter preview html state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewing : function() { - - var _this = this; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var codeMirror = this.codeMirror; - var previewContainer = this.previewContainer; - - if ($.inArray(settings.mode, ["gfm", "markdown"]) < 0) { - return this; - } - - if (settings.toolbar && toolbar) { - toolbar.toggle(); - toolbar.find(".fa[name=preview]").toggleClass("active"); - } - - codeMirror.toggle(); - - var escHandle = function(event) { - if (event.shiftKey && event.keyCode === 27) { - _this.previewed(); - } - }; - - if (codeMirror.css("display") === "none") // 为了兼容Zepto,而不使用codeMirror.is(":hidden") - { - this.state.preview = true; - - if (this.state.fullscreen) { - preview.css("background", "#fff"); - } - - editor.find("." + this.classPrefix + "preview-close-btn").show().bind(editormd.mouseOrTouch("click", "touchend"), function(){ - _this.previewed(); - }); - - if (!settings.watch) - { - this.save(); - } - else - { - previewContainer.css("padding", ""); - } - - previewContainer.addClass(this.classPrefix + "preview-active"); - - preview.show().css({ - position : "", - top : 0, - width : editor.width(), - height : (settings.autoHeight && !this.state.fullscreen) ? "auto" : editor.height() - }); - - if (this.state.loaded) - { - $.proxy(settings.onpreviewing, this)(); - } - - $(window).bind("keyup", escHandle); - } - else - { - $(window).unbind("keyup", escHandle); - this.previewed(); - } - }, - - /** - * 显示编辑器部分,退出只预览HTML - * Exit preview html state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewed : function() { - - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var previewContainer = this.previewContainer; - var previewCloseBtn = editor.find("." + this.classPrefix + "preview-close-btn"); - - this.state.preview = false; - - this.codeMirror.show(); - - if (settings.toolbar) { - toolbar.show(); - } - - preview[(settings.watch) ? "show" : "hide"](); - - previewCloseBtn.hide().unbind(editormd.mouseOrTouch("click", "touchend")); - - previewContainer.removeClass(this.classPrefix + "preview-active"); - - if (settings.watch) - { - previewContainer.css("padding", "20px"); - } - - preview.css({ - background : null, - position : "absolute", - width : editor.width() / 2, - height : (settings.autoHeight && !this.state.fullscreen) ? "auto" : editor.height() - toolbar.height(), - top : (settings.toolbar) ? toolbar.height() : 0 - }); - - if (this.state.loaded) - { - $.proxy(settings.onpreviewed, this)(); - } - - return this; - }, - - /** - * 编辑器全屏显示 - * Fullscreen show - * - * @returns {editormd} 返回editormd的实例对象 - */ - - fullscreen : function() { - - var _this = this; - var state = this.state; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var fullscreenClass = this.classPrefix + "fullscreen"; - - if (toolbar) { - toolbar.find(".fa[name=fullscreen]").parent().toggleClass("active"); - } - - var escHandle = function(event) { - if (!event.shiftKey && event.keyCode === 27) - { - if (state.fullscreen) - { - _this.fullscreenExit(); - } - } - }; - - if (!editor.hasClass(fullscreenClass)) - { - state.fullscreen = true; - - $("html,body").css("overflow", "hidden"); - - editor.css({ - width : $(window).width(), - height : $(window).height() - }).addClass(fullscreenClass); - - this.resize(); - - $.proxy(settings.onfullscreen, this)(); - - $(window).bind("keyup", escHandle); - } - else - { - $(window).unbind("keyup", escHandle); - this.fullscreenExit(); - } - - return this; - }, - - /** - * 编辑器退出全屏显示 - * Exit fullscreen state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - fullscreenExit : function() { - - var editor = this.editor; - var settings = this.settings; - var toolbar = this.toolbar; - var fullscreenClass = this.classPrefix + "fullscreen"; - - this.state.fullscreen = false; - - if (toolbar) { - toolbar.find(".fa[name=fullscreen]").parent().removeClass("active"); - } - - $("html,body").css("overflow", ""); - - editor.css({ - width : editor.data("oldWidth"), - height : editor.data("oldHeight") - }).removeClass(fullscreenClass); - - this.resize(); - - $.proxy(settings.onfullscreenExit, this)(); - - return this; - }, - - /** - * 加载并执行插件 - * Load and execute the plugin - * - * @param {String} name plugin name / function name - * @param {String} path plugin load path - * @returns {editormd} 返回editormd的实例对象 - */ - - executePlugin : function(name, path) { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - - path = settings.pluginPath + path; - - if (typeof define === "function") - { - if (typeof this[name] === "undefined") - { - alert("Error: " + name + " plugin is not found, you are not load this plugin."); - - return this; - } - - this[name](cm); - - return this; - } - - if ($.inArray(path, editormd.loadFiles.plugin) < 0) - { - editormd.loadPlugin(path, function() { - editormd.loadPlugins[name] = _this[name]; - _this[name](cm); - }); - } - else - { - $.proxy(editormd.loadPlugins[name], this)(cm); - } - - return this; - }, - - /** - * 搜索替换 - * Search & replace - * - * @param {String} command CodeMirror serach commands, "find, fintNext, fintPrev, clearSearch, replace, replaceAll" - * @returns {editormd} return this - */ - - search : function(command) { - var settings = this.settings; - - if (!settings.searchReplace) - { - alert("Error: settings.searchReplace == false"); - return this; - } - - if (!settings.readOnly) - { - this.cm.execCommand(command || "find"); - } - - return this; - }, - - searchReplace : function() { - this.search("replace"); - - return this; - }, - - searchReplaceAll : function() { - this.search("replaceAll"); - - return this; - } - }; - - editormd.fn.init.prototype = editormd.fn; - - /** - * 锁屏 - * lock screen when dialog opening - * - * @returns {void} - */ - - editormd.dialogLockScreen = function() { - var settings = this.settings || {dialogLockScreen : true}; - - if (settings.dialogLockScreen) - { - $("html,body").css("overflow", "hidden"); - this.resize(); - } - }; - - /** - * 显示透明背景层 - * Display mask layer when dialog opening - * - * @param {Object} dialog dialog jQuery object - * @returns {void} - */ - - editormd.dialogShowMask = function(dialog) { - var editor = this.editor; - var settings = this.settings || {dialogShowMask : true}; - - dialog.css({ - top : ($(window).height() - dialog.height()) / 2 + "px", - left : ($(window).width() - dialog.width()) / 2 + "px" - }); - - if (settings.dialogShowMask) { - editor.children("." + this.classPrefix + "mask").css("z-index", parseInt(dialog.css("z-index")) - 1).show(); - } - }; - - editormd.toolbarHandlers = { - undo : function() { - this.cm.undo(); - }, - - redo : function() { - this.cm.redo(); - }, - - bold : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("**" + selection + "**"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - del : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("~~" + selection + "~~"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - italic : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("*" + selection + "*"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - quote : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("> " + selection); - cm.setCursor(cursor.line, cursor.ch + 2); - } - else - { - cm.replaceSelection("> " + selection); - } - - //cm.replaceSelection("> " + selection); - //cm.setCursor(cursor.line, (selection === "") ? cursor.ch + 2 : cursor.ch + selection.length + 2); - }, - - ucfirst : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(editormd.firstUpperCase(selection)); - cm.setSelections(selections); - }, - - ucwords : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(editormd.wordsFirstUpperCase(selection)); - cm.setSelections(selections); - }, - - uppercase : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(selection.toUpperCase()); - cm.setSelections(selections); - }, - - lowercase : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(selection.toLowerCase()); - cm.setSelections(selections); - }, - - h1 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("# " + selection); - cm.setCursor(cursor.line, cursor.ch + 2); - } - else - { - cm.replaceSelection("# " + selection); - } - }, - - h2 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("## " + selection); - cm.setCursor(cursor.line, cursor.ch + 3); - } - else - { - cm.replaceSelection("## " + selection); - } - }, - - h3 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("### " + selection); - cm.setCursor(cursor.line, cursor.ch + 4); - } - else - { - cm.replaceSelection("### " + selection); - } - }, - - h4 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("#### " + selection); - cm.setCursor(cursor.line, cursor.ch + 5); - } - else - { - cm.replaceSelection("#### " + selection); - } - }, - - h5 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("##### " + selection); - cm.setCursor(cursor.line, cursor.ch + 6); - } - else - { - cm.replaceSelection("##### " + selection); - } - }, - - h6 : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) - { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("###### " + selection); - cm.setCursor(cursor.line, cursor.ch + 7); - } - else - { - cm.replaceSelection("###### " + selection); - } - }, - - "list-ul" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (selection === "") - { - cm.replaceSelection("- " + selection); - } - else - { - var selectionText = selection.split("\n"); - - for (var i = 0, len = selectionText.length; i < len; i++) - { - selectionText[i] = (selectionText[i] === "") ? "" : "- " + selectionText[i]; - } - - cm.replaceSelection(selectionText.join("\n")); - } - }, - - "list-ol" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if(selection === "") - { - cm.replaceSelection("1. " + selection); - } - else - { - var selectionText = selection.split("\n"); - - for (var i = 0, len = selectionText.length; i < len; i++) - { - selectionText[i] = (selectionText[i] === "") ? "" : (i+1) + ". " + selectionText[i]; - } - - cm.replaceSelection(selectionText.join("\n")); - } - }, - - hr : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection(((cursor.ch !== 0) ? "\n\n" : "\n") + "------------\n\n"); - }, - - tex : function() { - if (!this.settings.tex) - { - alert("settings.tex === false"); - return this; - } - - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("$$" + selection + "$$"); - - if(selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - link : function() { - this.executePlugin("linkDialog", "link-dialog/link-dialog"); - }, - - "reference-link" : function() { - this.executePlugin("referenceLinkDialog", "reference-link-dialog/reference-link-dialog"); - }, - - pagebreak : function() { - if (!this.settings.pageBreak) - { - alert("settings.pageBreak === false"); - return this; - } - - var cm = this.cm; - var selection = cm.getSelection(); - - cm.replaceSelection("\r\n[========]\r\n"); - }, - - image : function() { - this.executePlugin("imageDialog", "image-dialog/image-dialog"); - }, - - code : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("`" + selection + "`"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - "code-block" : function() { - this.executePlugin("codeBlockDialog", "code-block-dialog/code-block-dialog"); - }, - - "preformatted-text" : function() { - this.executePlugin("preformattedTextDialog", "preformatted-text-dialog/preformatted-text-dialog"); - }, - - table : function() { - this.executePlugin("tableDialog", "table-dialog/table-dialog"); - }, - - datetime : function() { - var cm = this.cm; - var selection = cm.getSelection(); - var date = new Date(); - var langName = this.settings.lang.name; - var datefmt = editormd.dateFormat() + " " + editormd.dateFormat((langName === "zh-cn" || langName === "zh-tw") ? "cn-week-day" : "week-day"); - - cm.replaceSelection(datefmt); - }, - - emoji : function() { - this.executePlugin("emojiDialog", "emoji-dialog/emoji-dialog"); - }, - - "html-entities" : function() { - this.executePlugin("htmlEntitiesDialog", "html-entities-dialog/html-entities-dialog"); - }, - - "goto-line" : function() { - this.executePlugin("gotoLineDialog", "goto-line-dialog/goto-line-dialog"); - }, - - watch : function() { - this[this.settings.watch ? "unwatch" : "watch"](); - }, - - preview : function() { - this.previewing(); - }, - - fullscreen : function() { - this.fullscreen(); - }, - - clear : function() { - this.clear(); - }, - - search : function() { - this.search(); - }, - - help : function() { - this.executePlugin("helpDialog", "help-dialog/help-dialog"); - }, - - info : function() { - this.showInfoDialog(); - } - }; - - editormd.keyMaps = { - "Ctrl-1" : "h1", - "Ctrl-2" : "h2", - "Ctrl-3" : "h3", - "Ctrl-4" : "h4", - "Ctrl-5" : "h5", - "Ctrl-6" : "h6", - "Ctrl-B" : "bold", // if this is string == editormd.toolbarHandlers.xxxx - "Ctrl-D" : "datetime", - - "Ctrl-E" : function() { // emoji - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (!this.settings.emoji) - { - alert("Error: settings.emoji == false"); - return ; - } - - cm.replaceSelection(":" + selection + ":"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - "Ctrl-Alt-G" : "goto-line", - "Ctrl-H" : "hr", - "Ctrl-I" : "italic", - "Ctrl-K" : "code", - - "Ctrl-L" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - var title = (selection === "") ? "" : " \""+selection+"\""; - - cm.replaceSelection("[" + selection + "]("+title+")"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - "Ctrl-U" : "list-ul", - - "Shift-Ctrl-A" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (!this.settings.atLink) - { - alert("Error: settings.atLink == false"); - return ; - } - - cm.replaceSelection("@" + selection); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - "Shift-Ctrl-C" : "code", - "Shift-Ctrl-Q" : "quote", - "Shift-Ctrl-S" : "del", - "Shift-Ctrl-K" : "tex", // KaTeX - - "Shift-Alt-C" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection(["```", selection, "```"].join("\n")); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 3); - } - }, - - "Shift-Ctrl-Alt-C" : "code-block", - "Shift-Ctrl-H" : "html-entities", - "Shift-Alt-H" : "help", - "Shift-Ctrl-E" : "emoji", - "Shift-Ctrl-U" : "uppercase", - "Shift-Alt-U" : "ucwords", - "Shift-Ctrl-Alt-U" : "ucfirst", - "Shift-Alt-L" : "lowercase", - - "Shift-Ctrl-I" : function() { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - var title = (selection === "") ? "" : " \""+selection+"\""; - - cm.replaceSelection("![" + selection + "]("+title+")"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 4); - } - }, - - "Shift-Ctrl-Alt-I" : "image", - "Shift-Ctrl-L" : "link", - "Shift-Ctrl-O" : "list-ol", - "Shift-Ctrl-P" : "preformatted-text", - "Shift-Ctrl-T" : "table", - "Shift-Alt-P" : "pagebreak", - "F9" : "watch", - "F10" : "preview", - "F11" : "fullscreen", - }; - - /** - * 清除字符串两边的空格 - * Clear the space of strings both sides. - * - * @param {String} str string - * @returns {String} trimed string - */ - - var trim = function(str) { - return (!String.prototype.trim) ? str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") : str.trim(); - }; - - editormd.trim = trim; - - /** - * 所有单词首字母大写 - * Words first to uppercase - * - * @param {String} str string - * @returns {String} string - */ - - var ucwords = function (str) { - return str.toLowerCase().replace(/\b(\w)|\s(\w)/g, function($1) { - return $1.toUpperCase(); - }); - }; - - editormd.ucwords = editormd.wordsFirstUpperCase = ucwords; - - /** - * 字符串首字母大写 - * Only string first char to uppercase - * - * @param {String} str string - * @returns {String} string - */ - - var firstUpperCase = function(str) { - return str.toLowerCase().replace(/\b(\w)/, function($1){ - return $1.toUpperCase(); - }); - }; - - var ucfirst = firstUpperCase; - - editormd.firstUpperCase = editormd.ucfirst = firstUpperCase; - - editormd.urls = { - atLinkBase : "https://github.com/" - }; - - editormd.regexs = { - atLink : /@(\w+)/g, - email : /(\w+)@(\w+)\.(\w+)\.?(\w+)?/g, - emailLink : /(mailto:)?([\w\.\_]+)@(\w+)\.(\w+)\.?(\w+)?/g, - emoji : /:([\w\+-]+):/g, - emojiDatetime : /(\d{2}:\d{2}:\d{2})/g, - twemoji : /:(tw-([\w]+)-?(\w+)?):/g, - fontAwesome : /:(fa-([\w]+)(-(\w+)){0,}):/g, - editormdLogo : /:(editormd-logo-?(\w+)?):/g, - pageBreak : /^\[[=]{8,}\]$/ - }; - - // Emoji graphics files url path - editormd.emoji = { - path : "http://www.emoji-cheat-sheet.com/graphics/emojis/", - ext : ".png" - }; - - // Twitter Emoji (Twemoji) graphics files url path - editormd.twemoji = { - path : "http://twemoji.maxcdn.com/36x36/", - ext : ".png" - }; - - /** - * 自定义marked的解析器 - * Custom Marked renderer rules - * - * @param {Array} markdownToC 传入用于接收TOC的数组 - * @returns {Renderer} markedRenderer 返回marked的Renderer自定义对象 - */ - - editormd.markedRenderer = function(markdownToC, options) { - var defaults = { - toc : true, // Table of contents - tocm : false, - tocStartLevel : 1, // Said from H1 to create ToC - pageBreak : true, - atLink : true, // for @link - emailLink : true, // for mail address auto link - taskList : false, // Enable Github Flavored Markdown task lists - emoji : false, // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis. - tex : false, // TeX(LaTeX), based on KaTeX - flowChart : false, // flowChart.js only support IE9+ - sequenceDiagram : false, // sequenceDiagram.js only support IE9+ - }; - - var settings = $.extend(defaults, options || {}); - var marked = editormd.$marked; - var markedRenderer = new marked.Renderer(); - markdownToC = markdownToC || []; - - var regexs = editormd.regexs; - var atLinkReg = regexs.atLink; - var emojiReg = regexs.emoji; - var emailReg = regexs.email; - var emailLinkReg = regexs.emailLink; - var twemojiReg = regexs.twemoji; - var faIconReg = regexs.fontAwesome; - var editormdLogoReg = regexs.editormdLogo; - var pageBreakReg = regexs.pageBreak; - - markedRenderer.emoji = function(text) { - - text = text.replace(editormd.regexs.emojiDatetime, function($1) { - return $1.replace(/:/g, ":"); - }); - - var matchs = text.match(emojiReg); - - if (!matchs || !settings.emoji) { - return text; - } - - for (var i = 0, len = matchs.length; i < len; i++) - { - if (matchs[i] === ":+1:") { - matchs[i] = ":\\+1:"; - } - - text = text.replace(new RegExp(matchs[i]), function($1, $2){ - var faMatchs = $1.match(faIconReg); - var name = $1.replace(/:/g, ""); - - if (faMatchs) - { - for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++) - { - var faName = faMatchs[fa].replace(/:/g, ""); - - return ""; - } - } - else - { - var emdlogoMathcs = $1.match(editormdLogoReg); - var twemojiMatchs = $1.match(twemojiReg); - - if (emdlogoMathcs) - { - for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++) - { - var logoName = emdlogoMathcs[x].replace(/:/g, ""); - return ""; - } - } - else if (twemojiMatchs) - { - for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++) - { - var twe = twemojiMatchs[t].replace(/:/g, "").replace("tw-", ""); - return "\"twemoji-""; - } - } - else - { - var src = (name === "+1") ? "plus1" : name; - src = (src === "black_large_square") ? "black_square" : src; - src = (src === "moon") ? "waxing_gibbous_moon" : src; - - return "\":""; - } - } - }); - } - - return text; - }; - - markedRenderer.atLink = function(text) { - - if (atLinkReg.test(text)) - { - if (settings.atLink) - { - text = text.replace(emailReg, function($1, $2, $3, $4) { - return $1.replace(/@/g, "_#_@_#_"); - }); - - text = text.replace(atLinkReg, function($1, $2) { - return "" + $1 + ""; - }).replace(/_#_@_#_/g, "@"); - } - - if (settings.emailLink) - { - text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) { - return (!$2 && $.inArray($5, "jpg|jpeg|png|gif|webp|ico|icon|pdf".split("|")) < 0) ? ""+$1+"" : $1; - }); - } - - return text; - } - - return text; - }; - - markedRenderer.link = function (href, title, text) { - - if (this.options.sanitize) { - try { - var prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase(); - } catch(e) { - return ""; - } - - if (prot.indexOf("javascript:") === 0) { - return ""; - } - } - - var out = "" + text.replace(/@/g, "@") + ""; - } - - if (title) { - out += " title=\"" + title + "\""; - } - - out += ">" + text + ""; - - return out; - }; - - markedRenderer.heading = function(text, level, raw) { - - var linkText = text; - var hasLinkReg = /\s*\]*)\>(.*)\<\/a\>\s*/; - var getLinkTextReg = /\s*\]+)\>([^\>]*)\<\/a\>\s*/g; - - if (hasLinkReg.test(text)) - { - var tempText = []; - text = text.split(/\]+)\>([^\>]*)\<\/a\>/); - - for (var i = 0, len = text.length; i < len; i++) - { - tempText.push(text[i].replace(/\s*href\=\"(.*)\"\s*/g, "")); - } - - text = tempText.join(" "); - } - - text = trim(text); - - var escapedText = text.toLowerCase().replace(/[^\w]+/g, "-"); - var toc = { - text : text, - level : level, - slug : escapedText - }; - - var isChinese = /^[\u4e00-\u9fa5]+$/.test(text); - var id = (isChinese) ? escape(text).replace(/\%/g, "") : text.toLowerCase().replace(/[^\w]+/g, "-"); - - markdownToC.push(toc); - - var headingHTML = ""; - - headingHTML += ""; - headingHTML += ""; - headingHTML += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text)); - headingHTML += ""; - - return headingHTML; - }; - - markedRenderer.pageBreak = function(text) { - if (pageBreakReg.test(text) && settings.pageBreak) - { - text = "
              "; - } - - return text; - }; - - markedRenderer.paragraph = function(text) { - var isTeXInline = /\$\$(.*)\$\$/g.test(text); - var isTeXLine = /^\$\$(.*)\$\$$/.test(text); - var isTeXAddClass = (isTeXLine) ? " class=\"" + editormd.classNames.tex + "\"" : ""; - var isToC = (settings.tocm) ? /^(\[TOC\]|\[TOCM\])$/.test(text) : /^\[TOC\]$/.test(text); - var isToCMenu = /^\[TOCM\]$/.test(text); - - if (!isTeXLine && isTeXInline) - { - text = text.replace(/(\$\$([^\$]*)\$\$)+/g, function($1, $2) { - return "" + $2.replace(/\$/g, "") + ""; - }); - } - else - { - text = (isTeXLine) ? text.replace(/\$/g, "") : text; - } - - var tocHTML = "
              " + text + "
              "; - - return (isToC) ? ( (isToCMenu) ? "
              " + tocHTML + "

              " : tocHTML ) - : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : "" + this.atLink(this.emoji(text)) + "

              \n" ); - }; - - markedRenderer.code = function (code, lang, escaped) { - - if (lang === "seq" || lang === "sequence") - { - return "
              " + code + "
              "; - } - else if ( lang === "flow") - { - return "
              " + code + "
              "; - } - else if ( lang === "math" || lang === "latex" || lang === "katex") - { - return "

              " + code + "

              "; - } - else - { - - return marked.Renderer.prototype.code.apply(this, arguments); - } - }; - - markedRenderer.tablecell = function(content, flags) { - var type = (flags.header) ? "th" : "td"; - var tag = (flags.align) ? "<" + type +" style=\"text-align:" + flags.align + "\">" : "<" + type + ">"; - - return tag + this.atLink(this.emoji(content)) + "\n"; - }; - - markedRenderer.listitem = function(text) { - if (settings.taskList && /^\s*\[[x\s]\]\s*/.test(text)) - { - text = text.replace(/^\s*\[\s\]\s*/, " ") - .replace(/^\s*\[x\]\s*/, " "); - - return "
            • " + this.atLink(this.emoji(text)) + "
            • "; - } - else - { - return "
            • " + this.atLink(this.emoji(text)) + "
            • "; - } - }; - - return markedRenderer; - }; - - /** - * - * 生成TOC(Table of Contents) - * Creating ToC (Table of Contents) - * - * @param {Array} toc 从marked获取的TOC数组列表 - * @param {Element} container 插入TOC的容器元素 - * @param {Integer} startLevel Hx 起始层级 - * @returns {Object} tocContainer 返回ToC列表容器层的jQuery对象元素 - */ - - editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) { - - var html = ""; - var lastLevel = 0; - var classPrefix = this.classPrefix; - - startLevel = startLevel || 1; - - for (var i = 0, len = toc.length; i < len; i++) - { - var text = toc[i].text; - var level = toc[i].level; - - if (level < startLevel) { - continue; - } - - if (level > lastLevel) - { - html += ""; - } - else if (level < lastLevel) - { - html += (new Array(lastLevel - level + 2)).join("
          • "); - } - else - { - html += ""; - } - - html += "
          • " + text + "
              "; - lastLevel = level; - } - - var tocContainer = container.find(".markdown-toc"); - - if ((tocContainer.length < 1 && container.attr("previewContainer") === "false")) - { - var tocHTML = "
              "; - - tocHTML = (tocDropdown) ? "
              " + tocHTML + "
              " : tocHTML; - - container.html(tocHTML); - - tocContainer = container.find(".markdown-toc"); - } - - if (tocDropdown) - { - tocContainer.wrap("

              "); - } - - tocContainer.html("
                ").children(".markdown-toc-list").html(html.replace(/\r?\n?\\<\/ul\>/g, "")); - - return tocContainer; - }; - - /** - * - * 生成TOC下拉菜单 - * Creating ToC dropdown menu - * - * @param {Object} container 插入TOC的容器jQuery对象元素 - * @param {String} tocTitle ToC title - * @returns {Object} return toc-menu object - */ - - editormd.tocDropdownMenu = function(container, tocTitle) { - - tocTitle = tocTitle || "Table of Contents"; - - var zindex = 400; - var tocMenus = container.find("." + this.classPrefix + "toc-menu"); - - tocMenus.each(function() { - var $this = $(this); - var toc = $this.children(".markdown-toc"); - var icon = ""; - var btn = "" + icon + tocTitle + ""; - var menu = toc.children("ul"); - var list = menu.find("li"); - - toc.append(btn); - - list.first().before("
              • " + tocTitle + " " + icon + "

              • "); - - $this.mouseover(function(){ - menu.show(); - - list.each(function(){ - var li = $(this); - var ul = li.children("ul"); - - if (ul.html() === "") - { - ul.remove(); - } - - if (ul.length > 0 && ul.html() !== "") - { - var firstA = li.children("a").first(); - - if (firstA.children(".fa").length < 1) - { - firstA.append( $(icon).css({ float:"right", paddingTop:"4px" }) ); - } - } - - li.mouseover(function(){ - ul.css("z-index", zindex).show(); - zindex += 1; - }).mouseleave(function(){ - ul.hide(); - }); - }); - }).mouseleave(function(){ - menu.hide(); - }); - }); - - return tocMenus; - }; - - /** - * 简单地过滤指定的HTML标签 - * Filter custom html tags - * - * @param {String} html 要过滤HTML - * @param {String} filters 要过滤的标签 - * @returns {String} html 返回过滤的HTML - */ - - editormd.filterHTMLTags = function(html, filters) { - - if (typeof html !== "string") { - html = new String(html); - } - - if (typeof filters !== "string") { - return html; - } - - var expression = filters.split("|"); - var filterTags = expression[0].split(","); - var attrs = expression[1]; - - for (var i = 0, len = filterTags.length; i < len; i++) - { - var tag = filterTags[i]; - - html = html.replace(new RegExp("\<\s*" + tag + "\s*([^\>]*)\>([^\>]*)\<\s*\/" + tag + "\s*\>", "igm"), ""); - } - - //return html; - - if (typeof attrs !== "undefined") - { - var htmlTagRegex = /\<(\w+)\s*([^\>]*)\>([^\>]*)\<\/(\w+)\>/ig; - - if (attrs === "*") - { - html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) { - return "<" + $2 + ">" + $4 + ""; - }); - } - else if (attrs === "on*") - { - html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) { - var el = $("<" + $2 + ">" + $4 + ""); - var _attrs = $($1)[0].attributes; - var $attrs = {}; - - $.each(_attrs, function(i, e) { - if (e.nodeName !== '"') $attrs[e.nodeName] = e.nodeValue; - }); - - $.each($attrs, function(i) { - if (i.indexOf("on") === 0) { - delete $attrs[i]; - } - }); - - el.attr($attrs); - - var text = (typeof el[1] !== "undefined") ? $(el[1]).text() : ""; - - return el[0].outerHTML + text; - }); - } - else - { - html = html.replace(htmlTagRegex, function($1, $2, $3, $4) { - var filterAttrs = attrs.split(","); - var el = $($1); - el.html($4); - - $.each(filterAttrs, function(i) { - el.attr(filterAttrs[i], null); - }); - - return el[0].outerHTML; - }); - } - } - - return html; - }; - - /** - * 将Markdown文档解析为HTML用于前台显示 - * Parse Markdown to HTML for Font-end preview. - * - * @param {String} id 用于显示HTML的对象ID - * @param {Object} [options={}] 配置选项,可选 - * @returns {Object} div 返回jQuery对象元素 - */ - - editormd.markdownToHTML = function(id, options) { - var defaults = { - gfm : true, - toc : true, - tocm : false, - tocStartLevel : 1, - tocTitle : "目录", - tocDropdown : false, - tocContainer : "", - markdown : "", - markdownSourceCode : false, - htmlDecode : false, - autoLoadKaTeX : true, - pageBreak : true, - atLink : true, // for @link - emailLink : true, // for mail address auto link - tex : false, - taskList : false, // Github Flavored Markdown task lists - emoji : false, - flowChart : false, - sequenceDiagram : false, - previewCodeHighlight : true - }; - - editormd.$marked = marked; - - var div = $("#" + id); - var settings = div.settings = $.extend(true, defaults, options || {}); - var saveTo = div.find("textarea"); - - if (saveTo.length < 1) - { - div.append(""); - saveTo = div.find("textarea"); - } - - var markdownDoc = (settings.markdown === "") ? saveTo.val() : settings.markdown; - var markdownToC = []; - - var rendererOptions = { - toc : settings.toc, - tocm : settings.tocm, - tocStartLevel : settings.tocStartLevel, - taskList : settings.taskList, - emoji : settings.emoji, - tex : settings.tex, - pageBreak : settings.pageBreak, - atLink : settings.atLink, // for @link - emailLink : settings.emailLink, // for mail address auto link - flowChart : settings.flowChart, - sequenceDiagram : settings.sequenceDiagram, - previewCodeHighlight : settings.previewCodeHighlight, - }; - - var markedOptions = { - renderer : editormd.markedRenderer(markdownToC, rendererOptions), - gfm : settings.gfm, - tables : true, - breaks : true, - pedantic : false, - sanitize : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签,即是否开启HTML标签解析,为了安全性,默认不开启 - smartLists : true, - smartypants : true - }; - - markdownDoc = new String(markdownDoc); - - var markdownParsed = marked(markdownDoc, markedOptions); - - markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode); - - if (settings.markdownSourceCode) { - saveTo.text(markdownDoc); - } else { - saveTo.remove(); - } - - div.addClass("markdown-body " + this.classPrefix + "html-preview").append(markdownParsed); - - var tocContainer = (settings.tocContainer !== "") ? $(settings.tocContainer) : div; - - if (settings.tocContainer !== "") - { - tocContainer.attr("previewContainer", false); - } - - if (settings.toc) - { - div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel); - - if (settings.tocDropdown || div.find("." + this.classPrefix + "toc-menu").length > 0) - { - this.tocDropdownMenu(div, settings.tocTitle); - } - - if (settings.tocContainer !== "") - { - div.find(".editormd-toc-menu, .editormd-markdown-toc").remove(); - } - } - - if (settings.previewCodeHighlight) - { - div.find("pre").addClass("prettyprint linenums"); - prettyPrint(); - } - - if (!editormd.isIE8) - { - if (settings.flowChart) { - div.find(".flowchart").flowChart(); - } - - if (settings.sequenceDiagram) { - div.find(".sequence-diagram").sequenceDiagram({theme: "simple"}); - } - } - - if (settings.tex) - { - var katexHandle = function() { - div.find("." + editormd.classNames.tex).each(function(){ - var tex = $(this); - katex.render(tex.html().replace(/</g, "<").replace(/>/g, ">"), tex[0]); - tex.find(".katex").css("font-size", "1.6em"); - }); - }; - - if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded) - { - this.loadKaTeX(function() { - editormd.$katex = katex; - editormd.kaTeXLoaded = true; - katexHandle(); - }); - } - else - { - katexHandle(); - } - } - - div.getMarkdown = function() { - return saveTo.val(); - }; - - return div; - }; - - // Editor.md themes, change toolbar themes etc. - // added @1.5.0 - editormd.themes = ["default", "dark"]; - - // Preview area themes - // added @1.5.0 - editormd.previewThemes = ["default", "dark"]; - - // CodeMirror / editor area themes - // @1.5.0 rename -> editorThemes, old version -> themes - editormd.editorThemes = [ - "default", "3024-day", "3024-night", - "ambiance", "ambiance-mobile", - "base16-dark", "base16-light", "blackboard", - "cobalt", - "eclipse", "elegant", "erlang-dark", - "lesser-dark", - "mbo", "mdn-like", "midnight", "monokai", - "neat", "neo", "night", - "paraiso-dark", "paraiso-light", "pastel-on-dark", - "rubyblue", - "solarized", - "the-matrix", "tomorrow-night-eighties", "twilight", - "vibrant-ink", - "xq-dark", "xq-light" - ]; - - editormd.loadPlugins = {}; - - editormd.loadFiles = { - js : [], - css : [], - plugin : [] - }; - - /** - * 动态加载Editor.md插件,但不立即执行 - * Load editor.md plugins - * - * @param {String} fileName 插件文件路径 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadPlugin = function(fileName, callback, into) { - callback = callback || function() {}; - - this.loadScript(fileName, function() { - editormd.loadFiles.plugin.push(fileName); - callback(); - }, into); - }; - - /** - * 动态加载CSS文件的方法 - * Load css file method - * - * @param {String} fileName CSS文件名 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadCSS = function(fileName, callback, into) { - into = into || "head"; - callback = callback || function() {}; - - var css = document.createElement("link"); - css.type = "text/css"; - css.rel = "stylesheet"; - css.onload = css.onreadystatechange = function() { - editormd.loadFiles.css.push(fileName); - callback(); - }; - - css.href = fileName + ".css"; - - if(into === "head") { - document.getElementsByTagName("head")[0].appendChild(css); - } else { - document.body.appendChild(css); - } - }; - - editormd.isIE = (navigator.appName == "Microsoft Internet Explorer"); - editormd.isIE8 = (editormd.isIE && navigator.appVersion.match(/8./i) == "8."); - - /** - * 动态加载JS文件的方法 - * Load javascript file method - * - * @param {String} fileName JS文件名 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadScript = function(fileName, callback, into) { - - into = into || "head"; - callback = callback || function() {}; - - var script = null; - script = document.createElement("script"); - script.id = fileName.replace(/[\./]+/g, "-"); - script.type = "text/javascript"; - script.src = fileName + ".js"; - - if (editormd.isIE8) - { - script.onreadystatechange = function() { - if(script.readyState) - { - if (script.readyState === "loaded" || script.readyState === "complete") - { - script.onreadystatechange = null; - editormd.loadFiles.js.push(fileName); - callback(); - } - } - }; - } - else - { - script.onload = function() { - editormd.loadFiles.js.push(fileName); - callback(); - }; - } - - if (into === "head") { - document.getElementsByTagName("head")[0].appendChild(script); - } else { - document.body.appendChild(script); - } - }; - - // 使用国外的CDN,加载速度有时会很慢,或者自定义URL - // You can custom KaTeX load url. - editormd.katexURL = { - css : "//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min", - js : "//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min" - }; - - editormd.kaTeXLoaded = false; - - /** - * 加载KaTeX文件 - * load KaTeX files - * - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - */ - - editormd.loadKaTeX = function (callback) { - editormd.loadCSS(editormd.katexURL.css, function(){ - editormd.loadScript(editormd.katexURL.js, callback || function(){}); - }); - }; - - /** - * 锁屏 - * lock screen - * - * @param {Boolean} lock Boolean 布尔值,是否锁屏 - * @returns {void} - */ - - editormd.lockScreen = function(lock) { - $("html,body").css("overflow", (lock) ? "hidden" : ""); - }; - - /** - * 动态创建对话框 - * Creating custom dialogs - * - * @param {Object} options 配置项键值对 Key/Value - * @returns {dialog} 返回创建的dialog的jQuery实例对象 - */ - - editormd.createDialog = function(options) { - var defaults = { - name : "", - width : 420, - height: 240, - title : "", - drag : true, - closed : true, - content : "", - mask : true, - maskStyle : { - backgroundColor : "#fff", - opacity : 0.1 - }, - lockScreen : true, - footer : true, - buttons : false - }; - - options = $.extend(true, defaults, options); - - var $this = this; - var editor = this.editor; - var classPrefix = editormd.classPrefix; - var guid = (new Date()).getTime(); - var dialogName = ( (options.name === "") ? classPrefix + "dialog-" + guid : options.name); - var mouseOrTouch = editormd.mouseOrTouch; - - var html = "
                "; - - if (options.title !== "") - { - html += "
                "; - html += "" + options.title + ""; - html += "
                "; - } - - if (options.closed) - { - html += ""; - } - - html += "
                " + options.content; - - if (options.footer || typeof options.footer === "string") - { - html += "
                " + ( (typeof options.footer === "boolean") ? "" : options.footer) + "
                "; - } - - html += "
                "; - - html += "
                "; - html += "
                "; - html += "
                "; - - editor.append(html); - - var dialog = editor.find("." + dialogName); - - dialog.lockScreen = function(lock) { - if (options.lockScreen) - { - $("html,body").css("overflow", (lock) ? "hidden" : ""); - $this.resize(); - } - - return dialog; - }; - - dialog.showMask = function() { - if (options.mask) - { - editor.find("." + classPrefix + "mask").css(options.maskStyle).css("z-index", editormd.dialogZindex - 1).show(); - } - return dialog; - }; - - dialog.hideMask = function() { - if (options.mask) - { - editor.find("." + classPrefix + "mask").hide(); - } - - return dialog; - }; - - dialog.loading = function(show) { - var loading = dialog.find("." + classPrefix + "dialog-mask"); - loading[(show) ? "show" : "hide"](); - - return dialog; - }; - - dialog.lockScreen(true).showMask(); - - dialog.show().css({ - zIndex : editormd.dialogZindex, - border : (editormd.isIE8) ? "1px solid #ddd" : "", - width : (typeof options.width === "number") ? options.width + "px" : options.width, - height : (typeof options.height === "number") ? options.height + "px" : options.height - }); - - var dialogPosition = function(){ - dialog.css({ - top : ($(window).height() - dialog.height()) / 2 + "px", - left : ($(window).width() - dialog.width()) / 2 + "px" - }); - }; - - dialogPosition(); - - $(window).resize(dialogPosition); - - dialog.children("." + classPrefix + "dialog-close").bind(mouseOrTouch("click", "touchend"), function() { - dialog.hide().lockScreen(false).hideMask(); - }); - - if (typeof options.buttons === "object") - { - var footer = dialog.footer = dialog.find("." + classPrefix + "dialog-footer"); - - for (var key in options.buttons) - { - var btn = options.buttons[key]; - var btnClassName = classPrefix + key + "-btn"; - - footer.append(""); - btn[1] = $.proxy(btn[1], dialog); - footer.children("." + btnClassName).bind(mouseOrTouch("click", "touchend"), btn[1]); - } - } - - if (options.title !== "" && options.drag) - { - var posX, posY; - var dialogHeader = dialog.children("." + classPrefix + "dialog-header"); - - if (!options.mask) { - dialogHeader.bind(mouseOrTouch("click", "touchend"), function(){ - editormd.dialogZindex += 2; - dialog.css("z-index", editormd.dialogZindex); - }); - } - - dialogHeader.mousedown(function(e) { - e = e || window.event; //IE - posX = e.clientX - parseInt(dialog[0].style.left); - posY = e.clientY - parseInt(dialog[0].style.top); - - document.onmousemove = moveAction; - }); - - var userCanSelect = function (obj) { - obj.removeClass(classPrefix + "user-unselect").off("selectstart"); - }; - - var userUnselect = function (obj) { - obj.addClass(classPrefix + "user-unselect").on("selectstart", function(event) { // selectstart for IE - return false; - }); - }; - - var moveAction = function (e) { - e = e || window.event; //IE - - var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top); - - if( nowLeft >= 0 ) { - if( nowLeft + dialog.width() <= $(window).width()) { - left = e.clientX - posX; - } else { - left = $(window).width() - dialog.width(); - document.onmousemove = null; - } - } else { - left = 0; - document.onmousemove = null; - } - - if( nowTop >= 0 ) { - top = e.clientY - posY; - } else { - top = 0; - document.onmousemove = null; - } - - - document.onselectstart = function() { - return false; - }; - - userUnselect($("body")); - userUnselect(dialog); - dialog[0].style.left = left + "px"; - dialog[0].style.top = top + "px"; - }; - - document.onmouseup = function() { - userCanSelect($("body")); - userCanSelect(dialog); - - document.onselectstart = null; - document.onmousemove = null; - }; - - dialogHeader.touchDraggable = function() { - var offset = null; - var start = function(e) { - var orig = e.originalEvent; - var pos = $(this).parent().position(); - - offset = { - x : orig.changedTouches[0].pageX - pos.left, - y : orig.changedTouches[0].pageY - pos.top - }; - }; - - var move = function(e) { - e.preventDefault(); - var orig = e.originalEvent; - - $(this).parent().css({ - top : orig.changedTouches[0].pageY - offset.y, - left : orig.changedTouches[0].pageX - offset.x - }); - }; - - this.bind("touchstart", start).bind("touchmove", move); - }; - - dialogHeader.touchDraggable(); - } - - editormd.dialogZindex += 2; - - return dialog; - }; - - /** - * 鼠标和触摸事件的判断/选择方法 - * MouseEvent or TouchEvent type switch - * - * @param {String} [mouseEventType="click"] 供选择的鼠标事件 - * @param {String} [touchEventType="touchend"] 供选择的触摸事件 - * @returns {String} EventType 返回事件类型名称 - */ - - editormd.mouseOrTouch = function(mouseEventType, touchEventType) { - mouseEventType = mouseEventType || "click"; - touchEventType = touchEventType || "touchend"; - - var eventType = mouseEventType; - - try { - document.createEvent("TouchEvent"); - eventType = touchEventType; - } catch(e) {} - - return eventType; - }; - - /** - * 日期时间的格式化方法 - * Datetime format method - * - * @param {String} [format=""] 日期时间的格式,类似PHP的格式 - * @returns {String} datefmt 返回格式化后的日期时间字符串 - */ - - editormd.dateFormat = function(format) { - format = format || ""; - - var addZero = function(d) { - return (d < 10) ? "0" + d : d; - }; - - var date = new Date(); - var year = date.getFullYear(); - var year2 = year.toString().slice(2, 4); - var month = addZero(date.getMonth() + 1); - var day = addZero(date.getDate()); - var weekDay = date.getDay(); - var hour = addZero(date.getHours()); - var min = addZero(date.getMinutes()); - var second = addZero(date.getSeconds()); - var ms = addZero(date.getMilliseconds()); - var datefmt = ""; - - var ymd = year2 + "-" + month + "-" + day; - var fymd = year + "-" + month + "-" + day; - var hms = hour + ":" + min + ":" + second; - - switch (format) - { - case "UNIX Time" : - datefmt = date.getTime(); - break; - - case "UTC" : - datefmt = date.toUTCString(); - break; - - case "yy" : - datefmt = year2; - break; - - case "year" : - case "yyyy" : - datefmt = year; - break; - - case "month" : - case "mm" : - datefmt = month; - break; - - case "cn-week-day" : - case "cn-wd" : - var cnWeekDays = ["日", "一", "二", "三", "四", "五", "六"]; - datefmt = "星期" + cnWeekDays[weekDay]; - break; - - case "week-day" : - case "wd" : - var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - datefmt = weekDays[weekDay]; - break; - - case "day" : - case "dd" : - datefmt = day; - break; - - case "hour" : - case "hh" : - datefmt = hour; - break; - - case "min" : - case "ii" : - datefmt = min; - break; - - case "second" : - case "ss" : - datefmt = second; - break; - - case "ms" : - datefmt = ms; - break; - - case "yy-mm-dd" : - datefmt = ymd; - break; - - case "yyyy-mm-dd" : - datefmt = fymd; - break; - - case "yyyy-mm-dd h:i:s ms" : - case "full + ms" : - datefmt = fymd + " " + hms + " " + ms; - break; - - case "full" : - case "yyyy-mm-dd h:i:s" : - default: - datefmt = fymd + " " + hms; - break; - } - - return datefmt; - }; - - return editormd; - -})); diff --git a/target/classes/static/admin/editormd/editormd.min.js b/target/classes/static/admin/editormd/editormd.min.js deleted file mode 100644 index f810e34..0000000 --- a/target/classes/static/admin/editormd/editormd.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Editor.md v1.5.0 | editormd.min.js | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ -!function(e){"use strict";"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?module.exports=e:"function"==typeof define?define.amd||define(["jquery"],e):window.editormd=e()}(function(){"use strict";var e="undefined"!=typeof jQuery?jQuery:Zepto;if("undefined"!=typeof e){var t=function(e,i){return new t.fn.init(e,i)};t.title=t.$name="Editor.md",t.version="1.5.0",t.homePage="https://pandao.github.io/editor.md/",t.classPrefix="editormd-",t.toolbarModes={full:["undo","redo","|","bold","del","italic","quote","ucwords","uppercase","lowercase","|","h1","h2","h3","h4","h5","h6","|","list-ul","list-ol","hr","|","link","reference-link","image","code","preformatted-text","code-block","table","datetime","emoji","html-entities","pagebreak","|","goto-line","watch","preview","fullscreen","clear","search","|","help","info"],simple:["undo","redo","|","bold","del","italic","quote","uppercase","lowercase","|","h1","h2","h3","h4","h5","h6","|","list-ul","list-ol","hr","|","watch","preview","fullscreen","|","help","info"],mini:["undo","redo","|","watch","preview","|","help","info"]},t.defaults={mode:"gfm",name:"",value:"",theme:"",editorTheme:"default",previewTheme:"",markdown:"",appendMarkdown:"",width:"100%",height:"100%",path:"./lib/",pluginPath:"",delay:300,autoLoadModules:!0,watch:!0,placeholder:"Enjoy Markdown! coding now...",gotoLine:!0,codeFold:!1,autoHeight:!1,autoFocus:!0,autoCloseTags:!0,searchReplace:!0,syncScrolling:!0,readOnly:!1,tabSize:4,indentUnit:4,lineNumbers:!0,lineWrapping:!0,autoCloseBrackets:!0,showTrailingSpace:!0,matchBrackets:!0,indentWithTabs:!0,styleSelectedText:!0,matchWordHighlight:!0,styleActiveLine:!0,dialogLockScreen:!0,dialogShowMask:!0,dialogDraggable:!0,dialogMaskBgColor:"#fff",dialogMaskOpacity:.1,fontSize:"13px",saveHTMLToTextarea:!1,disabledKeyMaps:[],onload:function(){},onresize:function(){},onchange:function(){},onwatch:null,onunwatch:null,onpreviewing:function(){},onpreviewed:function(){},onfullscreen:function(){},onfullscreenExit:function(){},onscroll:function(){},onpreviewscroll:function(){},imageUpload:!1,imageFormats:["jpg","jpeg","gif","png","bmp","webp"],imageUploadURL:"",crossDomainUpload:!1,uploadCallbackURL:"",toc:!0,tocm:!1,tocTitle:"",tocDropdown:!1,tocContainer:"",tocStartLevel:1,htmlDecode:!1,pageBreak:!0,atLink:!0,emailLink:!0,taskList:!1,emoji:!1,tex:!1,flowChart:!1,sequenceDiagram:!1,previewCodeHighlight:!0,toolbar:!0,toolbarAutoFixed:!0,toolbarIcons:"full",toolbarTitles:{},toolbarHandlers:{ucwords:function(){return t.toolbarHandlers.ucwords},lowercase:function(){return t.toolbarHandlers.lowercase}},toolbarCustomIcons:{lowercase:'a',ucwords:'Aa'},toolbarIconsClass:{undo:"fa-undo",redo:"fa-repeat",bold:"fa-bold",del:"fa-strikethrough",italic:"fa-italic",quote:"fa-quote-left",uppercase:"fa-font",h1:t.classPrefix+"bold",h2:t.classPrefix+"bold",h3:t.classPrefix+"bold",h4:t.classPrefix+"bold",h5:t.classPrefix+"bold",h6:t.classPrefix+"bold","list-ul":"fa-list-ul","list-ol":"fa-list-ol",hr:"fa-minus",link:"fa-link","reference-link":"fa-anchor",image:"fa-picture-o",code:"fa-code","preformatted-text":"fa-file-code-o","code-block":"fa-file-code-o",table:"fa-table",datetime:"fa-clock-o",emoji:"fa-smile-o","html-entities":"fa-copyright",pagebreak:"fa-newspaper-o","goto-line":"fa-terminal",watch:"fa-eye-slash",unwatch:"fa-eye",preview:"fa-desktop",search:"fa-search",fullscreen:"fa-arrows-alt",clear:"fa-eraser",help:"fa-question-circle",info:"fa-info-circle"},toolbarIconTexts:{},lang:{name:"zh-cn",description:"开源在线Markdown编辑器
                Open source online Markdown editor.",tocTitle:"目录",toolbar:{undo:"撤销(Ctrl+Z)",redo:"重做(Ctrl+Y)",bold:"粗体",del:"删除线",italic:"斜体",quote:"引用",ucwords:"将每个单词首字母转成大写",uppercase:"将所选转换成大写",lowercase:"将所选转换成小写",h1:"标题1",h2:"标题2",h3:"标题3",h4:"标题4",h5:"标题5",h6:"标题6","list-ul":"无序列表","list-ol":"有序列表",hr:"横线",link:"链接","reference-link":"引用链接",image:"添加图片",code:"行内代码","preformatted-text":"预格式文本 / 代码块(缩进风格)","code-block":"代码块(多语言风格)",table:"添加表格",datetime:"日期时间",emoji:"Emoji表情","html-entities":"HTML实体字符",pagebreak:"插入分页符","goto-line":"跳转到行",watch:"关闭实时预览",unwatch:"开启实时预览",preview:"全窗口预览HTML(按 Shift + ESC还原)",fullscreen:"全屏(按ESC还原)",clear:"清空",search:"搜索",help:"使用帮助",info:"关于"+t.title},buttons:{enter:"确定",cancel:"取消",close:"关闭"},dialog:{link:{title:"添加链接",url:"链接地址",urlTitle:"链接标题",urlEmpty:"错误:请填写链接地址。"},referenceLink:{title:"添加引用链接",name:"引用名称",url:"链接地址",urlId:"链接ID",urlTitle:"链接标题",nameEmpty:"错误:引用链接的名称不能为空。",idEmpty:"错误:请填写引用链接的ID。",urlEmpty:"错误:请填写引用链接的URL地址。"},image:{title:"添加图片",url:"图片地址",link:"图片链接",alt:"图片描述",uploadButton:"本地上传",imageURLEmpty:"错误:图片地址不能为空。",uploadFileEmpty:"错误:上传的图片不能为空。",formatNotAllowed:"错误:只允许上传图片文件,允许上传的图片文件格式有:"},preformattedText:{title:"添加预格式文本或代码块",emptyAlert:"错误:请填写预格式文本或代码的内容。"},codeBlock:{title:"添加代码块",selectLabel:"代码语言:",selectDefaultText:"请选择代码语言",otherLanguage:"其他语言",unselectedLanguageAlert:"错误:请选择代码所属的语言类型。",codeEmptyAlert:"错误:请填写代码内容。"},htmlEntities:{title:"HTML 实体字符"},help:{title:"使用帮助"}}}},t.classNames={tex:t.classPrefix+"tex"},t.dialogZindex=99999,t.$katex=null,t.$marked=null,t.$CodeMirror=null,t.$prettyPrint=null;var i,o;t.prototype=t.fn={state:{watching:!1,loaded:!1,preview:!1,fullscreen:!1},init:function(i,o){o=o||{},"object"==typeof i&&(o=i);var r=this.classPrefix=t.classPrefix,n=this.settings=e.extend(!0,t.defaults,o);i="object"==typeof i?n.id:i;var a=this.editor=e("#"+i);this.id=i,this.lang=n.lang;var s=this.classNames={textarea:{html:r+"html-textarea",markdown:r+"markdown-textarea"}};n.pluginPath=""===n.pluginPath?n.path+"../plugins/":n.pluginPath,this.state.watching=n.watch?!0:!1,a.hasClass("editormd")||a.addClass("editormd"),a.css({width:"number"==typeof n.width?n.width+"px":n.width,height:"number"==typeof n.height?n.height+"px":n.height}),n.autoHeight&&a.css("height","auto");var l=this.markdownTextarea=a.children("textarea");l.length<1&&(a.append(""),l=this.markdownTextarea=a.children("textarea")),l.addClass(s.textarea.markdown).attr("placeholder",n.placeholder),("undefined"==typeof l.attr("name")||""===l.attr("name"))&&l.attr("name",""!==n.name?n.name:i+"-markdown-doc");var c=[n.readOnly?"":'',n.saveHTMLToTextarea?'':"",'
                ','
                ','
                '].join("\n");return a.append(c).addClass(r+"vertical"),""!==n.theme&&a.addClass(r+"theme-"+n.theme),this.mask=a.children("."+r+"mask"),this.containerMask=a.children("."+r+"container-mask"),""!==n.markdown&&l.val(n.markdown),""!==n.appendMarkdown&&l.val(l.val()+n.appendMarkdown),this.htmlTextarea=a.children("."+s.textarea.html),this.preview=a.children("."+r+"preview"),this.previewContainer=this.preview.children("."+r+"preview-container"),""!==n.previewTheme&&this.preview.addClass(r+"preview-theme-"+n.previewTheme),"function"==typeof define&&define.amd&&("undefined"!=typeof katex&&(t.$katex=katex),n.searchReplace&&!n.readOnly&&(t.loadCSS(n.path+"codemirror/addon/dialog/dialog"),t.loadCSS(n.path+"codemirror/addon/search/matchesonscrollbar"))),"function"==typeof define&&define.amd||!n.autoLoadModules?("undefined"!=typeof CodeMirror&&(t.$CodeMirror=CodeMirror),"undefined"!=typeof marked&&(t.$marked=marked),this.setCodeMirror().setToolbar().loadedDisplay()):this.loadQueues(),this},loadQueues:function(){var e=this,i=this.settings,o=i.path,r=function(){return t.isIE8?void e.loadedDisplay():void(i.flowChart||i.sequenceDiagram?t.loadScript(o+"raphael.min",function(){t.loadScript(o+"underscore.min",function(){!i.flowChart&&i.sequenceDiagram?t.loadScript(o+"sequence-diagram.min",function(){e.loadedDisplay()}):i.flowChart&&!i.sequenceDiagram?t.loadScript(o+"flowchart.min",function(){t.loadScript(o+"jquery.flowchart.min",function(){e.loadedDisplay()})}):i.flowChart&&i.sequenceDiagram&&t.loadScript(o+"flowchart.min",function(){t.loadScript(o+"jquery.flowchart.min",function(){t.loadScript(o+"sequence-diagram.min",function(){e.loadedDisplay()})})})})}):e.loadedDisplay())};return t.loadCSS(o+"codemirror/codemirror.min"),i.searchReplace&&!i.readOnly&&(t.loadCSS(o+"codemirror/addon/dialog/dialog"),t.loadCSS(o+"codemirror/addon/search/matchesonscrollbar")),i.codeFold&&t.loadCSS(o+"codemirror/addon/fold/foldgutter"),t.loadScript(o+"codemirror/codemirror.min",function(){t.$CodeMirror=CodeMirror,t.loadScript(o+"codemirror/modes.min",function(){t.loadScript(o+"codemirror/addons.min",function(){return e.setCodeMirror(),"gfm"!==i.mode&&"markdown"!==i.mode?(e.loadedDisplay(),!1):(e.setToolbar(),void t.loadScript(o+"marked.min",function(){t.$marked=marked,i.previewCodeHighlight?t.loadScript(o+"prettify.min",function(){r()}):r()}))})})}),this},setTheme:function(e){var t=this.editor,i=this.settings.theme,o=this.classPrefix+"theme-";return t.removeClass(o+i).addClass(o+e),this.settings.theme=e,this},setEditorTheme:function(e){var i=this.settings;return i.editorTheme=e,"default"!==e&&t.loadCSS(i.path+"codemirror/theme/"+i.editorTheme),this.cm.setOption("theme",e),this},setCodeMirrorTheme:function(e){return this.setEditorTheme(e),this},setPreviewTheme:function(e){var t=this.preview,i=this.settings.previewTheme,o=this.classPrefix+"preview-theme-";return t.removeClass(o+i).addClass(o+e),this.settings.previewTheme=e,this},setCodeMirror:function(){var e=this.settings,i=this.editor;"default"!==e.editorTheme&&t.loadCSS(e.path+"codemirror/theme/"+e.editorTheme);var o={mode:e.mode,theme:e.editorTheme,tabSize:e.tabSize,dragDrop:!1,autofocus:e.autoFocus,autoCloseTags:e.autoCloseTags,readOnly:e.readOnly?"nocursor":!1,indentUnit:e.indentUnit,lineNumbers:e.lineNumbers,lineWrapping:e.lineWrapping,extraKeys:{"Ctrl-Q":function(e){e.foldCode(e.getCursor())}},foldGutter:e.codeFold,gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],matchBrackets:e.matchBrackets,indentWithTabs:e.indentWithTabs,styleActiveLine:e.styleActiveLine,styleSelectedText:e.styleSelectedText,autoCloseBrackets:e.autoCloseBrackets,showTrailingSpace:e.showTrailingSpace,highlightSelectionMatches:e.matchWordHighlight?{showToken:"onselected"===e.matchWordHighlight?!1:/\w/}:!1};return this.codeEditor=this.cm=t.$CodeMirror.fromTextArea(this.markdownTextarea[0],o),this.codeMirror=this.cmElement=i.children(".CodeMirror"),""!==e.value&&this.cm.setValue(e.value),this.codeMirror.css({fontSize:e.fontSize,width:e.watch?"50%":"100%"}),e.autoHeight&&(this.codeMirror.css("height","auto"),this.cm.setOption("viewportMargin",1/0)),e.lineNumbers||this.codeMirror.find(".CodeMirror-gutters").css("border-right","none"),this},getCodeMirrorOption:function(e){return this.cm.getOption(e)},setCodeMirrorOption:function(e,t){return this.cm.setOption(e,t),this},addKeyMap:function(e,t){return this.cm.addKeyMap(e,t),this},removeKeyMap:function(e){return this.cm.removeKeyMap(e),this},gotoLine:function(t){var i=this.settings;if(!i.gotoLine)return this;var o=this.cm,r=(this.editor,o.lineCount()),n=this.preview;if("string"==typeof t&&("last"===t&&(t=r),"first"===t&&(t=1)),"number"!=typeof t)return alert("Error: The line number must be an integer."),this;if(t=parseInt(t)-1,t>r)return alert("Error: The line number range 1-"+r),this;o.setCursor({line:t,ch:0});var a=o.getScrollInfo(),s=a.clientHeight,l=o.charCoords({line:t,ch:0},"local");if(o.scrollTo(null,(l.top+l.bottom-s)/2),i.watch){var c=this.codeMirror.find(".CodeMirror-scroll")[0],h=e(c).height(),d=c.scrollTop,u=d/c.scrollHeight;n.scrollTop(0===d?0:d+h>=c.scrollHeight-16?n[0].scrollHeight:n[0].scrollHeight*u)}return o.focus(),this},extend:function(){return"undefined"!=typeof arguments[1]&&("function"==typeof arguments[1]&&(arguments[1]=e.proxy(arguments[1],this)),this[arguments[0]]=arguments[1]),"object"==typeof arguments[0]&&"undefined"==typeof arguments[0].length&&e.extend(!0,this,arguments[0]),this},set:function(t,i){return"undefined"!=typeof i&&"function"==typeof i&&(i=e.proxy(i,this)),this[t]=i,this},config:function(t,i){var o=this.settings;return"object"==typeof t&&(o=e.extend(!0,o,t)),"string"==typeof t&&(o[t]=i),this.settings=o,this.recreate(),this},on:function(t,i){var o=this.settings;return"undefined"!=typeof o["on"+t]&&(o["on"+t]=e.proxy(i,this)),this},off:function(e){var t=this.settings;return"undefined"!=typeof t["on"+e]&&(t["on"+e]=function(){}),this},showToolbar:function(t){var i=this.settings;return i.readOnly?this:(i.toolbar&&(this.toolbar.length<1||""===this.toolbar.find("."+this.classPrefix+"menu").html())&&this.setToolbar(),i.toolbar=!0,this.toolbar.show(),this.resize(),e.proxy(t||function(){},this)(),this)},hideToolbar:function(t){var i=this.settings;return i.toolbar=!1,this.toolbar.hide(),this.resize(),e.proxy(t||function(){},this)(),this},setToolbarAutoFixed:function(t){var i=this.state,o=this.editor,r=this.toolbar,n=this.settings;"undefined"!=typeof t&&(n.toolbarAutoFixed=t);var a=function(){var t=e(window),i=t.scrollTop();return n.toolbarAutoFixed?void r.css(i-o.offset().top>10&&i
                  ';i.append(n),r=this.toolbar=i.children("."+o+"toolbar")}if(!e.toolbar)return r.hide(),this;r.show();for(var a="function"==typeof e.toolbarIcons?e.toolbarIcons():"string"==typeof e.toolbarIcons?t.toolbarModes[e.toolbarIcons]:e.toolbarIcons,s=r.find("."+this.classPrefix+"menu"),l="",c=!1,h=0,d=a.length;d>h;h++){var u=a[h];if("||"===u)c=!0;else if("|"===u)l+='
                • |
                • ';else{var f=/h(\d)/.test(u),g=u;"watch"!==u||e.watch||(g="unwatch");var p=e.lang.toolbar[g],m=e.toolbarIconTexts[g],w=e.toolbarIconsClass[g];p="undefined"==typeof p?"":p,m="undefined"==typeof m?"":m,w="undefined"==typeof w?"":w;var v=c?'
                • ':"
                • ";"undefined"!=typeof e.toolbarCustomIcons[u]&&"function"!=typeof e.toolbarCustomIcons[u]?v+=e.toolbarCustomIcons[u]:(v+='',v+=''+(f?u.toUpperCase():""===w?m:"")+"",v+=""),v+="
                • ",l=c?v+l:l+v}}return s.html(l),s.find('[title="Lowercase"]').attr("title",e.lang.toolbar.lowercase),s.find('[title="ucwords"]').attr("title",e.lang.toolbar.ucwords),this.setToolbarHandler(),this.setToolbarAutoFixed(),this},dialogLockScreen:function(){return e.proxy(t.dialogLockScreen,this)(),this},dialogShowMask:function(i){return e.proxy(t.dialogShowMask,this)(i),this},getToolbarHandles:function(e){var i=this.toolbarHandlers=t.toolbarHandlers;return e&&"undefined"!=typeof toolbarIconHandlers[e]?i[e]:i},setToolbarHandler:function(){var i=this,o=this.settings;if(!o.toolbar||o.readOnly)return this;var r=this.toolbar,n=this.cm,a=this.classPrefix,s=this.toolbarIcons=r.find("."+a+"menu > li > a"),l=this.getToolbarHandles();return s.bind(t.mouseOrTouch("click","touchend"),function(t){var r=e(this).children(".fa"),a=r.attr("name"),s=n.getCursor(),c=n.getSelection();return""!==a?(i.activeIcon=r,"undefined"!=typeof l[a]?e.proxy(l[a],i)(n):"undefined"!=typeof o.toolbarHandlers[a]&&e.proxy(o.toolbarHandlers[a],i)(n,r,s,c),"link"!==a&&"reference-link"!==a&&"image"!==a&&"code-block"!==a&&"preformatted-text"!==a&&"watch"!==a&&"preview"!==a&&"search"!==a&&"fullscreen"!==a&&"info"!==a&&n.focus(),!1):void 0}),this},createDialog:function(i){return e.proxy(t.createDialog,this)(i)},createInfoDialog:function(){var e=this,i=this.editor,o=this.classPrefix,r=['
                  ','
                  ','

                  '+t.title+"v"+t.version+"

                  ","

                  "+this.lang.description+"

                  ",'

                  '+t.homePage+'

                  ','

                  Copyright © 2015 Pandao, The MIT License.

                  ',"
                  ",'',"
                  "].join("\n");i.append(r);var n=this.infoDialog=i.children("."+o+"dialog-info");return n.find("."+o+"dialog-close").bind(t.mouseOrTouch("click","touchend"),function(){e.hideInfoDialog()}),n.css("border",t.isIE8?"1px solid #ddd":"").css("z-index",t.dialogZindex).show(),this.infoDialogPosition(),this},infoDialogPosition:function(){var t=this.infoDialog,i=function(){t.css({top:(e(window).height()-t.height())/2+"px",left:(e(window).width()-t.width())/2+"px"})};return i(),e(window).resize(i),this},showInfoDialog:function(){e("html,body").css("overflow-x","hidden");var i=this.editor,o=this.settings,r=this.infoDialog=i.children("."+this.classPrefix+"dialog-info");return r.length<1&&this.createInfoDialog(),this.lockScreen(!0),this.mask.css({opacity:o.dialogMaskOpacity,backgroundColor:o.dialogMaskBgColor}).show(),r.css("z-index",t.dialogZindex).show(),this.infoDialogPosition(),this},hideInfoDialog:function(){return e("html,body").css("overflow-x",""),this.infoDialog.hide(),this.mask.hide(),this.lockScreen(!1),this},lockScreen:function(e){return t.lockScreen(e),this.resize(),this},recreate:function(){var e=this.editor,t=this.settings;return this.codeMirror.remove(),this.setCodeMirror(),t.readOnly||(e.find(".editormd-dialog").length>0&&e.find(".editormd-dialog").remove(),t.toolbar&&(this.getToolbarHandles(),this.setToolbar())),this.loadedDisplay(!0),this},previewCodeHighlight:function(){var e=this.settings,t=this.previewContainer;return e.previewCodeHighlight&&(t.find("pre").addClass("prettyprint linenums"),"undefined"!=typeof prettyPrint&&prettyPrint()),this},katexRender:function(){return null===i?this:(this.previewContainer.find("."+t.classNames.tex).each(function(){var i=e(this);t.$katex.render(i.text(),i[0]),i.find(".katex").css("font-size","1.6em")}),this)},flowChartAndSequenceDiagramRender:function(){var i=this,r=this.settings,n=this.previewContainer;if(t.isIE8)return this;if(r.flowChart){if(null===o)return this;n.find(".flowchart").flowChart()}r.sequenceDiagram&&n.find(".sequence-diagram").sequenceDiagram({theme:"simple"});var a=i.preview,s=i.codeMirror,l=s.find(".CodeMirror-scroll"),c=l.height(),h=l.scrollTop(),d=h/l[0].scrollHeight,u=0;a.find(".markdown-toc-list").each(function(){u+=e(this).height()});var f=a.find(".editormd-toc-menu").height();return f=f?f:0,a.scrollTop(0===h?0:h+c>=l[0].scrollHeight-16?a[0].scrollHeight:(a[0].scrollHeight+u+f)*d),this},registerKeyMaps:function(i){var o=this,r=this.cm,n=this.settings,a=t.toolbarHandlers,s=n.disabledKeyMaps;if(i=i||null){for(var l in i)if(e.inArray(l,s)<0){var c={};c[l]=i[l],r.addKeyMap(i)}}else{for(var h in t.keyMaps){var d=t.keyMaps[h],u="string"==typeof d?e.proxy(a[d],o):e.proxy(d,o);if(e.inArray(h,["F9","F10","F11"])<0&&e.inArray(h,s)<0){var f={};f[h]=u,r.addKeyMap(f)}}e(window).keydown(function(t){var i={120:"F9",121:"F10",122:"F11"};if(e.inArray(i[t.keyCode],s)<0)switch(t.keyCode){case 120:return e.proxy(a.watch,o)(),!1;case 121:return e.proxy(a.preview,o)(),!1;case 122:return e.proxy(a.fullscreen,o)(),!1}})}return this},bindScrollEvent:function(){var i=this,o=this.preview,r=this.settings,n=this.codeMirror,a=t.mouseOrTouch;if(!r.syncScrolling)return this;var s=function(){n.find(".CodeMirror-scroll").bind(a("scroll","touchmove"),function(t){var n=e(this).height(),a=e(this).scrollTop(),s=a/e(this)[0].scrollHeight,l=0;o.find(".markdown-toc-list").each(function(){l+=e(this).height()});var c=o.find(".editormd-toc-menu").height();c=c?c:0,o.scrollTop(0===a?0:a+n>=e(this)[0].scrollHeight-16?o[0].scrollHeight:(o[0].scrollHeight+l+c)*s),e.proxy(r.onscroll,i)(t)})},l=function(){n.find(".CodeMirror-scroll").unbind(a("scroll","touchmove"))},c=function(){o.bind(a("scroll","touchmove"),function(t){var o=e(this).height(),a=e(this).scrollTop(),s=a/e(this)[0].scrollHeight,l=n.find(".CodeMirror-scroll");l.scrollTop(0===a?0:a+o>=e(this)[0].scrollHeight?l[0].scrollHeight:l[0].scrollHeight*s),e.proxy(r.onpreviewscroll,i)(t)})},h=function(){o.unbind(a("scroll","touchmove"))};return n.bind({mouseover:s,mouseout:l,touchstart:s,touchend:l}),"single"===r.syncScrolling?this:(o.bind({mouseover:c,mouseout:h,touchstart:c,touchend:h}),this)},bindChangeEvent:function(){var e=this,t=this.cm,o=this.settings;return o.syncScrolling?(t.on("change",function(t,r){o.watch&&e.previewContainer.css("padding",o.autoHeight?"20px 20px 50px 40px":"20px"),i=setTimeout(function(){clearTimeout(i),e.save(),i=null},o.delay)}),this):this},loadedDisplay:function(t){t=t||!1;var i=this,o=this.editor,r=this.preview,n=this.settings;return this.containerMask.hide(),this.save(),n.watch&&r.show(),o.data("oldWidth",o.width()).data("oldHeight",o.height()),this.resize(),this.registerKeyMaps(),e(window).resize(function(){i.resize()}),this.bindScrollEvent().bindChangeEvent(),t||e.proxy(n.onload,this)(),this.state.loaded=!0,this},width:function(e){return this.editor.css("width","number"==typeof e?e+"px":e),this.resize(),this},height:function(e){return this.editor.css("height","number"==typeof e?e+"px":e),this.resize(),this},resize:function(t,i){t=t||null,i=i||null;var o=this.state,r=this.editor,n=this.preview,a=this.toolbar,s=this.settings,l=this.codeMirror;if(t&&r.css("width","number"==typeof t?t+"px":t),!s.autoHeight||o.fullscreen||o.preview?(i&&r.css("height","number"==typeof i?i+"px":i),o.fullscreen&&r.height(e(window).height()),s.toolbar&&!s.readOnly?l.css("margin-top",a.height()+1).height(r.height()-a.height()):l.css("margin-top",0).height(r.height())):(r.css("height","auto"),l.css("height","auto")),s.watch)if(l.width(r.width()/2),n.width(o.preview?r.width():r.width()/2),this.previewContainer.css("padding",s.autoHeight?"20px 20px 50px 40px":"20px"),s.toolbar&&!s.readOnly?n.css("top",a.height()+1):n.css("top",0),!s.autoHeight||o.fullscreen||o.preview){var c=s.toolbar&&!s.readOnly?r.height()-a.height():r.height();n.height(c)}else n.height("");else l.width(r.width()),n.hide();return o.loaded&&e.proxy(s.onresize,this)(),this},save:function(){if(null===i)return this;var r=this,n=this.state,a=this.settings,s=this.cm,l=s.getValue(),c=this.previewContainer;if("gfm"!==a.mode&&"markdown"!==a.mode)return this.markdownTextarea.val(l),this;var h=t.$marked,d=this.markdownToC=[],u=this.markedRendererOptions={toc:a.toc,tocm:a.tocm,tocStartLevel:a.tocStartLevel,pageBreak:a.pageBreak,taskList:a.taskList,emoji:a.emoji,tex:a.tex,atLink:a.atLink,emailLink:a.emailLink,flowChart:a.flowChart,sequenceDiagram:a.sequenceDiagram,previewCodeHighlight:a.previewCodeHighlight},f=this.markedOptions={renderer:t.markedRenderer(d,u),gfm:!0,tables:!0,breaks:!0,pedantic:!1,sanitize:a.htmlDecode?!1:!0,smartLists:!0,smartypants:!0};h.setOptions(f);var g=t.$marked(l,f);if(g=t.filterHTMLTags(g,a.htmlDecode),this.markdownTextarea.text(l),s.save(),a.saveHTMLToTextarea&&this.htmlTextarea.text(g),a.watch||!a.watch&&n.preview){if(c.html(g),this.previewCodeHighlight(),a.toc){var p=""===a.tocContainer?c:e(a.tocContainer),m=p.find("."+this.classPrefix+"toc-menu");p.attr("previewContainer",""===a.tocContainer?"true":"false"),""!==a.tocContainer&&m.length>0&&m.remove(),t.markdownToCRenderer(d,p,a.tocDropdown,a.tocStartLevel),(a.tocDropdown||p.find("."+this.classPrefix+"toc-menu").length>0)&&t.tocDropdownMenu(p,""!==a.tocTitle?a.tocTitle:this.lang.tocTitle),""!==a.tocContainer&&c.find(".markdown-toc").css("border","none")}a.tex&&(!t.kaTeXLoaded&&a.autoLoadModules?t.loadKaTeX(function(){t.$katex=katex,t.kaTeXLoaded=!0,r.katexRender()}):(t.$katex=katex,this.katexRender())),(a.flowChart||a.sequenceDiagram)&&(o=setTimeout(function(){clearTimeout(o),r.flowChartAndSequenceDiagramRender(),o=null},10)),n.loaded&&e.proxy(a.onchange,this)()}return this},focus:function(){return this.cm.focus(),this},setCursor:function(e){return this.cm.setCursor(e),this},getCursor:function(){return this.cm.getCursor()},setSelection:function(e,t){return this.cm.setSelection(e,t),this},getSelection:function(){return this.cm.getSelection()},setSelections:function(e){return this.cm.setSelections(e),this},getSelections:function(){return this.cm.getSelections()},replaceSelection:function(e){return this.cm.replaceSelection(e),this},insertValue:function(e){return this.replaceSelection(e),this},appendMarkdown:function(e){var t=(this.settings,this.cm);return t.setValue(t.getValue()+e),this},setMarkdown:function(e){return this.cm.setValue(e||this.settings.markdown),this},getMarkdown:function(){return this.cm.getValue()},getValue:function(){return this.cm.getValue()},setValue:function(e){return this.cm.setValue(e),this},clear:function(){return this.cm.setValue(""),this},getHTML:function(){return this.settings.saveHTMLToTextarea?this.htmlTextarea.val():(alert("Error: settings.saveHTMLToTextarea == false"),!1)},getTextareaSavedHTML:function(){return this.getHTML()},getPreviewedHTML:function(){return this.settings.watch?this.previewContainer.html():(alert("Error: settings.watch == false"),!1)},watch:function(t){var o=this.settings;if(e.inArray(o.mode,["gfm","markdown"])<0)return this;if(this.state.watching=o.watch=!0,this.preview.show(),this.toolbar){var r=o.toolbarIconsClass.watch,n=o.toolbarIconsClass.unwatch,a=this.toolbar.find(".fa[name=watch]");a.parent().attr("title",o.lang.toolbar.watch),a.removeClass(n).addClass(r)}return this.codeMirror.css("border-right","1px solid #ddd").width(this.editor.width()/2),i=0,this.save().resize(),o.onwatch||(o.onwatch=t||function(){}),e.proxy(o.onwatch,this)(),this},unwatch:function(t){var i=this.settings;if(this.state.watching=i.watch=!1,this.preview.hide(),this.toolbar){var o=i.toolbarIconsClass.watch,r=i.toolbarIconsClass.unwatch,n=this.toolbar.find(".fa[name=watch]");n.parent().attr("title",i.lang.toolbar.unwatch),n.removeClass(o).addClass(r)}return this.codeMirror.css("border-right","none").width(this.editor.width()),this.resize(),i.onunwatch||(i.onunwatch=t||function(){}),e.proxy(i.onunwatch,this)(),this},show:function(t){t=t||function(){};var i=this;return this.editor.show(0,function(){e.proxy(t,i)()}),this},hide:function(t){t=t||function(){};var i=this;return this.editor.hide(0,function(){e.proxy(t,i)()}),this},previewing:function(){var i=this,o=this.editor,r=this.preview,n=this.toolbar,a=this.settings,s=this.codeMirror,l=this.previewContainer;if(e.inArray(a.mode,["gfm","markdown"])<0)return this;a.toolbar&&n&&(n.toggle(),n.find(".fa[name=preview]").toggleClass("active")),s.toggle();var c=function(e){e.shiftKey&&27===e.keyCode&&i.previewed()};"none"===s.css("display")?(this.state.preview=!0,this.state.fullscreen&&r.css("background","#fff"),o.find("."+this.classPrefix+"preview-close-btn").show().bind(t.mouseOrTouch("click","touchend"),function(){i.previewed()}),a.watch?l.css("padding",""):this.save(),l.addClass(this.classPrefix+"preview-active"),r.show().css({position:"",top:0,width:o.width(),height:a.autoHeight&&!this.state.fullscreen?"auto":o.height()}),this.state.loaded&&e.proxy(a.onpreviewing,this)(),e(window).bind("keyup",c)):(e(window).unbind("keyup",c),this.previewed())},previewed:function(){var i=this.editor,o=this.preview,r=this.toolbar,n=this.settings,a=this.previewContainer,s=i.find("."+this.classPrefix+"preview-close-btn");return this.state.preview=!1,this.codeMirror.show(),n.toolbar&&r.show(),o[n.watch?"show":"hide"](),s.hide().unbind(t.mouseOrTouch("click","touchend")),a.removeClass(this.classPrefix+"preview-active"),n.watch&&a.css("padding","20px"),o.css({background:null,position:"absolute",width:i.width()/2,height:n.autoHeight&&!this.state.fullscreen?"auto":i.height()-r.height(),top:n.toolbar?r.height():0}),this.state.loaded&&e.proxy(n.onpreviewed,this)(),this},fullscreen:function(){var t=this,i=this.state,o=this.editor,r=(this.preview,this.toolbar),n=this.settings,a=this.classPrefix+"fullscreen";r&&r.find(".fa[name=fullscreen]").parent().toggleClass("active");var s=function(e){e.shiftKey||27!==e.keyCode||i.fullscreen&&t.fullscreenExit()};return o.hasClass(a)?(e(window).unbind("keyup",s),this.fullscreenExit()):(i.fullscreen=!0,e("html,body").css("overflow","hidden"),o.css({width:e(window).width(),height:e(window).height()}).addClass(a),this.resize(),e.proxy(n.onfullscreen,this)(),e(window).bind("keyup",s)),this},fullscreenExit:function(){var t=this.editor,i=this.settings,o=this.toolbar,r=this.classPrefix+"fullscreen";return this.state.fullscreen=!1,o&&o.find(".fa[name=fullscreen]").parent().removeClass("active"),e("html,body").css("overflow",""),t.css({width:t.data("oldWidth"),height:t.data("oldHeight")}).removeClass(r),this.resize(),e.proxy(i.onfullscreenExit,this)(),this},executePlugin:function(i,o){var r=this,n=this.cm,a=this.settings;return o=a.pluginPath+o,"function"==typeof define?"undefined"==typeof this[i]?(alert("Error: "+i+" plugin is not found, you are not load this plugin."),this):(this[i](n),this):(e.inArray(o,t.loadFiles.plugin)<0?t.loadPlugin(o,function(){t.loadPlugins[i]=r[i],r[i](n)}):e.proxy(t.loadPlugins[i],this)(n),this)},search:function(e){var t=this.settings;return t.searchReplace?(t.readOnly||this.cm.execCommand(e||"find"),this):(alert("Error: settings.searchReplace == false"),this)},searchReplace:function(){return this.search("replace"),this},searchReplaceAll:function(){return this.search("replaceAll"),this}},t.fn.init.prototype=t.fn,t.dialogLockScreen=function(){var t=this.settings||{dialogLockScreen:!0};t.dialogLockScreen&&(e("html,body").css("overflow","hidden"),this.resize())},t.dialogShowMask=function(t){var i=this.editor,o=this.settings||{dialogShowMask:!0};t.css({top:(e(window).height()-t.height())/2+"px",left:(e(window).width()-t.width())/2+"px"}),o.dialogShowMask&&i.children("."+this.classPrefix+"mask").css("z-index",parseInt(t.css("z-index"))-1).show()},t.toolbarHandlers={undo:function(){this.cm.undo()},redo:function(){this.cm.redo()},bold:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("**"+i+"**"),""===i&&e.setCursor(t.line,t.ch+2)},del:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("~~"+i+"~~"),""===i&&e.setCursor(t.line,t.ch+2)},italic:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("*"+i+"*"),""===i&&e.setCursor(t.line,t.ch+1)},quote:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("> "+i),e.setCursor(t.line,t.ch+2)):e.replaceSelection("> "+i)},ucfirst:function(){var e=this.cm,i=e.getSelection(),o=e.listSelections();e.replaceSelection(t.firstUpperCase(i)),e.setSelections(o)},ucwords:function(){var e=this.cm,i=e.getSelection(),o=e.listSelections();e.replaceSelection(t.wordsFirstUpperCase(i)),e.setSelections(o)},uppercase:function(){var e=this.cm,t=e.getSelection(),i=e.listSelections();e.replaceSelection(t.toUpperCase()),e.setSelections(i)},lowercase:function(){var e=this.cm,t=(e.getCursor(),e.getSelection()),i=e.listSelections();e.replaceSelection(t.toLowerCase()),e.setSelections(i)},h1:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("# "+i),e.setCursor(t.line,t.ch+2)):e.replaceSelection("# "+i)},h2:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0), -e.replaceSelection("## "+i),e.setCursor(t.line,t.ch+3)):e.replaceSelection("## "+i)},h3:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("### "+i),e.setCursor(t.line,t.ch+4)):e.replaceSelection("### "+i)},h4:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("#### "+i),e.setCursor(t.line,t.ch+5)):e.replaceSelection("#### "+i)},h5:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("##### "+i),e.setCursor(t.line,t.ch+6)):e.replaceSelection("##### "+i)},h6:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("###### "+i),e.setCursor(t.line,t.ch+7)):e.replaceSelection("###### "+i)},"list-ul":function(){var e=this.cm,t=(e.getCursor(),e.getSelection());if(""===t)e.replaceSelection("- "+t);else{for(var i=t.split("\n"),o=0,r=i.length;r>o;o++)i[o]=""===i[o]?"":"- "+i[o];e.replaceSelection(i.join("\n"))}},"list-ol":function(){var e=this.cm,t=(e.getCursor(),e.getSelection());if(""===t)e.replaceSelection("1. "+t);else{for(var i=t.split("\n"),o=0,r=i.length;r>o;o++)i[o]=""===i[o]?"":o+1+". "+i[o];e.replaceSelection(i.join("\n"))}},hr:function(){{var e=this.cm,t=e.getCursor();e.getSelection()}e.replaceSelection((0!==t.ch?"\n\n":"\n")+"------------\n\n")},tex:function(){if(!this.settings.tex)return alert("settings.tex === false"),this;var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("$$"+i+"$$"),""===i&&e.setCursor(t.line,t.ch+2)},link:function(){this.executePlugin("linkDialog","link-dialog/link-dialog")},"reference-link":function(){this.executePlugin("referenceLinkDialog","reference-link-dialog/reference-link-dialog")},pagebreak:function(){if(!this.settings.pageBreak)return alert("settings.pageBreak === false"),this;{var e=this.cm;e.getSelection()}e.replaceSelection("\r\n[========]\r\n")},image:function(){this.executePlugin("imageDialog","image-dialog/image-dialog")},code:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("`"+i+"`"),""===i&&e.setCursor(t.line,t.ch+1)},"code-block":function(){this.executePlugin("codeBlockDialog","code-block-dialog/code-block-dialog")},"preformatted-text":function(){this.executePlugin("preformattedTextDialog","preformatted-text-dialog/preformatted-text-dialog")},table:function(){this.executePlugin("tableDialog","table-dialog/table-dialog")},datetime:function(){var e=this.cm,i=(e.getSelection(),new Date,this.settings.lang.name),o=t.dateFormat()+" "+t.dateFormat("zh-cn"===i||"zh-tw"===i?"cn-week-day":"week-day");e.replaceSelection(o)},emoji:function(){this.executePlugin("emojiDialog","emoji-dialog/emoji-dialog")},"html-entities":function(){this.executePlugin("htmlEntitiesDialog","html-entities-dialog/html-entities-dialog")},"goto-line":function(){this.executePlugin("gotoLineDialog","goto-line-dialog/goto-line-dialog")},watch:function(){this[this.settings.watch?"unwatch":"watch"]()},preview:function(){this.previewing()},fullscreen:function(){this.fullscreen()},clear:function(){this.clear()},search:function(){this.search()},help:function(){this.executePlugin("helpDialog","help-dialog/help-dialog")},info:function(){this.showInfoDialog()}},t.keyMaps={"Ctrl-1":"h1","Ctrl-2":"h2","Ctrl-3":"h3","Ctrl-4":"h4","Ctrl-5":"h5","Ctrl-6":"h6","Ctrl-B":"bold","Ctrl-D":"datetime","Ctrl-E":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();return this.settings.emoji?(e.replaceSelection(":"+i+":"),void(""===i&&e.setCursor(t.line,t.ch+1))):void alert("Error: settings.emoji == false")},"Ctrl-Alt-G":"goto-line","Ctrl-H":"hr","Ctrl-I":"italic","Ctrl-K":"code","Ctrl-L":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(),o=""===i?"":' "'+i+'"';e.replaceSelection("["+i+"]("+o+")"),""===i&&e.setCursor(t.line,t.ch+1)},"Ctrl-U":"list-ul","Shift-Ctrl-A":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();return this.settings.atLink?(e.replaceSelection("@"+i),void(""===i&&e.setCursor(t.line,t.ch+1))):void alert("Error: settings.atLink == false")},"Shift-Ctrl-C":"code","Shift-Ctrl-Q":"quote","Shift-Ctrl-S":"del","Shift-Ctrl-K":"tex","Shift-Alt-C":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection(["```",i,"```"].join("\n")),""===i&&e.setCursor(t.line,t.ch+3)},"Shift-Ctrl-Alt-C":"code-block","Shift-Ctrl-H":"html-entities","Shift-Alt-H":"help","Shift-Ctrl-E":"emoji","Shift-Ctrl-U":"uppercase","Shift-Alt-U":"ucwords","Shift-Ctrl-Alt-U":"ucfirst","Shift-Alt-L":"lowercase","Shift-Ctrl-I":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(),o=""===i?"":' "'+i+'"';e.replaceSelection("!["+i+"]("+o+")"),""===i&&e.setCursor(t.line,t.ch+4)},"Shift-Ctrl-Alt-I":"image","Shift-Ctrl-L":"link","Shift-Ctrl-O":"list-ol","Shift-Ctrl-P":"preformatted-text","Shift-Ctrl-T":"table","Shift-Alt-P":"pagebreak",F9:"watch",F10:"preview",F11:"fullscreen"};var r=function(e){return String.prototype.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};t.trim=r;var n=function(e){return e.toLowerCase().replace(/\b(\w)|\s(\w)/g,function(e){return e.toUpperCase()})};t.ucwords=t.wordsFirstUpperCase=n;var a=function(e){return e.toLowerCase().replace(/\b(\w)/,function(e){return e.toUpperCase()})};return t.firstUpperCase=t.ucfirst=a,t.urls={atLinkBase:"https://github.com/"},t.regexs={atLink:/@(\w+)/g,email:/(\w+)@(\w+)\.(\w+)\.?(\w+)?/g,emailLink:/(mailto:)?([\w\.\_]+)@(\w+)\.(\w+)\.?(\w+)?/g,emoji:/:([\w\+-]+):/g,emojiDatetime:/(\d{2}:\d{2}:\d{2})/g,twemoji:/:(tw-([\w]+)-?(\w+)?):/g,fontAwesome:/:(fa-([\w]+)(-(\w+)){0,}):/g,editormdLogo:/:(editormd-logo-?(\w+)?):/g,pageBreak:/^\[[=]{8,}\]$/},t.emoji={path:"http://www.emoji-cheat-sheet.com/graphics/emojis/",ext:".png"},t.twemoji={path:"http://twemoji.maxcdn.com/36x36/",ext:".png"},t.markedRenderer=function(i,o){var n={toc:!0,tocm:!1,tocStartLevel:1,pageBreak:!0,atLink:!0,emailLink:!0,taskList:!1,emoji:!1,tex:!1,flowChart:!1,sequenceDiagram:!1},a=e.extend(n,o||{}),s=t.$marked,l=new s.Renderer;i=i||[];var c=t.regexs,h=c.atLink,d=c.emoji,u=c.email,f=c.emailLink,g=c.twemoji,p=c.fontAwesome,m=c.editormdLogo,w=c.pageBreak;return l.emoji=function(e){e=e.replace(t.regexs.emojiDatetime,function(e){return e.replace(/:/g,":")});var i=e.match(d);if(!i||!a.emoji)return e;for(var o=0,r=i.length;r>o;o++)":+1:"===i[o]&&(i[o]=":\\+1:"),e=e.replace(new RegExp(i[o]),function(e,i){var o=e.match(p),r=e.replace(/:/g,"");if(o)for(var n=0,a=o.length;a>n;n++){var s=o[n].replace(/:/g,"");return''}else{var l=e.match(m),c=e.match(g);if(l)for(var h=0,d=l.length;d>h;h++){var u=l[h].replace(/:/g,"");return''}else{if(!c){var f="+1"===r?"plus1":r;return f="black_large_square"===f?"black_square":f,f="moon"===f?"waxing_gibbous_moon":f,':'+r+':'}for(var w=0,v=c.length;v>w;w++){var k=c[w].replace(/:/g,"").replace("tw-","");return'twemoji-'+k+''}}}});return e},l.atLink=function(i){return h.test(i)?(a.atLink&&(i=i.replace(u,function(e,t,i,o){return e.replace(/@/g,"_#_@_#_")}),i=i.replace(h,function(e,i){return''+e+""}).replace(/_#_@_#_/g,"@")),a.emailLink&&(i=i.replace(f,function(t,i,o,r,n){return!i&&e.inArray(n,"jpg|jpeg|png|gif|webp|ico|icon|pdf".split("|"))<0?''+t+"":t})),i):i},l.link=function(e,t,i){if(this.options.sanitize){try{var o=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(r){return""}if(0===o.indexOf("javascript:"))return""}var n=''+i.replace(/@/g,"@")+""):(t&&(n+=' title="'+t+'"'),n+=">"+i+"")},l.heading=function(e,t,o){var n=e,a=/\s*\]*)\>(.*)\<\/a\>\s*/;if(a.test(e)){var s=[];e=e.split(/\]+)\>([^\>]*)\<\/a\>/);for(var l=0,c=e.length;c>l;l++)s.push(e[l].replace(/\s*href\=\"(.*)\"\s*/g,""));e=s.join(" ")}e=r(e);var h=e.toLowerCase().replace(/[^\w]+/g,"-"),d={text:e,level:t,slug:h},u=/^[\u4e00-\u9fa5]+$/.test(e),f=u?escape(e).replace(/\%/g,""):e.toLowerCase().replace(/[^\w]+/g,"-");i.push(d);var g="';return g+='',g+='',g+=this.atLink(a?this.emoji(n):this.emoji(e)),g+=""},l.pageBreak=function(e){return w.test(e)&&a.pageBreak&&(e='
                  '),e},l.paragraph=function(e){var i=/\$\$(.*)\$\$/g.test(e),o=/^\$\$(.*)\$\$$/.test(e),r=o?' class="'+t.classNames.tex+'"':"",n=a.tocm?/^(\[TOC\]|\[TOCM\])$/.test(e):/^\[TOC\]$/.test(e),s=/^\[TOCM\]$/.test(e);e=!o&&i?e.replace(/(\$\$([^\$]*)\$\$)+/g,function(e,i){return''+i.replace(/\$/g,"")+""}):o?e.replace(/\$/g,""):e;var l='
                  '+e+"
                  ";return n?s?'
                  '+l+"

                  ":l:w.test(e)?this.pageBreak(e):""+this.atLink(this.emoji(e))+"

                  \n"},l.code=function(e,i,o){return"seq"===i||"sequence"===i?'
                  '+e+"
                  ":"flow"===i?'
                  '+e+"
                  ":"math"===i||"latex"===i||"katex"===i?'

                  '+e+"

                  ":s.Renderer.prototype.code.apply(this,arguments)},l.tablecell=function(e,t){var i=t.header?"th":"td",o=t.align?"<"+i+' style="text-align:'+t.align+'">':"<"+i+">";return o+this.atLink(this.emoji(e))+"\n"},l.listitem=function(e){return a.taskList&&/^\s*\[[x\s]\]\s*/.test(e)?(e=e.replace(/^\s*\[\s\]\s*/,' ').replace(/^\s*\[x\]\s*/,' '),'
                • '+this.atLink(this.emoji(e))+"
                • "):"
                • "+this.atLink(this.emoji(e))+"
                • "},l},t.markdownToCRenderer=function(e,t,i,o){var r="",n=0,a=this.classPrefix;o=o||1;for(var s=0,l=e.length;l>s;s++){var c=e[s].text,h=e[s].level;o>h||(r+=h>n?"":n>h?new Array(n-h+2).join("
              • "):"",r+='
              • '+c+"
              • "); - } - else - { - html += ""; - } - - html += "
              • " + text + "