├── .gitignore ├── LICENSE ├── README.md ├── mbg.xml ├── pom.xml └── src └── main ├── java └── com │ └── liang │ ├── bean │ ├── Admin.java │ ├── Article.java │ ├── Attention.java │ ├── Collect.java │ ├── Comment.java │ ├── Enjoy.java │ ├── PhotoPro.java │ ├── Plate.java │ ├── TbPhoto.java │ ├── User.java │ ├── Via.java │ ├── Visit.java │ └── impl │ │ ├── ArticleImpl.java │ │ ├── CommentImpl.java │ │ ├── PhotoProImpl.java │ │ └── UserImpl.java │ ├── code │ └── ReturnT.java │ ├── controller │ ├── AdminController.java │ ├── ArticleController.java │ ├── AttentionController.java │ ├── CollectController.java │ ├── CommentController.java │ ├── EnjoyController.java │ ├── PhotoProController.java │ ├── PlateController.java │ ├── TbPhotoController.java │ ├── UserController.java │ ├── ViaController.java │ └── VisitController.java │ ├── dao │ ├── AdminMapper.java │ ├── ArticleMapper.java │ ├── AttentionMapper.java │ ├── CollectMapper.java │ ├── CommentMapper.java │ ├── EnjoyMapper.java │ ├── PhotoProMapper.java │ ├── PlateMapper.java │ ├── TbPhotoMapper.java │ ├── UserMapper.java │ ├── ViaMapper.java │ └── VisitMapper.java │ ├── interceptor │ └── LoginInterceptor.java │ ├── service │ ├── AdminService.java │ ├── ArticleService.java │ ├── AttentionService.java │ ├── CollectService.java │ ├── CommentService.java │ ├── EnjoyService.java │ ├── PhotoProService.java │ ├── PlateService.java │ ├── TbPhotoService.java │ ├── UserService.java │ ├── ViaService.java │ └── VisitService.java │ ├── test │ └── MBGTest.java │ └── utils │ ├── CommonUtil.java │ ├── DateUtil.java │ ├── EntityMapUtils.java │ ├── FileUploadUtil.java │ ├── IpUtil.java │ ├── PageUtil.java │ ├── PathUtil.java │ ├── PostAndPutCommonsMultipartResolver.java │ ├── QiniuUtil.java │ ├── QueryIp.java │ ├── StringUtil.java │ ├── ThumbnailatorUtil.java │ └── UUIDUtil.java ├── resources ├── 76.properties ├── applicationContext.xml ├── dbconfig.properties ├── log4j.properties ├── mapper │ ├── AdminMapper.xml │ ├── ArticleMapper.xml │ ├── AttentionMapper.xml │ ├── CollectMapper.xml │ ├── CommentMapper.xml │ ├── EnjoyMapper.xml │ ├── PhotoProMapper.xml │ ├── PlateMapper.xml │ ├── TbPhotoMapper.xml │ ├── UserMapper.xml │ ├── ViaMapper.xml │ └── VisitMapper.xml ├── mybatis-config.xml ├── pageconfig.properties ├── pathconfig.properties ├── springDispatcherServlet.xml └── tokenconfig.properties └── webapp ├── META-INF └── MANIFEST.MF ├── WEB-INF ├── lib │ └── jave-1.0.2.jar ├── views │ └── admin.jsp └── web.xml ├── admin ├── content.jsp ├── head.jsp ├── index.jsp ├── login.jsp ├── paging.jsp ├── plate.jsp └── plateEdit.jsp ├── album.jsp ├── article.jsp ├── content ├── articleDetails.jsp ├── articleEdit.jsp ├── articlesHide.jsp ├── collectArticle.jsp ├── content.jsp ├── contentArticle.jsp ├── contentRight.jsp ├── edit.jsp ├── myHome.jsp ├── otherHome.jsp ├── progress.jsp ├── top.jsp └── userPhoto.jsp ├── donate.jsp ├── donateCharts.jsp ├── head ├── head.jsp ├── posted_editor.jsp └── setup.jsp ├── index.jsp ├── list.jsp ├── login └── login.jsp ├── myself.jsp ├── notLogin.jsp ├── other.jsp ├── photo.jsp ├── photo ├── albumAdd.jsp ├── albumEdit.jsp ├── photoAdd.jsp ├── showAlbum.jsp └── showPhoto.jsp ├── posted.jsp ├── static ├── bootstrap │ ├── css │ │ └── bootstrap.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── js │ │ ├── bootstrap.js │ │ └── npm.js ├── css │ ├── admin.css │ ├── base.css │ ├── css.css │ ├── layer.css │ ├── photo.css │ └── top.css ├── editor.md-master │ ├── .gitignore │ ├── .jshintrc │ ├── BUGS.md │ ├── CHANGE.md │ ├── Gulpfile.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── css │ │ ├── editormd.css │ │ ├── editormd.logo.css │ │ ├── editormd.logo.min.css │ │ ├── editormd.min.css │ │ ├── editormd.preview.css │ │ └── editormd.preview.min.css │ ├── docs │ │ ├── editormd.js.html │ │ ├── fonts │ │ │ ├── OpenSans-Bold-webfont.eot │ │ │ ├── OpenSans-Bold-webfont.svg │ │ │ ├── OpenSans-Bold-webfont.woff │ │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ │ ├── OpenSans-Italic-webfont.eot │ │ │ ├── OpenSans-Italic-webfont.svg │ │ │ ├── OpenSans-Italic-webfont.woff │ │ │ ├── OpenSans-Light-webfont.eot │ │ │ ├── OpenSans-Light-webfont.svg │ │ │ ├── OpenSans-Light-webfont.woff │ │ │ ├── OpenSans-LightItalic-webfont.eot │ │ │ ├── OpenSans-LightItalic-webfont.svg │ │ │ ├── OpenSans-LightItalic-webfont.woff │ │ │ ├── OpenSans-Regular-webfont.eot │ │ │ ├── OpenSans-Regular-webfont.svg │ │ │ └── OpenSans-Regular-webfont.woff │ │ ├── index.html │ │ ├── scripts │ │ │ ├── linenumber.js │ │ │ └── prettify │ │ │ │ ├── Apache-License-2.0.txt │ │ │ │ ├── lang-css.js │ │ │ │ └── prettify.js │ │ └── styles │ │ │ ├── jsdoc-default.css │ │ │ ├── prettify-jsdoc.css │ │ │ └── prettify-tomorrow.css │ ├── editormd.amd.js │ ├── editormd.amd.min.js │ ├── editormd.js │ ├── editormd.min.js │ ├── examples │ │ ├── @links.html │ │ ├── auto-height.html │ │ ├── change-mode.html │ │ ├── code-fold.html │ │ ├── css │ │ │ └── style.css │ │ ├── custom-keyboard-shortcuts.html │ │ ├── custom-toolbar.html │ │ ├── define-plugin.html │ │ ├── delay-renderer-preview.html │ │ ├── dynamic-create-editormd.html │ │ ├── emoji.html │ │ ├── extends.html │ │ ├── external-use.html │ │ ├── flowchart.html │ │ ├── form-get-value.html │ │ ├── full.html │ │ ├── goto-line.html │ │ ├── html-preview-markdown-to-html-custom-toc-container.html │ │ ├── html-preview-markdown-to-html.html │ │ ├── html-tags-decode.html │ │ ├── image-cross-domain-upload.html │ │ ├── image-upload.html │ │ ├── images │ │ │ ├── 4.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ └── editormd-screenshot.png │ │ ├── index.html │ │ ├── js │ │ │ ├── jquery.min.js │ │ │ ├── require.min.js │ │ │ ├── sea.js │ │ │ ├── seajs-main.js │ │ │ └── zepto.min.js │ │ ├── katex.html │ │ ├── manually-load-modules.html │ │ ├── multi-editormd.html │ │ ├── multi-languages.html │ │ ├── on-off.html │ │ ├── onchange.html │ │ ├── onfullscreen.html │ │ ├── onload.html │ │ ├── onpreviewing-onpreviewed.html │ │ ├── onresize.html │ │ ├── onscroll-onpreviewscroll.html │ │ ├── onwatch-onunwatch.html │ │ ├── page-break.html │ │ ├── php │ │ │ ├── cross-domain-upload.php │ │ │ ├── editormd.uploader.class.php │ │ │ ├── post.php │ │ │ ├── upload.php │ │ │ └── upload_callback.html │ │ ├── readonly.html │ │ ├── resettings.html │ │ ├── search-replace.html │ │ ├── sequence-diagram.html │ │ ├── set-get-replace-selection.html │ │ ├── simple.html │ │ ├── sync-scrolling.html │ │ ├── task-lists.html │ │ ├── test.md │ │ ├── themes.html │ │ ├── toc.html │ │ ├── toolbar-auto-fixed.html │ │ ├── use-requirejs.html │ │ ├── use-seajs.html │ │ └── use-zepto.html │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── editormd-logo.eot │ │ ├── editormd-logo.svg │ │ ├── editormd-logo.ttf │ │ ├── editormd-logo.woff │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── images │ │ ├── loading.gif │ │ ├── loading@2x.gif │ │ ├── loading@3x.gif │ │ └── logos │ │ │ ├── editormd-favicon-16x16.ico │ │ │ ├── editormd-favicon-24x24.ico │ │ │ ├── editormd-favicon-32x32.ico │ │ │ ├── editormd-favicon-48x48.ico │ │ │ ├── editormd-favicon-64x64.ico │ │ │ ├── editormd-logo-114x114.png │ │ │ ├── editormd-logo-120x120.png │ │ │ ├── editormd-logo-144x144.png │ │ │ ├── editormd-logo-16x16.png │ │ │ ├── editormd-logo-180x180.png │ │ │ ├── editormd-logo-240x240.png │ │ │ ├── editormd-logo-24x24.png │ │ │ ├── editormd-logo-320x320.png │ │ │ ├── editormd-logo-32x32.png │ │ │ ├── editormd-logo-48x48.png │ │ │ ├── editormd-logo-57x57.png │ │ │ ├── editormd-logo-64x64.png │ │ │ ├── editormd-logo-72x72.png │ │ │ ├── editormd-logo-96x96.png │ │ │ └── vi.png │ ├── languages │ │ ├── en.js │ │ └── zh-tw.js │ ├── lib │ │ ├── codemirror │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── addon │ │ │ │ ├── comment │ │ │ │ │ ├── comment.js │ │ │ │ │ └── continuecomment.js │ │ │ │ ├── dialog │ │ │ │ │ ├── dialog.css │ │ │ │ │ └── dialog.js │ │ │ │ ├── display │ │ │ │ │ ├── fullscreen.css │ │ │ │ │ ├── fullscreen.js │ │ │ │ │ ├── panel.js │ │ │ │ │ ├── placeholder.js │ │ │ │ │ └── rulers.js │ │ │ │ ├── edit │ │ │ │ │ ├── closebrackets.js │ │ │ │ │ ├── closetag.js │ │ │ │ │ ├── continuelist.js │ │ │ │ │ ├── matchbrackets.js │ │ │ │ │ ├── matchtags.js │ │ │ │ │ └── trailingspace.js │ │ │ │ ├── fold │ │ │ │ │ ├── brace-fold.js │ │ │ │ │ ├── comment-fold.js │ │ │ │ │ ├── foldcode.js │ │ │ │ │ ├── foldgutter.css │ │ │ │ │ ├── foldgutter.js │ │ │ │ │ ├── indent-fold.js │ │ │ │ │ ├── markdown-fold.js │ │ │ │ │ └── xml-fold.js │ │ │ │ ├── hint │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ ├── css-hint.js │ │ │ │ │ ├── html-hint.js │ │ │ │ │ ├── javascript-hint.js │ │ │ │ │ ├── show-hint.css │ │ │ │ │ ├── show-hint.js │ │ │ │ │ ├── sql-hint.js │ │ │ │ │ └── xml-hint.js │ │ │ │ ├── lint │ │ │ │ │ ├── coffeescript-lint.js │ │ │ │ │ ├── css-lint.js │ │ │ │ │ ├── javascript-lint.js │ │ │ │ │ ├── json-lint.js │ │ │ │ │ ├── lint.css │ │ │ │ │ ├── lint.js │ │ │ │ │ └── yaml-lint.js │ │ │ │ ├── merge │ │ │ │ │ ├── merge.css │ │ │ │ │ └── merge.js │ │ │ │ ├── mode │ │ │ │ │ ├── loadmode.js │ │ │ │ │ ├── multiplex.js │ │ │ │ │ ├── multiplex_test.js │ │ │ │ │ ├── overlay.js │ │ │ │ │ └── simple.js │ │ │ │ ├── runmode │ │ │ │ │ ├── colorize.js │ │ │ │ │ ├── runmode-standalone.js │ │ │ │ │ ├── runmode.js │ │ │ │ │ └── runmode.node.js │ │ │ │ ├── scroll │ │ │ │ │ ├── annotatescrollbar.js │ │ │ │ │ ├── scrollpastend.js │ │ │ │ │ ├── simplescrollbars.css │ │ │ │ │ └── simplescrollbars.js │ │ │ │ ├── search │ │ │ │ │ ├── match-highlighter.js │ │ │ │ │ ├── matchesonscrollbar.css │ │ │ │ │ ├── matchesonscrollbar.js │ │ │ │ │ ├── search.js │ │ │ │ │ └── searchcursor.js │ │ │ │ ├── selection │ │ │ │ │ ├── active-line.js │ │ │ │ │ ├── mark-selection.js │ │ │ │ │ └── selection-pointer.js │ │ │ │ ├── tern │ │ │ │ │ ├── tern.css │ │ │ │ │ ├── tern.js │ │ │ │ │ └── worker.js │ │ │ │ └── wrap │ │ │ │ │ └── hardwrap.js │ │ │ ├── addons.min.js │ │ │ ├── bower.json │ │ │ ├── codemirror.min.css │ │ │ ├── codemirror.min.js │ │ │ ├── lib │ │ │ │ ├── codemirror.css │ │ │ │ └── codemirror.js │ │ │ ├── mode │ │ │ │ ├── apl │ │ │ │ │ ├── apl.js │ │ │ │ │ └── index.html │ │ │ │ ├── asterisk │ │ │ │ │ ├── asterisk.js │ │ │ │ │ └── index.html │ │ │ │ ├── clike │ │ │ │ │ ├── clike.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── scala.html │ │ │ │ ├── clojure │ │ │ │ │ ├── clojure.js │ │ │ │ │ └── index.html │ │ │ │ ├── cobol │ │ │ │ │ ├── cobol.js │ │ │ │ │ └── index.html │ │ │ │ ├── coffeescript │ │ │ │ │ ├── coffeescript.js │ │ │ │ │ └── index.html │ │ │ │ ├── commonlisp │ │ │ │ │ ├── commonlisp.js │ │ │ │ │ └── index.html │ │ │ │ ├── css │ │ │ │ │ ├── css.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── less.html │ │ │ │ │ ├── less_test.js │ │ │ │ │ ├── scss.html │ │ │ │ │ ├── scss_test.js │ │ │ │ │ └── test.js │ │ │ │ ├── cypher │ │ │ │ │ ├── cypher.js │ │ │ │ │ └── index.html │ │ │ │ ├── d │ │ │ │ │ ├── d.js │ │ │ │ │ └── index.html │ │ │ │ ├── dart │ │ │ │ │ ├── dart.js │ │ │ │ │ └── index.html │ │ │ │ ├── diff │ │ │ │ │ ├── diff.js │ │ │ │ │ └── index.html │ │ │ │ ├── django │ │ │ │ │ ├── django.js │ │ │ │ │ └── index.html │ │ │ │ ├── dockerfile │ │ │ │ │ ├── dockerfile.js │ │ │ │ │ └── index.html │ │ │ │ ├── dtd │ │ │ │ │ ├── dtd.js │ │ │ │ │ └── index.html │ │ │ │ ├── dylan │ │ │ │ │ ├── dylan.js │ │ │ │ │ └── index.html │ │ │ │ ├── ebnf │ │ │ │ │ ├── ebnf.js │ │ │ │ │ └── index.html │ │ │ │ ├── ecl │ │ │ │ │ ├── ecl.js │ │ │ │ │ └── index.html │ │ │ │ ├── eiffel │ │ │ │ │ ├── eiffel.js │ │ │ │ │ └── index.html │ │ │ │ ├── erlang │ │ │ │ │ ├── erlang.js │ │ │ │ │ └── index.html │ │ │ │ ├── forth │ │ │ │ │ ├── forth.js │ │ │ │ │ └── index.html │ │ │ │ ├── fortran │ │ │ │ │ ├── fortran.js │ │ │ │ │ └── index.html │ │ │ │ ├── gas │ │ │ │ │ ├── gas.js │ │ │ │ │ └── index.html │ │ │ │ ├── gfm │ │ │ │ │ ├── gfm.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.js │ │ │ │ ├── gherkin │ │ │ │ │ ├── gherkin.js │ │ │ │ │ └── index.html │ │ │ │ ├── go │ │ │ │ │ ├── go.js │ │ │ │ │ └── index.html │ │ │ │ ├── groovy │ │ │ │ │ ├── groovy.js │ │ │ │ │ └── index.html │ │ │ │ ├── haml │ │ │ │ │ ├── haml.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.js │ │ │ │ ├── haskell │ │ │ │ │ ├── haskell.js │ │ │ │ │ └── index.html │ │ │ │ ├── haxe │ │ │ │ │ ├── haxe.js │ │ │ │ │ └── index.html │ │ │ │ ├── htmlembedded │ │ │ │ │ ├── htmlembedded.js │ │ │ │ │ └── index.html │ │ │ │ ├── htmlmixed │ │ │ │ │ ├── htmlmixed.js │ │ │ │ │ └── index.html │ │ │ │ ├── http │ │ │ │ │ ├── http.js │ │ │ │ │ └── index.html │ │ │ │ ├── idl │ │ │ │ │ ├── idl.js │ │ │ │ │ └── index.html │ │ │ │ ├── index.html │ │ │ │ ├── jade │ │ │ │ │ ├── index.html │ │ │ │ │ └── jade.js │ │ │ │ ├── javascript │ │ │ │ │ ├── index.html │ │ │ │ │ ├── javascript.js │ │ │ │ │ ├── json-ld.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── typescript.html │ │ │ │ ├── jinja2 │ │ │ │ │ ├── index.html │ │ │ │ │ └── jinja2.js │ │ │ │ ├── julia │ │ │ │ │ ├── index.html │ │ │ │ │ └── julia.js │ │ │ │ ├── kotlin │ │ │ │ │ ├── index.html │ │ │ │ │ └── kotlin.js │ │ │ │ ├── livescript │ │ │ │ │ ├── index.html │ │ │ │ │ └── livescript.js │ │ │ │ ├── lua │ │ │ │ │ ├── index.html │ │ │ │ │ └── lua.js │ │ │ │ ├── markdown │ │ │ │ │ ├── index.html │ │ │ │ │ ├── markdown.js │ │ │ │ │ └── test.js │ │ │ │ ├── meta.js │ │ │ │ ├── mirc │ │ │ │ │ ├── index.html │ │ │ │ │ └── mirc.js │ │ │ │ ├── mllike │ │ │ │ │ ├── index.html │ │ │ │ │ └── mllike.js │ │ │ │ ├── modelica │ │ │ │ │ ├── index.html │ │ │ │ │ └── modelica.js │ │ │ │ ├── nginx │ │ │ │ │ ├── index.html │ │ │ │ │ └── nginx.js │ │ │ │ ├── ntriples │ │ │ │ │ ├── index.html │ │ │ │ │ └── ntriples.js │ │ │ │ ├── octave │ │ │ │ │ ├── index.html │ │ │ │ │ └── octave.js │ │ │ │ ├── pascal │ │ │ │ │ ├── index.html │ │ │ │ │ └── pascal.js │ │ │ │ ├── pegjs │ │ │ │ │ ├── index.html │ │ │ │ │ └── pegjs.js │ │ │ │ ├── perl │ │ │ │ │ ├── index.html │ │ │ │ │ └── perl.js │ │ │ │ ├── php │ │ │ │ │ ├── index.html │ │ │ │ │ ├── php.js │ │ │ │ │ └── test.js │ │ │ │ ├── pig │ │ │ │ │ ├── index.html │ │ │ │ │ └── pig.js │ │ │ │ ├── properties │ │ │ │ │ ├── index.html │ │ │ │ │ └── properties.js │ │ │ │ ├── puppet │ │ │ │ │ ├── index.html │ │ │ │ │ └── puppet.js │ │ │ │ ├── python │ │ │ │ │ ├── index.html │ │ │ │ │ └── python.js │ │ │ │ ├── q │ │ │ │ │ ├── index.html │ │ │ │ │ └── q.js │ │ │ │ ├── r │ │ │ │ │ ├── index.html │ │ │ │ │ └── r.js │ │ │ │ ├── rpm │ │ │ │ │ ├── changes │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── index.html │ │ │ │ │ └── rpm.js │ │ │ │ ├── rst │ │ │ │ │ ├── index.html │ │ │ │ │ └── rst.js │ │ │ │ ├── ruby │ │ │ │ │ ├── index.html │ │ │ │ │ ├── ruby.js │ │ │ │ │ └── test.js │ │ │ │ ├── rust │ │ │ │ │ ├── index.html │ │ │ │ │ └── rust.js │ │ │ │ ├── sass │ │ │ │ │ ├── index.html │ │ │ │ │ └── sass.js │ │ │ │ ├── scheme │ │ │ │ │ ├── index.html │ │ │ │ │ └── scheme.js │ │ │ │ ├── shell │ │ │ │ │ ├── index.html │ │ │ │ │ ├── shell.js │ │ │ │ │ └── test.js │ │ │ │ ├── sieve │ │ │ │ │ ├── index.html │ │ │ │ │ └── sieve.js │ │ │ │ ├── slim │ │ │ │ │ ├── index.html │ │ │ │ │ ├── slim.js │ │ │ │ │ └── test.js │ │ │ │ ├── smalltalk │ │ │ │ │ ├── index.html │ │ │ │ │ └── smalltalk.js │ │ │ │ ├── smarty │ │ │ │ │ ├── index.html │ │ │ │ │ └── smarty.js │ │ │ │ ├── smartymixed │ │ │ │ │ ├── index.html │ │ │ │ │ └── smartymixed.js │ │ │ │ ├── solr │ │ │ │ │ ├── index.html │ │ │ │ │ └── solr.js │ │ │ │ ├── soy │ │ │ │ │ ├── index.html │ │ │ │ │ └── soy.js │ │ │ │ ├── sparql │ │ │ │ │ ├── index.html │ │ │ │ │ └── sparql.js │ │ │ │ ├── spreadsheet │ │ │ │ │ ├── index.html │ │ │ │ │ └── spreadsheet.js │ │ │ │ ├── sql │ │ │ │ │ ├── index.html │ │ │ │ │ └── sql.js │ │ │ │ ├── stex │ │ │ │ │ ├── index.html │ │ │ │ │ ├── stex.js │ │ │ │ │ └── test.js │ │ │ │ ├── stylus │ │ │ │ │ ├── index.html │ │ │ │ │ └── stylus.js │ │ │ │ ├── tcl │ │ │ │ │ ├── index.html │ │ │ │ │ └── tcl.js │ │ │ │ ├── textile │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── textile.js │ │ │ │ ├── tiddlywiki │ │ │ │ │ ├── index.html │ │ │ │ │ ├── tiddlywiki.css │ │ │ │ │ └── tiddlywiki.js │ │ │ │ ├── tiki │ │ │ │ │ ├── index.html │ │ │ │ │ ├── tiki.css │ │ │ │ │ └── tiki.js │ │ │ │ ├── toml │ │ │ │ │ ├── index.html │ │ │ │ │ └── toml.js │ │ │ │ ├── tornado │ │ │ │ │ ├── index.html │ │ │ │ │ └── tornado.js │ │ │ │ ├── turtle │ │ │ │ │ ├── index.html │ │ │ │ │ └── turtle.js │ │ │ │ ├── vb │ │ │ │ │ ├── index.html │ │ │ │ │ └── vb.js │ │ │ │ ├── vbscript │ │ │ │ │ ├── index.html │ │ │ │ │ └── vbscript.js │ │ │ │ ├── velocity │ │ │ │ │ ├── index.html │ │ │ │ │ └── velocity.js │ │ │ │ ├── verilog │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── verilog.js │ │ │ │ ├── xml │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── xml.js │ │ │ │ ├── xquery │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── xquery.js │ │ │ │ ├── yaml │ │ │ │ │ ├── index.html │ │ │ │ │ └── yaml.js │ │ │ │ └── z80 │ │ │ │ │ ├── index.html │ │ │ │ │ └── z80.js │ │ │ ├── modes.min.js │ │ │ ├── package.json │ │ │ └── theme │ │ │ │ ├── 3024-day.css │ │ │ │ ├── 3024-night.css │ │ │ │ ├── ambiance-mobile.css │ │ │ │ ├── ambiance.css │ │ │ │ ├── base16-dark.css │ │ │ │ ├── base16-light.css │ │ │ │ ├── blackboard.css │ │ │ │ ├── cobalt.css │ │ │ │ ├── colorforth.css │ │ │ │ ├── eclipse.css │ │ │ │ ├── elegant.css │ │ │ │ ├── erlang-dark.css │ │ │ │ ├── lesser-dark.css │ │ │ │ ├── mbo.css │ │ │ │ ├── mdn-like.css │ │ │ │ ├── midnight.css │ │ │ │ ├── monokai.css │ │ │ │ ├── neat.css │ │ │ │ ├── neo.css │ │ │ │ ├── night.css │ │ │ │ ├── paraiso-dark.css │ │ │ │ ├── paraiso-light.css │ │ │ │ ├── pastel-on-dark.css │ │ │ │ ├── rubyblue.css │ │ │ │ ├── solarized.css │ │ │ │ ├── the-matrix.css │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ ├── twilight.css │ │ │ │ ├── vibrant-ink.css │ │ │ │ ├── xq-dark.css │ │ │ │ ├── xq-light.css │ │ │ │ └── zenburn.css │ │ ├── flowchart.min.js │ │ ├── jquery.flowchart.min.js │ │ ├── marked.min.js │ │ ├── prettify.min.js │ │ ├── raphael.min.js │ │ ├── sequence-diagram.min.js │ │ └── underscore.min.js │ ├── package.json │ ├── plugins │ │ ├── code-block-dialog │ │ │ └── code-block-dialog.js │ │ ├── emoji-dialog │ │ │ ├── emoji-dialog.js │ │ │ └── emoji.json │ │ ├── goto-line-dialog │ │ │ └── goto-line-dialog.js │ │ ├── help-dialog │ │ │ ├── help-dialog.js │ │ │ └── help.md │ │ ├── html-entities-dialog │ │ │ ├── html-entities-dialog.js │ │ │ └── html-entities.json │ │ ├── image-dialog │ │ │ └── image-dialog.js │ │ ├── image-handle-paste │ │ │ └── image-handle-paste.js │ │ ├── link-dialog │ │ │ └── link-dialog.js │ │ ├── plugin-template.js │ │ ├── preformatted-text-dialog │ │ │ └── preformatted-text-dialog.js │ │ ├── reference-link-dialog │ │ │ └── reference-link-dialog.js │ │ ├── table-dialog │ │ │ └── table-dialog.js │ │ └── test-plugin │ │ │ └── test-plugin.js │ ├── scss │ │ ├── editormd.codemirror.scss │ │ ├── editormd.dialog.scss │ │ ├── editormd.form.scss │ │ ├── editormd.grid.scss │ │ ├── editormd.logo.scss │ │ ├── editormd.menu.scss │ │ ├── editormd.preview.scss │ │ ├── editormd.preview.themes.scss │ │ ├── editormd.scss │ │ ├── editormd.tab.scss │ │ ├── editormd.themes.scss │ │ ├── font-awesome.scss │ │ ├── github-markdown.scss │ │ ├── lib │ │ │ ├── prefixes.scss │ │ │ └── variables.scss │ │ └── prettify.scss │ ├── src │ │ └── editormd.js │ └── tests │ │ ├── bootstrap-test.html │ │ ├── codemirror-searchbox-test.html │ │ ├── codemirror-test.html │ │ ├── css │ │ ├── bootstrap-theme.min.css │ │ └── bootstrap.min.css │ │ ├── js │ │ ├── bootstrap.min.js │ │ └── searchbox.js │ │ ├── katex-tests.html │ │ ├── marked-@at-test.html │ │ ├── marked-emoji-test.html │ │ ├── marked-heading-link-test.html │ │ ├── marked-todo-list-test.html │ │ └── qunit │ │ ├── qunit-1.16.0.css │ │ └── qunit-1.16.0.js ├── img │ ├── admin │ │ ├── favicon-admin.ico │ │ ├── login.png │ │ └── user.jpg │ ├── article.png │ ├── attention.png │ ├── beijing.jpg │ ├── beijing2.jpg │ ├── beijing3.png │ ├── beijing4.png │ ├── comment.png │ ├── content.jpg │ ├── fatiePhoto.png │ ├── fatiePhotoEditor.png │ ├── favicon.ico │ ├── head.png │ ├── houtai.png │ ├── loading.gif │ ├── login.png │ ├── logo-lanse.png │ ├── logo-lvse.png │ ├── logo.png │ ├── photo │ │ ├── add.png │ │ ├── not_photo.jpg │ │ └── wuzhaopian.png │ ├── share │ │ └── QQ.png │ ├── shezhi.png │ ├── top.png │ ├── toped.png │ ├── touxiang.jpg │ ├── tuichu.png │ ├── wodezhuye.png │ ├── xinagce.png │ └── yunying.png └── js │ ├── admin.js │ ├── admin │ ├── article.js │ ├── common.js │ ├── content.js │ ├── head.js │ ├── login.js │ ├── plate.js │ ├── user.js │ └── visit.js │ ├── common.js │ ├── content │ ├── article.js │ ├── articleEdit.js │ ├── attention.js │ ├── collect.js │ ├── comment.js │ ├── common.js │ ├── content.js │ ├── contentArticle.js │ ├── enjoy.js │ ├── myHome.js │ ├── plate.js │ ├── user.js │ ├── userEdit.js │ └── visit.js │ ├── delete.js │ ├── echars │ └── echarts.min.js │ ├── head │ ├── head.js │ ├── posted_editor.js │ └── setup.js │ ├── images.js │ ├── images_photo.js │ ├── images_update.js │ ├── jquery-3.3.1.min.js │ ├── layer │ ├── layer.js │ ├── mobile │ │ ├── layer.js │ │ └── need │ │ │ └── layer.css │ └── theme │ │ └── default │ │ ├── icon-ext.png │ │ ├── icon.png │ │ ├── layer.css │ │ ├── loading-0.gif │ │ ├── loading-1.gif │ │ └── loading-2.gif │ ├── load_more.js │ ├── login │ └── login.js │ ├── phones_pc.js │ ├── photo │ ├── album.js │ ├── albumEdit.js │ ├── photo.js │ ├── photoAdd.js │ ├── photoDel.js │ ├── showAlbum.js │ └── showPhoto.js │ ├── share.js │ └── visit │ └── visitCharts.js └── update.jsp /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | /.settings/ 3 | /.project 4 | /.classpath 5 | /logs/ 6 | /.mvn/ 7 | /mvnw 8 | /mvnw.cmd 9 | /lib/ 10 | /.idea/ 11 | .idea/ 12 | lib/ 13 | annotate-modular-basic.iml 14 | /transaction-logs/ 15 | tmp/ 16 | conf 17 | heracles 18 | *.iml 19 | *.log -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/Admin.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | 5 | import java.util.Date; 6 | 7 | /** 8 | * master分支测试 -- 代码贡献测试 9 | */ 10 | public class Admin { 11 | // 管理员id 12 | private String aid; 13 | // 管理员名字 14 | private String aname; 15 | // 管理员密码 16 | @JsonIgnore 17 | private String apassword; 18 | // 管理员创建时间 19 | private Date createTime; 20 | // 管理员更新时间 21 | private Date updateTime; 22 | 23 | public Admin() { 24 | super(); 25 | } 26 | 27 | public String getAid() { 28 | return aid; 29 | } 30 | 31 | public void setAid(String aid) { 32 | this.aid = aid; 33 | } 34 | 35 | public String getAname() { 36 | return aname; 37 | } 38 | 39 | public void setAname(String aname) { 40 | this.aname = aname; 41 | } 42 | 43 | public String getApassword() { 44 | return apassword; 45 | } 46 | 47 | public void setApassword(String apassword) { 48 | this.apassword = apassword; 49 | } 50 | 51 | public Date getCreateTime() { 52 | return createTime; 53 | } 54 | 55 | public void setCreateTime(Date createTime) { 56 | this.createTime = createTime; 57 | } 58 | 59 | public Date getUpdateTime() { 60 | return updateTime; 61 | } 62 | 63 | public void setUpdateTime(Date updateTime) { 64 | this.updateTime = updateTime; 65 | } 66 | 67 | @Override 68 | public String toString() { 69 | return "Admin{" + 70 | "aid='" + aid + '\'' + 71 | ", aname='" + aname + '\'' + 72 | ", apassword='" + apassword + '\'' + 73 | ", createTime=" + createTime + 74 | ", updateTime=" + updateTime + 75 | '}'; 76 | } 77 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/Attention.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | public class Attention { 6 | // 关注id 7 | private String gid; 8 | // 关注者id 9 | private String userid; 10 | // 被关注者id 11 | private String beuserid; 12 | // 关注时间 13 | private Date createTime; 14 | 15 | public Attention() { 16 | super(); 17 | } 18 | 19 | public String getGid() { 20 | return gid; 21 | } 22 | 23 | public void setGid(String gid) { 24 | this.gid = gid; 25 | } 26 | 27 | public String getUserid() { 28 | return userid; 29 | } 30 | 31 | public void setUserid(String userid) { 32 | this.userid = userid; 33 | } 34 | 35 | public String getBeuserid() { 36 | return beuserid; 37 | } 38 | 39 | public void setBeuserid(String beuserid) { 40 | this.beuserid = beuserid; 41 | } 42 | 43 | public Date getCreateTime() { 44 | return createTime; 45 | } 46 | 47 | public void setCreateTime(Date createTime) { 48 | this.createTime = createTime; 49 | } 50 | 51 | @Override 52 | public String toString() { 53 | return "Attention{" + 54 | "gid='" + gid + '\'' + 55 | ", userid='" + userid + '\'' + 56 | ", beuserid='" + beuserid + '\'' + 57 | ", createTime=" + createTime + 58 | '}'; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/Collect.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | public class Collect { 6 | // 收藏id 7 | private String sid; 8 | // 收藏者id 9 | private String userid; 10 | // 收藏文章id 11 | private String fid; 12 | // 收藏时间 13 | private Date createTime; 14 | 15 | public Collect() { 16 | super(); 17 | } 18 | 19 | public String getSid() { 20 | return sid; 21 | } 22 | 23 | public void setSid(String sid) { 24 | this.sid = sid; 25 | } 26 | 27 | public String getUserid() { 28 | return userid; 29 | } 30 | 31 | public void setUserid(String userid) { 32 | this.userid = userid; 33 | } 34 | 35 | public String getFid() { 36 | return fid; 37 | } 38 | 39 | public void setFid(String fid) { 40 | this.fid = fid; 41 | } 42 | 43 | public Date getCreateTime() { 44 | return createTime; 45 | } 46 | 47 | public void setCreateTime(Date createTime) { 48 | this.createTime = createTime; 49 | } 50 | 51 | @Override 52 | public String toString() { 53 | return "Collect{" + 54 | "sid='" + sid + '\'' + 55 | ", userid='" + userid + '\'' + 56 | ", fid='" + fid + '\'' + 57 | ", createTime=" + createTime + 58 | '}'; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/Enjoy.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | /** 6 | * @author maliang 7 | * @create 2019-05-25 21:12 8 | */ 9 | public class Enjoy { 10 | // 收藏id 11 | private String eid; 12 | // 收藏者 13 | private String userid; 14 | // 被收藏文章id 15 | private String fid; 16 | // 收藏时间 17 | private Date createTime; 18 | 19 | public Enjoy() { 20 | super(); 21 | } 22 | 23 | public String getEid() { 24 | return eid; 25 | } 26 | 27 | public void setEid(String eid) { 28 | this.eid = eid; 29 | } 30 | 31 | public String getUserid() { 32 | return userid; 33 | } 34 | 35 | public void setUserid(String userid) { 36 | this.userid = userid; 37 | } 38 | 39 | public String getFid() { 40 | return fid; 41 | } 42 | 43 | public void setFid(String fid) { 44 | this.fid = fid; 45 | } 46 | 47 | public Date getCreateTime() { 48 | return createTime; 49 | } 50 | 51 | public void setCreateTime(Date createTime) { 52 | this.createTime = createTime; 53 | } 54 | 55 | @Override 56 | public String toString() { 57 | return "Enjoy{" + 58 | "eid='" + eid + '\'' + 59 | ", userid='" + userid + '\'' + 60 | ", fid='" + fid + '\'' + 61 | ", createTime=" + createTime + 62 | '}'; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/PhotoPro.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | public class PhotoPro { 6 | // 相册id 7 | private String fid; 8 | // 用户id 9 | private String userid; 10 | // 相册名 11 | private String name; 12 | // 相册创建时间 13 | private Date createTime; 14 | // 相册更新时间 15 | private Date updateTime; 16 | 17 | public PhotoPro() { 18 | super(); 19 | } 20 | 21 | public String getFid() { 22 | return fid; 23 | } 24 | 25 | public void setFid(String fid) { 26 | this.fid = fid; 27 | } 28 | 29 | public String getUserid() { 30 | return userid; 31 | } 32 | 33 | public void setUserid(String userid) { 34 | this.userid = userid; 35 | } 36 | 37 | public String getName() { 38 | return name; 39 | } 40 | 41 | public void setName(String name) { 42 | this.name = name; 43 | } 44 | 45 | public Date getCreateTime() { 46 | return createTime; 47 | } 48 | 49 | public void setCreateTime(Date createTime) { 50 | this.createTime = createTime; 51 | } 52 | 53 | public Date getUpdateTime() { 54 | return updateTime; 55 | } 56 | 57 | public void setUpdateTime(Date updateTime) { 58 | this.updateTime = updateTime; 59 | } 60 | 61 | @Override 62 | public String toString() { 63 | return "PhotoPro{" + 64 | "fid='" + fid + '\'' + 65 | ", userid='" + userid + '\'' + 66 | ", name='" + name + '\'' + 67 | ", createTime=" + createTime + 68 | ", updateTime=" + updateTime + 69 | '}'; 70 | } 71 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/Plate.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | public class Plate { 6 | // 板块id 7 | private String bid; 8 | // 板块名 9 | private String bname; 10 | // 板块创建时间 11 | private Date createTime; 12 | // 板块更新时间 13 | private Date updateTime; 14 | 15 | public Plate() { 16 | super(); 17 | } 18 | 19 | public String getBid() { 20 | return bid; 21 | } 22 | 23 | public void setBid(String bid) { 24 | this.bid = bid; 25 | } 26 | 27 | public String getBname() { 28 | return bname; 29 | } 30 | 31 | public void setBname(String bname) { 32 | this.bname = bname; 33 | } 34 | 35 | public Date getCreateTime() { 36 | return createTime; 37 | } 38 | 39 | public void setCreateTime(Date createTime) { 40 | this.createTime = createTime; 41 | } 42 | 43 | public Date getUpdateTime() { 44 | return updateTime; 45 | } 46 | 47 | public void setUpdateTime(Date updateTime) { 48 | this.updateTime = updateTime; 49 | } 50 | 51 | @Override 52 | public String toString() { 53 | return "Plate{" + 54 | "bid='" + bid + '\'' + 55 | ", bname='" + bname + '\'' + 56 | ", createTime=" + createTime + 57 | ", updateTime=" + updateTime + 58 | '}'; 59 | } 60 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/TbPhoto.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | public class TbPhoto { 6 | // 照片id 7 | private String xid; 8 | // 相册id 9 | private String fid; 10 | // 照片上传者 11 | private String userid; 12 | // 照片名 13 | private String photo; 14 | // 照片上传时间 15 | private Date createTime; 16 | 17 | public TbPhoto() { 18 | super(); 19 | } 20 | 21 | public TbPhoto(String fid, String userid) { 22 | super(); 23 | this.fid = fid; 24 | this.userid = userid; 25 | } 26 | 27 | public String getXid() { 28 | return xid; 29 | } 30 | 31 | public void setXid(String xid) { 32 | this.xid = xid; 33 | } 34 | 35 | public String getFid() { 36 | return fid; 37 | } 38 | 39 | public void setFid(String fid) { 40 | this.fid = fid; 41 | } 42 | 43 | public String getUserid() { 44 | return userid; 45 | } 46 | 47 | public void setUserid(String userid) { 48 | this.userid = userid; 49 | } 50 | 51 | public String getPhoto() { 52 | return photo; 53 | } 54 | 55 | public void setPhoto(String photo) { 56 | this.photo = photo; 57 | } 58 | 59 | public Date getCreateTime() { 60 | return createTime; 61 | } 62 | 63 | public void setCreateTime(Date createTime) { 64 | this.createTime = createTime; 65 | } 66 | 67 | @Override 68 | public String toString() { 69 | return "TbPhoto{" + 70 | "xid='" + xid + '\'' + 71 | ", fid='" + fid + '\'' + 72 | ", userid='" + userid + '\'' + 73 | ", photo='" + photo + '\'' + 74 | ", createTime=" + createTime + 75 | '}'; 76 | } 77 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/Via.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean; 2 | 3 | import java.util.Date; 4 | 5 | public class Via { 6 | // 用户id 7 | private String userid; 8 | // 用户头像名 9 | private String photo; 10 | // 用户头像更新时间 11 | private Date updateTime; 12 | 13 | public Via() { 14 | super(); 15 | } 16 | 17 | public String getUserid() { 18 | return userid; 19 | } 20 | 21 | public void setUserid(String userid) { 22 | this.userid = userid; 23 | } 24 | 25 | public String getPhoto() { 26 | return photo; 27 | } 28 | 29 | public void setPhoto(String photo) { 30 | this.photo = photo; 31 | } 32 | 33 | public Date getUpdateTime() { 34 | return updateTime; 35 | } 36 | 37 | public void setUpdateTime(Date updateTime) { 38 | this.updateTime = updateTime; 39 | } 40 | 41 | @Override 42 | public String toString() { 43 | return "Via{" + 44 | "userid='" + userid + '\'' + 45 | ", photo='" + photo + '\'' + 46 | ", updateTime=" + updateTime + 47 | '}'; 48 | } 49 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/impl/ArticleImpl.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean.impl; 2 | 3 | import com.liang.bean.Article; 4 | 5 | import java.util.Date; 6 | 7 | public class ArticleImpl extends Article { 8 | // 用户名 9 | private String name; 10 | // 评论数 11 | private Integer commentCount; 12 | // 收藏时间 13 | private Date collectTime; 14 | 15 | public String getName() { 16 | return name; 17 | } 18 | 19 | public void setName(String name) { 20 | this.name = name; 21 | } 22 | 23 | public Integer getCommentCount() { 24 | return commentCount; 25 | } 26 | 27 | public void setCommentCount(Integer commentCount) { 28 | this.commentCount = commentCount; 29 | } 30 | 31 | public Date getCollectTime() { 32 | return collectTime; 33 | } 34 | 35 | public void setCollectTime(Date collectTime) { 36 | this.collectTime = collectTime; 37 | } 38 | 39 | @Override 40 | public String toString() { 41 | return "ArticleImpl{" + 42 | "name='" + name + '\'' + 43 | ", commentCount=" + commentCount + 44 | ", collectTime=" + collectTime + 45 | '}'; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/impl/CommentImpl.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean.impl; 2 | 3 | import com.liang.bean.Comment; 4 | 5 | public class CommentImpl extends Comment { 6 | // 用户名 7 | private String name; 8 | // 用头像 9 | private String userPhoto; 10 | 11 | public String getName() { 12 | return name; 13 | } 14 | 15 | public void setName(String name) { 16 | this.name = name; 17 | } 18 | 19 | public String getUserPhoto() { 20 | return userPhoto; 21 | } 22 | 23 | public void setUserPhoto(String userPhoto) { 24 | this.userPhoto = userPhoto; 25 | } 26 | 27 | @Override 28 | public String toString() { 29 | return "CommentImpl{" + 30 | "name='" + name + '\'' + 31 | ", userPhoto='" + userPhoto + '\'' + 32 | '}'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/impl/PhotoProImpl.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean.impl; 2 | 3 | import com.liang.bean.PhotoPro; 4 | 5 | public class PhotoProImpl extends PhotoPro { 6 | // 图片名 7 | private String photo; 8 | 9 | public String getPhoto() { 10 | return photo; 11 | } 12 | 13 | public void setPhoto(String photo) { 14 | this.photo = photo; 15 | } 16 | 17 | @Override 18 | public String toString() { 19 | return "PhotoProImpl{" + 20 | "photo='" + photo + '\'' + 21 | '}'; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/liang/bean/impl/UserImpl.java: -------------------------------------------------------------------------------- 1 | package com.liang.bean.impl; 2 | 3 | import com.liang.bean.User; 4 | 5 | import java.util.Date; 6 | 7 | /** 8 | * @author maliang 9 | * @create 2020-04-08 15:15 10 | */ 11 | public class UserImpl extends User { 12 | // 头像 13 | private String photo; 14 | // 关注id 15 | private String gid; 16 | 17 | public String getPhoto() { 18 | return photo; 19 | } 20 | 21 | public void setPhoto(String photo) { 22 | this.photo = photo; 23 | } 24 | 25 | public String getGid() { 26 | return gid; 27 | } 28 | 29 | public void setGid(String gid) { 30 | this.gid = gid; 31 | } 32 | 33 | @Override 34 | public String toString() { 35 | return "UserImpl{" + 36 | ", photo='" + photo + '\'' + 37 | ", gid='" + gid + '\'' + 38 | '}'; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/AdminMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Admin; 4 | 5 | public interface AdminMapper { 6 | 7 | // 管理员登录查询 8 | Admin selectByAdmin(Admin admin); 9 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/ArticleMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Article; 4 | import com.liang.bean.impl.ArticleImpl; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public interface ArticleMapper { 10 | 11 | // 向数据库插入文章信息 12 | void insert(Article record); 13 | 14 | // 按fid删除文章信息 15 | void deleteByKey(String fid); 16 | 17 | // 删除userid对应的文章信息 18 | void deleteByUserid(String userid); 19 | 20 | // 修改文章信息 21 | void updateByKey(Article record); 22 | 23 | // 更改文章审核状态 24 | void updateStatusByKey(Article record); 25 | 26 | // 查询“通过审核”的文章信息(分页) 27 | List selectPassArticleImplPaging(Map map); 28 | 29 | // 查询文章信息(分页) 30 | List selectArticleImplPaging(Map map); 31 | 32 | // 按userid查询“通过审核”文章信息 33 | List
selectPassArticleByUserid(String userid); 34 | 35 | // 按userid查询文章信息 36 | List
selectArticleByUserid(String userid); 37 | 38 | // 按fid查询文章信息 39 | Article selectArticleByKey(String fid); 40 | 41 | // 按fid和userid查询文章信息 42 | ArticleImpl selectArticleImplByKeyU(Map map); 43 | 44 | // 查询热门文章 45 | List
selectHotArticle(); 46 | 47 | // 查询userid评论过的文章信息 48 | List selectArticleImplByUserid(Map map); 49 | 50 | // 查询userid收藏的文章信息 51 | List selectCollectArticleImplByUserid(Map map); 52 | 53 | // 总文章数 54 | int selectCount(); 55 | 56 | // 某板块下文章总数 57 | int selectPassArticleCountByBid(String bid); 58 | 59 | // 查询userid的总文章数 60 | int selectArticleCountByUserid(Map map); 61 | 62 | // 查询userid评论过的文章总数 63 | int selectArticleImplCountByUserid(Map map); 64 | 65 | // 获取某用户的收藏总数 66 | int selectCollectCountByUserid(Map map); 67 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/AttentionMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import java.util.List; 4 | 5 | import com.liang.bean.Attention; 6 | 7 | public interface AttentionMapper { 8 | 9 | // 新增关注信息 10 | void insert(Attention record); 11 | 12 | // 按gid删除关注信息 13 | void deleteByKey(String gid); 14 | 15 | // 按userid和beuserid删除关注信息 16 | void deleteByUB(Attention attention); 17 | 18 | // 删除某用户对应的关注和被关注信息 19 | void deleteByUorB(String userid); 20 | 21 | // 查询所有关注信息 22 | List selectAttention(); 23 | 24 | // 获取某用户的关注总数 25 | int selectCountByUserid(String userid); 26 | 27 | // 获取某用户的粉丝总数 28 | int selectCountByBeuserid(String beuserid); 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/CollectMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import com.liang.bean.Collect; 7 | 8 | public interface CollectMapper { 9 | 10 | // 新增收藏信息 11 | void insert(Collect record); 12 | 13 | // 按sid删除收藏信息 14 | void deleteByKey(String sid); 15 | 16 | // 按userid和fid删除收藏 17 | void deleteByUF(Collect collect); 18 | 19 | // 按fid删除收藏信息 20 | void deleteByFid(String fid); 21 | 22 | // 删除某用户对应的收藏信息 23 | void deleteByUserid(String userid); 24 | 25 | // 查询所有收藏信息 26 | List selectCollect(); 27 | 28 | // 按收藏者id和被收藏文章id进行查询 29 | Collect selectCollectByUF(Collect collect); 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/CommentMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Comment; 4 | import com.liang.bean.impl.CommentImpl; 5 | 6 | import java.util.List; 7 | 8 | public interface CommentMapper { 9 | 10 | // 新增评论信息 11 | void insert(Comment record); 12 | 13 | // 按pid删除评论信息 14 | void deleteByKey(String pid); 15 | 16 | // 删除某用户对应的所有评论信息 17 | void deleteByUserid(String userid); 18 | 19 | // 按文章id(fid)查询评论信息 20 | List selectCommentByFid(String fid); 21 | 22 | // 按文章id(fid)查询评论表信息(包含用户名、用户头像) 23 | List selectCommentImplByFid(String fid); 24 | 25 | // 最新评论 26 | List selectNewComment(); 27 | 28 | // 按文章id(fid)查询该条文章的评论数 29 | int selectCountByFid(String fid); 30 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/EnjoyMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Enjoy; 4 | 5 | import java.util.List; 6 | 7 | public interface EnjoyMapper { 8 | 9 | // 新增点赞信息 10 | void insert(Enjoy record); 11 | 12 | // 按eid删除点赞信息 13 | void deleteByKey(String eid); 14 | 15 | // 按userid和fid删除点赞 16 | void deleteByUF(Enjoy enjoy); 17 | 18 | // 查询所有点赞信息 19 | List selectEnjoy(); 20 | 21 | // 按点赞者id和被点赞文章id进行查询 22 | Enjoy selectEnjoyByUF(Enjoy enjoy); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/PhotoProMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.PhotoPro; 4 | import com.liang.bean.impl.PhotoProImpl; 5 | 6 | import java.util.List; 7 | 8 | public interface PhotoProMapper { 9 | 10 | // 创建相册 11 | void insert(PhotoPro record); 12 | 13 | // 删除相册 14 | void deleteByKey(String fid); 15 | 16 | // 编辑相册 17 | void updateNameByKey(PhotoPro photoPro); 18 | 19 | // 按fid(相册id)查询相册信息 20 | PhotoPro selectPhotoProByKey(String fid); 21 | 22 | // 查询某用户的相册分类信息 23 | List selectPhotoProImplByUserid(String userid); 24 | 25 | // 按userid和name(相册名)查询相册信息 26 | List selectPhotoProByUN(PhotoPro photoPro); 27 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/PlateMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Plate; 4 | import java.util.List; 5 | 6 | public interface PlateMapper { 7 | 8 | // 新增板块 9 | void insert(Plate record); 10 | 11 | // 按bid删除板块信息 12 | void deleteByKey(String bid); 13 | 14 | // 修改板块 15 | void updateByKey(Plate record); 16 | 17 | // 查询板块的所有信息 18 | List selectPlate(); 19 | 20 | // 按板块名查询 21 | List selectPlateByName(Plate plate); 22 | 23 | // 按板块ID查询板块信息 24 | Plate selectPlateByKey(String bid); 25 | 26 | // 总板块数 27 | int selectCount(); 28 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/TbPhotoMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.TbPhoto; 4 | 5 | import java.util.List; 6 | 7 | public interface TbPhotoMapper { 8 | 9 | // 上传照片 10 | void insert(TbPhoto record); 11 | 12 | // 删除某一张照片 13 | void deleteByKey(String xid); 14 | 15 | // 删除相册对应的照片 16 | void deleteByFid(String fid); 17 | 18 | // 按xid查询照片信息 19 | TbPhoto selectTbPhotoByKey(String xid); 20 | 21 | // 获取相册分类下的对应的照片 22 | List selectTbPhotoByFU(TbPhoto tbPhoto); 23 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.User; 4 | import com.liang.bean.impl.UserImpl; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public interface UserMapper { 10 | 11 | // 新增用户信息 12 | void insert(User record); 13 | 14 | // 删除用户信息 15 | void deleteByKey(String userid); 16 | 17 | // 编辑用户信息 18 | void updateByKey(User record); 19 | 20 | // 修改用户名 21 | void updateNameByKey(User user); 22 | 23 | // 修改密码 24 | void updatePasswordByKey(User user); 25 | 26 | // 修改Email 27 | void updateEmailByKey(User user); 28 | 29 | // 按姓名(Email)和密码查询用户信息 30 | UserImpl selectUserImplByNEP(User user); 31 | 32 | // 按用户名查询用户信息 33 | User selectUserByName(String name); 34 | 35 | // 按Email查询用户信息 36 | User selectUserByEmail(String name); 37 | 38 | // 查询用户信息(分页) 39 | List selectUserImplPaging(Map map); 40 | 41 | // 按userid查询用户信息 42 | User selectUserByKey(String userid); 43 | 44 | // 按userid和密码查询用户信息 45 | User selectUserByUP(User user); 46 | 47 | // 按文章数获取用户排名 48 | List selectUserImplRankByArticleSum(); 49 | 50 | // 获取新注册用户信息 51 | List selectNewUserImpl(); 52 | 53 | // 按userid查询关注信息 54 | List selectUserImplByKey(Map map); 55 | 56 | // 查询用户总数 57 | int selectCount(); 58 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/ViaMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Via; 4 | 5 | public interface ViaMapper { 6 | 7 | // 新增头像 8 | void insert(Via record); 9 | 10 | // 删除某用户的头像信息 11 | void deleteByKey(String userid); 12 | 13 | // 修改某用户头像信息 14 | void updateByKey(Via record); 15 | 16 | // 按userid查询用户信息 17 | Via selectViaByKey(String userid); 18 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/dao/VisitMapper.java: -------------------------------------------------------------------------------- 1 | package com.liang.dao; 2 | 3 | import com.liang.bean.Visit; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | public interface VisitMapper { 8 | 9 | // 新增访问信息 10 | void insert(Visit visit); 11 | 12 | // 查询所有访问信息(分页) 13 | List selectVisitPaging(Map map); 14 | 15 | // 统计-国家 16 | List selectVisitCountryStatistic(); 17 | 18 | // 统计-这个省份 19 | List selectVisitProvinceStatistic(); 20 | 21 | // 获取最近n天的访问数据 22 | List selectVisitRecordDay(Integer n); 23 | 24 | // 总访问数 25 | int selectCount(); 26 | 27 | // 月总访量 28 | int selectMonthCount(); 29 | 30 | // 周总访量 31 | int selectWeekCount(); 32 | 33 | // 日总访量 34 | int selectDayCount(); 35 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/service/AdminService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Service; 5 | 6 | import com.liang.bean.Admin; 7 | import com.liang.dao.AdminMapper; 8 | 9 | @Service 10 | public class AdminService { 11 | 12 | @Autowired 13 | AdminMapper adminMapper; 14 | 15 | /** 16 | * 管理员登录查询 17 | * @param admin 18 | * @return 19 | */ 20 | public Admin getAdmin(Admin admin) { 21 | 22 | return adminMapper.selectByAdmin(admin); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/AttentionService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.liang.bean.Attention; 9 | import com.liang.dao.AttentionMapper; 10 | 11 | @Service 12 | public class AttentionService { 13 | 14 | @Autowired 15 | AttentionMapper attentionMapper; 16 | 17 | /** 18 | * 添加关注 19 | * @param attention 20 | */ 21 | public void setAttention(Attention attention) { 22 | 23 | attentionMapper.insert(attention); 24 | } 25 | 26 | /** 27 | * 取消关注(按gid) 28 | * @param gid 29 | */ 30 | public void deleteAttention(String gid) { 31 | 32 | attentionMapper.deleteByKey(gid); 33 | } 34 | 35 | /** 36 | * 取消关注(按beuserid和userid) 37 | * @param attention 38 | */ 39 | public void deleteByUserid(Attention attention) { 40 | 41 | attentionMapper.deleteByUB(attention); 42 | } 43 | 44 | /** 45 | * 查询关注信息(无条件) 46 | * @return 47 | */ 48 | public List getAttention() { 49 | 50 | return attentionMapper.selectAttention(); 51 | } 52 | 53 | /** 54 | * 获取userid的关注总数 55 | * @param userid 56 | * @return 57 | */ 58 | public int getCountByUserid(String userid) { 59 | 60 | return attentionMapper.selectCountByUserid(userid); 61 | } 62 | 63 | /** 64 | * 获取userid的粉丝总数 65 | * @param beuserid 66 | * @return 67 | */ 68 | public int getCountByBeuserid(String beuserid) { 69 | 70 | return attentionMapper.selectCountByBeuserid(beuserid); 71 | } 72 | 73 | /** 74 | * 删除该用户对应的关注和被关注信息 75 | * @param userid 76 | */ 77 | public void deleteAttentionUseridOrBeuserid(String userid) { 78 | 79 | attentionMapper.deleteByUorB(userid); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/CollectService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.liang.bean.Collect; 10 | import com.liang.dao.CollectMapper; 11 | 12 | @Service 13 | public class CollectService { 14 | 15 | @Autowired 16 | CollectMapper collectMapper; 17 | 18 | /** 19 | * 添加收藏 20 | * @param collect 21 | */ 22 | public void setCollect(Collect collect) { 23 | 24 | collectMapper.insert(collect); 25 | } 26 | 27 | /** 28 | * 删除收藏(按userid和fid) 29 | * @param collect 30 | */ 31 | public void deleteCollectUseridAndFid(Collect collect) { 32 | 33 | collectMapper.deleteByUF(collect); 34 | } 35 | 36 | /** 37 | * 按fid删除收藏信息 38 | * @param fid 39 | */ 40 | public void deleteCollectFid(String fid) { 41 | 42 | collectMapper.deleteByFid(fid); 43 | } 44 | 45 | /** 46 | * 删除该用户对应的收藏信息(按userid) 47 | * @param userid 48 | */ 49 | public void deleteCollectUserid(String userid) { 50 | 51 | collectMapper.deleteByUserid(userid); 52 | } 53 | 54 | /** 55 | * 删除收藏(按sid) 56 | * @param sid 57 | */ 58 | public void deleteCollect(String sid) { 59 | 60 | collectMapper.deleteByKey(sid); 61 | } 62 | 63 | /** 64 | * 查询收藏信息(无条件) 65 | * @return 66 | */ 67 | public List getCollect() { 68 | 69 | return collectMapper.selectCollect(); 70 | } 71 | 72 | /** 73 | * 按收藏者id和被收藏文章id进行查询 74 | * @param collect 75 | * @return 76 | */ 77 | public Collect getCollectFid(Collect collect) { 78 | return collectMapper.selectCollectByUF(collect); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/CommentService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import java.util.List; 4 | 5 | import com.liang.bean.impl.CommentImpl; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import com.liang.bean.Comment; 10 | import com.liang.dao.CommentMapper; 11 | 12 | @Service 13 | public class CommentService { 14 | 15 | @Autowired 16 | CommentMapper commentMapper; 17 | 18 | /** 19 | * 添加评论 20 | * @param comment 21 | */ 22 | public void setComment(Comment comment) { 23 | 24 | commentMapper.insert(comment); 25 | } 26 | 27 | /** 28 | * 按pid删除评论表 29 | * @param pid 30 | */ 31 | public void deleteComment(String pid) { 32 | 33 | commentMapper.deleteByKey(pid); 34 | } 35 | 36 | /** 37 | * 删除该用户对应的所有评论信息(按userid) 38 | * @param userid 39 | */ 40 | public void deleteCommentUserid(String userid) { 41 | 42 | commentMapper.deleteByUserid(userid); 43 | } 44 | 45 | /** 46 | * 按文章id(fid)查询评论表信息 47 | * @param fid 48 | * @return 49 | */ 50 | public List getCommentFid(String fid) { 51 | 52 | return commentMapper.selectCommentByFid(fid); 53 | } 54 | 55 | /** 56 | * 按文章id(fid)获取评论表信息(包含用户名、用户头像) 57 | * @param fid 58 | * @return 59 | */ 60 | public List getCommentImplFid(String fid) { 61 | 62 | return commentMapper.selectCommentImplByFid(fid); 63 | } 64 | 65 | /** 66 | * 按文章id(fid)查询该条文章的评论数 67 | * @param fid 68 | * @return 69 | */ 70 | public int getCountFid(String fid) { 71 | return commentMapper.selectCountByFid(fid); 72 | } 73 | 74 | /** 75 | * 最新评论 76 | * @return 77 | */ 78 | public List getNewComment() { 79 | return commentMapper.selectNewComment(); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/EnjoyService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import com.liang.bean.Enjoy; 4 | import com.liang.dao.EnjoyMapper; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | 10 | @Service 11 | public class EnjoyService { 12 | 13 | @Autowired 14 | EnjoyMapper enjoyMapper; 15 | 16 | /** 17 | * 添加点赞 18 | * @param enjoy 19 | */ 20 | public void setEnjoy(Enjoy enjoy) { 21 | 22 | enjoyMapper.insert(enjoy); 23 | } 24 | 25 | /** 26 | * 删除点赞(按eid) 27 | * @param eid 28 | */ 29 | public void deleteEnjoy(String eid) { 30 | 31 | enjoyMapper.deleteByKey(eid); 32 | } 33 | 34 | /** 35 | * 删除点赞(按userid和fid) 36 | * @param enjoy 37 | */ 38 | public void deleteEnjoyUseridAndFid(Enjoy enjoy) { 39 | 40 | enjoyMapper.deleteByUF(enjoy); 41 | } 42 | 43 | /** 44 | * 查询点赞信息(无条件) 45 | * @return 46 | */ 47 | public List getEnjoy() { 48 | 49 | return enjoyMapper.selectEnjoy(); 50 | } 51 | 52 | /** 53 | * 按点赞者id和被点赞文章id进行查询 54 | * @param enjoy 55 | * @return 56 | */ 57 | public Enjoy getEnjoyFid(Enjoy enjoy) { 58 | return enjoyMapper.selectEnjoyByUF(enjoy); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/PhotoProService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import com.liang.bean.PhotoPro; 4 | import com.liang.bean.impl.PhotoProImpl; 5 | import com.liang.dao.PhotoProMapper; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | @Service 12 | public class PhotoProService { 13 | 14 | @Autowired 15 | PhotoProMapper photoProMapper; 16 | 17 | /** 18 | * 创建相册 19 | * @param photoPro 20 | */ 21 | public void setPhotoPro(PhotoPro photoPro) { 22 | 23 | photoProMapper.insert(photoPro); 24 | } 25 | 26 | /** 27 | * 删除相册 28 | * @param fid 29 | */ 30 | public void deletePhotoPro(String fid) { 31 | 32 | photoProMapper.deleteByKey(fid); 33 | } 34 | 35 | /** 36 | * 编辑相册 37 | * @param photoPro 38 | */ 39 | public void updateName(PhotoPro photoPro) { 40 | photoProMapper.updateNameByKey(photoPro); 41 | } 42 | 43 | /** 44 | * 获取相册分类信息(按userid) 45 | * @param userid 46 | */ 47 | public List getPhotoPro(String userid) { 48 | 49 | return photoProMapper.selectPhotoProImplByUserid(userid); 50 | } 51 | 52 | /** 53 | * 按fid(相册id)查询相册信息 54 | * @param fid 55 | */ 56 | public PhotoPro selectByPrimaryKey(String fid) { 57 | return photoProMapper.selectPhotoProByKey(fid); 58 | } 59 | 60 | /** 61 | * 按userid和name(相册名)查询相册信息 62 | * @param photoPro 63 | * @return 64 | */ 65 | public List selectByName(PhotoPro photoPro) { 66 | return photoProMapper.selectPhotoProByUN(photoPro); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/PlateService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.liang.bean.Plate; 9 | import com.liang.dao.PlateMapper; 10 | 11 | @Service 12 | public class PlateService { 13 | 14 | @Autowired 15 | PlateMapper plateMapper; 16 | 17 | /** 18 | * 新增板块信息 19 | * @param plate 20 | */ 21 | public void setPlate(Plate plate) { 22 | 23 | plateMapper.insert(plate); 24 | } 25 | 26 | /** 27 | * 按bid删除板块信息 28 | * @param plate_delete 29 | */ 30 | public void deletePlate(Plate plate_delete) { 31 | 32 | plateMapper.deleteByKey(plate_delete.getBid()); 33 | } 34 | 35 | /** 36 | * 修改板块 37 | * @param plate 38 | */ 39 | public void updatePlate(Plate plate) { 40 | 41 | plateMapper.updateByKey(plate); 42 | } 43 | 44 | /** 45 | * 查询板块信息(无条件) 46 | * @return 47 | */ 48 | public List getPlate() { 49 | 50 | return plateMapper.selectPlate(); 51 | } 52 | 53 | /** 54 | * 按板块ID查询板块信息 55 | * @param bid 56 | * @return 57 | */ 58 | public Plate getPlateId(String bid) { 59 | 60 | return plateMapper.selectPlateByKey(bid); 61 | } 62 | 63 | /** 64 | * 板块名查询板块信息 65 | * @param plate 66 | * @return 67 | */ 68 | public List getPlateName(Plate plate) { 69 | 70 | return plateMapper.selectPlateByName(plate); 71 | } 72 | 73 | /** 74 | * 总板块数 75 | * @return 76 | */ 77 | public int getCount() { 78 | return plateMapper.selectCount(); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/TbPhotoService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import com.liang.bean.TbPhoto; 4 | import com.liang.dao.TbPhotoMapper; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | 10 | @Service 11 | public class TbPhotoService { 12 | 13 | @Autowired 14 | TbPhotoMapper tbPhotoMapper; 15 | 16 | /** 17 | * 上传照片 18 | * @param tbPhoto 19 | */ 20 | public void setTbPhoto(TbPhoto tbPhoto) { 21 | 22 | tbPhotoMapper.insert(tbPhoto); 23 | } 24 | 25 | /** 26 | * 删除某一张照片 27 | * @param xid 28 | */ 29 | public void deleteTbPhoto(String xid) { 30 | 31 | tbPhotoMapper.deleteByKey(xid); 32 | } 33 | 34 | /** 35 | * 删除相册对应的照片 36 | * @param fid 37 | */ 38 | public void deleteTbPhotoFid(String fid) { 39 | 40 | tbPhotoMapper.deleteByFid(fid); 41 | } 42 | 43 | /** 44 | * 获取相册分类下的对应的照片 45 | * @param tbPhoto 46 | * @return 47 | */ 48 | public List getTbPhoto(TbPhoto tbPhoto) { 49 | 50 | return tbPhotoMapper.selectTbPhotoByFU(tbPhoto); 51 | } 52 | 53 | /** 54 | * 按xid查询照片信息 55 | * @param xid 56 | */ 57 | public TbPhoto getTbPhotoXid(String xid) { 58 | 59 | return tbPhotoMapper.selectTbPhotoByKey(xid); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/liang/service/ViaService.java: -------------------------------------------------------------------------------- 1 | package com.liang.service; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Service; 5 | 6 | import com.liang.bean.Via; 7 | import com.liang.dao.ViaMapper; 8 | 9 | @Service 10 | public class ViaService { 11 | 12 | @Autowired 13 | ViaMapper viaMapper; 14 | 15 | /** 16 | * 上传用户头像(插入)(via) 17 | * 18 | * @param via 19 | */ 20 | public void setVia(Via via) { 21 | 22 | viaMapper.insert(via); 23 | } 24 | 25 | /** 26 | * 删除用户对应的头像信息 27 | * @param userid 28 | */ 29 | public void deleteVia(String userid) { 30 | 31 | viaMapper.deleteByKey(userid); 32 | } 33 | 34 | /** 35 | * 按userid修改用户头像信息(via) 36 | * @param via 37 | */ 38 | public void updateVia(Via via) { 39 | 40 | viaMapper.updateByKey(via); 41 | } 42 | 43 | /** 44 | * 按userid查询用户头像信息(via) 45 | * @param userid 46 | * @return 47 | */ 48 | public Via getVia(String userid) { 49 | 50 | return viaMapper.selectViaByKey(userid); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/liang/test/MBGTest.java: -------------------------------------------------------------------------------- 1 | package com.liang.test; 2 | 3 | import java.io.File; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | import org.mybatis.generator.api.MyBatisGenerator; 8 | import org.mybatis.generator.config.Configuration; 9 | import org.mybatis.generator.config.xml.ConfigurationParser; 10 | import org.mybatis.generator.internal.DefaultShellCallback; 11 | 12 | public class MBGTest { 13 | 14 | public static void main(String[] args) throws Exception{ 15 | 16 | List warnings = new ArrayList(); 17 | boolean overwrite = true; 18 | File configFile = new File("mbg.xml"); 19 | ConfigurationParser cp = new ConfigurationParser(warnings); 20 | Configuration config = cp.parseConfiguration(configFile); 21 | DefaultShellCallback callback = new DefaultShellCallback(overwrite); 22 | MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); 23 | myBatisGenerator.generate(null); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/liang/utils/IpUtil.java: -------------------------------------------------------------------------------- 1 | package com.liang.utils; 2 | 3 | import java.net.*; 4 | import java.util.Map; 5 | import java.util.StringTokenizer; 6 | 7 | import com.liang.bean.Visit; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Component; 10 | import javax.servlet.http.HttpServletRequest; 11 | 12 | @Component 13 | public class IpUtil { 14 | @Autowired 15 | QueryIp queryIp; 16 | 17 | /** 18 | * 构造Visit 19 | * @param ip 20 | * @param os 操作系统 21 | * @return 22 | */ 23 | public Visit getVisit(String ip, String os){ 24 | // 区域信息 25 | Map map; 26 | Visit visit = new Visit(); 27 | visit.setVisitip(ip); 28 | visit.setVisitos(os); 29 | // 主机名 30 | String hostName; 31 | try { 32 | hostName = InetAddress.getLocalHost().getHostName(); 33 | visit.setVisithostname(hostName); 34 | } catch (UnknownHostException e1) { 35 | e1.printStackTrace(); 36 | } 37 | map = queryIp.queryIP(ip); 38 | if (map.get("country") != null) { 39 | visit.setVisitcountry(map.get("country").toString()); 40 | } 41 | if (map.get("region") != null) { 42 | visit.setVisitprovince(map.get("region").toString()); 43 | } 44 | if (map.get("city") != null) { 45 | visit.setVisitcity(map.get("city").toString()); 46 | } 47 | 48 | return visit; 49 | } 50 | 51 | /** 52 | * 获取访问者操作系统 53 | * @param request 54 | * @return 55 | */ 56 | public String getOS(HttpServletRequest request){ 57 | return null; 58 | } 59 | 60 | /** 61 | * 获取访问者ip 62 | * @param request 63 | * @return 64 | */ 65 | public String getIP(HttpServletRequest request){ 66 | return null; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/liang/utils/PathUtil.java: -------------------------------------------------------------------------------- 1 | package com.liang.utils; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | import org.springframework.context.annotation.PropertySource; 5 | import org.springframework.stereotype.Component; 6 | 7 | @PropertySource({"classpath:pathconfig.properties"}) 8 | @Component 9 | public class PathUtil { 10 | // 文章图片(题图) 11 | @Value("${articlePath}") 12 | private String articlePath; 13 | // 文章图片(配图) 14 | @Value("${illustrationPath}") 15 | private String illustrationPath; 16 | // 用户头像 17 | @Value("${userPath}") 18 | private String userPath; 19 | // 用户相册 20 | @Value("${photoPath}") 21 | private String photoPath; 22 | 23 | public String getArticlePath() { 24 | return articlePath; 25 | } 26 | 27 | public void setArticlePath(String articlePath) { 28 | this.articlePath = articlePath; 29 | } 30 | 31 | public String getIllustrationPath() { 32 | return illustrationPath; 33 | } 34 | 35 | public void setIllustrationPath(String illustrationPath) { 36 | this.illustrationPath = illustrationPath; 37 | } 38 | 39 | public String getUserPath() { 40 | return userPath; 41 | } 42 | 43 | public void setUserPath(String userPath) { 44 | this.userPath = userPath; 45 | } 46 | 47 | public String getPhotoPath() { 48 | return photoPath; 49 | } 50 | 51 | public void setPhotoPath(String photoPath) { 52 | this.photoPath = photoPath; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/com/liang/utils/PostAndPutCommonsMultipartResolver.java: -------------------------------------------------------------------------------- 1 | package com.liang.utils; 2 | 3 | import org.apache.commons.fileupload.FileUploadBase; 4 | import org.apache.commons.fileupload.servlet.ServletRequestContext; 5 | import org.springframework.web.multipart.commons.CommonsMultipartResolver; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | 9 | /** 10 | * 处理PUT提交参数(只对文件表单生效) 11 | */ 12 | public class PostAndPutCommonsMultipartResolver extends CommonsMultipartResolver { 13 | 14 | @Override 15 | public boolean isMultipart(HttpServletRequest request) { 16 | if ("POST".equalsIgnoreCase(request.getMethod()) || "PUT".equalsIgnoreCase(request.getMethod())) { 17 | return FileUploadBase.isMultipartContent(new ServletRequestContext(request)); 18 | } 19 | return false; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/com/liang/utils/StringUtil.java: -------------------------------------------------------------------------------- 1 | package com.liang.utils; 2 | 3 | public class StringUtil { 4 | /** 5 | * 字符串为空 6 | * @param data 7 | * @return 8 | */ 9 | public static boolean isEmpty(String data){ 10 | return data == null || "".equals(data); 11 | } 12 | 13 | /** 14 | * 字符串不为空 15 | * @param data 16 | * @return 17 | */ 18 | public static boolean isNotEmpty(String data){ 19 | return !isEmpty(data); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/liang/utils/UUIDUtil.java: -------------------------------------------------------------------------------- 1 | package com.liang.utils; 2 | 3 | import java.text.DateFormat; 4 | import java.text.SimpleDateFormat; 5 | import java.util.Date; 6 | import java.util.UUID; 7 | 8 | /** 9 | * @author maliang 10 | * @create 2019-12-28 17:03 11 | */ 12 | public class UUIDUtil { 13 | private static final DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); 14 | 15 | /** 16 | * 构造uuid(当前时间+uuid) 17 | * @return 18 | */ 19 | public static String getRandomUUID(){ 20 | String uuid = format.format(new Date()) + "-" + UUID.randomUUID().toString().replace("-",""); 21 | 22 | return uuid; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/resources/76.properties: -------------------------------------------------------------------------------- 1 | # 配置你自己七牛云对应的AccessKey和SecretKey(怎么获取自己谷歌/百度) 2 | 76.AccessKey=********************** 3 | 76.SecretKey=********************** 4 | 5 | # 要上传的对象存储空间(配置你的实际存储空间名) 6 | 76.bucket=********************** 7 | 8 | # 七牛云对象存储空间对应的域名(上面存储空间对应的域名) 9 | 76.domin=********************** -------------------------------------------------------------------------------- /src/main/resources/dbconfig.properties: -------------------------------------------------------------------------------- 1 | # MySQL连接的配置文件 2 | jdbc.jdbcUrl=jdbc:mysql://localhost:3306/bbs_test?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai 3 | jdbc.driverClass=com.mysql.cj.jdbc.Driver 4 | # 配置你mysql的实际用户名 5 | jdbc.user=********************** 6 | # 配置你mysql的实际密码 7 | jdbc.password=********************** -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | #log4j.rootLogger=DEBUG,INFO,Console,ERROR,stdout 2 | log4j.rootLogger=INFO,Console,ERROR,stdout 3 | 4 | # Druid 5 | log4j.logger.druid.sql=DEBUG 6 | log4j.logger.druid.sql.DataSource=warn 7 | log4j.logger.druid.sql.Connection=warn 8 | log4j.logger.druid.sql.Statement=DEBUG 9 | log4j.logger.druid.sql.ResultSet=warn 10 | 11 | log4j.appender.Console=org.apache.log4j.ConsoleAppender 12 | log4j.appender.Console.Target=System.out 13 | log4j.appender.Console.layout=org.apache.log4j.PatternLayout 14 | log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n -------------------------------------------------------------------------------- /src/main/resources/mapper/AdminMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | aid, aname, apassword, create_time, update_time 13 | 14 | 15 | 16 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/resources/mapper/ViaMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | userid, photo, update_time 12 | 13 | 14 | 15 | 16 | insert into via 17 | values (#{userid,jdbcType=VARCHAR}, 18 | #{photo,jdbcType=VARCHAR}, 19 | now()) 20 | 21 | 22 | 23 | 24 | delete from via 25 | where userid = #{userid,jdbcType=VARCHAR} 26 | 27 | 28 | 29 | 30 | update via 31 | set photo = #{photo,jdbcType=VARCHAR}, 32 | update_time = now() 33 | where userid = #{userid,jdbcType=INTEGER} 34 | 35 | 36 | 37 | 44 | 45 | -------------------------------------------------------------------------------- /src/main/resources/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/main/resources/pageconfig.properties: -------------------------------------------------------------------------------- 1 | # 用户系统-文章初始条数(第一页) 2 | articlePageSize=24 3 | # 用户系统-文章追加条数(出第一页外) 4 | articleDefaultPageSize=10 5 | 6 | # 管理系统-用户初始条数(第一页) 7 | adminUserPageSize=13 8 | # 管理系统-用户追加条数(出第一页外) 9 | adminUserDefaultPageSize=13 10 | # 管理系统-文章初始条数(第一页) 11 | adminArticlePageSize=14 12 | # 管理系统-文章追加条数(出第一页外) 13 | adminArticleDefaultPageSize=14 14 | # 管理系统-访问记录初始条数(第一页) 15 | adminVisitPageSize=17 16 | # 管理系统-访问记录追加条数(出第一页外) 17 | adminVisitDefaultPageSize=17 -------------------------------------------------------------------------------- /src/main/resources/pathconfig.properties: -------------------------------------------------------------------------------- 1 | # 文件保存公共路径 2 | data.store.local=/home/data 3 | 4 | # 文章图片(题图) 5 | articlePath=article 6 | # 文章图片(配图) 7 | illustrationPath=illustration 8 | # 用户头像 9 | userPath=user 10 | # 用户相册 11 | photoPath=photo 12 | 13 | # 设定上传源文件允许的最大值(1024*1024*10=10M) 14 | source.file.length=10485760 15 | # 设定压缩后的图片大小不得大于(1024*200=200K) 16 | compress.img.length=204800 17 | # 需要压缩的图片格式 18 | compress.img.suffix=png,jpg,jpeg,bmp 19 | 20 | ##允许上传的文件后缀名,不包含"." 21 | #data.store.local.suffix=png,jpg,jpeg 22 | data.store.local.suffix=* -------------------------------------------------------------------------------- /src/main/resources/tokenconfig.properties: -------------------------------------------------------------------------------- 1 | # 自己去“http://user.ip138.com/”网站免费申请ip解析(1000次),1000次以后需要购买(100元20w次) 2 | token=********************** -------------------------------------------------------------------------------- /src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Built-By: 92481 3 | Build-Jdk: 1.8.0_151 4 | Created-By: Maven Integration for Eclipse 5 | 6 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/lib/jave-1.0.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/WEB-INF/lib/jave-1.0.2.jar -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/views/admin.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4 | 5 | 6 | 7 | 8 | 管理员(后台) 9 | <% 10 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 11 | %> 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/webapp/admin/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4 | 5 | 6 | 7 | 8 | 南生论坛-管理系统 9 | <% 10 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 11 | %> 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/main/webapp/admin/paging.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 分页 5 | 6 | 7 |
    8 | 9 |
  • 10 | 首页 11 |
  • 12 | 13 |
  • 14 | 15 | 16 | 17 | 18 |
  • 19 | 20 |
  • 21 | 22 |
  • 23 | 24 |
  • 25 | 26 | 27 | 28 | 29 |
  • 30 | 31 |
  • 32 | 尾页 33 |
  • 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /src/main/webapp/admin/plate.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 新增板块 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 42 | 43 | -------------------------------------------------------------------------------- /src/main/webapp/admin/plateEdit.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 修改板块 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 41 | 42 | -------------------------------------------------------------------------------- /src/main/webapp/album.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 我的相册-相册 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/webapp/article.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 文章详情 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/webapp/content/collectArticle.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4 | 5 | 6 | 7 | 8 | 收藏文章展示 9 | <% 10 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 11 | %> 12 | 13 | 14 | 15 |
16 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /src/main/webapp/content/progress.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 进度条 5 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/main/webapp/content/top.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 返回顶部 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 33 | 34 | 43 | 44 | 45 |
46 |
    47 |
  • 48 | 49 |
  • 50 |
51 |
52 | 53 | 54 | -------------------------------------------------------------------------------- /src/main/webapp/donate.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 南生论坛-捐赠详情 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/donateCharts.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | 南生论坛-捐赠图表 5 | <% 6 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 7 | %> 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 南生论坛-首页 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/main/webapp/list.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 南生论坛-首页 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/myself.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 个人中心 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/webapp/notLogin.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 你还未登录,请先登录! 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/webapp/other.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 他人主页 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/webapp/photo.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 我的相册-照片 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/main/webapp/posted.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8"%> 3 | 4 | 5 | 6 | 7 | 南生论坛-写文章 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/main/webapp/static/bootstrap/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /src/main/webapp/static/css/photo.css: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------相册----------------------------------------------------------------*/ 2 | /* 共用css */ 3 | * { 4 | margin: 0; 5 | padding: 0 6 | } 7 | 8 | ul, li { 9 | list-style: none; 10 | } 11 | 12 | .menu { 13 | position: relative; 14 | margin-left: 70px; 15 | padding-top: 10px 16 | } 17 | 18 | .menu li { 19 | float: left; 20 | width: 80px; 21 | text-align: center; 22 | position: relative; 23 | line-height: 46px; 24 | } 25 | 26 | .menu li a { 27 | display: block; 28 | text-decoration: none; 29 | color: rgb(44, 138, 187); 30 | font-size: 15px; 31 | font-weight: bold; 32 | } 33 | 34 | .menu li a:hover { 35 | color: #ffffff; 36 | } 37 | 38 | .menu li ul { 39 | display: none; 40 | width: 80px; 41 | position: absolute; 42 | top: 15px; 43 | left: -50px; 44 | background-color: rgba(0, 0, 0, 0.07); 45 | } 46 | 47 | .menu li ul li { 48 | font-size: 12px; 49 | height: 28px; 50 | line-height: 28px 51 | } 52 | 53 | .menu li ul li a { 54 | font-size: 14px; 55 | } 56 | 57 | .menu li ul li a:hover { 58 | background: #00aef3; 59 | } -------------------------------------------------------------------------------- /src/main/webapp/static/css/top.css: -------------------------------------------------------------------------------- 1 | /* jump */ 2 | #jump { 3 | position: fixed; 4 | top: 400px; 5 | right: 100px; 6 | width: 40px; 7 | z-index: 400; 8 | } 9 | 10 | * html #jump { 11 | position: absolute; 12 | /*top: expression(documentElement.scrollTop + "px");*/ 13 | margin: 300px 0 0 0; 14 | } 15 | 16 | #jump li { 17 | height: 50px; 18 | overflow: hidden; 19 | } 20 | 21 | #top { 22 | display: block; 23 | width: 40px; 24 | height: 42px; 25 | overflow: hidden; 26 | cursor: pointer; 27 | } -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/.gitignore: -------------------------------------------------------------------------------- 1 | logs 2 | *.log 3 | *.pid 4 | *.seed 5 | node_modules/ 6 | .sass-cache/ 7 | research/ 8 | test/ 9 | backup/ 10 | examples/uploads/**/* 11 | *.bat 12 | *.sh 13 | .project 14 | .url 15 | css/*.map -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esnext": true, 3 | "bitwise": true, 4 | "camelcase": true, 5 | "curly": true, 6 | "eqeqeq": true, 7 | "immed": true, 8 | "indent": 4, 9 | "latedef": true, 10 | "newcap": true, 11 | "noarg": true, 12 | "quotmark": "double", 13 | "regexp": true, 14 | "undef": true, 15 | "unused": true, 16 | "strict": true, 17 | "trailing": true, 18 | "smarttabs": true, 19 | "white": true 20 | } -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/BUGS.md: -------------------------------------------------------------------------------- 1 | #Bugs 2 | 3 | > 说明:删除线表示已经解决。 4 | 5 | ####IE8 6 | 7 | - ~~不能加载;~~ 8 | - flowChart(流程图)、sequenceDiagram(序列图)不支持IE8; 9 | - ~~不支持Markdown转HTML页面解析预览;~~ 10 | 11 | ####IE8 & IE9 & IE10 12 | 13 | - KaTeX会出现解析错误,但不影响程序运行; 14 | 15 | ####Sea.js 16 | 17 | - ~~Raphael.js无法加载;~~ 18 | 19 | ####Require.js 20 | 21 | - ~~CodeMirror编辑器的代码无法高亮;~~ 22 | - ~~sequenceDiagram不支持: `Uncaught TypeError: Cannot call method 'isArray' of undefined.`~~ 23 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 pandao 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "editor.md", 3 | "version": "1.5.0", 4 | "homepage": "https://github.com/pandao/editor.md", 5 | "authors": [ 6 | "Pandao " 7 | ], 8 | "description": "Open source online markdown editor.", 9 | "keywords": [ 10 | "editor.md", 11 | "markdown", 12 | "editor" 13 | ], 14 | "license": "MIT", 15 | "ignore": [ 16 | "**/.*", 17 | "research", 18 | "docs", 19 | "node_modules", 20 | "bower_components", 21 | "test", 22 | "tests" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/css/editormd.logo.min.css: -------------------------------------------------------------------------------- 1 | /*! Editor.md v1.5.0 | editormd.logo.min.css | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ 2 | /*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */@font-face{font-family:editormd-logo;src:url(../fonts/editormd-logo.eot?-5y8q6h);src:url(.../fonts/editormd-logo.eot?#iefix-5y8q6h)format("embedded-opentype"),url(../fonts/editormd-logo.woff?-5y8q6h)format("woff"),url(../fonts/editormd-logo.ttf?-5y8q6h)format("truetype"),url(../fonts/editormd-logo.svg?-5y8q6h#icomoon)format("svg");font-weight:400;font-style:normal}.editormd-logo,.editormd-logo-1x,.editormd-logo-2x,.editormd-logo-3x,.editormd-logo-4x,.editormd-logo-5x,.editormd-logo-6x,.editormd-logo-7x,.editormd-logo-8x{font-family:editormd-logo;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;font-size:inherit;line-height:1;display:inline-block;text-rendering:auto;vertical-align:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.editormd-logo-1x:before,.editormd-logo-2x:before,.editormd-logo-3x:before,.editormd-logo-4x:before,.editormd-logo-5x:before,.editormd-logo-6x:before,.editormd-logo-7x:before,.editormd-logo-8x:before,.editormd-logo:before{content:"\e1987"}.editormd-logo-1x{font-size:1em}.editormd-logo-lg{font-size:1.2em}.editormd-logo-2x{font-size:2em}.editormd-logo-3x{font-size:3em}.editormd-logo-4x{font-size:4em}.editormd-logo-5x{font-size:5em}.editormd-logo-6x{font-size:6em}.editormd-logo-7x{font-size:7em}.editormd-logo-8x{font-size:8em}.editormd-logo-color{color:#2196F3} -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/docs/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Home 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |

Home

21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |

30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 | 55 | 56 |
57 | 58 |
59 | Documentation generated by JSDoc 3.3.0 on Mon Jun 08 2015 01:07:40 GMT+0800 (中国标准时间) 60 |
61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/scripts/linenumber.js: -------------------------------------------------------------------------------- 1 | /*global document */ 2 | (function() { 3 | var source = document.getElementsByClassName('prettyprint source linenums'); 4 | var i = 0; 5 | var lineNumber = 0; 6 | var lineId; 7 | var lines; 8 | var totalLines; 9 | var anchorHash; 10 | 11 | if (source && source[0]) { 12 | anchorHash = document.location.hash.substring(1); 13 | lines = source[0].getElementsByTagName('li'); 14 | totalLines = lines.length; 15 | 16 | for (; i < totalLines; i++) { 17 | lineNumber++; 18 | lineId = 'line' + lineNumber; 19 | lines[i].id = lineId; 20 | if (lineId === anchorHash) { 21 | lines[i].className += ' selected'; 22 | } 23 | } 24 | } 25 | })(); 26 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/docs/scripts/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", 2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); 3 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/code-fold.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Code folding - Editor.md examples 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |

Code folding

14 |

Switch code folding : Press Ctrl + Q / Command + Q

15 |
16 |
17 | 18 |
19 |
20 | 21 | 22 | 43 | 44 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/flowchart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FlowChart - Editor.md examples 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |

FlowChart 流程图

14 |

Based on flowchart.js:http://adrai.github.io/flowchart.js/

15 |
16 |
17 | 37 |
38 |
39 | 40 | 41 | 42 | 52 | 53 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/images/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/examples/images/4.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/images/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/examples/images/7.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/images/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/examples/images/8.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/images/editormd-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/examples/images/editormd-screenshot.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/onchange.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Onchange - Editor.md examples 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |

Onchange event

14 |

Plaese press F12, open the develop tools.

15 |

16 |
17 |
18 | 29 |
30 |
31 | 32 | 33 | 48 | 49 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/php/post.php: -------------------------------------------------------------------------------- 1 | "; 7 | echo htmlspecialchars($_POST["test-editormd-markdown-doc"]); 8 | 9 | if(isset($_POST["test-editormd-html-code"])) { 10 | echo "

"; 11 | echo htmlspecialchars($_POST["test-editormd-html-code"]); 12 | } 13 | 14 | echo ""; 15 | } 16 | 17 | exit; 18 | ?> -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/php/upload.php: -------------------------------------------------------------------------------- 1 | array('gif', 'jpg', 'jpeg', 'png', 'bmp') 29 | ); 30 | 31 | $name = 'editormd-image-file'; 32 | 33 | if (isset($_FILES[$name])) 34 | { 35 | $imageUploader = new EditorMdUploader($savePath, $saveURL, $formats['image'], false); // Ymdhis表示按日期生成文件名,利用date()函数 36 | 37 | $imageUploader->config(array( 38 | 'maxSize' => 1024, // 允许上传的最大文件大小,以KB为单位,默认值为1024 39 | 'cover' => true // 是否覆盖同名文件,默认为true 40 | )); 41 | 42 | if ($imageUploader->upload($name)) 43 | { 44 | $imageUploader->message('上传成功!', 1); 45 | } 46 | else 47 | { 48 | $imageUploader->message('上传失败!', 0); 49 | } 50 | } 51 | ?> -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/examples/php/upload_callback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 34 | 35 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/editormd-logo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/editormd-logo.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/editormd-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/editormd-logo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/editormd-logo.ttf -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/editormd-logo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/editormd-logo.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/loading.gif -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/loading@2x.gif -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/loading@3x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/loading@3x.gif -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-16x16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-16x16.ico -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-24x24.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-24x24.ico -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-32x32.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-32x32.ico -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-48x48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-48x48.ico -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-64x64.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-favicon-64x64.ico -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-114x114.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-120x120.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-144x144.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-16x16.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-180x180.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-240x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-240x240.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-24x24.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-320x320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-320x320.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-32x32.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-48x48.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-57x57.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-64x64.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-72x72.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/editormd-logo-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/editormd-logo-96x96.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/images/logos/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/editor.md-master/images/logos/vi.png -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 by Marijn Haverbeke and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror 2 | [![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror) 3 | [![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror) 4 | [Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/) 5 | 6 | CodeMirror is a JavaScript component that provides a code editor in 7 | the browser. When a mode is available for the language you are coding 8 | in, it will color your code, and optionally help with indentation. 9 | 10 | The project page is http://codemirror.net 11 | The manual is at http://codemirror.net/doc/manual.html 12 | The contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md) 13 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/display/fullscreen.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) { 15 | if (old == CodeMirror.Init) old = false; 16 | if (!old == !val) return; 17 | if (val) setFullscreen(cm); 18 | else setNormal(cm); 19 | }); 20 | 21 | function setFullscreen(cm) { 22 | var wrap = cm.getWrapperElement(); 23 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset, 24 | width: wrap.style.width, height: wrap.style.height}; 25 | wrap.style.width = ""; 26 | wrap.style.height = "auto"; 27 | wrap.className += " CodeMirror-fullscreen"; 28 | document.documentElement.style.overflow = "hidden"; 29 | cm.refresh(); 30 | } 31 | 32 | function setNormal(cm) { 33 | var wrap = cm.getWrapperElement(); 34 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, ""); 35 | document.documentElement.style.overflow = ""; 36 | var info = cm.state.fullScreenRestore; 37 | wrap.style.width = info.width; wrap.style.height = info.height; 38 | window.scrollTo(info.scrollLeft, info.scrollTop); 39 | cm.refresh(); 40 | } 41 | }); 42 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/fold/indent-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerHelper("fold", "indent", function(cm, start) { 15 | var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line); 16 | if (!/\S/.test(firstLine)) return; 17 | var getIndent = function(line) { 18 | return CodeMirror.countColumn(line, null, tabSize); 19 | }; 20 | var myIndent = getIndent(firstLine); 21 | var lastLineInFold = null; 22 | // Go through lines until we find a line that definitely doesn't belong in 23 | // the block we're folding, or to the end. 24 | for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) { 25 | var curLine = cm.getLine(i); 26 | var curIndent = getIndent(curLine); 27 | if (curIndent > myIndent) { 28 | // Lines with a greater indent are considered part of the block. 29 | lastLineInFold = i; 30 | } else if (!/\S/.test(curLine)) { 31 | // Empty lines might be breaks within the block we're trying to fold. 32 | } else { 33 | // A non-empty line at an indent equal to or less than ours marks the 34 | // start of another block. 35 | break; 36 | } 37 | } 38 | if (lastLineInFold) return { 39 | from: CodeMirror.Pos(start.line, firstLine.length), 40 | to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length) 41 | }; 42 | }); 43 | 44 | }); 45 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/fold/markdown-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerHelper("fold", "markdown", function(cm, start) { 15 | var maxDepth = 100; 16 | 17 | function isHeader(lineNo) { 18 | var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0)); 19 | return tokentype && /\bheader\b/.test(tokentype); 20 | } 21 | 22 | function headerLevel(lineNo, line, nextLine) { 23 | var match = line && line.match(/^#+/); 24 | if (match && isHeader(lineNo)) return match[0].length; 25 | match = nextLine && nextLine.match(/^[=\-]+\s*$/); 26 | if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2; 27 | return maxDepth; 28 | } 29 | 30 | var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1); 31 | var level = headerLevel(start.line, firstLine, nextLine); 32 | if (level === maxDepth) return undefined; 33 | 34 | var lastLineNo = cm.lastLine(); 35 | var end = start.line, nextNextLine = cm.getLine(end + 2); 36 | while (end < lastLineNo) { 37 | if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break; 38 | ++end; 39 | nextLine = nextNextLine; 40 | nextNextLine = cm.getLine(end + 2); 41 | } 42 | 43 | return { 44 | from: CodeMirror.Pos(start.line, firstLine.length), 45 | to: CodeMirror.Pos(end, cm.getLine(end).length) 46 | }; 47 | }); 48 | 49 | }); 50 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | li.CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 5 | 6 | // declare global: coffeelint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 19 | var found = []; 20 | var parseError = function(err) { 21 | var loc = err.lineNumber; 22 | found.push({from: CodeMirror.Pos(loc-1, 0), 23 | to: CodeMirror.Pos(loc, 0), 24 | severity: err.level, 25 | message: err.message}); 26 | }; 27 | try { 28 | var res = coffeelint.lint(text); 29 | for(var i = 0; i < res.length; i++) { 30 | parseError(res[i]); 31 | } 32 | } catch(e) { 33 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 34 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 35 | severity: 'error', 36 | message: e.message}); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/scroll/scrollpastend.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) { 15 | if (old && old != CodeMirror.Init) { 16 | cm.off("change", onChange); 17 | cm.off("refresh", updateBottomMargin); 18 | cm.display.lineSpace.parentNode.style.paddingBottom = ""; 19 | cm.state.scrollPastEndPadding = null; 20 | } 21 | if (val) { 22 | cm.on("change", onChange); 23 | cm.on("refresh", updateBottomMargin); 24 | updateBottomMargin(cm); 25 | } 26 | }); 27 | 28 | function onChange(cm, change) { 29 | if (CodeMirror.changeEnd(change).line == cm.lastLine()) 30 | updateBottomMargin(cm); 31 | } 32 | 33 | function updateBottomMargin(cm) { 34 | var padding = ""; 35 | if (cm.lineCount() > 1) { 36 | var totalH = cm.display.scroller.clientHeight - 30, 37 | lastLineH = cm.getLineHandle(cm.lastLine()).height; 38 | padding = (totalH - lastLineH) + "px"; 39 | } 40 | if (cm.state.scrollPastEndPadding != padding) { 41 | cm.state.scrollPastEndPadding = padding; 42 | cm.display.lineSpace.parentNode.style.paddingBottom = padding; 43 | cm.setSize(); 44 | } 45 | } 46 | }); 47 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/scroll/simplescrollbars.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div { 2 | position: absolute; 3 | background: #ccc; 4 | -moz-box-sizing: border-box; 5 | box-sizing: border-box; 6 | border: 1px solid #bbb; 7 | border-radius: 2px; 8 | } 9 | 10 | .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical { 11 | position: absolute; 12 | z-index: 6; 13 | background: #eee; 14 | } 15 | 16 | .CodeMirror-simplescroll-horizontal { 17 | bottom: 0; left: 0; 18 | height: 8px; 19 | } 20 | .CodeMirror-simplescroll-horizontal div { 21 | bottom: 0; 22 | height: 100%; 23 | } 24 | 25 | .CodeMirror-simplescroll-vertical { 26 | right: 0; top: 0; 27 | width: 8px; 28 | } 29 | .CodeMirror-simplescroll-vertical div { 30 | right: 0; 31 | width: 100%; 32 | } 33 | 34 | 35 | .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler { 36 | display: none; 37 | } 38 | 39 | .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div { 40 | position: absolute; 41 | background: #bcd; 42 | border-radius: 3px; 43 | } 44 | 45 | .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical { 46 | position: absolute; 47 | z-index: 6; 48 | } 49 | 50 | .CodeMirror-overlayscroll-horizontal { 51 | bottom: 0; left: 0; 52 | height: 6px; 53 | } 54 | .CodeMirror-overlayscroll-horizontal div { 55 | bottom: 0; 56 | height: 100%; 57 | } 58 | 59 | .CodeMirror-overlayscroll-vertical { 60 | right: 0; top: 0; 61 | width: 6px; 62 | } 63 | .CodeMirror-overlayscroll-vertical div { 64 | right: 0; 65 | width: 100%; 66 | } 67 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | var console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": ["lib/codemirror.js", "lib/codemirror.css"], 5 | "ignore": [ 6 | "**/.*", 7 | "node_modules", 8 | "components", 9 | "bin", 10 | "demo", 11 | "doc", 12 | "test", 13 | "index.html", 14 | "package.json" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("diff", function() { 15 | 16 | var TOKEN_NAMES = { 17 | '+': 'positive', 18 | '-': 'negative', 19 | '@': 'meta' 20 | }; 21 | 22 | return { 23 | token: function(stream) { 24 | var tw_pos = stream.string.search(/[\t ]+?$/); 25 | 26 | if (!stream.sol() || tw_pos === 0) { 27 | stream.skipToEnd(); 28 | return ("error " + ( 29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 30 | } 31 | 32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 33 | 34 | if (tw_pos === -1) { 35 | stream.skipToEnd(); 36 | } else { 37 | stream.pos = tw_pos; 38 | } 39 | 40 | return token_name; 41 | } 42 | }; 43 | }); 44 | 45 | CodeMirror.defineMIME("text/x-diff", "diff"); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/ecl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: ECL mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

ECL mode

27 |
45 | 48 | 49 |

Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

50 |

MIME types defined: text/x-ecl.

51 | 52 |
53 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/gherkin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Gherkin mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Gherkin mode

27 |
42 | 45 | 46 |

MIME types defined: text/x-feature.

47 | 48 |
49 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/http/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HTTP mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

HTTP mode

27 | 28 | 29 |
39 | 40 | 43 | 44 |

MIME types defined: message/http.

45 |
46 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/ntriples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: NTriples mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 28 | 29 |
30 |

NTriples mode

31 |
32 | 39 |
40 | 41 | 44 |

MIME types defined: text/n-triples.

45 |
46 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/pascal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Pascal mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Pascal mode

27 | 28 | 29 |
52 | 53 | 59 | 60 |

MIME types defined: text/x-pascal.

61 |
62 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/pig/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Pig Latin mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Pig Latin mode

27 |
39 | 40 | 47 | 48 |

49 | Simple mode that handles Pig Latin language. 50 |

51 | 52 |

MIME type defined: text/x-pig 53 | (PIG code) 54 | 55 |

56 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/properties/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Properties files mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Properties files mode

27 |
46 | 49 | 50 |

MIME types defined: text/x-properties, 51 | text/x-ini.

52 | 53 |
54 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/ruby/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 7 | 8 | MT("divide_equal_operator", 9 | "[variable bar] [operator /=] [variable foo]"); 10 | 11 | MT("divide_equal_operator_no_spacing", 12 | "[variable foo][operator /=][number 42]"); 13 | 14 | })(); 15 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/rust/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Rust mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Rust mode

27 | 28 | 29 |
52 | 53 | 58 | 59 |

MIME types defined: text/x-rustsrc.

60 |
61 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/solr/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Solr mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 20 | 33 | 34 |
35 |

Solr mode

36 | 37 |
38 | 47 |
48 | 49 | 55 | 56 |

MIME types defined: text/x-solr.

57 |
58 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/spreadsheet/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Spreadsheet mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

Spreadsheet mode

28 |
29 | 30 | 37 | 38 |

MIME types defined: text/x-spreadsheet.

39 | 40 |

The Spreadsheet Mode

41 |

Created by Robert Plummer

42 |
43 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/turtle/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Turtle mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Turtle mode

27 |
41 | 47 | 48 |

MIME types defined: text/turtle.

49 | 50 |
51 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/vbscript/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: VBScript mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

VBScript mode

27 | 28 | 29 |
46 | 47 | 53 | 54 |

MIME types defined: text/vbscript.

55 |
56 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/mode/z80/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Z80 assembly mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Z80 assembly mode

27 | 28 | 29 |
44 | 45 | 50 | 51 |

MIME type defined: text/x-z80.

52 |
53 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": "lib/codemirror.js", 5 | "description": "In-browser code editing made bearable", 6 | "licenses": [{"type": "MIT", 7 | "url": "http://codemirror.net/LICENSE"}], 8 | "directories": {"lib": "./lib"}, 9 | "scripts": {"test": "node ./test/run.js"}, 10 | "devDependencies": {"node-static": "0.6.0", 11 | "phantomjs": "1.9.2-5", 12 | "blint": ">=0.1.1"}, 13 | "bugs": "http://github.com/codemirror/CodeMirror/issues", 14 | "keywords": ["JavaScript", "CodeMirror", "Editor"], 15 | "homepage": "http://codemirror.net", 16 | "maintainers":[{"name": "Marijn Haverbeke", 17 | "email": "marijnh@gmail.com", 18 | "web": "http://marijnhaverbeke.nl"}], 19 | "repository": {"type": "git", 20 | "url": "https://github.com/codemirror/CodeMirror.git"} 21 | } 22 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/cobalt.css: -------------------------------------------------------------------------------- 1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; } 2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); } 4 | .cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); } 5 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 6 | .cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; } 7 | .cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 8 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } 9 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-cobalt span.cm-comment { color: #08f; } 12 | .cm-s-cobalt span.cm-atom { color: #845dc4; } 13 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } 14 | .cm-s-cobalt span.cm-keyword { color: #ffee80; } 15 | .cm-s-cobalt span.cm-string { color: #3ad900; } 16 | .cm-s-cobalt span.cm-meta { color: #ff9d00; } 17 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } 18 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } 19 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } 20 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } 21 | .cm-s-cobalt span.cm-link { color: #845dc4; } 22 | .cm-s-cobalt span.cm-error { color: #9d1e15; } 23 | 24 | .cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;} 25 | .cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} 26 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/colorforth.css: -------------------------------------------------------------------------------- 1 | .cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; } 2 | .cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } 3 | .cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; } 4 | .cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; } 5 | .cm-s-colorforth .CodeMirror-linenumber { color: #bababa; } 6 | .cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white !important; } 7 | 8 | .cm-s-colorforth span.cm-comment { color: #ededed; } 9 | .cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; } 10 | .cm-s-colorforth span.cm-keyword { color: #ffd900; } 11 | .cm-s-colorforth span.cm-builtin { color: #00d95a; } 12 | .cm-s-colorforth span.cm-variable { color: #73ff00; } 13 | .cm-s-colorforth span.cm-string { color: #007bff; } 14 | .cm-s-colorforth span.cm-number { color: #00c4ff; } 15 | .cm-s-colorforth span.cm-atom { color: #606060; } 16 | 17 | .cm-s-colorforth span.cm-variable-2 { color: #EEE; } 18 | .cm-s-colorforth span.cm-variable-3 { color: #DDD; } 19 | .cm-s-colorforth span.cm-property {} 20 | .cm-s-colorforth span.cm-operator {} 21 | 22 | .cm-s-colorforth span.cm-meta { color: yellow; } 23 | .cm-s-colorforth span.cm-qualifier { color: #FFF700; } 24 | .cm-s-colorforth span.cm-bracket { color: #cc7; } 25 | .cm-s-colorforth span.cm-tag { color: #FFBD40; } 26 | .cm-s-colorforth span.cm-attribute { color: #FFF700; } 27 | .cm-s-colorforth span.cm-error { color: #f00; } 28 | 29 | .cm-s-colorforth .CodeMirror-selected { background: #333d53 !important; } 30 | 31 | .cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); } 32 | 33 | .cm-s-colorforth .CodeMirror-activeline-background {background: #253540 !important;} 34 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-qualifier {color: #555;} 15 | .cm-s-eclipse span.cm-builtin {color: #30a;} 16 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 17 | .cm-s-eclipse span.cm-tag {color: #170;} 18 | .cm-s-eclipse span.cm-attribute {color: #00c;} 19 | .cm-s-eclipse span.cm-link {color: #219;} 20 | .cm-s-eclipse span.cm-error {color: #f00;} 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} 23 | .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 24 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-link {color: #762;} 10 | .cm-s-elegant span.cm-error {background-color: #fdd;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/monokai.css: -------------------------------------------------------------------------------- 1 | /* Based on Sublime Text's Monokai theme */ 2 | 3 | .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} 4 | .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} 5 | .cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); } 6 | .cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); } 7 | .cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} 8 | .cm-s-monokai .CodeMirror-guttermarker { color: white; } 9 | .cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 10 | .cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} 11 | .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} 12 | 13 | .cm-s-monokai span.cm-comment {color: #75715e;} 14 | .cm-s-monokai span.cm-atom {color: #ae81ff;} 15 | .cm-s-monokai span.cm-number {color: #ae81ff;} 16 | 17 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} 18 | .cm-s-monokai span.cm-keyword {color: #f92672;} 19 | .cm-s-monokai span.cm-string {color: #e6db74;} 20 | 21 | .cm-s-monokai span.cm-variable {color: #a6e22e;} 22 | .cm-s-monokai span.cm-variable-2 {color: #9effff;} 23 | .cm-s-monokai span.cm-def {color: #fd971f;} 24 | .cm-s-monokai span.cm-bracket {color: #f8f8f2;} 25 | .cm-s-monokai span.cm-tag {color: #f92672;} 26 | .cm-s-monokai span.cm-link {color: #ae81ff;} 27 | .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} 28 | 29 | .cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;} 30 | .cm-s-monokai .CodeMirror-matchingbracket { 31 | text-decoration: underline; 32 | color: white !important; 33 | } 34 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/neo.css: -------------------------------------------------------------------------------- 1 | /* neo theme for codemirror */ 2 | 3 | /* Color scheme */ 4 | 5 | .cm-s-neo.CodeMirror { 6 | background-color:#ffffff; 7 | color:#2e383c; 8 | line-height:1.4375; 9 | } 10 | .cm-s-neo .cm-comment {color:#75787b} 11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} 12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} 13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} 14 | .cm-s-neo .cm-string {color:#b35e14} 15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} 16 | 17 | 18 | /* Editor styling */ 19 | 20 | .cm-s-neo pre { 21 | padding:0; 22 | } 23 | 24 | .cm-s-neo .CodeMirror-gutters { 25 | border:none; 26 | border-right:10px solid transparent; 27 | background-color:transparent; 28 | } 29 | 30 | .cm-s-neo .CodeMirror-linenumber { 31 | padding:0; 32 | color:#e0e2e5; 33 | } 34 | 35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } 36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } 37 | 38 | .cm-s-neo div.CodeMirror-cursor { 39 | width: auto; 40 | border: 0; 41 | background: rgba(155,157,162,0.37); 42 | z-index: 1; 43 | } 44 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/night.css: -------------------------------------------------------------------------------- 1 | /* Loosely based on the Midnight Textmate theme */ 2 | 3 | .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; } 4 | .cm-s-night div.CodeMirror-selected { background: #447 !important; } 5 | .cm-s-night.CodeMirror ::selection { background: rgba(68, 68, 119, .99); } 6 | .cm-s-night.CodeMirror ::-moz-selection { background: rgba(68, 68, 119, .99); } 7 | .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } 8 | .cm-s-night .CodeMirror-guttermarker { color: white; } 9 | .cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; } 10 | .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; } 11 | .cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; } 12 | 13 | .cm-s-night span.cm-comment { color: #6900a1; } 14 | .cm-s-night span.cm-atom { color: #845dc4; } 15 | .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; } 16 | .cm-s-night span.cm-keyword { color: #599eff; } 17 | .cm-s-night span.cm-string { color: #37f14a; } 18 | .cm-s-night span.cm-meta { color: #7678e2; } 19 | .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; } 20 | .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; } 21 | .cm-s-night span.cm-bracket { color: #8da6ce; } 22 | .cm-s-night span.cm-comment { color: #6900a1; } 23 | .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; } 24 | .cm-s-night span.cm-link { color: #845dc4; } 25 | .cm-s-night span.cm-error { color: #9d1e15; } 26 | 27 | .cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;} 28 | .cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 29 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/rubyblue.css: -------------------------------------------------------------------------------- 1 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; } 2 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } 3 | .cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); } 4 | .cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); } 5 | .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } 6 | .cm-s-rubyblue .CodeMirror-guttermarker { color: white; } 7 | .cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; } 8 | .cm-s-rubyblue .CodeMirror-linenumber { color: white; } 9 | .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } 12 | .cm-s-rubyblue span.cm-atom { color: #F4C20B; } 13 | .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } 14 | .cm-s-rubyblue span.cm-keyword { color: #F0F; } 15 | .cm-s-rubyblue span.cm-string { color: #F08047; } 16 | .cm-s-rubyblue span.cm-meta { color: #F0F; } 17 | .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } 18 | .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } 19 | .cm-s-rubyblue span.cm-bracket { color: #F0F; } 20 | .cm-s-rubyblue span.cm-link { color: #F4C20B; } 21 | .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } 22 | .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } 23 | .cm-s-rubyblue span.cm-error { color: #AF2018; } 24 | 25 | .cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;} 26 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/codemirror/theme/the-matrix.css: -------------------------------------------------------------------------------- 1 | .cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; } 2 | .cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D !important; } 3 | .cm-s-the-matrix.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); } 4 | .cm-s-the-matrix.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); } 5 | .cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; } 6 | .cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; } 7 | .cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; } 8 | .cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; } 9 | .cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; } 10 | 11 | .cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;} 12 | .cm-s-the-matrix span.cm-atom {color: #3FF;} 13 | .cm-s-the-matrix span.cm-number {color: #FFB94F;} 14 | .cm-s-the-matrix span.cm-def {color: #99C;} 15 | .cm-s-the-matrix span.cm-variable {color: #F6C;} 16 | .cm-s-the-matrix span.cm-variable-2 {color: #C6F;} 17 | .cm-s-the-matrix span.cm-variable-3 {color: #96F;} 18 | .cm-s-the-matrix span.cm-property {color: #62FFA0;} 19 | .cm-s-the-matrix span.cm-operator {color: #999} 20 | .cm-s-the-matrix span.cm-comment {color: #CCCCCC;} 21 | .cm-s-the-matrix span.cm-string {color: #39C;} 22 | .cm-s-the-matrix span.cm-meta {color: #C9F;} 23 | .cm-s-the-matrix span.cm-qualifier {color: #FFF700;} 24 | .cm-s-the-matrix span.cm-builtin {color: #30a;} 25 | .cm-s-the-matrix span.cm-bracket {color: #cc7;} 26 | .cm-s-the-matrix span.cm-tag {color: #FFBD40;} 27 | .cm-s-the-matrix span.cm-attribute {color: #FFF700;} 28 | .cm-s-the-matrix span.cm-error {color: #FF0000;} 29 | 30 | .cm-s-the-matrix .CodeMirror-activeline-background {background: #040;} 31 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/lib/jquery.flowchart.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery.flowchart.js v1.1.0 | jquery.flowchart.min.js | jQuery plugin for flowchart.js. | MIT License | By: Pandao | https://github.com/pandao/jquery.flowchart.js | 2015-03-09 */ 2 | (function(factory){if(typeof require==="function"&&typeof exports==="object"&&typeof module==="object"){module.exports=factory}else{if(typeof define==="function"){factory(jQuery,flowchart)}else{factory($,flowchart)}}}(function(jQuery,flowchart){(function($){$.fn.flowChart=function(options){options=options||{};var defaults={"x":0,"y":0,"line-width":2,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black","fill":"white","yes-text":"yes","no-text":"no","arrow-end":"block","symbols":{"start":{"font-color":"black","element-color":"black","fill":"white"},"end":{"class":"end-element"}},"flowstate":{"past":{"fill":"#CCCCCC","font-size":12},"current":{"fill":"black","font-color":"white","font-weight":"bold"},"future":{"fill":"white"},"request":{"fill":"blue"},"invalid":{"fill":"#444444"},"approved":{"fill":"#58C4A3","font-size":12,"yes-text":"APPROVED","no-text":"n/a"},"rejected":{"fill":"#C45879","font-size":12,"yes-text":"n/a","no-text":"REJECTED"}}};return this.each(function(){var $this=$(this);var diagram=flowchart.parse($this.text());var settings=$.extend(true,defaults,options);$this.html("");diagram.drawSVG(this,settings)})}})(jQuery)})); -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "editor.md", 3 | "version": "1.5.0", 4 | "description": "Open source online markdown editor.", 5 | "directories": { 6 | "doc": "docs", 7 | "example": "examples", 8 | "test": "tests" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/pandao/editor.md.git" 16 | }, 17 | "keywords": [ 18 | "editor.md", 19 | "markdown", 20 | "editor" 21 | ], 22 | "author": "Pandao", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/pandao/editor.md/issues" 26 | }, 27 | "homepage": "https://github.com/pandao/editor.md", 28 | "devDependencies": { 29 | "dateformatter": "^0.1.0", 30 | "gulp": "^3.8.11", 31 | "gulp-concat": "^2.4.2", 32 | "gulp-header": "^1.2.2", 33 | "gulp-jshint": "^1.9.0", 34 | "gulp-minify-css": "^0.4.4", 35 | "gulp-notify": "^2.1.0", 36 | "gulp-rename": "^1.2.0", 37 | "gulp-replace": "^0.5.3", 38 | "gulp-ruby-sass": "^1.0.1", 39 | "gulp-uglifyjs": "^0.6.1", 40 | "gulp-util": "^3.0.1" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/plugins/test-plugin/test-plugin.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Test plugin for Editor.md 3 | * 4 | * @file test-plugin.js 5 | * @author pandao 6 | * @version 1.2.0 7 | * @updateTime 2015-03-07 8 | * {@link https://github.com/pandao/editor.md} 9 | * @license MIT 10 | */ 11 | 12 | (function() { 13 | 14 | var factory = function (exports) { 15 | 16 | var $ = jQuery; // if using module loader(Require.js/Sea.js). 17 | 18 | exports.testPlugin = function(){ 19 | alert("testPlugin"); 20 | }; 21 | 22 | exports.fn.testPluginMethodA = function() { 23 | /* 24 | var _this = this; // this == the current instance object of Editor.md 25 | var lang = _this.lang; 26 | var settings = _this.settings; 27 | var editor = this.editor; 28 | var cursor = cm.getCursor(); 29 | var selection = cm.getSelection(); 30 | var classPrefix = this.classPrefix; 31 | 32 | cm.focus(); 33 | */ 34 | //.... 35 | 36 | alert("testPluginMethodA"); 37 | }; 38 | 39 | }; 40 | 41 | // CommonJS/Node.js 42 | if (typeof require === "function" && typeof exports === "object" && typeof module === "object") 43 | { 44 | module.exports = factory; 45 | } 46 | else if (typeof define === "function") // AMD/CMD/Sea.js 47 | { 48 | if (define.amd) { // for Require.js 49 | 50 | define(["editormd"], function(editormd) { 51 | factory(editormd); 52 | }); 53 | 54 | } else { // for Sea.js 55 | define(function(require) { 56 | var editormd = require("./../../editormd"); 57 | factory(editormd); 58 | }); 59 | } 60 | } 61 | else 62 | { 63 | factory(window.editormd); 64 | } 65 | 66 | })(); 67 | -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/scss/editormd.grid.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | .editormd-grid-table { 4 | width: 99%; 5 | display: table; 6 | border: 1px solid #ddd; 7 | border-collapse: collapse; 8 | } 9 | 10 | .editormd-grid-table-row { 11 | width: 100%; 12 | display: table-row; 13 | 14 | a { 15 | font-size: 1.4em; 16 | width: 5%; 17 | height: 36px; 18 | color: #999; 19 | text-align: center; 20 | display: table-cell; 21 | vertical-align: middle; 22 | border: 1px solid #ddd; 23 | text-decoration: none; 24 | @include transition(background-color 300ms ease-out, color 100ms ease-in); 25 | 26 | &.selected { 27 | color: #666; 28 | background-color: #eee; 29 | } 30 | 31 | &:hover { 32 | color: #777; 33 | background-color: #f6f6f6; 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/scss/editormd.tab.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | .editormd-tab { 4 | } 5 | 6 | .editormd-tab-head { 7 | list-style: none; 8 | border-bottom: 1px solid #ddd; 9 | 10 | li { 11 | display: inline-block; 12 | 13 | a { 14 | color: #999; 15 | display: block; 16 | padding: 6px 12px 5px; 17 | text-align: center; 18 | text-decoration: none; 19 | margin-bottom: -1px; 20 | border: 1px solid #ddd; 21 | @include border-top-left-radius(3px); 22 | @include border-top-right-radius(3px); 23 | background: #f6f6f6; 24 | @include transition(all 300ms ease-out); 25 | 26 | &:hover { 27 | color: #666; 28 | background: #eee; 29 | } 30 | } 31 | 32 | &.active a { 33 | color: #666; 34 | background: #fff; 35 | border-bottom-color: #fff; 36 | } 37 | } 38 | 39 | li + li { 40 | margin-left: 3px; 41 | } 42 | } 43 | 44 | .editormd-tab-container { 45 | } 46 | 47 | .editormd-tab-box { 48 | padding: 20px 0; 49 | } -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/scss/editormd.themes.scss: -------------------------------------------------------------------------------- 1 | /* Editor.md Dark theme */ 2 | 3 | #{$prefix}theme-dark { 4 | border-color: #1a1a17; 5 | 6 | #{$prefix}toolbar { 7 | background: #1A1A17; 8 | border-color: #1a1a17; 9 | } 10 | 11 | #{$prefix}menu > li > a { 12 | color: #777; 13 | border-color: #1a1a17; 14 | 15 | &:hover, &.active { 16 | border-color: #333; 17 | background: #333; 18 | } 19 | } 20 | 21 | #{$prefix}menu > li.divider { 22 | border-right: 1px solid #111; 23 | } 24 | 25 | .CodeMirror { 26 | border-right: 1px solid rgba(0,0,0,0.1); 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/scss/lib/variables.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | // Global Variables 4 | 5 | $prefix : ".editormd-"; 6 | $color : #666; 7 | $mainColor : #2196F3; 8 | $primaryColor : $mainColor; 9 | $secondColor : #33CC66; 10 | $thirdColor : #999999; 11 | $borderColor : #ddd; -------------------------------------------------------------------------------- /src/main/webapp/static/editor.md-master/scss/prettify.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | .pln { color: #000 } /* plain text */ 6 | 7 | @media screen { 8 | .str { color: #080 } /* string content */ 9 | .kwd { color: #008 } /* a keyword */ 10 | .com { color: #800 } /* a comment */ 11 | .typ { color: #606 } /* a type name */ 12 | .lit { color: #066 } /* a literal value */ 13 | /* punctuation, lisp open bracket, lisp close bracket */ 14 | .pun, .opn, .clo { color: #660 } 15 | .tag { color: #008 } /* a markup tag name */ 16 | .atn { color: #606 } /* a markup attribute name */ 17 | .atv { color: #080 } /* a markup attribute value */ 18 | .dec, .var { color: #606 } /* a declaration; a variable name */ 19 | .fun { color: red } /* a function name */ 20 | } 21 | 22 | /* Use higher contrast and text-weight for printable form. */ 23 | @media print, projection { 24 | .str { color: #060 } 25 | .kwd { color: #006; font-weight: bold } 26 | .com { color: #600; font-style: italic } 27 | .typ { color: #404; font-weight: bold } 28 | .lit { color: #044 } 29 | .pun, .opn, .clo { color: #440 } 30 | .tag { color: #006; font-weight: bold } 31 | .atn { color: #404 } 32 | .atv { color: #060 } 33 | } 34 | 35 | /* Put a border around prettyprinted code snippets. */ 36 | pre.prettyprint { padding: 2px; border: 1px solid #888 } 37 | 38 | /* Specify class=linenums on a pre to get line numbering */ 39 | ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ 40 | li.L0, 41 | li.L1, 42 | li.L2, 43 | li.L3, 44 | li.L5, 45 | li.L6, 46 | li.L7, 47 | li.L8 { list-style-type: none } 48 | /* Alternate shading for lines */ 49 | li.L1, 50 | li.L3, 51 | li.L5, 52 | li.L7, 53 | li.L9 { background: #eee } -------------------------------------------------------------------------------- /src/main/webapp/static/img/admin/favicon-admin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/admin/favicon-admin.ico -------------------------------------------------------------------------------- /src/main/webapp/static/img/admin/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/admin/login.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/admin/user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/admin/user.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/img/article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/article.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/attention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/attention.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/beijing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/beijing.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/img/beijing2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/beijing2.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/img/beijing3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/beijing3.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/beijing4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/beijing4.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/comment.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/content.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/content.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/img/fatiePhoto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/fatiePhoto.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/fatiePhotoEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/fatiePhotoEditor.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/favicon.ico -------------------------------------------------------------------------------- /src/main/webapp/static/img/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/head.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/houtai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/houtai.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/loading.gif -------------------------------------------------------------------------------- /src/main/webapp/static/img/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/login.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/logo-lanse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/logo-lanse.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/logo-lvse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/logo-lvse.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/logo.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/photo/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/photo/add.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/photo/not_photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/photo/not_photo.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/img/photo/wuzhaopian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/photo/wuzhaopian.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/share/QQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/share/QQ.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/shezhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/shezhi.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/top.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/toped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/toped.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/touxiang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/touxiang.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/img/tuichu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/tuichu.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/wodezhuye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/wodezhuye.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/xinagce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/xinagce.png -------------------------------------------------------------------------------- /src/main/webapp/static/img/yunying.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/img/yunying.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/admin/head.js: -------------------------------------------------------------------------------- 1 | if (aname == "") { // 未登录 2 | $(".admin_head_logout").show(); 3 | $(".admin_head_login").hide(); 4 | $(".admin_head_login").hide(); 5 | } else { // 已登录 6 | $(".admin_head_logout").hide(); 7 | $(".admin_head_login").show(); 8 | $(".admin_head_login").show(); 9 | 10 | // 管理员名称 11 | $(".admin_name").html(aname); 12 | // 管理员创建时间 13 | $(".admin_createtime").html(dateTimeFormat(Number(acreateTime))); 14 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/admin/visit.js: -------------------------------------------------------------------------------- 1 | /*分页操作*/ 2 | function visitPage(pageStart) { 3 | $.ajax({ 4 | url: APP_PATH + "/api/rest/nanshengbbs/v3.0/visit/getVisit?pageStart=" + pageStart, 5 | type: "get", 6 | dataType: "json", 7 | success: function (data) { 8 | // 状态码 9 | var code = data.code; 10 | // 提示信息 11 | var msg = data.msg; 12 | if (code == 200) { 13 | /*########################################### 访问管理 ############################################################*/ 14 | $("#listVisit_all").html(getVisitList(data.data)); 15 | //访问总数 16 | $("#visit_total").html(data.data.total + '条'); 17 | //月访问量 18 | $("#visit_month").html(data.data.month + '条'); 19 | //周访问量 20 | $("#visit_week").html(data.data.week + '条'); 21 | //日访问量 22 | $("#visit_day").html(data.data.day + '条'); 23 | 24 | /*----------------------------------------- 分页(用户管理) ----------------------------------------*/ 25 | getPaging(data.data, "visit"); 26 | /*########################################### 访问管理-end ############################################################*/ 27 | } else if (code == 500) { 28 | layer.msg(msg,{icon: 5}); 29 | } 30 | }, 31 | error : function() { 32 | layer.msg("出错!",{icon: 5}); 33 | } 34 | }); 35 | } 36 | -------------------------------------------------------------------------------- /src/main/webapp/static/js/content/article.js: -------------------------------------------------------------------------------- 1 | //文章-删除(个人主页) 2 | function articleDel(fid) { 3 | $.ajax({ 4 | //几个参数需要注意一下 5 | type: "delete",//方法类型 6 | dataType: "json",//预期服务器返回的数据类型 7 | url: APP_PATH + "/api/rest/nanshengbbs/v3.0/article/deleteArticle/"+fid , 8 | success: function (data) { 9 | // 状态码 10 | var code = data.code; 11 | // 提示信息 12 | var msg = data.msg; 13 | if (code == 200) { 14 | layer.msg(msg); 15 | // 隐藏删除的文章 16 | $(".myself_article_num_" + fid).hide(); 17 | } else if (code == 500) { 18 | layer.msg(msg,{icon: 5}); 19 | } 20 | }, 21 | error : function() { 22 | layer.msg("出错!",{icon: 5}); 23 | } 24 | }); 25 | } 26 | 27 | /** 28 | * 热门文章展示 29 | * @param hotArticles 30 | */ 31 | function getHotArticle(hotArticles) { 32 | // 此处进行循环展示-热门文章 33 | var hotArticle_all = ""; 34 | for (var i = 0; i < hotArticles.length; i++) { 35 | var hotArticle = hotArticles[i]; 36 | $("#hotArticle_all_a").attr("onclick", "skipArticle('" + hotArticle.fid + "')"); 37 | $("#hotArticle_all_a").html(hotArticle.titles); 38 | 39 | hotArticle_all = hotArticle_all + $("#hotArticle_all_hide").html(); 40 | } 41 | $("#hotArticle_all").html(hotArticle_all); 42 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/content/user.js: -------------------------------------------------------------------------------- 1 | // 将用户头像显示到个人中心 2 | function getMePicture(user) { 3 | //判断头像显示 4 | if (user.via == null){ 5 | /* 默认头像 */ 6 | $("#myself_userphoto_img").attr("src", APP_PATH +"/static/img/head.png"); 7 | } else { 8 | /* 自定义头像 */ 9 | $("#myself_userphoto_img").attr("src", user.via.photo); 10 | } 11 | } 12 | 13 | // 将用户信息显示到“个人中心” 14 | function getAboutMe(user) { 15 | //用户名 16 | $("#myself_name").html(user.name); 17 | //居住地 18 | $("#myself_family").html(user.family); 19 | //个人简介 20 | $("#myself_intro").html(user.intro); 21 | //电子邮箱 22 | $("#myself_email").html(user.email); 23 | //性别年龄 24 | $("#myself_sex_age").html(getSex(user.sex) + " " + getAge(user.age)); 25 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/delete.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 评论删除确认框 3 | * @returns 4 | */ 5 | function p_del(pid) { 6 | layer.confirm('确定删除该评论?
删除后无法恢复!', { 7 | btn:["确定","取消"], 8 | icon:2, 9 | title: "删除提示" 10 | }, function(){ 11 | //点击确后关闭提示框 12 | layer.closeAll('dialog'); 13 | commentDel(pid) 14 | }); 15 | } 16 | 17 | /** 18 | * 文章删除确认框 19 | * @returns 20 | */ 21 | function f_del(fid) { 22 | layer.confirm('确定删除该文章?
这将同时删除与该文章相关的所有信息
删除后无法恢复!', { 23 | btn:["确定","取消"], 24 | icon:2, 25 | title: "删除提示" 26 | }, function(){ 27 | //点击确后关闭提示框 28 | layer.closeAll('dialog'); 29 | articleDel(fid) 30 | }); 31 | } 32 | 33 | /** 34 | * 相册删除确认框 35 | * @returns 36 | */ 37 | function deletePhotoPro(fid) { 38 | layer.confirm('确定删除该相册吗?
这将同时删除该相册下的所有照片
删除后无法恢复!', { 39 | btn:["确定","取消"], 40 | icon:2, 41 | title: "删除提示" 42 | }, function(){ 43 | //点击确后关闭提示框 44 | layer.closeAll('dialog'); 45 | photoProDel(fid); 46 | }); 47 | } 48 | 49 | /** 50 | * 照片删除确认框 51 | * @returns 52 | */ 53 | function deletePhoto(xid) { 54 | layer.confirm('确定删除该照片吗?
删除后无法恢复!', { 55 | btn:["确定","取消"], 56 | icon:2, 57 | title: "删除提示" 58 | }, function(){ 59 | //点击确后关闭提示框 60 | layer.closeAll('dialog'); 61 | tbPhotoDel(xid); 62 | }); 63 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/head/head.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | if (username === "") { // 未登录 3 | $(".head_logout").show(); 4 | $(".head_login").hide(); 5 | $(".head_login").hide(); 6 | } else { // 已登录 7 | $(".head_logout").hide(); 8 | $(".head_login").show(); 9 | $(".head_login").show(); 10 | getUserPhoto(); 11 | } 12 | }); 13 | 14 | /** 15 | * 给head上头像赋值 16 | */ 17 | function getUserPhoto() { 18 | if (userPhoto != null && userPhoto !== "") { // 有自定义头像 19 | // 用户头像 20 | $(".head_userPhoto").attr("src", userPhoto); 21 | } 22 | } 23 | 24 | /** 25 | * 给head上头像赋值 26 | * @param UserPhotoFileName 头像图片名 27 | */ 28 | function getUserPhotoArg(UserPhotoFileName) { 29 | // 用户头像 30 | $(".head_userPhoto").attr("src", UserPhotoFileName); 31 | } 32 | 33 | /* 版本说明 */ 34 | $(".version-popover-options").popover({html : true }); -------------------------------------------------------------------------------- /src/main/webapp/static/js/images_photo.js: -------------------------------------------------------------------------------- 1 | //图片上传预览 IE是用了滤镜。 2 | function user_previewImage(file) 3 | { 4 | var MAXWIDTH = 90; 5 | var MAXHEIGHT = 90; 6 | var div = document.getElementById('user_preview'); 7 | if (file.files && file.files[0]) 8 | { 9 | div.innerHTML =''; 10 | var img = document.getElementById('user_imghead'); 11 | img.onload = function(){ 12 | var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); 13 | img.width = rect.width; 14 | img.height = rect.height; 15 | img.style.marginTop = rect.top+'px'; 16 | } 17 | var reader = new FileReader(); 18 | reader.onload = function(evt){img.src = evt.target.result;} 19 | reader.readAsDataURL(file.files[0]); 20 | } 21 | else //兼容IE 22 | { 23 | var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="'; 24 | file.select(); 25 | var src = document.selection.createRange().text; 26 | div.innerHTML = ''; 27 | var img = document.getElementById('user_imghead'); 28 | img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src; 29 | var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); 30 | status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height); 31 | div.innerHTML = "
"; 32 | } 33 | } 34 | function clacImgZoomParam( maxWidth, maxHeight, width, height ){ 35 | var param = {top:0, left:0, width:width, height:height}; 36 | 37 | return param; 38 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/layer/theme/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/js/layer/theme/default/icon-ext.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/layer/theme/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/js/layer/theme/default/icon.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/layer/theme/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/js/layer/theme/default/loading-0.gif -------------------------------------------------------------------------------- /src/main/webapp/static/js/layer/theme/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/js/layer/theme/default/loading-1.gif -------------------------------------------------------------------------------- /src/main/webapp/static/js/layer/theme/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maliangnansheng/bbs-ssm/f4a0b9272908640609f7ddb0d726f1612a9d5720/src/main/webapp/static/js/layer/theme/default/loading-2.gif -------------------------------------------------------------------------------- /src/main/webapp/static/js/load_more.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 加载更多 3 | * @param pageStart 第几页 4 | * @param bid 板块id 5 | */ 6 | function appendMore(pageStart, bid) { 7 | var url = "/api/rest/nanshengbbs/v3.0/article/appendMore?pageStart=" + pageStart; 8 | if (typeof(bid) != "undefined") { 9 | url = "/api/rest/nanshengbbs/v3.0/article/appendMore?bid=" + bid + "&pageStart=" + pageStart; 10 | } 11 | $.ajax({ 12 | url: APP_PATH + url, 13 | type: "get", 14 | dataType: "json", 15 | success: function (data) { 16 | // 状态码 17 | var code = data.code; 18 | // 提示信息 19 | var msg = data.msg; 20 | data = data.data; 21 | if (code == 200) { 22 | var articles = data.listArticle; 23 | // 构造首页文章信息 24 | var articles_all = getArticlesAll(data); 25 | 26 | //追加 27 | $("#articles_all").append(articles_all); 28 | 29 | //没有更多 30 | if(articles.length == 0){ 31 | var appendMore = '已加载全部文章...'; 32 | $("#appendMore").html(appendMore); 33 | $("#appendMore").removeAttr("onClick"); 34 | } else { 35 | /*加载更多*/ 36 | var pageStart = data.pageStart + 1; 37 | if (typeof(bid) == "undefined") { // 没在bid板块下查询(即:查询所有) 38 | $("#appendMore").attr("onClick", "appendMore('" + pageStart + "')"); 39 | } else { // 在bid板块下查询 40 | $("#appendMore").attr("onClick", "appendMore('" + pageStart + "','" + bid + "')"); 41 | } 42 | } 43 | } else if (code == 500) { 44 | layer.msg(msg,{icon: 5}); 45 | } 46 | }, 47 | error : function() { 48 | layer.msg("出错!",{icon: 5}); 49 | } 50 | }); 51 | } 52 | 53 | /** 54 | * 判断“加载更多”是否该显示 55 | * @param length 56 | */ 57 | function appendMoreShow(length) { 58 | if (length > 3) { 59 | return true; 60 | } else { 61 | return false; 62 | } 63 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/phones_pc.js: -------------------------------------------------------------------------------- 1 | // 平台、设备和操作系统 2 | var system = { 3 | win : false, 4 | mac : false, 5 | xll : false, 6 | ipad : false 7 | }; 8 | // 检测平台 9 | var p = navigator.platform; 10 | system.win = p.indexOf("Win") === 0; 11 | system.mac = p.indexOf("Mac") === 0; 12 | system.x11 = (p === "X11") || (p.indexOf("Linux") === 0); 13 | system.ipad = (navigator.userAgent.match(/iPad/i) != null); 14 | // 跳转语句,如果是手机访问就自动跳转到wap.baidu.com页面 15 | if (system.win || system.mac || system.xll || system.ipad) { 16 | $('#content_left').attr("class", "col-md-7 bottom_left"); 17 | $('#content_right').attr("class", "col-md-3 bottom_right"); 18 | $(".admin_pc").show(); 19 | } else { 20 | $('#content_left').attr("class", "col-xs-12 bottom_left_phones"); 21 | $('#content_right').attr("class", "col-xs-12"); 22 | $(".admin_mobile").show(); 23 | $(".version-popover-options").remove(); 24 | $(".version-popover-options-photo").show(); 25 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/photo/album.js: -------------------------------------------------------------------------------- 1 | // 构造【相册】信息 2 | function getAlbum(data) { 3 | var showPhoto_all = ""; 4 | var listPhotoPros = data.listPhotoPros; 5 | 6 | for (var i=0; i 3 | 4 | 5 | 6 | 7 | 南生论坛-文章修改 8 | <% 9 | pageContext.setAttribute("APP_PATH", request.getContextPath()); 10 | %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | --------------------------------------------------------------------------------